仙道彰
作者仙道彰·2019-09-19 14:37
数据库开发工程师·花旗集团

Oracle 整库迁移(路径相同)

字数 3686阅读 5270评论 0赞 3

Oracle 整库迁移(路径相同)

一,在源数据库中需要完成的任务

1.查询数据的DBID ;(sysdba用户查询)

SQL> select dbid from v$database ;
DBID --1546337699

2.查询数据文件的的路径2.查询数据文件的的路径

SQL> select file_id,file_name from dba_data_files ;

FILE_ID FILE_NAME 
 --------------------------------------------------------------------------------
7 /u01/oracle/oradata/ORCL/datafile/users_.dbf
4 /u01/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_gqdkcwkx_.dbf
1 /u01/oracle/oradata/ORCL/datafile/o1_mf_system_gqdk7gpx_.dbf
3 /u01/oracle/oradata/ORCL/datafile/o1_mf_sysaux_gqdk9j4p_.dbf

3.查询重做日志文件

 RMAN> select group#,member from v$logfile ;
 GROUP# MEMBER 
 --------------------------------------------------------------------------------
3 /u01/oracle/oradata/ORCL/onlinelog/o1_mf_3_gqdkjbhw_.log
3 /u01/oracle/fast_recovery_area/orcl/ORCL/onlinelog/o1_mf_3_gqdkkm51_.log
2 /u01/oracle/oradata/ORCL/onlinelog/o1_mf_2_gqdkf6yy_.log
2 /u01/oracle/fast_recovery_area/orcl/ORCL/onlinelog/o1_mf_2_gqdkghss_.log
1 /u01/oracle/oradata/ORCL/onlinelog/o1_mf_1_gqdkf6y6_.log
1 /u01/oracle/fast_recovery_area/orcl/ORCL/onlinelog/o1_mf_1_gqdkgj2t_.log

4.查询控制文件

SQL> show parameter control_files ;
 NAME  TYPE  VALUE
------------------------------------ ----------- ------------------------------
control_files  string  /u01/oracle/oradata/ORCL/controlfile/o1_mf_gqdkf3bm_.ctl,
                                 u01/oracle/fast_recovery_area/orcl/ORCL/controlfile/o1_mf_gqdkf3gc_.ctl

5.对数据库进行full或者0级备份 ;

整个数据库的full备份
OR
整个数据库的0级备份
OR
各个表空间的0+增量备份

RMAN>backup full database format '/u01/backup/db_full_%T_%U' ; 

6.查看数据最新的SCN;1983669

RMAN>list backup of controlfile ;

7,手动切换日志,产生归档日志文件;

RMAN>alter system switch logfile ;
查看归档路径
show parameter log_archiverd_dest ;
select name from v$archived_log ;

8.拷贝文件

a. 数据文件的备份copy到新服务器同名目录下:

scp /u01/backup/db_0_20190910_03ubdvs0_1_1 IP:/u01/backup

b. 控制文件的自动备份

scp /u01/oracle/fast_recovery_area/orcl/ORCL/autobackup/2019_09_17/o1_mf_s_1019240775_gr1f69cl_.bkp IP:/u01/oracle/fast_recovery_area/orcl/ORCL/autobackup/2019_09_17

c.拷贝归档

 scp /u01/oracle/fast_recovery_area/orcl/ORCL/archivelog/2019_09_17/o1_mf_1_6_gr1ls91v_.arc IP:/u01/oracle/fast_recovery_area/orcl/ORCL/archivelog/

二,在新系统中需要完成的任务

1.创建空实例,利用RMAN启动到NOMOUNT

[oracle@rhel7 Desktop]$ export ORACLE_SID=orcl

[oracle@rhel7 Desktop]$ rman target /

RMAN> startup nomount ;

2.恢复参数文件

RMAN> set dbid 1546337699 ;
RMAN> set CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/%F'; 
RMAN> restore spfile from autobackup ;
RMAN> create pfile='/u01/oracle/product/12.2.0/dbs/initorcl.ora' from spfile ; 
cat /u01/oracle/product/12.2.0/dbs/initorcl.ora
对里面的一些路径进行排查,如果不存在就需要现在手动创建
比如:
*.audit_file_dest='/u01/oracle/admin/orcl/adump'
[oracle@rhel7 autobackup]$ mkdir -p /u01/oracle/admin/orcl/adump
*.db_recovery_file_dest='/u01/oracle/fast_recovery_area/orcl'

这样做的目的是为了防止重启实例的时候出现如下错误

RMAN> startup nomount ;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 09/18/2019 17:15:07
RMAN-04014: startup failed: ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925

当然也可以手动修改pfile的参数(将路径修改为本台服务器的正确路径)然后重新创建spfile ;

RMAN> shutdown ;

3.恢复控制文件

RMAN> startup nomount;
RMAN> restore controlfile from autobackup;
RMAN> alter database mount;

4.恢复数据文件

run {
set until scn 1983669;
 restore database;
recover database;
}

5、打开数据库5、打开数据库

RMAN> alter database open resetlogs; 

6、创建password文件

 [oracle@rhel7]$orapwd file="$ORACLE_HOME/dbs/orapworcl" password="Qaz_1234"

# 【原创声明】版权所有非经授权请勿做任何商业用途,仅限技术交流; 转载请注明出处,谢谢;

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广