本文共 1161 字,大约阅读时间需要 3 分钟。
如果接触数据库有些时间了,可能会碰到很多关于数据库相关的名字,比如ORACLE_SID,db_name,instance_name,db_unique_name等等。可能一下子都有些糊涂了,就一股脑儿认为都应该是一致的,其实不然。如果你接触的环境比较单一,可能会有这种错觉。首先来看看单实例的。$ORACLE_SID TEST01Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter name --查看数据库中涉及到name的参数
NAME TYPE VALUEdb_name string TEST01db_unique_name string TEST01instance_name string TEST01service_names string TEST01
这么看好像都是一致的,没有任何区别。再来看看多实例的环境。
-bash-4.1$ echo $ORACLE_SIDRACDB1Real Application Clusters, Oracle Label Security, OLAP,--查看数据库中涉及到name的参数db_name string RACDBdb_unique_name string RACDBinstance_name string RACDB1service_names string RACDB
SQL> show parameter db_name
NAME TYPE VALUEORA-32017: failure in updating SPFILEORA-32016: parameter "db_name" cannot be updated in SPFILE继续来看看service_name相关的一些东西。
-bash-4.1$ ps -ef|grep tns
-bash-4.1$ tnsping racdbRACDB)))
-bash-4.1$ lsnrctl status racdbServices Summary...Service "RACDB" has 1 instance(s). Instance "RACDB1", status READY, has 1 handler(s) for this service...对于db_unique_name,这个是在dataguard中需要设置的一个参数,在10g开始启用,关于为什么有这么一个参数,其实可以这么理解,如果某个主库有一个备库,采用dataguard来实现,并且在同一台机器上,那么就可以使用db_unique_name来在dg环境中为db设置一个唯一的值。
转载地址:http://pxpsf.baihongyu.com/