xueyzhou

需求:

需要将A数据库迁移到B数据库中。

A数据库SID ORCL

B数据库SID:HN

且AB数据库的数据存放目录不一致。

A:/oradata

B:/u01/app/oracle/ordata/

 

1、将A数据库的日志归档模式修改成飞归档模式。

sqlplus>shutdown immediate

sqlplus>startup mount;

sqlplus>alter database noarchivelog;

 

查看归档模式

sqlplus>archive log list;

 

2、备份A控制文件及生成参数文件。

sqlplus>alter database backup controlfile to trace;

sqlplus>show parameter spfile; 

sqlplus>create pfile from spfile;

 

3、查看备份A的控制文件信息

#tail -f /u01/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

#cat /u01/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/xxx.trc

 

3、关闭A数据库

sqlplus>shutdown immediate

 

4、将A数据文件及日志文件复制到B数据库中

#scp -r oradata/* oracle@xxxx:/u01/app/oracle/oradata/

 

5、在B数据库中备份参数信息、控制信息

sqlplus>alter database backup controlfile to trace;

sqlplus>create pfile from spfile;

 

6、修改B数据库inithn.ora文件,删除*.control_files对应的字串

#vi $ORACLE_HOME/dbs/inithn.ora

 

*.control_files=\'/u01/app/oracle/oradata/hnwifidb/control01.ctl\',\'/u01/app/oracle/fast_recovery_area/hnwifidb/control02.ctl\'

更改成

*.control_files=\'\'

7、B数据库启动挂在模式

sqlplus>startup nomount;

 

8、删除控制文件

#rm -f /u01/app/oracle/oradata/hn/control01.ctl

#rm -f /u01/app/oracle/fast_recovery_area/hn/control02.ctl\'

 

8、重新生成控制文件

sqlplus>startup nomount;

sqlplus>CREATE CONTROLFILE SET DATABASE "HN" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 \'/u01/app/oracle/oradata/hn/redo01.log\' SIZE 50M,
GROUP 2 \'/u01/app/oracle/oradata/hn/redo02.log\' SIZE 50M,
GROUP 3 \'/u01/app/oracle/oradata/hn/redo03.log\' SIZE 50M
-- STANDBY LOGFILE

DATAFILE
\'/u01/app/oracle/oradata/hn/system01.dbf\',
\'/u01/app/oracle/oradata/hn/undotbs01.dbf\',
\'/u01/app/oracle/oradata/hn/sysaux01.dbf\',
\'/u01/app/oracle/oradata/hn/users01.dbf\',
\'/u01/app/oracle/oradata/hn/stone01.dbf\',
\'/u01/app/oracle/oradata/hn/ts1.1\',
\'/u01/app/oracle/oradata/hn/big01.dbf\',
\'/u01/app/oracle/oradata/hn/t4k.4\',
\'/u01/app/oracle/oradata/hn/tnolog.dbf\',
\'/u01/app/oracle/oradata/hn/ts3.dbf\',
\'/u01/app/oracle/oradata/hn/ts4.dbf\',
\'/u01/app/oracle/oradata/hn/undo2.dbf\',
\'/u01/app/oracle/oradata/hn/tm2.dbf\'
CHARACTER SET ZHS16GBK;

 

9、关闭B数据库

sqlplus>shutdown immediate

 

10、修改B数据库参数文件inithn.ora

#*.control_files=\'\'

更改成

*.control_files=\'/u01/app/oracle/oradata/hnwifidb/control01.ctl\',\'/u01/app/oracle/fast_recovery_area/hnwifidb/control02.ctl\'

11、复制参数文件

#cp /u01/app/oracle/fast_recovery_area/hnwifidb/controlxxx.ctl  /u01/app/oracle/oradata/hnwifidb/control01.ctl

#cp /u01/app/oracle/fast_recovery_area/hnwifidb/controlxxx.ctl  /u01/app/oracle/fast_recovery_area/hnwifidb/control02.ctl\'

 

12、通过参数文件启动数据库

sqlplus>startup pfile="x:\oracle\product\11.2.0\db_1\database\inithn.ora";

 

数据库启动报错

ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

sqlplus> alter database open resetlogs;

sqlplus> create spfile from pfile;

sqlplus>select * from dbo.users;

user_name 

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

zhanghong

 

数据库冷备份迁移完毕

 

分类:

技术点:

相关文章: