Service Name和SID的区别

Oracle这个事情真是让人费解。
让我告诉你我掉过的陷阱。

比如数据库名(db_name),这个东西很重要。
2 01 4 年在上海的时候,遇到一个项目,客户坚持要改数据库名,因为原来的名字太长,不好记。
好吧,改变它。
结果呢?必须重做控制文件并相应地替换备份。
当时我们团队每天都在加班加点地研究这个课题,连续三天。
数据没有丢失,但是人却被折磨死了。
因此,不要触及数据库名称。

实例名,这个东西你要多注意一下。
2 007 年在北京,我们有一个遗留系统,实例名称是ORACLE_SID环境变量。
后来来了新的运维小哥。
他想不通,改了环境变量。
结果,整个数据库实例被阻塞。
如果等不及死,那就只能重新开始。
所以需要特别注意实例名称。

Listener中的全局数据库名称,我对此印象不是很深刻,它似乎在Listener.ora中被更改了。
不管怎样,请记住,更改后,用于客户端连接的服务名称必须匹配。

db_domain,我知道。
在 RAC 环境中,这件事需要保持一致。
我2 01 2 年在深圳搭建了一个RAC集群,有几个实例。
如果db_domain不正确,跨实例操作将在几分钟内终止并出现问题。
通俗易懂的全局数据库名(global_name)就是数据库名加域名。
但有一个问题:global_names 参数必须设置为 true。
1 0年前我在广州,有一次我并没有注意到这个设置是错误的。
结果我用databaselink连接其他库的时候,报错找不到全局数据库名。
改一下就好了,但是太复杂了。

连接链,最实用的。
tnsnames.ora 中必须写清楚,主机名、端口号和实例名必须正确。
2 01 5 年我在杭州的时候,有一个客户端因为连接字符串写错而无法远程连接。
经过多方询问,终于发现是端口号写错了,而且这个端口根本没有开放。
因此,在编写连接字符串时,需要逐字符检查。

这些都是我的个人经历。
在使用 Oracle 时,细节太重要了。
如果你犯了错误,那么你每一步都会犯错误。

实例与数据库的对应关系区别是什么

实例和数据库密切相关。
但也存在差异。

实例是数据库运行时的实现。
我在2 02 3 年3 月的一个公司项目中看到了它。
当时,一个实例运行两个数据库。

数据库是存储数据的地方。
有表、索引等。
位置并不重要。
您可以称其为计算机房。
数字?一个实例可以管理多少个数据库? 我不确定这部分。

这些示例侧重于运行时。
内存分配、进程调度等 我的朋友去年创建了一个集群。
上面说如果实例出现问题,数据库就无法访问。

数据库专注于存储数据。
设计和管理很重要。
上次我阅读文档时,数据安全是设计使然。

无论如何。
他们一起工作。
你还好吗?

如何区分Oracle的数据库,实例,服务名,SID

上周我和一位同事讨论过这个问题。

2 02 3 年 1 0 月 2 6 日。
该服务器在我们公司。

数据库是文件的集合。
ASM 或 RAW 分区不受影响。

实例是一系列后台进程。
还有共享内存。
在同一台机器上共享进程。

service_names 是服务名称。
供外用。
一个库可以有多个库。
目的不同。

sid 是版本 ID。
服务名称是外部链接。

没错。
只是想到了别的事。
ASM 非常方便。
但要小心配置。

算了。
由你决定。