例行工作:RMAN远程异机备份恢复策略检测
目录:
1.删除旧有环境
2.拷贝生产数据库的rman备份文件到测试服务器
3.建立同生产数据库一致的rman数据库,并设置好listen.ora和tnsname.ora文件
4.在rman_test创建catalog数据表及用户
5.导入生产服务器备份的catalog数据库
6.拷贝备份的spfile
7.创建与原数据库相同的文件存放路径
8.使用pfile或spfile在目标主机上启动数据库到nomount 状态
9.恢复控制文件
10.切换数据库到mount 状态
11.恢复数据库
#################################################################
1.新安装oracle软件,版本及目录结构同生产数据库服务一致,如果是使用旧环境,则需要如下步骤:
rm -rf /bak/online_redo_log_bk/*
rm -rf /opt/oracle/archive/*
rm -rf /opt/oracle/admin/*
rm -rf /opt/oracle/flash_recovery_area/*
rm -rf /opt/oracle/product/10.2.0/db_64/dbs/*
最后再通过vnc使用dbca彻底删除现有数据库。
2.拷贝生产数据库的rman备份文件到测试服务器
3.通过VNC建立同生产数据库一致的rman数据库,并设置好listen.ora和tnsname.ora文件
4.在rman库创建catalog数据表及用户
[oracle@db2 ~]$ rlwrap sqlplus sys/rman as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed May 21 22:43:33 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
rman OPEN
SQL> create tablespace rman_tbs datafile '/db/oradata/rman/rman_tbs01.dbf' size 32M;
Tablespace created.
SQL> create user rman identified by rman default tablespace rman_tbs temporary tablespace temp;
User created.
SQL> grant connect,resource ,recovery_catalog_owner to rman;
Grant succeeded.
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
5.导入生产服务器备份的catalog数据库
6.拷贝备份的spfile ,如果测试机内存不够大,适当修改一下,否则启动会报ORA-27102: out of memory
spfileabcd.ora 100% 4608 4.5KB/s 00:00
orapwabcd 100% 1536 1.5KB/s 00:00
7.创建与原数据库相同的文件存放路径
mkdir -p /opt/oracle/admin/abcd/{adump,bdump,cdump,dpdump,pfile,udump};
mkdir -p /opt/oracle/archive/
mkdir -p /db/oradata/abcd/archive/
8.使用pfile或spfile在目标主机上启动数据库到nomount 状态
[oracle@db2 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 22 16:47:20 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create pfile from spfile;
File created.
SQL> startup nomount pfile=/opt/oracle/product/10.2.0/db_64/dbs/initabcd.ora;
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 67111156 bytes
Database Buffers 96468992 bytes
Redo Buffers 2973696 bytes
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
9.恢复控制文件
如果要进行基于时间的恢复,则要运行上一步,否则略过
Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 22 16:58:14 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to recovery catalog database
RMAN> set dbid=2795662690;
executing command: SET DBID
database name is "abcd" and DBID is 2795662690
RMAN> connect target /
connected to target database: abcd (not mounted)
RMAN> restore controlfile;
Starting restore at 22-MAY-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=266 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/c-2795662690-20080522-01
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/c-2795662690-20080522-01 tag=TAG20080522T020023
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output filename=/db/oradata/abcd/control01.ctl
output filename=/db/oradata/abcd/control02.ctl
output filename=/db/oradata/abcd/control03.ctl
Finished restore at 22-MAY-08
10.切换数据库到mount 状态
database mounted
11.恢复数据库
在此可以进行完全恢复数据库,基于时间的恢复,基于SCN的恢复等完整或不完整数据恢复操作,下面进行完全数据库恢复:
##完全数据库恢复########################
Starting restore at 17-JUN-08
Starting implicit crosscheck backup at 17-JUN-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=266 devtype=DISK
Crosschecked 46 objects
Finished implicit crosscheck backup at 17-JUN-08
Starting implicit crosscheck copy at 17-JUN-08
using channel ORA_DISK_1
Finished implicit crosscheck copy at 17-JUN-08
searching for all files in the recovery area
cataloging files...
no files cataloged
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /db/oradata/abcd/undotbs01.dbf
restoring datafile 00004 to /db/oradata/abcd/users01.dbf
restoring datafile 00006 to /db/oradata/abcd/db1tbs01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_418_1_d2jiv0db.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_418_1_d2jiv0db.dbf tag=LEVEL 0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:46
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /db/oradata/abcd/system01.dbf
restoring datafile 00003 to /db/oradata/abcd/sysaux01.dbf
restoring datafile 00005 to /db/oradata/abcd/example01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_419_1_d3jiv0db.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_419_1_d3jiv0db.dbf tag=LEVEL 0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:46
Finished restore at 17-JUN-08
======================================================================
另外打开一个窗口,将生产数据库当前的arvhive log 和redo log 拷贝过来
Password:
1_272_651750948.dbf 100% 1024 1.0KB/s 00:00
1_273_651750948.dbf 100% 14MB 13.7MB/s 00:00
1_358_651750948.dbf 100% 29MB 29.0MB/s 00:01
1_359_651750948.dbf 100% 649KB 649.0KB/s 00:00
1_360_651750948.dbf 100% 42MB 41.5MB/s 00:01
[oracle@db2 ~]$ scp -pr db1:/db/oradata/abcd/redo* /db/oradata/abcd/
Password:
redo01.log 100% 50MB 50.0MB/s 00:01
redo02.log 100% 50MB 25.0MB/s 00:02
redo03.log 100% 50MB 50.0MB/s 00:01
redo04.log 100% 50MB 50.0MB/s 00:01
redo05.log 100% 50MB 50.0MB/s 00:01
redo06.log 100% 50MB 50.0MB/s 00:01
redo07.log 100% 50MB 25.0MB/s 00:02
======================================================================
Starting recover at 17-JUN-08
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /db/oradata/abcd/system01.dbf
destination for restore of datafile 00002: /db/oradata/abcd/undotbs01.dbf
destination for restore of datafile 00003: /db/oradata/abcd/sysaux01.dbf
destination for restore of datafile 00004: /db/oradata/abcd/users01.dbf
destination for restore of datafile 00005: /db/oradata/abcd/example01.dbf
destination for restore of datafile 00006: /db/oradata/abcd/db1tbs01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level1_abcd_429_1_ddjj495e.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level1_abcd_429_1_ddjj495e.dbf tag=LEVEL 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:16
starting media recovery
archive log thread 1 sequence 381 is already on disk as file /db/oradata/abcd/redo02.log
archive log thread 1 sequence 382 is already on disk as file /db/oradata/abcd/redo03.log
archive log filename=/db/oradata/abcd/redo02.log thread=1 sequence=381
archive log filename=/db/oradata/abcd/redo03.log thread=1 sequence=382
media recovery complete, elapsed time: 00:00:09
Finished recover at 17-JUN-08
RMAN> recover database;
Starting recover at 17-JUN-08
using channel ORA_DISK_1
starting media recovery
archive log thread 1 sequence 382 is already on disk as file /db/oradata/abcd/redo03.log
archive log filename=/db/oradata/abcd/redo03.log thread=1 sequence=382
media recovery complete, elapsed time: 00:00:01
Finished recover at 17-JUN-08
RMAN> alter database open resetlogs;
database opened
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
##基于scn的不完全恢复#################
Starting restore at 29-JUN-08
Starting implicit crosscheck backup at 29-JUN-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=266 devtype=DISK
Crosschecked 47 objects
Finished implicit crosscheck backup at 29-JUN-08
Starting implicit crosscheck copy at 29-JUN-08
using channel ORA_DISK_1
Finished implicit crosscheck copy at 29-JUN-08
searching for all files in the recovery area
cataloging files...
no files cataloged
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /db/oradata/abcd/undotbs01.dbf
restoring datafile 00004 to /db/oradata/abcd/users01.dbf
restoring datafile 00006 to /db/oradata/abcd/db1tbs01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_498_1_fijk3tl9.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_498_1_fijk3tl9.dbf tag=LEVEL 0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:45
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /db/oradata/abcd/system01.dbf
restoring datafile 00003 to /db/oradata/abcd/sysaux01.dbf
restoring datafile 00005 to /db/oradata/abcd/example01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_499_1_fjjk3tl9.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_499_1_fjjk3tl9.dbf tag=LEVEL 0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 29-JUN-08
======================================================================
另外打开一个窗口,将生产数据库当前的arvhive log 和redo log 拷贝过来
Password:
1_272_651750948.dbf 100% 1024 1.0KB/s 00:00
1_273_651750948.dbf 100% 14MB 13.7MB/s 00:00
1_358_651750948.dbf 100% 29MB 29.0MB/s 00:01
1_359_651750948.dbf 100% 649KB 649.0KB/s 00:00
1_360_651750948.dbf 100% 42MB 41.5MB/s 00:01
[oracle@db2 ~]$ scp -pr db1:/db/oradata/abcd/redo* /db/oradata/abcd/
Password:
redo01.log 100% 50MB 50.0MB/s 00:01
redo02.log 100% 50MB 25.0MB/s 00:02
redo03.log 100% 50MB 50.0MB/s 00:01
redo04.log 100% 50MB 50.0MB/s 00:01
redo05.log 100% 50MB 50.0MB/s 00:01
redo06.log 100% 50MB 50.0MB/s 00:01
redo07.log 100% 50MB 25.0MB/s 00:02
======================================================================
Starting recover at 29-JUN-08
using channel ORA_DISK_1
starting media recovery
channel ORA_DISK_1: starting archive log restore to default destination
channel ORA_DISK_1: restoring archive log
archive log thread=1 sequence=449
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/arc/log_abcd_501_1_fljk3tlr.arc
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/arc/log_abcd_501_1_fljk3tlr.arc tag=TAG20080629T020027
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
archive log filename=/db/oradata/abcd/archive/1_449_651750948.dbf thread=1 sequence=449
media recovery complete, elapsed time: 00:00:01
Finished recover at 29-JUN-08
RMAN> alter database open resetlogs;
database opened
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
##基于日志序列号的不完全恢复###########################
======================================================================
另外打开一个窗口,将生产数据库当前的arvhive log 和redo log 拷贝过来
Password:
1_272_651750948.dbf 100% 1024 1.0KB/s 00:00
1_273_651750948.dbf 100% 14MB 13.7MB/s 00:00
1_358_651750948.dbf 100% 29MB 29.0MB/s 00:01
1_359_651750948.dbf 100% 649KB 649.0KB/s 00:00
1_360_651750948.dbf 100% 42MB 41.5MB/s 00:01
[oracle@db2 ~]$ scp -pr db1:/db/oradata/abcd/redo* /db/oradata/abcd/
Password:
redo01.log 100% 50MB 50.0MB/s 00:01
redo02.log 100% 50MB 25.0MB/s 00:02
redo03.log 100% 50MB 50.0MB/s 00:01
redo04.log 100% 50MB 50.0MB/s 00:01
redo05.log 100% 50MB 50.0MB/s 00:01
redo06.log 100% 50MB 50.0MB/s 00:01
redo07.log 100% 50MB 25.0MB/s 00:02
======================================================================
2> allocate channel c1 type disk;
3> set until logseq 491 thread 1;
4> restore database;
5> recover database;
6> release channel c1;
7>}
allocated channel: c1
channel c1: sid=266 devtype=DISK
executing command: SET until clause
Starting restore at 29-JUN-08
Starting implicit crosscheck backup at 29-JUN-08
Crosschecked 47 objects
Finished implicit crosscheck backup at 29-JUN-08
Starting implicit crosscheck copy at 29-JUN-08
Finished implicit crosscheck copy at 29-JUN-08
searching for all files in the recovery area
cataloging files...
no files cataloged
channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /db/oradata/abcd/undotbs01.dbf
restoring datafile 00004 to /db/oradata/abcd/users01.dbf
restoring datafile 00006 to /db/oradata/abcd/db1tbs01.dbf
channel c1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_498_1_fijk3tl9.dbf
channel c1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_498_1_fijk3tl9.dbf tag=LEVEL 0
channel c1: restore complete, elapsed time: 00:00:46
channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /db/oradata/abcd/system01.dbf
restoring datafile 00003 to /db/oradata/abcd/sysaux01.dbf
restoring datafile 00005 to /db/oradata/abcd/example01.dbf
channel c1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_499_1_fjjk3tl9.dbf
channel c1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_499_1_fjjk3tl9.dbf tag=LEVEL 0
channel c1: restore complete, elapsed time: 00:00:35
Finished restore at 29-JUN-08
Starting recover at 29-JUN-08
starting media recovery
archive log thread 1 sequence 1 is already on disk as file /bak/online_redo_log_bk/log2.rdo
archive log thread 1 sequence 2 is already on disk as file /bak/online_redo_log_bk/log1.rdo
channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=1 sequence=449
channel c1: reading from backup piece /bak/db1_db_backup/arc/log_abcd_501_1_fljk3tlr.arc
channel c1: restored backup piece 1
piece handle=/bak/db1_db_backup/arc/log_abcd_501_1_fljk3tlr.arc tag=TAG20080629T020027
channel c1: restore complete, elapsed time: 00:00:02
archive log filename=/db/oradata/abcd/archive/1_449_651750948.dbf thread=1 sequence=449
archive log filename=/bak/online_redo_log_bk/log2.rdo thread=1 sequence=1
archive log filename=/bak/online_redo_log_bk/log1.rdo thread=1 sequence=2
media recovery complete, elapsed time: 00:00:02
Finished recover at 29-JUN-08
released channel: c1
RMAN> alter database open resetlogs;
database opened
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
##基于时间的不完全恢复############################
RMAN> restore database;
Starting restore at 2008-07-02 21:52:07
Starting implicit crosscheck backup at 2008-07-02 21:52:07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=266 devtype=DISK
Crosschecked 47 objects
Finished implicit crosscheck backup at 2008-07-02 21:52:11
Starting implicit crosscheck copy at 2008-07-02 21:52:11
using channel ORA_DISK_1
Finished implicit crosscheck copy at 2008-07-02 21:52:11
searching for all files in the recovery area
cataloging files...
no files cataloged
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /db/oradata/abcd/undotbs01.dbf
restoring datafile 00004 to /db/oradata/abcd/users01.dbf
restoring datafile 00006 to /db/oradata/abcd/db1tbs01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_498_1_fijk3tl9.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_498_1_fijk3tl9.dbf tag=LEVEL 0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:46
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /db/oradata/abcd/system01.dbf
restoring datafile 00003 to /db/oradata/abcd/sysaux01.dbf
restoring datafile 00005 to /db/oradata/abcd/example01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level0_abcd_499_1_fjjk3tl9.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level0_abcd_499_1_fjjk3tl9.dbf tag=LEVEL 0
channel ORA_DISK_1: restore complete, elapsed time: 00:00:46
Finished restore at 2008-07-02 21:53:46
======================================================================
另外打开一个窗口,将生产数据库当前的arvhive log 和redo log 拷贝过来
Password:
1_272_651750948.dbf 100% 1024 1.0KB/s 00:00
1_273_651750948.dbf 100% 14MB 13.7MB/s 00:00
1_358_651750948.dbf 100% 29MB 29.0MB/s 00:01
1_359_651750948.dbf 100% 649KB 649.0KB/s 00:00
1_360_651750948.dbf 100% 42MB 41.5MB/s 00:01
[oracle@db2 ~]$ scp -pr db1:/db/oradata/abcd/redo* /db/oradata/abcd/
Password:
redo01.log 100% 50MB 50.0MB/s 00:01
redo02.log 100% 50MB 25.0MB/s 00:02
redo03.log 100% 50MB 50.0MB/s 00:01
redo04.log 100% 50MB 50.0MB/s 00:01
redo05.log 100% 50MB 50.0MB/s 00:01
redo06.log 100% 50MB 50.0MB/s 00:01
redo07.log 100% 50MB 25.0MB/s 00:02
======================================================================
Starting recover at 2008-07-03 16:14:55
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /db/oradata/abcd/system01.dbf
destination for restore of datafile 00002: /db/oradata/abcd/undotbs01.dbf
destination for restore of datafile 00003: /db/oradata/abcd/sysaux01.dbf
destination for restore of datafile 00004: /db/oradata/abcd/users01.dbf
destination for restore of datafile 00005: /db/oradata/abcd/example01.dbf
destination for restore of datafile 00006: /db/oradata/abcd/db1tbs01.dbf
channel ORA_DISK_1: reading from backup piece /bak/db1_db_backup/data/level1_abcd_519_1_g7jkh3hd.dbf
channel ORA_DISK_1: restored backup piece 1
piece handle=/bak/db1_db_backup/data/level1_abcd_519_1_g7jkh3hd.dbf tag=LEVEL 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:16
starting media recovery
archive log thread 1 sequence 467 is already on disk as file /db/oradata/abcd/redo01.log
archive log thread 1 sequence 468 is already on disk as file /db/oradata/abcd/redo02.log
archive log thread 1 sequence 469 is already on disk as file /db/oradata/abcd/redo03.log
archive log filename=/db/oradata/abcd/redo01.log thread=1 sequence=467
archive log filename=/db/oradata/abcd/redo02.log thread=1 sequence=468
archive log filename=/db/oradata/abcd/redo03.log thread=1 sequence=469
media recovery complete, elapsed time: 00:00:16
Finished recover at 2008-07-03 16:15:30
RMAN> alter database open resetlogs;
database opened
new incarnation of database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
–EOF–
Sorry, comments for this entry are closed at this time.