在oracle9i中测试通过
案例: 旧数据库([color=blue:f74257d0fd]OLDDB[/color:f74257d0fd])
文件存放(data files,redo files,control files,temp files, undo files)目录是([color=blue:f74257d0fd]/u01/OLDDB[/color:f74257d0fd])
dump文件目录是[color=blue:f74257d0fd](/u01/dump[/color:f74257d0fd])
新数据库([color=red:f74257d0fd]NEWDB[/color:f74257d0fd])
文件存放(data files,redo files,control files,temp files, undo files)目录是([color=red:f74257d0fd]/u02/NEWDB[/color:f74257d0fd])
dump文件目录是([color=red:f74257d0fd]/u02/dump[/color:f74257d0fd])
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:f74257d0fd]/u01/OLDDB[/color:f74257d0fd] [color=red:f74257d0fd]/u02/NEWDB[/color:f74257d0fd]
mv [color=blue:f74257d0fd]/u01/dump[/color:f74257d0fd] [color=red:f74257d0fd]/u02/dump[/color:f74257d0fd]
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:f74257d0fd]REUSE[/color:f74257d0fd] DATABASE "[color=blue:f74257d0fd]OLDDB[/color:f74257d0fd]" RESETLOGS NOARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 '/[color=blue:f74257d0fd]u01/OLDDB[/color:f74257d0fd]/redo01.log' SIZE 10M,
GROUP 2 '/[color=blue:f74257d0fd]u01/OLDDB[/color:f74257d0fd]/redo02.log' SIZE 10M,