CUUG 笔记ORACLE db_name instance_name gobal_name service_name db_unique_name分析



一个数据库和相应的一些名字
oracle相关名字
db_name
db_unique_name
global_name
instance_name
service_name






DB_NAME:建立时候指定,记录在控制文件中,不容易修改,如果修改需要重建控制文件


如何修改数据库的名字
1、重新获得重建控制文件的语句
alter database backup controlfile to trace;
需要利用resetlog的选项像
2、修改名字


CREATE CONTROLFILE REUSE set DATABASE "ORCL123" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'C:\APP\YANWEI\ORADATA\ORCL\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'C:\APP\YANWEI\ORADATA\ORCL\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'C:\APP\YANWEI\ORADATA\ORCL\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
  'C:\APP\YANWEI\ORADATA\ORCL\SYSTEM01.DBF',
  'C:\APP\YANWEI\ORADATA\ORCL\SYSAUX01.DBF',
  'C:\APP\YANWEI\ORADATA\ORCL\UNDOTBS01.DBF',
  'C:\APP\YANWEI\ORADATA\ORCL\USERS01.DBF',
  'C:\APP\YANWEI\ORADATA\ORCL\EXAMPLE01.DBF',
  'C:\APP\YANWEI\ORADATA\ORCL\FDA01.DBF',
  'C:\APP\YANWEI\ORADATA\ORCL\FDA02.DBF'
CHARACTER SET ZHS16GBK


3.正常关闭启动nomount


4.需要修改初始化参数文件


============================================================================
db_unique_name


,用在DG。配置DG,设置别名,一般和数据库名字一致的
修改了之后,service_name就会跟着改变




service_name:oracle监听对外提供的名字
这个也可以单独修改;


查看监听的时候service也跟着改变;准确来说是多一个service来监听修改了service_name,之前实例监听的还存在,名字和db_unique_name一致


========================================================================


instance_name
export ORACLE_SID=orcl2
重启DB之后就发现修改成功
查看监听就发现实例名字也修改了。进程名字也修改了


也可以修改初始化参数的名字来修改实例名


===============================================================




global_name:
当GLOBAL_NAMES参数设置为TRUE时,使用DATABASE LINK时,DATABASE LINK的名称必须与被连接库的GLOBAL_NAME一致。


1、更改global_names 为true;
        SQL> alter system set global_names=true;--慎重
2、查看global_names属性
SQL> show parameter global_name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_names                         boolean     FALSE
3、修改global_name
SQL> conn sys/sys as sysdba
已连接。
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
ORCL.US.ORACLE.COM
SQL> update props$ set value$ = 'orcl' where name = 'GLOBAL_DB_NAME';
已更新 1 行。
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
orcl


create database link test_link connect to test identified by test using 'DMDB';  DMDB为TNSname设置


可以看到,链接仍然可以用。如果在DMDB库上创建链接到XJ库上,可以观察到同样的结果。可以得出一个结论:global_names参数设置为FALSE,影响的是创建数据库链接的那个库对数据库链接的使用。也就是说,如果一个库(实例)的global_names参数设值为TRUE,则该库连接其他库的数据库链接,其名称必须要与被连接的库的global_name相同:


如果在GLOBAL_NAMES设置为TRUE的情况下,如果要建多个数据库链接到同一个库,怎么办呢?因为数据库链接的名称必须与目标库的GLOBAL_NAME相同。可以按如下的方法:


以下是代码片段:


SQL> create database linkdmdb@link1connect to test identified by test using 'dmdb'; 
数据库链接已创建。 
SQL> create database linkdmdb@link2connect to test identified by test using 'dmdb'; 
数据库链接已创建。 
SQL> select * fromdual@dmdb ; 



SQL> select * fromdual@dmdb@link1 ; 



SQL> select * fromdual@dmdb@link2 ; 


X
 


  也就是在GLOBAL_NAME后面加上@再加上一个标识。这样就能够创建多个数据库链接到同一目标库上了。


http://www.cnblogs.com/songdavid/articles/2166988.html






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/500314/viewspace-1065334/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/500314/viewspace-1065334/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值