打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[精华] 更改数据库SID[原创]
在oracle9i中测试通过
案例: 旧数据库([color=blue]OLDDB[/color])
文件存放(data files,redo files,control files,temp files, undo files)目录是([color=blue]/u01/OLDDB[/color])
dump文件目录是[color=blue](/u01/dump[/color])
新数据库([color=red]NEWDB[/color])
文件存放(data files,redo files,control files,temp files, undo files)目录是([color=red]/u02/NEWDB[/color])
dump文件目录是([color=red]/u02/dump[/color])
1. 生成旧数据库初始化参数文件(init{SID}.ora)和文本格式的控制文件(control.txt)
alter database backup controlfile to trace as ‘/tmp/control.txt‘
create pfile from spfile
2. 关闭旧数据库
3. 将旧数据库存放文件和dump的目录移动到新数据库存放文件和dump的目录(如果不更改存放的目录可以不执行该步骤)
mv [color=blue]/u01/OLDDB[/color] [color=red]/u02/NEWDB[/color]
mv [color=blue]/u01/dump[/color] [color=red]/u02/dump[/color]
4. 进入$ORACLE_HOME/dbs目录,拷贝OLDDB的pfile成NEWDB的pfile,同时修改NEWDB的pfile文件.
cd $ORACLE_HOME/dbs
cp initOLDDB.ora initNEWDB.ora
修改initNEWDB.ora文件
a. db_name和instance_name参数更改成新数据库的名称(NEWDB)
b. background_dump_desc,core_dump_desc和user_dump_desc参数所指定存放新数据库存放dump信息的目录(/u02/dump)
c. control_files参数所指定存放新数据库的控制文件目录及名称(‘/u02/NEWDB/control01.ctl‘,‘/u02/NEWDB/control02.ctl‘)
5. 编辑control.txt文件,新生成newdb.sql和newdb1.sql文件
拷贝control.txt文件中以下行到/tmp/newdb.sql文件中
---------------
CREATE CONTROLFILE [color=blue]REUSE[/color] DATABASE "[color=blue]OLDDB[/color]" RESETLOGS  NOARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 ‘/[color=blue]u01/OLDDB[/color]/redo01.log‘  SIZE 10M,
GROUP 2 ‘/[color=blue]u01/OLDDB[/color]/redo02.log‘  SIZE 10M,
...
GROUP n ‘/[color=blue]u01/OLDDB[/color]/redo0n.log‘  SIZE 10M
-- STANDBY LOGFILE
DATAFILE
‘/[color=blue]u01/OLDDB[/color]/system01.dbf‘,
‘/[color=blue]u01/OLDDB[/color]/undotbs01.dbf‘,
‘/[color=blue]u01/OLDDB[/color]/indx01.dbf‘,
‘/[color=blue]u01/OLDDB[/color]/tools01.dbf‘,
‘/[color=blue]u01/OLDDB[/color]/users01.dbf‘,
‘/[color=blue]u01/OLDDB[/color]/xdb01.dbf‘,
...
‘/[color=blue]u01/OLDDB[/color]/filename.dbf‘
CHARACTER SET ZHS16GBK
;
-------------
并修改/tmp/newdb.sql文件
a. REUSE ->; SET
b. OLDDB ->; NEWDB
c. 存放目录 /u01/OLDDB ->; /u02/NEWDB(如果不更改存放的目录可以不执行该步骤)
更改后/tmp/newdb.sql文件内容如下
---------------
CREATE CONTROLFILE [color=red]SET[/color] DATABASE "[color=red]NEWDB[/color]" RESETLOGS  NOARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 ‘/[color=red]u02/NEWDB[/color]/redo01.log‘  SIZE 10M,
GROUP 2 ‘/[color=red]u02/NEWDB[/color]/redo02.log‘  SIZE 10M,
...
GROUP n ‘/[color=red]u02/NEWDB[/color]/redo0n.log‘  SIZE 10M
-- STANDBY LOGFILE
DATAFILE
‘/[color=red]u02/NEWDB[/color]/system01.dbf‘,
‘/[color=red]u02/NEWDB[/color]/undotbs01.dbf‘,
‘/[color=red]u02/NEWDB[/color]/indx01.dbf‘,
‘/[color=red]u02/NEWDB[/color]/tools01.dbf‘,
‘/[color=red]u02/NEWDB[/color]/users01.dbf‘,
‘/[color=red]u02/NEWDB[/color]/xdb01.dbf‘,
...
‘/[color=red]u02/NEWDB[/color]/filename.dbf‘
CHARACTER SET ZHS16GBK
;
-------------
拷贝control.txt文件中以下行到/tmp/newdb1.sql文件中
-------------
ALTER TABLESPACE TEMP ADD TEMPFILE ‘/[color=blue]u01/OLDDB[/color]/temp01.dbf‘
SIZE 524288000  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
...
ALTER TABLESPACE TEMPn ADD TEMPFILE ‘/[color=blue]u01/OLDDB[/color]/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 ‘/[color=red]u02/NEWDB[/color]/temp01.dbf‘
SIZE 524288000  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
...
ALTER TABLESPACE TEMPn ADD TEMPFILE ‘/[color=red]u02/NEWDB[/color]/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=?/dbs/initNEWDB.ora
8. 执行/tmp/newdb.sql文件,重建控制文件
@/tmp/newdb.sql
9. 使用resetlogs选项打开新数据库(NEWDB)
alter database open resetlogs
10. 执行/tmp/newdb1.sql文件,重建临时表空间
@/tmp/newdb2.sql
11. 查看v$database和v$instance视图,是不是数据库名称已更改
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
mysql4到mysql5 数据库 转换编码操作一例
从问题出发,解密Oracle rdba结构
Oracle的备份与恢复详解
Oracle备份与恢复案例
通过sql语句获取数据库的基本信息
oracle数据库开发的一些经验积累
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服