1、ORACLE_SID、实例名(SID)和数据库名的区别

操作系统环境变量(ORACLE_SID):instance_name(“数据库实例名”)是Oracle的数据库参数,而oracle_sid则是操作系统的环境变量,用户和操作系统交互,也就是说要得到实例名,必须使用sid。在数据库安装结束时 ,oracle_sid已经是一个确定的字符串了,其值必须与数据库实例名相同。

数据库实例名(INSTANCE_NAME):实例名用于和操作系统关联,在操作系统中要取得与数据库之间的交互必须使用数据库实例名。一个Oracle数据库系统中可以同时安装几个数据库,每个数据库对应唯一的实例(默认情况下数据库名和数据库实例名是相同的)。但在Oracle的并行服务结构中却不是,数据库与实例是一对多的关系。实例名是可以修改的。

数据库名(DB_NAME ):是用于区分一个数据的内部标示,即Oracle数据库的内部表示。是以二进制方式存储于数据库的控制文件的参数。在数据库安装或创建之后不得修改。

数据库域名(DB_DOMAIN):在Oracle10g中db_domain表示域名。与数据库名,数据库实例名一样数据库域名在安装数据库时候已经确定。ll.xxx.com.cn。后面的xxx.com.cn则表示域名。

全局数据库名(GLOBAL_NAME):则表示数据库名和域名的总和。如果没有域名,全局数据库名就与数据库名相同。

数据库服务名(SERVICE_NAME):是从oracle 9i,10g开始引入的参数。用service_names表示。数据库服务名与全局数据库名相同。

可以参考以下:

https://www.jianshu.com/p/a416ca0fbe8a

https://www.cnblogs.com/ahudyan-forever/p/6016784.html

2、查看oracle的数据库名和sid

(1)查看Oracle的数据库名称(一般数据库名和实例名一样)
     1)用sysdba身份登录 比如 conn sys/密码或者conn as sysdba(匿名管理员登陆)。
     2)执行 select name form v$database; (常用的方法)或是执行 select * from  v$database; 不过执行第二个显示的内容太多了不好找自己想要的结果。你也可以先用 desc V$database; 语句查看一下 V$database 都有什么字段然后选择自己想要的字段进行选择。

 

(2)查看实例名称(sid):
在数据库系统用户下执行如下命令: 

select instance_name from  V$instance;//V不区分大小写

执行结果如下:

一般默认情况下sid与你的数据库的名称是一样的!

如果是在Unix下可以执行如下命令: 

 ps -ef|grep ora_ 

结果如下:


进程的最后几个字母就是sid。

参考https://www.cnblogs.com/lcword/p/8214334.html

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