Oracle 11g 异机恢复参考文档
Posted 一泽涟漪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 11g 异机恢复参考文档相关的知识,希望对你有一定的参考价值。
原库 | 目标库 | |
操作系统 | CentOS 6.4 | CentOS 6.4 |
主机名 | sht-sgmhadoopnn-01 | sht-sgmhadoopnn-02 |
IP | 172.16.101.55 | 172.16.101.56 |
数据库版本 | 11.2.0.4.0 | 11.2.0.4.0 |
$ORACLE_BASE | /u01/app/oracle | /u01/app/oracle |
$ORACLE_HOME | /u01/app/oracle/product/11.2.0/db_1 | /u01/app/oracle/product/11.2.0/db_1 |
数据库名 | userdata | userdata |
本次以原库全新安装后为例说明利用RMAN做异机恢复,原库和目标库路径一致,目标库仅需安装数据库软件即可,安装过程详见我的另一篇博客http://www.cnblogs.com/ilifeilong/p/7041676.html
1. 原库开启归档模式
SYS@userdata>archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Current log sequence 3 SYS@userdata>shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SYS@userdata>startup mount; ORACLE instance started. Total System Global Area 1837244416 bytes Fixed Size 2254224 bytes Variable Size 637536880 bytes Database Buffers 1191182336 bytes Redo Buffers 6270976 bytes Database mounted. SYS@userdata>alter database archivelog; Database altered. SYS@userdata>alter database open; Database altered. SYS@userdata>archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Next log sequence to archive 3 Current log sequence 3
2. 用RMAN对原库进行备份
$ mkdir /home/oracle/backupset $ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Thu Aug 10 20:00:02 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: USERDATA (DBID=3894924926) RMAN> run { allocate channel ch1 device type disk; allocate channel ch2 device type disk; sql \'alter system archive log current\'; backup database format \'/home/oracle/backupset/data_%U.bak\'; backup archivelog all format \'/home/oracle/backupset/arch_%U.bak\'; backup current controlfile format \'/home/oracle/backupset/ctl_%U.bak\'; release channel ch1; release channel ch2; } using target database control file instead of recovery catalog allocated channel: ch1 channel ch1: SID=479 device type=DISK allocated channel: ch2 channel ch2: SID=20 device type=DISK sql statement: alter system archive log current Starting backup at 2017-08-10 20:05:18 channel ch1: starting full datafile backup set channel ch1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/userdata/system01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/userdata/users01.dbf channel ch1: starting piece 1 at 2017-08-10 20:05:18 channel ch2: starting full datafile backup set channel ch2: specifying datafile(s) in backup set input datafile file number=00002 name=/u01/app/oracle/oradata/userdata/sysaux01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/userdata/undotbs01.dbf channel ch2: starting piece 1 at 2017-08-10 20:05:18 channel ch2: finished piece 1 at 2017-08-10 20:05:33 piece handle=/home/oracle/backupset/data_02sbj0ru_1_1.bak tag=TAG20170810T200518 comment=NONE channel ch2: backup set complete, elapsed time: 00:00:15 channel ch2: starting full datafile backup set channel ch2: specifying datafile(s) in backup set including current control file in backup set channel ch2: starting piece 1 at 2017-08-10 20:05:35 channel ch2: finished piece 1 at 2017-08-10 20:05:36 piece handle=/home/oracle/backupset/data_03sbj0se_1_1.bak tag=TAG20170810T200518 comment=NONE channel ch2: backup set complete, elapsed time: 00:00:01 channel ch2: starting full datafile backup set channel ch2: specifying datafile(s) in backup set including current SPFILE in backup set channel ch2: starting piece 1 at 2017-08-10 20:05:36 channel ch1: finished piece 1 at 2017-08-10 20:05:37 piece handle=/home/oracle/backupset/data_01sbj0ru_1_1.bak tag=TAG20170810T200518 comment=NONE channel ch1: backup set complete, elapsed time: 00:00:19 channel ch2: finished piece 1 at 2017-08-10 20:05:37 piece handle=/home/oracle/backupset/data_04sbj0sg_1_1.bak tag=TAG20170810T200518 comment=NONE channel ch2: backup set complete, elapsed time: 00:00:01 Finished backup at 2017-08-10 20:05:37 Starting backup at 2017-08-10 20:05:38 current log archived channel ch1: starting archived log backup set channel ch1: specifying archived log(s) in backup set input archived log thread=1 sequence=3 RECID=1 STAMP=951681918 channel ch1: starting piece 1 at 2017-08-10 20:05:39 channel ch2: starting archived log backup set channel ch2: specifying archived log(s) in backup set input archived log thread=1 sequence=4 RECID=2 STAMP=951681939 channel ch2: starting piece 1 at 2017-08-10 20:05:39 channel ch1: finished piece 1 at 2017-08-10 20:05:40 piece handle=/home/oracle/backupset/arch_05sbj0sj_1_1.bak tag=TAG20170810T200539 comment=NONE channel ch1: backup set complete, elapsed time: 00:00:01 channel ch2: finished piece 1 at 2017-08-10 20:05:40 piece handle=/home/oracle/backupset/arch_06sbj0sj_1_1.bak tag=TAG20170810T200539 comment=NONE channel ch2: backup set complete, elapsed time: 00:00:01 Finished backup at 2017-08-10 20:05:40 Starting backup at 2017-08-10 20:05:41 channel ch1: starting full datafile backup set channel ch1: specifying datafile(s) in backup set including current control file in backup set channel ch1: starting piece 1 at 2017-08-10 20:05:42 channel ch1: finished piece 1 at 2017-08-10 20:05:43 piece handle=/home/oracle/backupset/ctl_07sbj0sl_1_1.bak tag=TAG20170810T200541 comment=NONE channel ch1: backup set complete, elapsed time: 00:00:01 Finished backup at 2017-08-10 20:05:43 released channel: ch1 released channel: ch2 SYS@userdata>create pfile=\'/home/oracle/backupset/pfile.ora\' from spfile;
3. 将备份目录拷贝到目标节点相同目录
$ scp -r /home/oracle/backupset oracle@172.16.101.56:/home/oracle/ pfile.ora 100% 1018 1.0KB/s 00:00 arch_05sbj0sj_1_1.bak 100% 23MB 22.5MB/s 00:00 data_02sbj0ru_1_1.bak 100% 379MB 37.9MB/s 00:10 data_01sbj0ru_1_1.bak 100% 635MB 48.9MB/s 00:13 data_04sbj0sg_1_1.bak 100% 96KB 96.0KB/s 00:00 arch_06sbj0sj_1_1.bak 100% 14KB 13.5KB/s 00:00 ctl_07sbj0sl_1_1.bak 100% 11MB 10.7MB/s 00:01 data_03sbj0se_1_1.bak 100% 11MB 10.7MB/s 00:00
3. 目标库安装数据库软件
略过,参考 http://www.cnblogs.com/ilifeilong/p/7041676.html
4. 创建密码文件
$ scp $ORACLE_HOME/dbs/orapwuserdata oracle@sht-sgmhadoopnn-02:$ORACLE_HOME/dbs/ orapwuserdata 100% 1536 1.5KB/s 00:00
5. 还原参数文件,启动到nomount状态
$ cat /home/oracle/backupset/pfile.ora userdata.__db_cache_size=1409286144 userdata.__java_pool_size=16777216 userdata.__large_pool_size=33554432 userdata.__oracle_base=\'/u01/app/oracle\'#ORACLE_BASE set from environment userdata.__pga_aggregate_target=620756992 userdata.__sga_target=1845493760 userdata.__shared_io_pool_size=0 userdata.__shared_pool_size=369098752 userdata.__streams_pool_size=0 *.audit_file_dest=\'/u01/app/oracle/admin/userdata/adump\' *.audit_trail=\'db\' *.compatible=\'11.2.0.4.0\' *.control_files=\'/u01/app/oracle/oradata/userdata/control01.ctl\',\'/u01/app/oracle/fast_recovery_area/userdata/control02.ctl\' *.db_block_size=8192 *.db_domain=\'\' *.db_name=\'userdata\' *.db_recovery_file_dest=\'/u01/app/oracle/fast_recovery_area\' *.db_recovery_file_dest_size=8589934592 *.diagnostic_dest=\'/u01/app/oracle\' *.dispatchers=\'(PROTOCOL=TCP) (SERVICE=userdataXDB)\' *.java_jit_enabled=FALSE *.open_cursors=600 *.pga_aggregate_target=613416960 *.processes=600 *.remote_login_passwordfile=\'EXCLUSIVE\' *.sga_target=1840250880 *.undo_tablespace=\'UNDOTBS1\' $ mkdir -p /u01/app/oracle/admin/userdata/adump $ mkdir -p /u01/app/oracle/oradata/userdata $ mkdir -p /u01/app/oracle/fast_recovery_area/userdata SYS@userdata>startup nomount pfile=\'/home/oracle/backupset/pfile.ora\'; ORACLE instance started. Total System Global Area 1837244416 bytes Fixed Size 2254224 bytes Variable Size 637536880 bytes Database Buffers 1191182336 bytes Redo Buffers 6270976 bytes SYS@userdata>create spfile from pfile=\'/home/oracle/backupset/pfile.ora\'; File created. SYS@userdata>shutdown immediate; ORA-01507: database not mounted ORACLE instance shut down. SYS@userdata>startup nomount; ORACLE instance started. Total System Global Area 1837244416 bytes Fixed Size 2254224 bytes Variable Size 637536880 bytes Database Buffers 1191182336 bytes Redo Buffers 6270976 bytes
6. RMAN还原控制文件,并启动到mount状态
RMAN> restore controlfile from \'/home/oracle/backupset/ctl_07sbj0sl_1_1.bak\'; Starting restore at 2017-08-11 00:55:00 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=10 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/u01/app/oracle/oradata/userdata/control01.ctl output file name=/u01/app/oracle/fast_recovery_area/userdata/control02.ctl Finished restore at 2017-08-11 00:55:02 RMAN> alter database mount; database mounted released channel: ORA_DISK_1
7. RMAN还原与恢复数据库
RMAN> recover database; Starting recover at 2017-08-11 00:58:34 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=10 device type=DISK starting media recovery channel ORA_DISK_1: starting archived log restore to default destination channel ORA_DISK_1: restoring archived log archived log thread=1 sequence=4 channel ORA_DISK_1: reading from backup piece /home/oracle/backupset/arch_06sbj0sj_1_1.bak channel ORA_DISK_1: piece handle=/home/oracle/backupset/arch_06sbj0sj_1_1.bak tag=TAG20170810T200539 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 archived log file name=/u01/app/oracle/fast_recovery_area/USERDATA/archivelog/2017_08_11/o1_mf_1_4_drs45wx1_.arc thread=1 sequence=4 channel default: deleting archived log(s) archived log file name=/u01/app/oracle/fast_recovery_area/USERDATA/archivelog/2017_08_11/o1_mf_1_4_drs45wx1_.arc RECID=3 STAMP=951699516 unable to find archived log archived log thread=1 sequence=5 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 08/11/2017 00:58:38 RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 5 and starting SCN of 969878 RMAN> recover database until scn 969878; Starting recover at 2017-08-11 00:59:49 using channel ORA_DISK_1 starting media recovery media recovery complete, elapsed time: 00:00:00 Finished recover at 2017-08-11 00:59:51
8. 以resetlogs方式打开数据库
SYS@userdata>alter database open resetlogs; Database altered.
9. 验证数据库数据
SYS@userdata>select instance_name, status from v$instance; INSTANCE_NAME STATUS ------------------------------------------------ ------------------------------------ userdata OPEN SYS@userdata>select dbid, open_mode from v$database; DBID OPEN_MODE ---------- ------------------------------------------------------------ 3894924926 READ WRITE SYS@userdata>select file_name from dba_data_以上是关于Oracle 11g 异机恢复参考文档的主要内容,如果未能解决你的问题,请参考以下文章