rman的配置和备份

----------------------------------------------------------------------------------------------------------------------------
链接rman总是以sysdba身份链接到目标数据库。
创建口令文件,以便可以通过oracle net来执行远程备份操作
orapwd file=orapworcl.ora  password=oracle   entries=20;
alter system set remote_login_passwordfile=exclusive  scope=spfile;
remote_login_passwordfile参数不是可动态改变的,所以不能在数据库启动和运行时更改这个参数。需要更改spfile(使用alter system 命令的scope=spfile参数更改),然后关闭并重启数据库
none 忽略口令文件,并且sysdba访问只给予本地特许的登录
shared 多个数据库可以使用相同的口令文件
exclusive只有一个数据库可以使用这个口令文件

control_file_record_keep_time参数
rman配置数据库时,应当考虑在控制文件中存储备份记录的时间。备份记录包括数据库备份记录,以及指定的数据文件,控制文件,参数文件,归档目录的备份记录。

----------------------------------------------------------------------------------------------------------------------------------------------
configure
1.配置信道默认设置
configure default device type to dsik;
backup database device tpye disk;
2.一旦配置了默认的设备类型,就可以配置特定备份类型的默认值
configure device type disk backup type to backupset;
configure device type disk backup type to compressed backupset;
configure device type disk backup type to copy;
configure device type disk parallelism 2;
3.在自动备份或恢复操作期间配置分配信道数
configure channel 1 device type disk format 'd:\backup\robt\backup_%U';
configure channel 2 device type disk format 'E:\backup\robt\backup_%U';
configure channel 1 device type disk maxpiecesize 100m maxopenfiles 8 rate 100MB;
限定信道1创建的每个备份片最大为100MB,并限定rman在该信道上最多打开8个文件,最后,信道被限制为只允许拥有100MB以内的吞吐量。
maxpiecesize 可以控制备份集片的大小
maxopenfiles 可以控制rman一次最多可以打开的文件数
rate 参数用于限制rman并控制备份时读取字节的比率为B/S KB/S MB/S GB/S
maxsetsize 参数可以限定备份的整体大小。
4.configure maxsetsize to 7500k;
backup database maxsetsize=50m;
configure maxsetsize clear(最大尺寸设置为默认值,即没有限制)
5.创建双路备份,也就是说在不同的位置创建同一个备份的多个副本
configure datafile backup copies for device type disk to 2;
任何备份到磁盘上的备份都被复制,拥有2个副本。
6.排除一个表空间
configure exclude for tablespace old_date;
backup database noexclude keep forever tag='test backup'
排除上一次备份以来没有发生变化的数据文件。
7.启用备份优化时,它会使oracle跳过在备份设备上已有相同备份文件的备份
configure backup optimization on;
8.快照控制文件设置,定义一个新的位置
configure snapshot controlfile name to 'd:\oracle\backup\scontril_mydb';
9.使用格式串
configure channel 1 device type disk format '/u01/opt/oracle/backup_%U';
10.控制文件和数据库参数文件的自动备份
configure controlfile autobackup on;
在run程序块之外执行每个rman的backup 或copy命令时,都会自动备份控制文件和服务器参数文件;
如果使用了run程序块而且该程序块的最后一条命令不是backup或copy命令,则在run程序块结尾处会备份控制文件和参数文件
另一种特殊的控制控制文件备份类型只在磁盘上发生:在数据库结构变化对控制文件产生影响的自动备份控制文件,变化可能包括添加新的表空间,改变表空间或数据文件的状态,添加新的联机重做日志,重命名文件,添加新的重做线程等。
configure controlfile autobackup for device type disk to 'd:\back\robt_%F';

