1.创建镜像备份文件;
2.创建whole database backup;
3.创建full database backup;
4.开启快速增量备份;
5.创建双重备份集;
6.对备份集进行备份;
7.使用rman创建多片备份;
8.创建和归档备份,用于长期保存;
9.查看和维护备份
rman target /
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
BACKUP AS BACKUPSET FORMAT '/u01/app/oracle/backup/dataf/tbs_users_%U' TABLESPACE USERS
rman target /
BACKUP AS COPY FORMAT '/u01/app/oracle/backup/dataf/tbs_users_%U' TABLESPACE USERS;
BACKUP AS COPY ARCHIVELOG LIKE '/path/*' -- 可以使用通配符来备份归档日志;
1.镜像拷贝是数据文件,归档日志文件或者控制文件的克隆,当使用rman的backup as copy命令创建拷贝时,server session会拷贝数据文件的块和控制文件中的记录;
2.镜像拷贝具有以下特征:
1.Full backup:与whole database backup不同;它是从数据文件备份的那一刻,所有数据文件中包含数据的块的拷贝;
2.Incremental Backup:上次备份之后,所有发生改变的数据块的拷贝;
3.相关的语法:
4.默认情况下,如果不指定FULL或者INCREMENTTAL选项的话,rman总是执行full backup;但是full backup不会影响接下来的增量备份,也不会被认为是增量备份策略中的一部分
通过block change tracking(块改变跟踪)文件实现:
1.维护了从上次备份之后所有发生改变快的记录;
2.这些记录是存放文件中的,同时会产生redo日志;
3.当备份时自动访问这个文件,从而加快备份速度;
4.tracking文件是由CTWR进程自动维护的,不需要dba的干涉;
5.它的大小主要是由以下几点决定的:
1.在EM中设置:EM->Availability->Backup Settings(Backup/Recovery)->Policy;
2.在命令行中设置;
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING[ USING FILE '/home/oracle/rman_change_track.f' REUSE];
3.因为rman不支持备份还原block change tracking file,所以不建议放在快速闪回区中;
1.查看改变跟踪文件的位置;
SELECT filename, status, bytes FROM v$block_change_tracking;
2.分析跟踪文件中每个数据文件的信息;
SELECT file#,
AVG(datafile_blocks),
AVG(blocks_read),
AVG(blocks_read / datafile_blocks) * 100 AS pct_read_for_backup,
AVG(blocks)
FROM v$backup_datafile
WHERE used_change_tracking = 'YES' AND
incremental_level > 0
GROUP BY file#;
1.使用backup命令的proxy选项时,需要使用MML来完成对文件的拷贝;
2.语法为BACKUP AS BACKUPSET ... PROXY [ONLY] DATABASE|TABLESPACE ...;
3.不能与AS COPY连用,否则会报错;
4.主要是用于把备份直接备份到磁带或者是存储上
1.使用backup copies命令备份;
backup copies 2 tablespace users format '/u01/app/oracle/backup/dataf/%U','/u01/app/oracle/backup/controlf/%U';
2.可以覆盖rman级别的参数配置;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;
3.备份完成之后可以使用list backup命令来校验;
1.只有备份到磁盘上的备份集可以使用rman命令的backup backupset命令备份;
2.备份集的备份可以放到任何的设备类型上,默认是使用的磁盘通道,如果想要备份到磁带上的话需要手动指定;
delete backupset;
delete copy;
backup device type disk as backupset database plus archivelog delete input;
backup backupset all; -- 提示已经存在一份数据,不需要再备份;
backup copies 2 backupset all; -- 可以再把原来的备份集拷贝一份
对于只读表空间的注意事项:
1.开启智能备份的后,对于只读表空间只有在不存在备份或者是不满足保留策略时才会进行备份;
2.如果要改变只读表空间为读写状态的话,需要立即进行备份;
3.可以在backup备份时指定skip readonly选项来跳过只读的表空间
1.一个Oracle的文件最大可以达到128T,正常的一个备份的默认单位就是一个文件大小;
2.使用rman可以把多个大文件分割成很多的小文件来备份,还原时也可以分别还原这些文件;(比如可以指定1-3号文件放在一个备份集中,4-6号文件放在一个备份集中;这张PPT要说的是可以设置每一个备份片最大的文件大小,假如原来的文件大小是2g,可以指定备份集片的大小为500M,然后备份到4个片中)
3.每个分片间的块是连续的,可以被独立处理,所以可以使用并行提高性能;
4.除了最后一个分片,其它都是大小相同的,最多有256个分片
1.分片备份的例子;
delete backupset;
backup datafile 1 section size 100M;
2.分别把不同文件备份到不同备份集的例子;
run
{
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch3 DEVICE TYPE DISK;
backup database plus archivelog section size 500M;
}
3.可以通过查看v$backup_set视图中的multi_section列或者v$backup_datafile视图中的section_size来判断是否是进行分片了;
SELECT * FROM v$backup_set;
SELECT * FROM v$backup_datafile
1.如果你需要为一个特定的时间保留备份的话,rman会认为你可能要执行基于时间点的恢复(从备份的时间点到当前的时间);为了满足这种场景,rman需要保存从上次备份之后的所有的归档日志;
2.然而,你的需求可能只是想简单的保留某一个备份(假如说是两年前的一个备份,可以认为是数据库某个时间的快照,用于还原到其它机器上做测试),并不需要做基于时间点的恢复,要是是能恢复到两年前即可;但是此时你又需要维护rman的保留策略,这是一个生产环境中很常见的需求;
3.11g中的Archival Backup完美解决这个问题,需要标记这个备份为archival backup,这个属性可以覆盖配置的任何的保留策略;可以保证它一直是非obsolete的,如果想要指定它obsolete,则需要使用recovery catalog;
4.需要使用keep子句完成;
5.必须使用recovery catalog,为什么?因为要一直保留这个备份的元信息
1.在EM->Availability->Schedule Backup->Schedule Customized Backup页面;
2.在Policy页面可以指定保留的天数,或者永久保留;
3.最后可以查看执行的脚本
1.语法;
BACKUP ... KEEP {FOREVER|UNTIL TIME 'SYSDATE + <n>'} RESTORE POINT <restore_point_name>
1.untile time|forever:指定了一个备份集的保留期限,即备份必须保存到的日期;
2.restore point:为备份集关联一个还原点的名字,它会在控制文件中创建一个一致性的点;它也对应一个SCN,归档的备份可以被恢复和还原到这个点;
2.列出所有具有还原点的备份集;
list restore point all;
3.列出某一个特定还原点的备份集;
list resotre point <restore_point_name>
1.创建一个KEEP FOREVER的备份;
rman target sys/ORACLE@ORCL catalog rman/oracle@ORCL
backup keep forever tablespace example;
备份的过程看到提示[backup will never be obsolete],而且还同时备份了归档日志文件;
2.创建一个保留30天的归档备份;
backup keep until time 'sysdate+30' restore point 'users30days' tag 'tbs_users_test' tablespace users;
3.查看具有还原点的备份集;
list restore point all;
4.修改KEEP的文件为NOKEEP;
change backup tag 'TBS_USERS_TEST' nokeep;
list backupset;
5.变为keep 30天;
change backup tag 'TBS_USERS_TEST' keep until time 'sysdate+30';
list backupset
1.只是备份快速闪回区中的文件(快速闪回区中的所有的文件);
backup recovery area;
2.备份所有的恢复文件(包括所有的恢复文件,即便不在快速闪回区,比如控制文件或者数据文件的拷贝);
backup recovery files;
3.默认情况下,这两个命令是强制开启智能备份的;意味着只有那些没有备份过的文件才会被备份,当然也可以使用force命令强制所有的文件都备份;
4.rman备份的文件有:数据文件,控制文件,spfile,归档日志文件和备份集的备份;如果放置一个操作系统文件到快速闪回区的话,也会称为备份的一部分;
5.这两条命令只能备份到磁带上,如果备份到磁盘上的话会报错RMAN-06603
1.list:显示备份集,镜像拷贝等资源库的记录;
2.report:给出资源库的细节;
3.report need backup:列出需要备份的数据文件;
4.report obsolete:标记出那些不满足保留策略的文件;
5.report schema:列出数据库的架构
1.V$BACKUP_SET:所有的备份集;
2.V$BACKUP_PIECE:所有的备份片;
3.V$DATAFILE_COPY:所有的数据文件的拷贝;
4.V$BACKUP_FILES:所有正在备份的文件的信息;
5.如果使用recovery catalog的话,就是在catalog中查看相应的RC_的视图;如果要查看RC_BACKUP_FILES视图,需要执行CALL DBMS_RCVMAN.SETDATABASE(null,null,null,<dbid>)
在EM->Availability->Schedule Backup->Backup Reports页面
1.crosscheck:检查rman资源库中的信息是否真实的存在物理磁盘上;
2.delete expired:删除catalog中存在,但是物理文件实际不存在的信息,即crosscheck xx后会被标记为expired;
3.delete obsolete:删除超过保留策略的文件
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论0 条评论