1 归档配置
Alter system archive log all;
Alter system set log_archive_max_processes=4;
Alter system set log_archive_dest_1=’location=/arch1 mandatory reopen’;
ALTER SYSTEM SET LOG_archive_dest_2=’service=standby1 optional reopen’;
实验测试:
当指定log_archive_dest_1之后,fra将不在产生归档日志。
SQL> alter system set log_archive_dest='fra';
alter system set log_archive_dest='fra'
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16018: 无法将 LOG_ARCHIVE_DEST 与 LOG_ARCHIVE_DEST_n 或
DB_RECOVERY_FILE_DEST 一起使用
- 对比log_archive_dest 和log_archive_dest_1 设置归档的区别
|
2 RMAN 配置归档日志删除策略
Oracle 11g中对于归档日志的删除,除了遵循RMAN保留策略外,也可以通过RMAN来配置归档日志的删除策略,也就是归档日志何时可以被删除。归档日志删除策略适用于所有归档位置(使用快速闪回区FRA/不使用FRA)。本文主要描述归档日志删除策略并给出了具体的演示。
1.1 关于归档日志删除策略
也就是哪些归档日志符合删除策略能够被删除,如前所述,归档位置适用于所有归档位置(使用快速闪回区FRA/不使用FRA)
当启用该策略后,如归档日志存在于FRA中,则Oracle会尽可能根据保留他们,一旦FRA空间告急,则Oracle会根据归档日志删除策略自动删除
对于不在FRA中的归档日志,需要手动使用delete obsolete或delete archivelog方式来删除日志
无论归档日志存在于FRA内或外,都可以通过BACKUP ... DELETE INPUT or DELETE ARCHIVELOG方式来删除
该策略不适用于使用LogMiner方式从主数据库传送到逻辑standby生成的外部归档日志文件,因为这些日志文件不能够在逻辑standy上备份或恢复
RMAN> show archivelog deletion policy
2> ;
db_unique_name 为 PROD 的数据库的 RMAN 配置参数为:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK;
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 times to disk;
配置归档日志删除策略,可以防止delete archivelog all;误操作的发生
旧的 RMAN 配置参数:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK;
新的 RMAN 配置参数:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
已成功存储新的 RMAN 配置参数
1.2 配置归档日志删除策略
使用下面的方式来配置归档日志删除策略
configure archivelog deletion policy to backed up 2 times to sbt;
configure archivelog deletion policy to backed up 1 times to device type disk;
configure archivelog deletion policy to applied on standby;
如果删除未应用到备库的归档,如下:
Rman-08120 warning:archived log not deleted,not yet applied by standby;
configure archivelog deletion policy to shipped on standby; --传输
configure archivelog deletion policy clear;
delete noprompt archivelog all completed before 'sysdate -5/24';
backup filesperset 20 format 'ar_%s_%p_%t.arc' archivelog all delete input;
对于Oracle 10g没有该特性,但有一个类似的用于配置归档日志被备份次数,如下;
configure archivelog backup copies for device type disk to ${archiveretention};
1.3 禁用归档日志删除策略
缺省情况下,该策略被设置为none。也就是说根据RMAN备份保留策略,对于FRA中的归档日志,被备份过一次(到磁盘或磁带)即符合条件被删除
如果Oracle不再需要当前的归档日志用于保证数据库时点恢复或数据库闪回,则RMAN备份保留策略认为当前日志为obsolete
在SYSDATE-'DB_FLASHBACK_RETENTION_TARGET'之后创建的归档日志是需要被保留的
1.4 启用归档日志删除策略
一旦启用该策略,则指定的归档日志被备份数量达到设定值后,这些归档日志能够被删除
BACKUP ARCHIVELOG 会在未超出指定备份数的情况下(比如设置为2)备份归档日志到指定位置,如超出2次,则RMAN会跳过这些备份过2次的归档日志
对于上述的情形,可以为BACKUP ARCHIVELOG适用force选项来强制备份归档日志
如果启用该策略且配置为APPLIED ON STANDBY子句,则所有强制standby位置被apply后,这些归档日志会被RMAN删除
如果启用该策略且配置为SHIPPED ON STANDBY子句,则所有强制standby位置被成功传送后,这些归档日志会被RMAN删除
1.5 演示归档日志删除策略
[oracle@linux1 ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Tue Nov 12 15:10:17 2013
--查看当前数据库保留策略
RMAN> show retention policy;
RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
--查看当前数据库保归档日志留策略
RMAN> show archivelog deletion policy;
RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
--查看过时的备份
RMAN> report obsolete;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
no obsolete backups found
--列出copy副本
RMAN> list copy;
specification does not match any datafile copy in the repository
specification does not match any control file copy in the repository
List of Archived Log Copies for database with db_unique_name USBO
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - -------------------
124 1 121 A 2013/11/12 15:34:15
Name: /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc --当前的归档日志
--修改当前的归档日志保留策略为2个备份副本
RMAN> configure archivelog deletion policy to backed up 2 times to device type disk;
new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK;
new RMAN configuration parameters are successfully stored
--备份归档日志,并删除已经备份的归档日志
RMAN> backup archivelog all delete input;
Starting backup at 2013/11/12 15:37:25
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=121 RECID=124 STAMP=831310563
input archived log thread=1 sequence=122 RECID=125 STAMP=831310645
channel ORA_DISK_1: starting piece 1 at 2013/11/12 15:37:26
channel ORA_DISK_1: finished piece 1 at 2013/11/12 15:37:27
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_TAG20131112T153726_983pop3p_.bkp
tag=TAG20131112T153726 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s)
RMAN-08138: WARNING: archived log not deleted - must create more backups --->出现警告提示,日志当前不能被删除,更多的备份需要创建
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc thread=1 sequence=121
RMAN-08138: WARNING: archived log not deleted - must create more backups
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc thread=1 sequence=122
Finished backup at 2013/11/12 15:37:27
--从os层面查看归档日志,当前已备份的两个归档日志没有删除
sys@USBO> ho ls -hltr /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/*
-rw-r----- 1 oracle asmadmin 3.0K Nov 12 15:36 /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc
-rw-r----- 1 oracle asmadmin 4.5K Nov 12 15:37 /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc
--从视图查询也可以获得其状态
sys@USBO> select name,status from v$archived_log where STATUS='A';
NAME STA
-------------------------------------------------------------------------------- ---
/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc A
/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc A
--第二次备份归档日志
-- Author : Leshami
-- Blog : http://www.csdn123.com/link.php?url=http://blog.youkuaiyun.com/leshami
RMAN> backup archivelog all delete input tag=arc_2nd;
Starting backup at 2013/11/12 15:41:58
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=121 RECID=124 STAMP=831310563 --sequence 121与122依旧被备份
input archived log thread=1 sequence=122 RECID=125 STAMP=831310645
input archived log thread=1 sequence=123 RECID=126 STAMP=831310918
channel ORA_DISK_1: starting piece 1 at 2013/11/12 15:41:58
channel ORA_DISK_1: finished piece 1 at 2013/11/12 15:41:59
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_2ND_983py6mv_.bkp tag=ARC_2ND comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: deleting archived log(s) --sequence 121与122被删除
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_121_983pm3gp_.arc RECID=124 STAMP=831310563
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_122_983pooxb_.arc RECID=125 STAMP=831310645
RMAN-08138: WARNING: archived log not deleted - must create more backups --->出现警告提示,日志123不能被删除,更多的备份需要创建
archived log file name=/u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_123_983py6gh_.arc thread=1 sequence=123
--再次查看,只有sequence 123存在,121与122已经被删除
RMAN> list copy;
specification does not match any datafile copy in the repository
specification does not match any control file copy in the repository
List of Archived Log Copies for database with db_unique_name USBO
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - -------------------
126 1 123 A 2013/11/12 15:37:25
Name: /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_123_983py6gh_.arc
Finished backup at 2013/11/12 15:41:59
--配置新的归档日志删除策略
RMAN> configure archivelog deletion policy to backed up 1 times to device type disk;
old RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO DISK;
new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
new RMAN configuration parameters are successfully stored
--第三次备份归档日志
RMAN> backup archivelog all tag=arc_3rd;
Starting backup at 2013/11/12 15:44:11
current log archived
using channel ORA_DISK_1 --下面是skip的提示信息,因为根据新的策略,sequence 123已经被备份过一次了
skipping archived log file /u03/database/usbo/fr_area/USBO/archivelog/2013_11_12/o1_mf_1_123_983py6gh_.arc; already backed up 1 time(s)
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=124 RECID=127 STAMP=831311051
channel ORA_DISK_1: starting piece 1 at 2013/11/12 15:44:12
channel ORA_DISK_1: finished piece 1 at 2013/11/12 15:44:13
piece handle=/u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_3RD_983q2d34_.bkp tag=ARC_3RD comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2013/11/12 15:44:13
--清除策略
RMAN> configure archivelog deletion policy clear;
old RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
RMAN configuration parameters are successfully reset to default value
--列出所有归档日志的备份信息
RMAN> list backup of archivelog all;
List of Backup Sets
===================
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
24 8.00K DISK 00:00:00 2013/11/12 15:37:26
BP Key: 24 Status: AVAILABLE Compressed: NO Tag: TAG20131112T153726
Piece Name: /u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_TAG20131112T153726_983pop3p_.bkp
List of Archived Logs in backup set 24
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 121 3090437 2013/11/12 15:34:15 3090507 2013/11/12 15:36:03
1 122 3090507 2013/11/12 15:36:03 3090591 2013/11/12 15:37:25
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
25 37.50K DISK 00:00:00 2013/11/12 15:41:58
BP Key: 25 Status: AVAILABLE Compressed: NO Tag: ARC_2ND
Piece Name: /u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_2ND_983py6mv_.bkp
List of Archived Logs in backup set 25
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 121 3090437 2013/11/12 15:34:15 3090507 2013/11/12 15:36:03
1 122 3090507 2013/11/12 15:36:03 3090591 2013/11/12 15:37:25
1 123 3090591 2013/11/12 15:37:25 3090746 2013/11/12 15:41:58
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ -------------------
26 2.50K DISK 00:00:00 2013/11/12 15:44:12
BP Key: 26 Status: AVAILABLE Compressed: NO Tag: ARC_3RD
Piece Name: /u03/database/usbo/fr_area/USBO/backupset/2013_11_12/o1_mf_annnn_ARC_3RD_983q2d34_.bkp
List of Archived Logs in backup set 26
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 124 3090746 2013/11/12 15:41:58 3090839 2013/11/12 15:44:11
2 归档日志管理
2.1.列出已经备份的archivelog
list backup of archivelog all;
2.2.预览恢复出程,但不真正恢复
可以在你执行恢复前先看看恢复过程,也可以验证一下你的语法是否写对
restore archivelog all preview; 即在你要执行的restore archivelog命令后加preview
restore archivelog sequence 18 preview;
2.3.恢复指定时间范围的archivelog
3.1 显示2008-08-13 10:00:00到2008-08-13 11:00:00之间的archivelog
list backup of archivelog time between "to_date('2008-08-13 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2008-08-13 11:00:00','yyyy-mm-dd hh24:mi:ss')";
3.2 预览恢复2008-08-13 10:00:00到2008-08-13 11:00:00之间的archivelog
restore archivelog time between "to_date('2008-08-13 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2008-08-13 11::00','yyyy-mm-dd hh24:mi:ss')" preview;
3.3 真正恢复2008-08-13 10:00:00到2008-08-13 11:00:00之间的archivelog
restore archivelog time between "to_date('2008-08-13 10:00:00','yyyy-mm-dd hh24:mi:ss')" and "to_date('2008-08-13 11::00','yyyy-mm-dd hh24:mi:ss')"
2.4.恢复指定的archivelog
restore archivelog sequence 18; 恢复sequence为18的archivelog
2.5.restore archivelog like
恢复模糊查询出来的archivelog,这个只能用于通过catalog的备份,用nocatalog的会报错
restore archivelog like '%18%';
2.6.恢复指定sequence范围的archivelog
restore archivelog from sequence 18 until sequence 20;
restore archivelog low sequence 18 high sequence 20;
restore archivelog low logseq 18 high logseq 20;
2.7.指定archivelog的恢复目的地
如你想把archivelog恢复到一个临时目录时有用,但这个必须包含在run{}里面才能用
set archivelog destination to 'e:\temp';
2.8 备份归档日志范例
###############备份archlog###########
###############expired表示物理形式删除归档日志,控制文件中又记录、
crosscheck archivelog all;
delete noprompt expired archivelog all;
1 backup archivelog delete all input;
2 backup archivelog from time 'sysdate-30' until time 'sysdate-7' delete all input;
3 backup archivelog from sequence 12 until sequence 300;
4 backup archivelog sequence 200
5 backup archivelog from scn 10000 until scn 200000;
6 backup database plus archivelog;
delete backupset 1,2,3,4,5;
delete backupset tag=121238120938109832
RMAN>backup archivelog all delete input;
RMAN> backup archivelog from time '01-jan-00' until time '30-jun-00';
RMAN> backup archivelog like 'oracle/arc/dest/log%';
10
RMAN> backup archivelog all;
RMAN> backup archivelog from logseq 20 until logseq 50 thread 1;
RMAN> backup archivelog from scn 1 until scn 9999;
---------------------------------------------
以下部分是在本人正式环境中遇到的实际情况,非转载:
备份日志中有以下内容:
通道 t1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =18070 记录 ID=35794 时间戳=671966051
输入存档日志线程 =1 序列 =18071 记录 ID=35796 时间戳=671966351
输入存档日志线程 =1 序列 =18072 记录 ID=35798 时间戳=671966652
输入存档日志线程 =1 序列 =18073 记录 ID=35800 时间戳=671966952
输入存档日志线程 =1 序列 =18074 记录 ID=35802 时间戳=671967249
输入存档日志线程 =1 序列 =18075 记录 ID=35804 时间戳=671967550
输入存档日志线程 =1 序列 =18076 记录 ID=35806 时间戳=671967850
输入存档日志线程 =1 序列 =18077 记录 ID=35808 时间戳=671968151
输入存档日志线程 =1 序列 =18078 记录 ID=35810 时间戳=671968451
单独恢复18071 到18076
rman> run
{ allocate channel t1 type 'sbt_tape' parms 'ENV=(tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
restore archivelog from logseq 18071 until logseq 18076 ;
release channel t1;
}
allocate channel device type disk connect 'sys/oracle@orcl1' format '/home/oracle1/%U.dbf';
allocate channel device type disk connect 'sys/oracle@orcl2' format '/home/oracle1/%U.dbf';
删除备份集合:
一.备份所有归档日志文件
RMAN> backup archivelog all delete input;
二: restore archivelog 的各种选项
1.恢复全部归档日志文件
RMAN> restore archivelog all;
2.只恢复5到8这四个归档日志文件
RMAN> restore archivelog from logseq 5 until logseq 8;
3.恢复从第5个归档日志起
RMAN> restore archivelog from logseq 5;
4.恢复7天内的归档日志
RMAN> restore archivelog from time 'sysdate-7';
5. sequence between 写法
RMAN> restore archivelog sequence between 1 and 3;
6.恢复到哪个日志文件为止
RMAN> restore archivelog until logseq 3;
7.从第五个日志开始恢复
RMAN> restore archivelog low logseq 5;
8.到第5个日志为止
RMAN> restore archivelog high logseq 5;
三:如果想改变恢复到另外路径下 则可用下面语句
set archivelog destination to 'd:\backup';
RMAN> run
2> {allocate channel ci type disk;
3> set archivelog destination to 'd:\backup';
4> restore archivelog all;
5> release channel ci;
6> }
四,使用rman 检测坏块,也可以输出数据文件包含的各种类型数据块数。
backup validate datafile 1;
backup validate datafile 2;
backup validate database;
report obsolete;
configure archivelog deletion policy to applied on standby;
configure archivelog deletion policy to backed up 3 times to device type disk;
2.9 mandatory 参数重要性
alter system set log_archive_Dest_4='location=d:\app\arch3 mandatory';
2.10 rman recover使用的归档日志选取
1 备份集中的归档日志备份集进行restore时按照参数log_archive_Dest_1进行restore并注册到控制文件中进行使用归档。
2 直接将归档日志catalog到备份集中进行应用归档
RMAN> restore archivelog from sequence 15;
启动 restore 于 24-3月 -16
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=15
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=16
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=17
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=18
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=19
通道 ORA_DISK_1: 正在读取备份片段 D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\1VR19VTV_1_1
通道 ORA_DISK_1: 段句柄 = D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\1VR19VTV_1_1 标记 = TAG20160324T163055
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
完成 restore 于 24-3月 -16
RMAN> list archivelog all;
db_unique_name 为 PROD 的数据库的归档日志副本列表
=====================================================================
关键字 线程序列 S 时间下限
------- ---- ------- - ----------
422 1 15 A 23-3月 -16
名称: D:\APP\ARCH1\ARC0000000015_0907028096.0001
424 1 16 A 23-3月 -16
名称: D:\APP\ARCH1\ARC0000000016_0907028096.0001
421 1 17 A 23-3月 -16
名称: D:\APP\ARCH1\ARC0000000017_0907028096.0001
423 1 18 A 24-3月 -16
名称: D:\APP\ARCH1\ARC0000000018_0907028096.0001
420 1 19 A 24-3月 -16
名称: D:\APP\ARCH1\ARC0000000019_0907028096.0001
RMAN>