oracle 数据库改oracle_sid的操作方法

SID


案例旧数据库(OLDDB)
        文件存放(data files,redo files,control files,temp files, undo files)目录是

(/u01/OLDDB)

dump文件目录是(/u01/dump)
      
新数据库(NEWDB)
        文件存放(data files,redo files,control files,temp files, undo files)目录是

(/u02/NEWDB)

dump文件目录是(/u02/dump)

1. 生成旧数据库初始化参数文件(init{SID}.ora)和文本格式的控制文件(control.txt)
   create
 pfile from spfile

alter database backup controlfile to trace as '/tmp/control.txt'
    
2. 关闭旧数据库
3. 将旧数据库存放文件和dump的目录移动到新数据库存放文件和dump的目录(如果不更改存放的目录可以不 

执行该步骤)—重命名文件
    mv /u01/OLDDB /u02/NEWDB  --数据库文件
    mv /u01/dump /u02/dump       --dump
目录

 

--重新生成pfile文件
4. 进入$ORACLE_HOME/dbs目录,拷贝OLDDBpfileNEWDBpfile,同时修改NEWDBpfile文件.
    cd $ORACLE_HOME/dbs
    cp initOLDDB.ora initNEWDB.ora
  
   修改initNEWDB.ora文件

     a.. db_name
instance_name参数更改成新数据库的名称(NEWDB)
   
b. background_dump_desc,core_dump_descuser_dump_desc参数更改为新数

据库存放dump信息的目录(/u02/dump)
     c. control_files
参数指定存放新数据库的控制文件目录及名称

('/u02/NEWDB/control01.ctl','/u02/NEWDB/control02.ctl')

5. 编辑control.txt文件,新生成newdb.sqlnewdb1.sql文件
   
拷贝control.txt文件中以下行到/tmp/newdb.sql文件中
   ---------------
   CREATE CONTROLFILE REUSE DATABASE "OLDDB" RESETLOGS  NOARCHIVELOG
    --  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 5
    MAXLOGMEMBERS 3

  
  MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 453
   LOGFILE
    GROUP 1 '/u01/OLDDB/redo01.log'  SIZE 10M,

    
GROUP 2 '/u01/OLDDB/redo02.log'  SIZE 10M,
      ...
    GROUP n '/u01/OLDDB/redo0n.log'  SIZE 10M
   -- STANDBY LOGFILE

   DATAFILE
    '/u01/OLDDB/system01.dbf',

    '/u01/OLDDB/undotbs01.dbf',
    '/u01/OLDDB/indx01.dbf',
    '/u01/OLDDB/tools01.dbf',
    '/u01/OLDDB/users01.dbf',
    '/u01/OLDDB/xdb01.dbf',
      ...
    '/u01/OLDDB/filename.dbf'
   CHARACTER SET ZHS16GBK
   ;

   -------------


   
并修改/tmp/newdb.sql文件
   a. REUSE -> SET
   b. OLDDB -> NEWDB
   c. 
存放目录 /u01/OLDDB -> /u02/NEWDB(如果不更改存放的目录可以不执行该步骤)
   
更改后/tmp/newdb.sql文件内容如下

 

重新生成控制文件
      ---------------

   
CREATE CONTROLFILE SET DATABASE "NEWDB" RESETLOGS  NOARCHIVELOG
    --  SET STANDBY TO MAXIMIZE PERFORMANCE

   
MAXLOGFILES 5

MAXLOGMEMBERS 3

MAXDATAFILES 100
    MAXINSTANCES 1
    MAXLOGHISTORY 453
   LOGFILE
    GROUP 1 '
/u02/NEWDB
/redo01.log'  SIZE 10M,
    GROUP 2 '
/u02/NEWDB
/redo02.log'  SIZE 10M,
      ...
    GROUP n '
/u02/NEWDB
/redo0n.log'  SIZE 10M
   -- STANDBY LOGFILE
   DATAFILE
    '
/u02/NEWDB
/system01.dbf',
    '
/u02/NEWDB
/undotbs01.dbf',
    '
/u02/NEWDB
/indx01.dbf',
    '
/u02/NEWDB
/tools01.dbf',
    '
/u02/NEWDB
/users01.dbf',
    '
/u02/NEWDB
/xdb01.dbf',
      ...
    '
/u02/NEWDB
/filename.dbf'
   CHARACTER SET ZHS16GBK
   ;
   -------------

   
拷贝control.txt文件中以下行到/tmp/newdb1.sql文件中

   -------------
   ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/OLDDB/temp01.dbf'
     SIZE 524288000  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
    ...
   ALTER TABLESPACE TEMPn ADD TEMPFILE '/u01/OLDDB/tempn.dbf'
     SIZE 524288000  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
   -------------
   
并修改/tmp/newdb.sql文件

   a. 
存放目录 /u01/OLDDB -> /u02/NEWDB(如果不更改存放的目录可以不执行该步骤)
   
更改后/tmp/newdb1.sql文件内容如下

   -------------           
(增加临时表空间的数据文件)
   ALTER TABLESPACE TEMP ADD TEMPFILE '
/u02/NEWDB/temp01.dbf'
     SIZE 524288000  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
    ...
   ALTER TABLESPACE TEMPn ADD TEMPFILE '
/u02/NEWDB
/tempn.dbf'
     SIZE 524288000  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
   -------------

6. 
删除新数据库pfile文件(initNEWDB.ora)control_files参数所指定的控制文件
.
   rm /u02/NEWDB/*.ctl 
(删除原来的控制文件)


7. 
启动新数据库(NEWDB)nomount状态,使用initNEWDB.ora参数文件
   startup nomount pfile=$ORACLE_HOME/dbs/initNEWDB.ora

8. 
执行/tmp/newdb.sql文件,重建控制文件
   @/tmp/newdb.sql

9. 
使用resetlogs选项打开新数据库(NEWDB)

Alter dabase mount
   alter database open resetlogs

10. 
执行/tmp/newdb1.sql文件,重建临时表空间

   @/tmp/newdb2.sql

11. 
查看v$databasev$instance视图,是不是数据库名称已更改

 

12.profile/.bash_profile文件

13Listener.ora,tnsnames.ora文件修改

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值