RMAN COPY备份
1 创建rman copy脚本
创建备份目录
mkdir -p /backup
chown oracle:oinstall /backup
rman target sys/oracle@practice catalog rmanadmin/rmanadmin@rcat
根据report schema中的文件编号创建备份脚本
report schema;
Report of database schema for database with db_unique_name PRACTICE
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 740 SYSTEM YES /oradata/PRACTICE/system01.dbf
2 550 SYSAUX NO /oradata/PRACTICE/sysaux01.dbf
3 65 UNDOTBS1 YES /oradata/PRACTICE/undotbs01.dbf
4 5 USERS NO /oradata/PRACTICE/users01.dbf
5 313 EXAMPLE NO /oradata/PRACTICE/example01.dbf
6 20 TOOLS NO /oradata/tools01.dbf
7 20 INDX NO /oradata/indx01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 20 TEMP 32767 /oradata/PRACTICE/temp01.dbf
创建备份脚本
vi /home/oracle/b_copy.rcv
Run {
allocate channel c1 type disk;
allocate channel c2 type disk;
copy
datafile 1 to '/backup/system01.dbf',
datafile 2 to '/backup/sysaux01.dbf',
datafile 3 to '/backup/undotbs01.dbf',
datafile 4 to '/backup/users01.dbf',
datafile 5 to '/backup/example01.dbf',
datafile 6 to '/backup/tools01.dbf',
datafile 7 to '/backup/indx01.dbf',
current controlfile to '/backup/backup.ctl';
release channel c1;
release channel c2;
}
执行备份脚本
RMAN> @b_copy.rcv
执行零级全备份
1,准备备份脚本
echo "run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 0
format = '/backup/db_in0_%d_%s_%p_%t'
tag = 'whole_in0'
database;
release channel c1;
release channel c2;
}" >> ~/b_whole_inc0.rcv
2, 执行备份脚本
RMAN> @b_whole_inc0.rcv
3,验证备份结果
RMAN> list backup;
执行增量备份
1,准备备份脚本
echo "run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level 1
format '/backup/db_in1_%d_%s_%p_%t'
tag='whole_inc1'
database;
release channel c1;
release channel c2;
}" >> ~/b_whole_inc1.rcv
2, 执行备份脚本
RMAN> @b_whole_inc1.rcv
3,验证备份结果
RMAN> list backup;
4,准备备份脚本
echo "run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
backup incremental level 2
format '/backup/db_in2_%d_%s_%p_%t'
tag='whole_inc2'
database;
release channel c1;
release channel c2;
}" >> ~/b_whole_inc2.rcv
5, 执行备份脚本
RMAN> @b_whole_inc2.rcv
6,验证备份结果
RMAN> list backup;
归档日志备份
1, 备份归档日志
run{
allocate channel c1 type disk;
sql "alter system archive log current";
backup archivelog all
format '/backup/ar_%d_%s_%p_%t';
release channel c1;
}
2,验证备份结果
RMAN> list backupset of archivelog all;
指定周备份计划
周日 0级别备份 b_whole_inc0.rcv
周一 2级别备份 b_whole_inc2.rcv
周二 2级别备份 b_whole_inc2.rcv
周三 2级别备份 b_whole_inc2.rcv
周四 1级别备份 b_whole_inc1.rcv
周五 2级别备份 b_whole_inc2.rcv
周六 2级别备份 b_whole_inc2.rcv
为了最大保护归档日志可以追加以下两个归档日志脚本。
vi b_archive_2days.rcv
run{
allocate channel d1 device type disk;
sql "alter system archive log current";
backup archivelog
from time 'sysdate-2'
format '/oradata/PRACTICE/backup/ch12/ar_%d_%s_%p_%t';
}
vi b_archive_delete3.rcv
run{
allocate channel d1 device type disk;
sql "alter system archive log current";
backup archivelog
from time 'sysdate-3' until time 'sysdate-2'
format '/oradata/PRACTICE/backup/ch12/ar_%d_%s_%p_%t'
delete input;
}
查看rman执行情况
select sid,pid,client_info from v$process p,v$session s where p.addr=s.saddr and client_info like '%id=rman%';
select sid,serial#,context,sofar,totalwork,round(sofar/totalwork*100,2) "% complete"
from v$session_longops
where opname like 'RMAN:%'
and opname not like 'RMAN: aggregate%';
查看是否有损坏的快
select * from v$backup_corruption;
select * from v$copy_corruption;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29047826/viewspace-1252671/
,如需转载,请注明出处,否则将追究法律责任。