11.配置默认保留策略
基于窗口
configure retention policy to recovery window of 3 days;
基于冗余
configure retention policy to redundancy 3;
无保留策略
configure retention policy to none;
如果使用fra配置了保留策略,则当备份过时后,oracle rman将会按照需要自动删除这些过时的备份。若未使用fra,配置的保留策略不会自动删除。执行report obsolete 会列出过时的备份集。使用delete obsolete命令删除他们。如果列出的某个对象不能被删除,就需要运行crosscheck。
可以查询V$recovery_File_dest视图的space_reclaimable的列时确定过时的备份所占用的fra空间数量。利用这个视图,能确定是否已经为fra分配充足的空间。
select * from V$recovery_File_dest;
当然在查看备份时,也可能需要更改它的保留策略。在这种情况下,可以使用带有keep参数的rman的change命令修改需要保留的备份的保留策略。使用这个命令时,其保留策略被修改的备份会被认为是一个长期备份,且不受相应的保留策略的影响。
可以使用change命令将一个备份修改为归档备份,这个备份的结果将永久保留(这需要恢复目录)
使用change命令创建一个归档备份的示例
change backupset 267 keep forever;
change backupset 267 keep until time 'sysdate+7' logs;
change backupset 33 nokeep;
修改备份集的保留策略
rman backup命令中的keep参数用于重写默认保留策略并建立称为归档备份的备份。归档备份是一个自包含的备份(意味着它包含用于建立一致性备份的归档重做日志)
backup database keep forever;指示归档备份被永远保存,除非手动方式删除它,利用keep forerver 需使用恢复目录,因为控制文件记录可能会因为时间过长而不存在。
keep until time:该选项定义用于备份的可选保留策略,如果超过365天,控制文件记录可能消失。
backup database format '' keep until time ='system+180' tag keep_backup;


12.配置归档日志删除策略:
configure archive log deletion policy to backed up 3 times to device type disk;
所以备份超过3次的归档重做日志将会被删除。
归档重做日志被标记为obsolete时,oracle不会立即将其删除,在fra中的空间被耗尽时,这时归档重做日志才会被删除,也就是说归档重做日志将尽可能被保留在fra中。


注:rman不能使用共享服务器链接到数据库,必须使用server=dedicated语法来为服务器配置oracle net的专用链接。



-------------------------------------------------------------------恢复目录----------------------------------------


1.创建恢复目录用户
create user rcat_user identified by rcat_password default tablespace catalog;
grant connect,resource,recovery_catalog_owner to rcat_user;
2.创建恢复目录
rman>catalog=rcat_user/rcat_paassword
create catalog tablespace catalog_tbs
3.使用恢复目录注册数据库
rman target=sys/oracle catlog=rcat_user/rcat_password
rman>register database;
rman>report schema; 验证是否成功注册数据库
4.删除恢复目录
drop catalog
5.在恢复目录中添加rman备份
如果已经在没有恢复目录的情况下执行了rman备份,并且希望在后面将这些备份添加到恢复目录,则可以使用catalog。我们可以将数据文件副本,备份集片,归档日志备份,甚至整个归档备份目录添加到目录中。
rman>catalog datafilecopy 'd:\oracle\orcl11g\database\system01.dbf';
rman>catalog archivelog 'd:\oracle\orcl11g\database\arch_988.arc';
rman>catalog backuppiece 'd:\oracle\orcl11g\database\backup_820.bkp'
rman>catalog start with 'd:\oracle\orcl11g\database'
6.取消数据库注册
取消已存在的数据库注册:unregister database;
如果已经删除数据库,并希望从目录中删除该数据库:unregister database orcl11g;
7.对恢复目录升级
upgrade catalog
8.重新设置对应物
如果手动执行resetlogs命令(通过sql*plus),则需要重新设置恢复目录中的数据库对应物
reset database to incatnation 5;
9:手到执行恢复目录再同步操作
resync catalog;
10.清除恢复目录记录
11.备份恢复目录
12.恢复目录视图


可以通过查看生成的日志文件来监控rman操作,或者使用v$视图的v$rman_outpue监控rman操作
select output from v$rman_output order by stamp;


-------------------------------------------------------------------脱机备份(数据库加载,但没有打开)------------------------------------
shutdown
startup mount
backup database;
alter database open;

shutdown
startup mount
backup as compressed backupset database;(压缩备份集备份)
alter database open;

不使用默认设置执行脱机备份
shutdown
startup mount
run{
allocate channel c1 device type disk format 'd:\backup\robt\robt_%U';
backup as compressed backupset database;
backup current controlfile;
}
这里的backup database 命令被限定在run命令代码块中,由于使用allocate channel命令分配信道,所以必须使用run代码块执行备份操作。
如果备份数据文件1,backup命令也会备份控制文件和服务器参数文件,控制文件备份存储位置取决于contrilfile autobackup参数设置。如果contrilfile autobackup被设置为off ,控制文件和服务器参数文件会被包含在数据库备份集中,如果为on,会生成一个独立的控制文件备份。可以在backup database命令中加入include current controlfile 子句,迫使rman控制文件放入数据库备份集。


null数据块压缩
1.从未使用过的数据库不会被备份
2.在给定的特定标准下使用过一次的数据块不会被备份
(以前有数据,现在被drop的数据块)

