神器-----Rman(适合于初学者)

小弟接触这玩意刚不久,有错的地方帮忙点出来,不胜感激

一、 配置rman工具

  首先:rman只能使用专用连接方式连接到目标数据库,而不能使用共享连接的方式;

  

  1、闪回恢复区(10g中,rman生成备份文件的默认的存放目录)

     1.1查看闪回恢复区的位置和大小

     

     Show user

     Show parameter db_recovery

     注意:1.db_recovery_file_dest,闪回恢复区默认的位置;

            2. Db_recovery_file_dest_size,闪回恢复区默认的大小,2G

如果要修改这两个参数,必须先设置该区的大小,然后在设置其位置:

   例:alter system set db_recovery_file_dest_size = 10g;

       Alter system setdb_recovery_file_dest = '/u01/bk_roger';

   Show parameter db_recovery

注:该区的大小虽未10gb,但是其空间不是马上分配的,指的是最多可用空间为10g,超过则会报错!

1.2闪回恢复区的使用情况;

   这块宝地(闪回恢复区)不仅可以存放rman生成的备份,还可以存放控制文件,联机日志文件,归档日志文件及数据库日志文件等。

例 可通过v$flash_recovery_area_usage查看该区域的使用情况;

Select file_type,percent_space_used used,percent_space_reclaimable,number_of_files numfile from v$flash_recovery_area_usage;

注:1used表示已经使用的空间占用闪回恢复区总大小的百分比;

    2reclaimable表示通过删除不需要的备份文件所能回收的空间的百分比;

    3、表示文件的总个数;

2、配置rman相关的参数

   一般情况下应尽量避免使用sys用户来完成ramn的管理工作;

   所以我们事先在目标数据库中创建了一个专门供rman连接的用户;

  Create user rmanadm identified by oracle;

  Grant sysdba to rmanadm;

 21使用rmanadm连接到目标库;

$Export oracle_sid=orcl

$rman target rmanadm/oracle

注意:export 命令用于指定连接的目标数据库的名字;

     使用rmanadm用户连接目标数据库;如果使用rman target / 表示以sys用户连接数据库;

     Dbid为目标数据库的编号,在多数据库的服务器中,此编号唯一;

Select dbid,name from v$database;

Rman后面还可以跟很多参数 $rman help(自己看去)

例 rman的相关日志文件;

$rman target rmanadm/oracle log=/uo1/bk_roger/rman.log append

Rman所有的输出信息不会在屏幕上显示,而是全部输出到rman.log文件中;

Append表示日志信息会追加到日志文件中,而不进行覆盖;

通常对于日常的夜间备份会采用此方式,然后将生成的日志信息再做处理即可;

2.2 修改rman的参数配置

 $rman target rmanadm/oracle

Rman> show all;(关于这条命令的显示结果就不过多解释了)

例  

要求

1、控制文件的自动备份开启;

2、备份的冗余度为2

Rman>configure retention policy to redundancy 2;

Rman>configure controlfile autobackup on;

要把对应的参数修改为默认值后后面的#default也不会出现;

但是使用clear命令则可以实现例;

Rman>Configure retention policy clear;

Rman>configure controlfile autobackup clear;

3、配置回复目录(catalog)

   Why? 

答:1、在目标数据库中,关于rman生成备份信息的说明信息会保存到控制文件中,但是默认情况下在控制文件中保存7天;

   2、如果将此参数变大,可以,但是记录的信息会增多,则会影响数据库的性能;

   3、如果将此参数变小,也可以,但是备份的频度会增多,备份占的存储区也会增多。

Show parameter control

注意:恢复目录使用自身schema下的表、视图及存储过程等,来保存目标数据库的控制信息;

     2  但是由于控制信息不在目标数据库,所以参数control_file_record_keep_time对恢复目录中的信息没有影响;

     优点:1  可以将rman的备份信息永久存放于恢复目录中:

           2  在进行目标数据库恢复时,指定读取恢复目录中的控制文件进行相关回复即可;

3.1在恢复目录所在的数据库中创建表空间,用于存放恢复目录所包含的表

Create tablespace rman_tbs01 datafile '/u01/rmantbs01.dbf' size 20m;

3.2创建一个用户,用于管理恢复目录中的所有对象;

Create user rman_owner identified by oracle default tablespace rman_tb01 temporary tablespace temp;

授予该用户相应的权限:

3.3Grant recover_catalog_owner to rman_owner;

Grant connect,resource to rman_owner;

3.4使用rman的命令创建恢复目录;

$rman catalog rman_owner/oracle

Rman>create catalog tablespace rman_tbs01;

Rman>exit

3.5 使用rman连接到目标数据库和恢复目录之后,将目标数据库注册到恢复目录;

$rman target sys/oracle catalog rman_owner/oracle

Rman>register database;

一个恢复目录中可以注册多个数据库的信息,只需完成3.5即可。

注意:当备份数据库或者数据库中的数据文件时,rman会把发生变化的控制文件的信息同步到恢复目录中,但这只是部分同步;

     如果想把控制文件总中的所有信息同步到恢复目录中,需要完全同步;

Rman>resync catalog;

