初学rman的总结

1rman数据库的增量备份

Rman备份必须在数据库处于归档的时候进行。(archive log list查询)

增量备份分为几个等级:每个等级备份的数据量不同;0级增量备份及是数据库的全备份。

增量备份的好处在于:减少了备份的数据量,节省磁盘空间;减少了恢复扫描的块的数量。

增量备份都必须从0级开始。Backup incremental level 0 database;   

9I中将所有的数据块读入内存中,用每个数据块中的scn号与父备份集相比较来确定是否被修改。

10g中通过块跟踪的方式来确定哪些块被修改。

Rman可以通过copy命令将数据文件转存(copy datafile 1 to '路径'

  1)累积增量备份(cumulative)

备份之前最好通过 report schema查看数据库的数据文件大小及数量。

从上级备份之后开始备份。

初学rman的总结_第1张图片                    

周末的0级,周一2级,周二2级,周三1级,周四2级,周五2级,周六2

因为增量备份默认的是差异备份,所以在进行累积备份时必须使用cumulative关键字

Backup incremental level 0 cumulative database

Backup incremental level 2 cumulative database

Backup incremental level 2 cumulative database

Backup incremental level 1 cumulative database

Backup incremental level 2 cumulative database

Backup incremental level 2 cumulative database

Backup incremental level 2 cumulative database

通过这种备份可以恢复一周内任意时间的数据。例如:要恢复周四的数据则直接通过周三的备份集和周四的备份集就可以恢复。

  2)差异增量备份(differental)

这是默认的备份方式,是同级备份之后开始。

初学rman的总结_第2张图片

周末的0级,周一2级,周二2级,周三1级,周四2级,周五2级,周六2

Backup incremental level 0 database

Backup incremental level 2 database

Backup incremental level 2 database

Backup incremental level 1 database

Backup incremental level 2 database

Backup incremental level 2 database

Backup incremental level 2 database

通过这种备份可以恢复一周内任意时间的数据。例如:要恢复周四的数据则直接通过周三的备份集和周四的备份集就可以恢复。

  3)两种方式的区别

累积增量备份是从上一级开始到现在的改变的数据都进行备份,同一级备份过的进行从新备份。

差异增量备份是从同一级开始到现在的改变的数据进行备份,同一级备份过的就不进行备份了。

2rman数据库的恢复

  1)模拟数据文件丢失(完全恢复)

1,出现数据文件的丢失 

初学rman的总结_第3张图片

2,通过rman进行恢复(用的是0级差异备份)

恢复时默认的是用最新的那个备份集,如果要用其他的备份集可以指定某个tag

Restore database from tag tag的值

初学rman的总结_第4张图片

还原之后数据库的数据文件头的scn和控制文件的scn的值就会不同(如果要数据库能打开则必须保证数据文件头的scn和控制文件的scn相同,所以还有做recover

3)进行数据库的恢复操作(recover

  Recover可以在rman中,也可以在sqlplus中进行,但是两者的区别在于,sqlplus中的recover只能使用归档进行恢复,如果归档不存在就会报错。而rman中则用的备份集进行恢复。

初学rman的总结_第5张图片

恢复完成后数据文件头的scn和控制文件的scn相同,这样数据库才能打开。

4)当数据文件丢失,归档但没有备份的时候可以通过

Alter database create datafile '丢失的数据文件名称' as '丢失的数据文件名称'

进行重新创建,然后用recover进行恢复。

  2)模拟控制文件丢失

控制文件丢失是将数据库中的所有信息都丢失了,因为rman的备份信息都保留在控制文件中;

如果有控制文件的单独备份可以直接通过指定restore使用的文件名进行恢复

初学rman的总结_第6张图片

Set dbid进行连接数据库


Restore 数据库通过指定的备份文件

初学rman的总结_第7张图片

然后将数据置于mount状态


最后进行数据文件的恢复

初学rman的总结_第8张图片

打开数据库(因为是非完全恢复所以要重置日志文件打开数据库)


完成后要对数据库的全备份。保证所有的数据正确

  3)模拟redo log日志文件丢失

是否是当前日志可以通过select status from v$log查看

1,非当前日志的丢失

 初学rman的总结_第9张图片

可以发现当前的日志文件为第三组;

初学rman的总结_第10张图片

直接通过alter database clear lofile 进行重建日志文件。然后打开数据即可

2,当前日志的丢失

初学rman的总结_第11张图片

删除第一组日志文件。

运用上面的方法不行了

初学rman的总结_第12张图片

通过修改隐含参数不对打开数据库进行scn验证。


然后对数据进行恢复

初学rman的总结_第13张图片

最后通过resetlogs打开数据库

   4)表空间的恢复

Rman>Sql “alter tablespace undo1 offline”

Rman>Restore tablespace undo1

Rman>Recover tablespace undo1

Rman>Sql “alter tablespace undo1 online”

3rman备份策略

周日0级,周一1级差异,周二1级差异,周三1累积,周四1级差异,周五一级累积,周六一级差异

Backup incremental level 0 cumulative database

Backup incremental level 1 database

Backup incremental level 1 database

Backup incremental level 1 cumulative database

Backup incremental level 1 database

Backup incremental level 1 cumulative database

Backup incremental level 1 database

但是如果数据库能在1小时内备份完成,则建议每天进行全备份。

4rman备份常用命令

1host 暂时退出rman的命令提示符,进入操作系统的命令环境

2sql 'alter system archive log' 可以执行sql语句,但是不能执行select,或者说是执行了但是看不到结果

3backup database 进行数据库全备份

4backup database format f:\oracle\backup\bak_%U;以指定名称的备份集进行备份

5backup tablespace users 进行表空间的备份

6list backup of database/tablespace users/controlfile/spfile/datafile只显示相应的备份集

7report schema 查询连接数据库的数据文件,控制文件等信息

8delete nopromptbackup integer)删除备份集,noprompt直接删除不提示,integer删除指定的备份集

9backup datafile integer)备份指定的数据文件

10backup database include current controlfile 备份数据库加上控制文件

11configure controlfile autobackup on 将数据文件自动备份

12backup current controlfile plus archivelog 备份控制文件加上归档日志

注意:备份归档的步骤

     1,对当前的redolog进行归档(alter system archive log current

     2,备份所有已归档的日志(backup archive log all

     3,对指定项进行备份

     4,再次对当前的redolog进行归档(alter system archive log current

     5,对新生成的尚未备份的归档文件进行备份

13backup spfile 参数文件进行备份

14show all 查询当前的配置参数

15delete expired backup 删除无效的备份

16delete obsolete;删除过期的备份

17delete backupset) (integer)删除指定的备份集

18crosscheck backup 检查备份集的状态

19configure retention policy to recovery window of  N days;备份集保留的天数

20configure retention policy to  redundancy  N;备份集的冗余的数

21,backup validate database ;对数据进行检查看是否有备份,并记录到v$database_block_corruption视图中

5catalog连接数据库

Sql>Create tablespace rman_ts datafile ‘f:\rman.dat’ size 10M;

Sql>Create user rman identified by rman default tablespace rman_ts quota unlimited on rman_ts;

Sql>Grant recovery_catalog_owner,connect,resoure to rman;

C:>rman target / 远程@db_link catalog rman/rman@db_link;

注意:catalog是可以将远程的数据库,导入到本地,但是连接catalog rman/rman这个必须是本地的连接。

Rman>create catalog tablespace rman_ts;

Rman>register database;

Rman>备份命令(或脚本);

你可能感兴趣的:(oracle,sql,数据库,Integer,database,delete)