标记:该名称能在还原操作期间被引用以指示使用特定备份。
backup database tag='test backup';

还原点:标记与特定备份相关联时,还原点与特定时间点相关联。
sql "create restore point charlie_one"

限定备份的影响
backup duration 00:30 database;
超过指定的持续事件,备份取消,duration参数不可以使用backup database plus archivelog;
当使用partia参数时,如果备份超出duration持续时间而终止,rman不会将还有认为失败的备份进行处理。因此,任何run代码块中的剩余部分将继续执行。如果接下来backup命令,例如归档重做日志备份,这个参数非常方便。无论partia参数设置是什么,即使整个备份过程没有完成,oracle也会将已完成的备份集认为是可用的。
backup duration 00:30 minimize time database;
rman将区分备份的数据文件的优先级,最近备份的数据文件有较低的优先级。
backup duration 00:30 minimize load database;
rman尝试将备份的I/O操作分布到持续时间内的各个时间点上,从而消除备份对系统的整体影响。


跳过:
backup database skip readonly;
backup database skip offline;
backup database skip inaccessible;(不可访问的)
backup database skip readonly skip offline skip inaccessible;


强制备份只读的数据文件:
备份优化会使rman默认不备份没有发生变化的表空间(例如只读表空间)
backup database force;



基于上次备份时间来备份数据文件
1.只备份添加的数据文件
backup database not backed up;
2.备份指定时间周期内没有被备份的数据文件
backup database not backed up since time='system-2';
备份最近两天内没有备份过的那些数据文件
backup archivelog all not backed up 1 times;
backup as compressed backupset database plus archivelog not backed up 1 times delete input;


备份期间检查逻辑损坏
backup validate check logical database;


生成备份副本
backup database copies=2

铺获隐藏的控制文件
backup database device type disk include current controlfile;


set命令



-------------------------------------------------------------联机备份----------------------------------------------------
backup database plus arachivelog;
backup tablespace users;
backup tablespace users plus arachivelog;
backup tablespace users include current controlfile plus archivelog;
backup datafile 2;
backup datafile 'd:\oracle\oradata\users01.dbf' plus archivelog;
backup archivelog all;
backup archivelog from time 'system -1';
backup archivelog fron sequence 353 delete input;
一旦备份了归档重做日志,就可能会使用rman删除这些归档的重做日志,delete input可以完成这一操作。该选项也可以删除数据文件副本或备份集副本。
backup archivelog not backed up 3 times;
not backed up n times 参数确保至少备份3次重做日志,并且不会再次备份已经备份过3次的归档重做日志文件。
backup archivelog until time 'sysdate-2' delete all input;
until time 参数来确保归档的重做日志在磁盘上保留一定的天数

控制文件和服务器参数文件备份
backup current controlfile;
sql "alter database backup controlfile to "d:\backup\contf_back.ctl""
backup controlfilecopy 'd:\backup\contf_back.ctl';

备份集备份
backup backupset all;
backup backupset completed before 'sysdate-2' delete input;

副本:
文件的映像副本时与数据文件,控制文件或归档日志文件完全相同的副本,结果就好像使用操作系统使用程序复制的,但机制不同,rman读写oracle块。而不是操作系统块。这意味着许多功能不能使用。
但它意味着还原时非常快速的,因为不需要从备份集中提取文件。可以更新目标数据库控制文件开定位映像副本,而不是受损的文件;事实上,如果最近的映像副本可用,就不需要还原。oracle公司的建议
时将数据库以及自备份以来的归档日志的完整映像副本放到闪回恢复区;这将意味着完整还原可以时瞬时的,恢复也会很快。
可在不执行还原操作的情况下立即使用映像副本。备份到备份集的文件在使用前必须由rman从备份集中还原。
映像副本可由数据文件,控制文件,和归档日志组成,它不能由spfile组成。
backup as copy database;将所有数据文件和控制文件复制到闪回恢复区。
backup as copy tablespace users;
backup as copy datafile 1;
backup as copy  current controlfile format '' reuser;
backup as copy standby controlfile;
backup as copy archivelog all;
backup as copy archivelog all delete all input;将所有归档日志文件移入闪回恢复区。