注意:1、通常我们修改了数据库的结构,例如 添加或删除了表空间等操作后,应该进行一次完全同步;

2、在使用恢复目录的时候,以前所写的rman的相关的备份命令没有任何区别;

3、如果我们对目标数据库进行了不完全恢复,并以resetlogs方式打开数据库后,在使用恢复目录的情况下,应该使用以下命令来保证恢复目录的有效性;

Rman>reset database;

使用恢复目录的的一个好处就是,可以将经常使用的备份恢复命令,以脚本的形式保存于恢复目录;

例 保存相关脚本rman>create script_bk_level0{

    Backup as backupset incremental level 0 format '/u01/%d_%s_%p' database;

    Sql 'alter system archive log current';   

 }

如果需要修改此脚本Rman>replace script bk_level0{

                   Backup as backupset incremental level 0 format '/u01/%d_%s_%p' database;

Sql 'alter system archive log current';                   

}

如果要运行此脚本,则:rman>run{

Execute script bk_level0;

}

如果想看此脚本的信息

Rman>print script bk_level0;

删除此脚本

Delete script bk_level0;

对于恢复目录,不建议再次使用rman进行备份,这样操作过于复杂;

一般情况下,我们使用expdpimpdp的命令,对于恢复目录进行相关的备份和恢复操作;

二、使用rman工具

  提示:rman的备份相关的命令默认是基于归档模式的;

  1、非归档模式下,备份数据文件

(此操作类似于冷备,但是需将数据库启动到mount状态,因为rman的相关命令执行时需要读取控制文件的相关信息;)

Rman>run{

    Shutdown immediate;

    Startup mount;

    Backup as backupset database format '/u01/roger_bf/all_db_%U';

    Alter database open;

}

注意(1)、进行备份时,需分配相关的通道;如果没有,则是用数据库默认的磁盘通道;

     (2)、非归档模式下使用rman进行数据库的备份会造成数据库重新启动,不推荐;

2、归档模式下,数据库的相关备份

        提示:此处采用批处理模式,即run{}

        注意:无论是备份数据库,还是备份表空间,还是备份数据文件,最终的对象还是数据文件;

2.1

备份表空间users,生成备份集

Rman>run{

  Allocate channel d1 type disk;

  Backup tablespace users;

}

备份表空间users,生成压缩备份集;

Rman>run{

   Allocate channel d2 type disk;

   Backup as compressed backupset tablespace users;

}

备份表空间users,生成镜像拷贝;

Rman>run{

 Allocate channel d3 type disk;

 Backup as copy tablespace users;

}

备份表空间users下的数据文件,生成备份集

>Select t.ts#,t.name name_ts,d.file#,d.name name_db from v$tablespace t,v$datafile d where t.ts#=d.ts#;

Rman>run{

Allocate channel d3 type disk;

Backup datafile 4;

}

把数据问件备份成压缩备份集和镜像拷贝参考上面命令即可

如果想把备份生成到磁带上需要建立磁带通道;磁带不能存镜像拷贝!

手工创建的通道优先级高于rman的默认参数设定的优先级;

磁盘通道类型为disk,磁带通道类型为sbt或者sbt_tape;

2.2备份多个数据文件

可以开启多个通道进行多个数据文件的备份,提高备份效率;

 rman>run{

 Sql 'alter system switch logfile';

 Sql 'alter system checkpoint';

 Allocate channel d11 type disk;

 Allocate channel d12 type disk;

 Allocate channel d13 type disk;

 Backup format '/u01/roger_bf/df_%d_%s_%p.bak'

(datafile 1,2 channel d11)

(datafile 3,4 channel d12)

(datafile 5 channel d13);

Sql 'alter system switch logfile';

}

注:在备份之前执行alter system switch logfiel的目的是将redo log信息向archive log中归档;

   执行alter system checkpoint 的目的是将缓存中的脏数据写入数据文件,避免丢失;

   在终了时执行alter system switch logfile的目的是为保证下次备份的可靠性;

2.3备份归档日志

提示:online redo log 在数据库运行期间,不能进行备份,需要将其归档至archive log 之后,备份相关的归档日志即可;

      在使用rman备份归档日志时,会自动发生一次日志切换,然后才进行归档;

例 备份3天以来所有归档日志文件

Rman>backup archivelog from time 'sysdate - 3';

备份日志序号大于5的归档日志文件

Sql>Alter system switch logfile;

Sql>Alter system checkpoint;

Rman>backup archivelog from sequence 5;

备份所有归档日志文件

Rman>Backup archivelog all;

rman成功备份完所有的归档日志文件之后,删除相关的归档日志文件,只保留此备份;(占磁盘空间啊啊!)

Rman>backup archivelog all delete input;

备份数据库和归档日志

Rman>backup database plus archivelog;

备份表空间和归档日志

Rman>backup tablespace users plus archivelog;

如果在备份期间,删除了某些未归档的归档日志,会造成备份失败;

此时切换一下日志,但是日志会不连续;alter system switch logfile;

再备份归档时: rman> archivelog all skip inaccessible;

当在后面加上delete input ,在备份归档日志完毕后,即可删除;

未完----------(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值