准备参数文件:
[oracle@erpdev ~]$ cat pfileCWERPDB.ora
CWERPDB.__db_cache_size=8959033344
CWERPDB.__java_pool_size=67108864
CWERPDB.__large_pool_size=100663296
CWERPDB.__oracle_base='/home/u01/oracle'#ORACLE_BASE set from environment
CWERPDB.__pga_aggregate_target=2684354560
CWERPDB.__sga_target=10737418240
CWERPDB.__shared_io_pool_size=0
CWERPDB.__shared_pool_size=1509949440
CWERPDB.__streams_pool_size=33554432
*.audit_file_dest='/home/u01/oracle/admin/CWERPDB/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/home/u01/oracle/oradata/CWERPDB/control01.ctl','/home/u01/oracle/fast_recovery_area/CWERPDB/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='CWERPDB'
*.db_recovery_file_dest='/home/u01/oracle/fast_recovery_area/CWERPDB/'
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest='/home/u01/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=CWERPDBXDB)'
*.open_cursors=300
*.pga_aggregate_target=2684354560
*.processes=1000
*.remote_login_passwordfile='EXCLUSIVE'
*.sec_case_sensitive_logon=FALSE
*.sga_max_size=10737418240
*.sga_target=10737418240
*.undo_tablespace='UNDOTBS1' ;
启动数据库到nomount:
SQL> startup nomount pfile='/home/oracle/pfileCWERPDB.ora';
ORACLE instance started.
Total System Global Area 1.0689E+10 bytes
Fixed Size 2262656 bytes
Variable Size 2013268352 bytes
Database Buffers 8657043456 bytes
Redo Buffers 16900096 bytes
恢复控制文件:
RMAN> restore controlfile from '/home/oracle/level0/data_0uqpkqld_1_1.bak';
Starting restore at 24-DEC-15
using channel ORA_DISK_1
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/home/u01/oracle/oradata/CWERPDB/control01.ctl
output file name=/home/u01/oracle/fast_recovery_area/CWERPDB/control02.ctl
Finished restore at 24-DEC-15
挂载数据库:
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
注册备份集:
RMAN> catalog start with '/home/oracle/level0';
Starting implicit crosscheck backup at 24-DEC-15
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=958 device type=DISK
Crosschecked 19 objects
Finished implicit crosscheck backup at 24-DEC-15
Starting implicit crosscheck copy at 24-DEC-15
using channel ORA_DISK_1
Finished implicit crosscheck copy at 24-DEC-15
searching for all files in the recovery area
cataloging files...
no files cataloged
searching for all files that match the pattern /home/oracle/level0
List of Files Unknown to the Database
=====================================
File Name: /home/oracle/level0/arc_CWERPDBx_20151224_10qpkqok_1_1
File Name: /home/oracle/level0/data_0nqpkqa4_1_1.bak
File Name: /home/oracle/level0/data_0qqpkqak_1_1.bak
File Name: /home/oracle/level0/data_0sqpkqau_1_1.bak
File Name: /home/oracle/level0/data_0vqpkqlf_1_1.bak
File Name: /home/oracle/level0/data_0tqpkqld_1_1.bak
File Name: /home/oracle/level0/data_0uqpkqld_1_1.bak
File Name: /home/oracle/level0/data_0rqpkqar_1_1.bak
File Name: /home/oracle/level0/data_0oqpkqa4_1_1.bak
File Name: /home/oracle/level0/data_0mqpkqa1_1_1.bak
File Name: /home/oracle/level0/data_0pqpkqaj_1_1.bak
File Name: /home/oracle/level0/data_0lqpkqa1_1_1.bak
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /home/oracle/level0/arc_CWERPDBx_20151224_10qpkqok_1_1
File Name: /home/oracle/level0/data_0nqpkqa4_1_1.bak
File Name: /home/oracle/level0/data_0qqpkqak_1_1.bak
File Name: /home/oracle/level0/data_0sqpkqau_1_1.bak
File Name: /home/oracle/level0/data_0vqpkqlf_1_1.bak
File Name: /home/oracle/level0/data_0tqpkqld_1_1.bak
File Name: /home/oracle/level0/data_0uqpkqld_1_1.bak
File Name: /home/oracle/level0/data_0rqpkqar_1_1.bak
File Name: /home/oracle/level0/data_0oqpkqa4_1_1.bak
File Name: /home/oracle/level0/data_0mqpkqa1_1_1.bak
File Name: /home/oracle/level0/data_0pqpkqaj_1_1.bak
File Name: /home/oracle/level0/data_0lqpkqa1_1_1.bak
与原来的库文件路径不一样,用set newname 修改
脚本:
run
{set newname for datafile 4 to "/home/u01/oracle/oradata/CWERPDB/users.259.886161065";
set newname for datafile 3 to "/home/u01/oracle/oradata/CWERPDB/undotbs1.258.886161065";
set newname for datafile 2 to "/home/u01/oracle/oradata/CWERPDB/sysaux.257.886161065";
set newname for datafile 1 to "/home/u01/oracle/oradata/CWERPDB/system.256.886161065";
set newname for datafile 5 to "/home/u01/oracle/oradata/CWERPDB/proframe.dbf";
set newname for datafile 6 to "/home/u01/oracle/oradata/CWERPDB/proframe01.dbf";
set newname for datafile 7 to "/home/u01/oracle/oradata/CWERPDB/cosmos_in01.dbf";
set newname for datafile 8 to "/home/u01/oracle/oradata/CWERPDB/cosmos_in02.dbf";
set newname for datafile 9 to "/home/u01/oracle/oradata/CWERPDB/cosmos_in03.dbf";
set newname for datafile 10 to "/home/u01/oracle/oradata/CWERPDB/cosmos01.dbf";
set newname for datafile 11 to "/home/u01/oracle/oradata/CWERPDB/cosmos02.dbf";
set newname for datafile 12 to "/home/u01/oracle/oradata/CWERPDB/cosmos03.dbf";
set newname for datafile 13 to "/home/u01/oracle/oradata/CWERPDB/APPORACLEORADATAPGSCMEXAMPLE01.DBF";
set newname for datafile 14 to "/home/u01/oracle/oradata/CWERPDB/statlog.dbf";
restore database;
switch datafile all;}
执行过程:
RMAN> list incarnation;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 CWERPDB 490184294 PARENT 1 24-AUG-13
2 2 CWERPDB 490184294 PARENT 925702 27-JUL-15
3 3 CWERPDB 490184294 ORPHAN 12939483587242 24-DEC-15
4 4 CWERPDB 490184294 CURRENT 12939484174408 29-DEC-15
RMAN> reset database to incarnation 2;
database reset to incarnation 2
run
{set newname for datafile 4 to "/home/u01/oracle/oradata/CWERPDB/users.259.886161065";
set newname for datafile 3 to "/home/u01/oracle/oradata/CWERPDB/undotbs1.258.886161065";
set newname for datafile 2 to "/home/u01/oracle/oradata/CWERPDB/sysaux.257.886161065";
set newname for datafile 1 to "/home/u01/oracle/oradata/CWERPDB/system.256.886161065";
set newname for datafile 5 to "/home/u01/oracle/oradata/CWERPDB/proframe.dbf";
set newname for datafile 6 to "/home/u01/oracle/oradata/CWERPDB/proframe01.dbf";
set newname for datafile 7 to "/home/u01/oracle/oradata/CWERPDB/cosmos_in01.dbf";
set newname for datafile 8 to "/home/u01/oracle/oradata/CWERPDB/cosmos_in02.dbf";
set newname for datafile 9 to "/home/u01/oracle/oradata/CWERPDB/cosmos_in03.dbf";
set newname for datafile 10 to "/home/u01/oracle/oradata/CWERPDB/cosmos01.dbf";
set newname for datafile 11 to "/home/u01/oracle/oradata/CWERPDB/cosmos02.dbf";
set newname for datafile 12 to "/home/u01/oracle/oradata/CWERPDB/cosmos03.dbf";
set newname for datafile 13 to "/home/u01/oracle/oradata/CWERPDB/APPORACLEORADATAPGSCMEXAMPLE01.DBF";
set newname for datafile 14 to "/home/u01/oracle/oradata/CWERPDB/statlog.dbf";
restore database;
17> switch datafile all;}
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 24-DEC-15
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00008 to /home/u01/oracle/oradata/CWERPDB/cosmos_in02.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0lqpkqa1_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0lqpkqa1_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:55
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00009 to /home/u01/oracle/oradata/CWERPDB/cosmos_in03.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0mqpkqa1_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0mqpkqa1_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:56
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00010 to /home/u01/oracle/oradata/CWERPDB/cosmos01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0nqpkqa4_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0nqpkqa4_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:55
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00011 to /home/u01/oracle/oradata/CWERPDB/cosmos02.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0oqpkqa4_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0oqpkqa4_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:02:05
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00012 to /home/u01/oracle/oradata/CWERPDB/cosmos03.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0pqpkqaj_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0pqpkqaj_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:02:15
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00007 to /home/u01/oracle/oradata/CWERPDB/cosmos_in01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0rqpkqar_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0rqpkqar_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:02:05
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /home/u01/oracle/oradata/CWERPDB/proframe.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0qqpkqak_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0qqpkqak_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:06:55
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00006 to /home/u01/oracle/oradata/CWERPDB/proframe01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0sqpkqau_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0sqpkqau_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:06:15
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /home/u01/oracle/oradata/CWERPDB/system.256.886161065
channel ORA_DISK_1: restoring datafile 00002 to /home/u01/oracle/oradata/CWERPDB/sysaux.257.886161065
channel ORA_DISK_1: restoring datafile 00003 to /home/u01/oracle/oradata/CWERPDB/undotbs1.258.886161065
channel ORA_DISK_1: restoring datafile 00004 to /home/u01/oracle/oradata/CWERPDB/users.259.886161065
channel ORA_DISK_1: restoring datafile 00013 to /home/u01/oracle/oradata/CWERPDB/APPORACLEORADATAPGSCMEXAMPLE01.DBF
channel ORA_DISK_1: restoring datafile 00014 to /home/u01/oracle/oradata/CWERPDB/statlog.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/data_0tqpkqld_1_1.bak
channel ORA_DISK_1: piece handle=/home/oracle/level0/data_0tqpkqld_1_1.bak tag=DB0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:02:15
Finished restore at 24-DEC-15
datafile 1 switched to datafile copy
input datafile copy RECID=15 STAMP=899315427 file name=/home/u01/oracle/oradata/CWERPDB/system.256.886161065
datafile 2 switched to datafile copy
input datafile copy RECID=16 STAMP=899315428 file name=/home/u01/oracle/oradata/CWERPDB/sysaux.257.886161065
datafile 3 switched to datafile copy
input datafile copy RECID=17 STAMP=899315428 file name=/home/u01/oracle/oradata/CWERPDB/undotbs1.258.886161065
datafile 4 switched to datafile copy
input datafile copy RECID=18 STAMP=899315428 file name=/home/u01/oracle/oradata/CWERPDB/users.259.886161065
datafile 5 switched to datafile copy
input datafile copy RECID=19 STAMP=899315428 file name=/home/u01/oracle/oradata/CWERPDB/proframe.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=20 STAMP=899315428 file name=/home/u01/oracle/oradata/CWERPDB/proframe01.dbf
datafile 7 switched to datafile copy
input datafile copy RECID=21 STAMP=899315428 file name=/home/u01/oracle/oradata/CWERPDB/cosmos_in01.dbf
datafile 8 switched to datafile copy
input datafile copy RECID=22 STAMP=899315429 file name=/home/u01/oracle/oradata/CWERPDB/cosmos_in02.dbf
datafile 9 switched to datafile copy
input datafile copy RECID=23 STAMP=899315429 file name=/home/u01/oracle/oradata/CWERPDB/cosmos_in03.dbf
datafile 10 switched to datafile copy
input datafile copy RECID=24 STAMP=899315429 file name=/home/u01/oracle/oradata/CWERPDB/cosmos01.dbf
datafile 11 switched to datafile copy
input datafile copy RECID=25 STAMP=899315429 file name=/home/u01/oracle/oradata/CWERPDB/cosmos02.dbf
datafile 12 switched to datafile copy
input datafile copy RECID=26 STAMP=899315429 file name=/home/u01/oracle/oradata/CWERPDB/cosmos03.dbf
datafile 13 switched to datafile copy
input datafile copy RECID=27 STAMP=899315430 file name=/home/u01/oracle/oradata/CWERPDB/APPORACLEORADATAPGSCMEXAMPLE01.DBF
datafile 14 switched to datafile copy
input datafile copy RECID=28 STAMP=899315430 file name=/home/u01/oracle/oradata/CWERPDB/statlog.dbf
恢复数据库:
RMAN> recover database;
Starting recover at 24-DEC-15
using channel ORA_DISK_1
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=2588
channel ORA_DISK_1: reading from backup piece /home/oracle/level0/arc_CWERPDBx_20151224_10qpkqok_1_1
channel ORA_DISK_1: piece handle=/home/oracle/level0/arc_CWERPDBx_20151224_10qpkqok_1_1 tag=TAG20151224T170004
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
archived log file name=/home/u01/oracle/fast_recovery_area/CWERPDB/CWERPDB/archivelog/2015_12_24/o1_mf_1_2588_c7qj4y3y_.arc thread=1 sequence=2588
channel default: deleting archived log(s)
archived log file name=/home/u01/oracle/fast_recovery_area/CWERPDB/CWERPDB/archivelog/2015_12_24/o1_mf_1_2588_c7qj4y3y_.arc RECID=2581 STAMP=899315614
unable to find archived log
archived log thread=1 sequence=2589
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 12/24/2015 17:53:36
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 2589 and starting SCN of 12939483587241
以不完全方式打开数据:
RMAN> alter database open resetlogs;
database opened
检查日志文件:
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- ----------------------------------------------------------------------------------------------------
3 /home/u01/oracle/fast_recovery_area/CWERPDB/CWERPDB/onlinelog/o1_mf_3_c7qj76nt_.log
2 /home/u01/oracle/fast_recovery_area/CWERPDB/CWERPDB/onlinelog/o1_mf_2_c7qj75yt_.log
1 /home/u01/oracle/fast_recovery_area/CWERPDB/CWERPDB/onlinelog/o1_mf_1_c7qj7584_.log
SQL> select group#,bytes/1024/1024,status from v$log;
GROUP# BYTES/1024/1024 STATUS
---------- --------------- ----------------
1 50 CURRENT
2 50 UNUSED
3 50 UNUSED
检查临时表空间:
SQL> select file_id,file_name from dba_temp_files;
select file_id,file_name from dba_temp_files
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 201 - see DBWR trace file
ORA-01110: data file 201: '+DATA/cwerpdb/tempfile/temp.264.886161131'
建立新临时表空间:
SQL> create temporary tablespace temp1 tempfile '/home/u01/oracle/oradata/CWERPDB/temp02.dbf' size 100M;
Tablespace created.
SQL> alter database default temporary tablespace temp1;
Database altered.
SQL> drop tablespace temp including contents and datafiles;
Tablespace dropped.
====完成-=======
备份脚本:
rman_bk.sh
rman target /<<eof
run
{
allocate channel C1 device type disk;
allocate channel C2 device type disk;
sql 'alter system switch logfile';
crosscheck archivelog all;
delete noprompt expired archivelog all;
backup incremental level=0 tag='DB0' database format '/bak/orabak/erpdb/level0/data_%U.bak';
backup current controlfile format '/bak/orabak/erpdb/level0/ctl_%U.bak';
crosscheck backup;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt force archivelog until time 'sysdate-16';
sql 'alter system archive log current';
backup archivelog all format '/bak/orabak/erpdb/level0/arc_%n_%T_%U';
release channel C1;
release channel C2;}
eof
sqlplus / as sysdba<<eoh
set lines 200 pagesize 1000;
col file_name for a100;
select file_id,file_name from dba_data_files order by 1;
create pfile='/bak/orabak/erpdb/pfile.ora' from spfile;
exit;
eoh
run_rman.sh
#!/bin/bash
rm -rf /bak/orabak/erpdb/rman_*
current_day=`date +%Y%m%d`
/home/oracle/rman_bk.sh>/bak/orabak/erpdb/rman_$current_day.log