RMAN备份

sql*plus与操作系统命令行切换
linux:用!符号
window:sql>到c:>用host命令,c:>到sql>用exit。

RMAN备份模式:全备、增量备份、冷备、热备。

RMAN备份的文件类型:表空间、数据文件、控制文件、参数文件、归档日志文件、备份集。

RMAN备份的目的地:磁盘、磁带、闪存恢复区。

RMAN通过内部算法去检测热备中的改变块,这个由RMAN自动完成。                                      

备份的约束条件
1.数据库必须是mount或者open;
2.不对redo log file备份

备份类型:image copy、backup set。

backup set的特点:
一个backup set包含多个文件,每个文件称为backup piece;
backup set可以备份到磁盘或磁带上;(image copy不能备份到磁带)
从backup set提取文件需要还原操作;
数据文件backup set支持增量备份和全备;(归档文件的backup set不支持)
backup set不包含从未用过的块。

backup piece:
backup set里的一个文件,大小受限与操作系统;
backup piece能包括多个数据文件(datafile)的数据块。

列出备份信息,显示备份集信息。
RMAN>list backup

备份数据库
RMAN>backup database format 'D:/backup/md_%U';//%U=%u_%p_%c.
查看RMAN通道的对应的会话sid
select sid,username from v$session order by 2;

backup命令参数:
filesperset:每个备份集的输入文件数
maxpiecesize:一个备份片的大小
RMAN>run {
allocate channel d1 device type disk maxpiecesize=100M;
backup database filesperset 3;
}
或者
backup format 'd:/backup/md_%U' database filesperset 3;


删除备份集
RMAN>delete backupset 43,44 ;//43、44为BS号。

备份数据文件
RMAN>report schema;
RMAN>backup datafile 4,5  format 'd:/backup/md_%U';//4、5为文件编号
RMAN>backup datafile 'd:/oracle/oradata/orcl/system01.dbf' format 'd:/backup/md_%U';

备份表空间
select tablespace_name,contents from dba_tablespace;
RMAN>backup tablespace xxwz_data,xxwz_index format 'd:/backup/md_%U';

备份控制文件和spfile
1.开启RMAN自动备份控制文件和spfile(不启动system表空间也会自动备份表空间)
RMAN>show all;
RMAN>configure controlfile autobackup on;
2.单独备份控制文件和spfile
RMAN>backup current controlfile;
3.附加备份控制文件和spfile
RMAN>backup datafile 4 include current controlfile;
4.SQL备份控制文件和spfile
RMAN>sql "alter database backup controlfile to ''d:/tmp/xwx.ctl''";

备份spfile文件
RMAN>backup spfile format 'd:/backup/sd_%U';
backup copies 2 device type disk SPFILE;

备份归档文件(自动执行alter system archive log current,选择没损坏的进行备份)
backup archivelog all format 'd:/backup/ar_%U'  delete all input;//备份完后删除原来的归档日志

backup archivelog sequence between 44 and 100 thread 1 format 'd:/backup/ar_%U'  delete all input;//备份log sequence number44到100的archivelog

backup archivelog from time "sysdate-15" until time "sysdate-7" format 'd:/backup/ar_%U'  delete all input;//备份前15天到前7天的archivelog

数据文件和归档日志文件一起备份
RMAN>backup database plus archivelog format 'd:/backup/db_%U';

并发备份
1.
RMAN>run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level=0
format 'd:/backup/p_%U'
(datafile 1 channel c1 tag='sys')
(datafile 3 channel c2 tag='aux')
(datafile 2,4,5 channel c3 tag='other')
;
 sql 'alter system archive log current';
}
2.
configure device type disk parallelism 3 backup type to backupset;//设置并发为3


复制备份集
backup copies 2 datafile 5 format 'd:/a1/d_%U','d:/a2/d_%U';//复制2个副本

备份备份集
backup backupset all format='e:/rman/backupset_%U.dbf'
backup backupset completed before 'sysdate-2';

image备份
RMAN>copy datafile 5 to 'd:/oracle/xwx.dbf' tag='example';
或者
RMAN>backup as copy datafile 5 format 'd:/oracle/xwx.dbf';
查看copy信息
RMAN>list copy

hold backup备份整个数据库;
full backup:相对于增量备份,备份整个datafile blocks;
incremental backup:增量备份datafile;

操作超过6秒的操作
select sid,sofar,totalwork from v$session_longops;

增量备份等级
0:相当于full backup,备份整个datafile blocks,可以作为增量备份的起点;
1-4:该等级有2个备份模式
差异性增量备份:备份包括从level n or lower的改变块,n可指定;lower为大数字
累积性增量备份:备份包括从level n-1 or lower的改变块,n可指定
例如差异性增量备份是备份每天改变的块,而累积性增量备份从起点开始多天改变的块。

RMAN>run{
allocate channel d1 type disk;
backup incremental level 1 database format 'xxx/inc_%U';
}  //默认为差异性增量备份

指定为累积性增量备份
RMAN>run{
allocate channel d1 type disk;
backup incremental level 1 cumulative database format 'xxx/inc_%U';

根据SCN进行块级别的备份,大大缩短备份时间;

RMAN备份读取整个数据库文件进行块级别检查时要花费大量时间,可以通过设置快改变跟踪文件,避免进行备份时全部对比块。
alter database enable block change tracking using file 'D:/trace/xx.trc';
alter database disable block change tracking;//同时会删除xx.trc文件。

备份标签
backup incremental level 2 datafile 4 tag='xwxrman';
查看指定标签备份
list backup tag='xwxrman';

RMAN相关的动态视图(corruption=损坏)
v$archive_log
v$backup_corruption
v$copy_corruption
v$database_block_corruption
v$backup_datafile
v$backup_redolog
v$backup_set
v$backup_piece

监控RMAN备份
查看server process和session的关联
RMAN> run {
allocate channel d1 type disk;
set command id to 'xwxtry'; //写一个字符串信息
backup datafile 1 format 'd:/backup/df_%U';
}
然后通过下面的SQL语句就可看到d1进程对应的字符串
select sid,spid,client_info
from v$process p,v$session s
where p.addr=s.paddr
and client_info like '%id=xwxtry%';

查看备份进度(查询v$session_longops)
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%';

 

 

你可能感兴趣的:(Oracle,DBA,Fundamentals,II)