很多情况下,您可能更希望增量备份能块些。这可以通过启用块变更跟踪来实现。
块变更跟踪依赖于启动一个额外的后台进程CTWR(变更跟踪写入器)。这个进程在名为“变更跟踪文件”的文件中记录每个已更改的块的地址。如果启用了块变更跟踪,rman将在执行增量备份时读取变更跟踪文件以确定哪些块需要备份。
变更跟踪文件将在DBA指定的位置创建,默认位置时DB_CREAT_FILE_DEST目录。
变更跟踪文件时位图格式,每位包含32个数据库块,启用块变更跟踪会有一个最低的性能开销,经验表明这并不重要,要启用块变更跟踪并指定跟踪文件的名称和位置,可使用下列命令
 alter database enable block change tracking using file '/u01/../change_tracking.dbf' ;
要监控块变更跟踪的有效性,可查询V$BACKUP_DATAFILE视图。这个视图在每次将数据文件备份到备份集时填充。
datafile_blocks列是数据文件的大小。
blocks_Read是上一次备份读取的块数。这写比率将显示块变更跟踪减少了这性增量备份必须读取的块数。
select file# ,datafile_blocks,(blocks_Read/datafile_blocks)*100 as pct_Read_for_backup from v$backup_Datafile where used_change_tracking='YES' and incremental_level>0;
增量备份
块更改跟踪文件
 alter database enable block change tracking using file '' ;如果文件已存在,可以加参数reuse。
基本备份
backup as backupset incremental level=0 database;
backup incremental level=0 database;
差异
backup incremnetal level=1 database;
累积
backup incremnetal level=0 cumulative database;


backup incremental level=0 tabelspace users;
backup incremnetal level=1 tablespace users;

backup incremental level=0 datafile 4;
backup incremnetal level=1 datafile 4;


backup incremnetal level=1 database plus archivelog;
增量更新备份
映像副本的另一个作用是通过应用增量备份更新他们。这种用增量备份更新副本的技术采用完整备份作为起点,然后通过应用增量前滚副本。这要求将数据库的完整副本(可以在数据库打开时创建)作为起点,
之后创建增量备份,采用的语法允许将他们应用至副本。


run{
backup incremental level 1 for recover of copy with tag 'incr_update' database;
recover copy of database with tag 'incr_update'
}
这个脚本首次运行时,backup尝试级别1备份。但因为之前没有级别0备份,所以执行级别0备份。这一语法将导致rman时这作为一个副本,而不是备份集。recover命令将失败,因为即没有数据库副本又没有增量备份可应用。脚本第二次运行时,第一个命令将执行级别1备份,提取自第一次运行后所有的变更块。第二个命令将把这个增量备份应用至副本。这一行为将在所有后续运行中延续。

基于增量更新备份的策略可以使恢复非常快,而且可以最小化使用的数据库上的备份工作负荷:只有一个完整备份,如果脚本每天都运行,那最差的情况是副本落后一天。这就有必要备份该副本(例如,如果副本已定向到闪回恢复区,使用backup recovery area)和归档日志文件,因为没有这些备份,则无法通过时间点恢复恢复到最近一次运行脚本之前的任意时间点。



保护备份:
rman可备份使用中的数据库及其归档日志文件,它还可以备份其自己的备份。这些数据在任何情况下都可通过双重备份得到保护。
backup as backupset device type disk copies 2 database plus archvielog;
这将会使用默认通道数将整个数据库及归档日志备份到默认磁盘目标。不过,将会生成两个备份集。
一个由一个备份片构成(默认情况)
另一个包含整个数据库及其归档日志。以这种方式在磁盘上多路复用备份提供了一定的保护,但最终还是要将备份转移到磁带。这可通过下列命令完成
backuo device type sbt_tape backupset all delete all input;
这个命令将定位磁盘上所有已知备份集的备份片,将他们复制到磁带库上的另一个备份集中,同时将他们从磁盘中删除。另一个选择时使用下列命令之一,他们只在磁带库可用时有效
backup recovery area;
backup recovery files;
第一个命令使用默认通道,备份集和备份片数,将闪回恢复区备份到磁带。包括在备份中的文件时完整增量备份集,控制文件自动备份,数据文件和归档日志映像副本,以及归档重做日志
第二个命令备份所有这些与恢复相关的文件。

使用三层存储实现备份策略的简单脚本如下所示:
run{
backuo recovery files delete all input;
backup database plus archivelog all delete input;
}
第一个命令将所有现有备份移到磁带,第二个命令将创建数据库和任意归档日志的一个新的备份,同时从log_archive_Dest_n位置删除日志。



delete all input 子句不应用与使用的数据库,它只应用于归档日志和备份。







 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章