- 浏览: 244054 次
最新评论
五、rman删除
delete命令
删除相关的备份集或镜像副本的物理文件,同时将删除标记DELETE更新到控制文件,如果使用恢复目录,则是清除恢复目录内的备份集。
delete (archivelog, backuppiece, backupset, backup, controlfilecopy, copy, datafilecopy, expired, force,
foreign, global, noprompt, obsolete, proxy, script)
RMAN> delete backupset;
RMAN> delete backupset n;
RMAN> delete obsolete ;
RMAN> delete obsolete redundancy 2;
RMAN> delete noprompt copy;
RMAN> delete noprompt backupset tag TAG20101016T143521; --prompt 提示 ->noprompt 不提示
RMAN> delete obsolete recovery window of 7 days;
RMAN> delete expired backupset;
RMAN> delete expired copy;
RMAN> delete expired archivelog all;
RMAN> delete archivelog until time 'sysdate-5';
举例:
RMAN> delete backupset 17;
RMAN> delete backupset tag TINADB1218_0;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
20 20 1 1 AVAILABLE DISK /orabak/db_0_tinadb_0mqp4b88_1_1
23 23 1 1 AVAILABLE DISK /orabak/db_0_tinadb_0pqp4bou_1_1
Do you really want to delete the above objects (enter YES or NO)? ---需要输入yes确认
RMAN> delete noprompt backupset tag TINADB1218_0; ---不确认直接删除
六、rman恢复
1)恢复spfile
RMAN>restore spfile to '/u01/oracle/testspfile.ora' from autobackup;
RMAN>restore spfile from '/u01/oracle/TINADB/autobackup/2015_12_17/o1_mf_s_898707140_c74xy47h_.bkp'
2)恢复control file
RMAN> set dbid=1669126943
RMAN> restore controlfile to '/u01/oradata/tinadb/control01.ctl' from autobackup;
RMAN> restore controlfile from autobackup until time "to_date('2015-12-18 15:00:00','yyyy/mm/dd hh24:mi:ss')";
---这不是备份时的精确时间,是指这时间点之前最近一次的控制文件的备份。
3)恢复archive log
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;
4)恢复数据库
RMAN> restore database;
RMAN> recover database until time "TO_DATE('2015-12-18 15:00:00','YYYY-MM-DD HH24:MI:SS')";
七、rman report
report用于判断数据库当前可恢复状态、以及数据库已有备份的信息。
最常使用的是report obsolete; report schema;
report {device, need, obsolete, schema, unrecoverable}
report schema;---报告数据库模式
report obsolete;---报告已丢弃的备份集(配置了保留策略)。
report unrecoverable;---报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已经过期)
report need backup;---报告需要备份的数据文件(根据条件不同)
report need backup days=3;
--最近三天没有备份的数据文件(如果出问题的话,这些数据文件将需要最近3天的归档日志才能恢复)
report need backup incremental=3;
--需要多少个增量备份文件才能恢复的数据文件。(如果出问题,这些数据文件将需要3个增量备份才能恢复)
report need backup redundancy=3;
--报告出冗余次数小于3的数据文件
--例如数据文件中包含2个数据文件system01.dbf和users01.dbf.
--在3次或都3次以上备份中都包含system01.dbf这个数据文件,而users01.dbf则小于3次
--那么,报告出来的数据文件就是users01.dbf
--即,报告出数据库中冗余次数小于 n 的数据文件
report need backup recovery window of 2 days;
--报告出恢复需要2天归档日志的数据文件
八、crosscheck命令
用于检验存储仓库中的备份集或镜像副本,执行改命令后,将更新存储仓库中的刚刚校验的对象状态,便于后续操作处理。
RMAN备份校验是的几种状态:
Expired:对象不存在于磁盘或磁带。当一个备份集处于expired状态,则该备份集中所有的备份片同样处于expired状态。
Available:对象处于可用状态。当一个备份集可用,则改备份集内的所有备份片同样可用。
Unavailable:对象处于不可用状态。当一个备份可不用,则改备份集内的所有备份片同样不可用
RMAN> crosscheck backupset;
RMAN> crosscheck copy;
RMAN> crosscheck backup of controlfile;
RMAN> crosscheck backup of archivelog all;
RMAN> crosscheck backup of datafile 1,2;
RMAN> crosscheck backup of tablespace sysaux,system;
RMAN> crosscheck backup completed between '13-OCT-10' and '23-OCT-10';
RMAN> crosscheck backupset 1067,1068;
九、validate命令
验证一个备份集内的数据的完整性。RMAN扫描备份集得所有备份片,并检查校验和,验证其内容是否可以成功还原,
validate是较crosscheck更高一级的验证操作,crosscheck仅仅是检查备份集的头部信息,检验文件的存在性,validate验证数据的有效性。
RMAN> validate backupset <primary key> [check logical]
十、change
1、改变备份集状态
可用CHANGE BACKUPSET .. UNAVAILABLE/AVAILABLE 来改变一个备份集的状态。
RMAN>CHANGE BACKUPSET 22 UNAVAILABLE
2、改变映像副本状态
数据文件:CHANGE DATAFILECOPY .. AVAILABLE/UNAVAILABLE
控制文件:CHANGE CONTROLFILECOPY .. AVAILABLE/UNAVAILABLE
归档日志:CHANGE ARCHIVELOG .. AVAILABLE/UNAVAILABLE
例如:
RMAN>CHANGE DATAFILECOPY 'D:\BACKUP\DEMO_37.BAK' UNAVAILABLE;
3、建立长期备份
长期备份是指被长期保留的备份文件,使用长期备份的目的是为了可以将数据库恢复到过去的特定时间点。当社顶了长期备份之后,RMAN会从设备冗余策略中
免除该备份文件,也就是说,长期备份文件不会被标记为陈旧备份。
命令:CHANGE .. KEEP/NOKEEP
(1)使备份集156永久保留
RMAN>CHANGE BACKUPSET 156 KEEP FOREVER LOGS;
(2)使备份集198保留60天
RMAN>CHANGE BACKUPSET 198 KEEP UNTIL TIME 'SYSDATE+60' LOGS;
(3)免除备份集156的保留期限
RMAN>CHANGE BACKUPSET 156 NOKEEP
十一、常在run块中运行的命令
1)给数据文件指定新的路径和名称,例如:
rman>run {
allocate channel c1 device type disk;
set newname for datafile 4 to 'D:\oracle\bobnew\users01.dbf';
}
2)设置恢复到的时间点或SCN,例如:
rman>run {
allocate channel c1 device type disk;
set until time "to_date('2013-12-27 10:33:05','yyyy-mm-dd hh24:mi:ss') ";
...
}
3)定义备份片段的冗余数:
rman>run {
allocate channel c1 device type disk;
set backup copies 3;
...
}
4)指定resetore/recover命令产生的归档文件的存储路径,默认情况下归档文件会在log_archive_dest_1指定路径下,如果通过
set archivelog destination to指定后,则归档文件产生与set指定的路径下
rman>run {
allocate channel c1 device type disk;
set archivelog destination to '新路径';
...
}
十二、如何正确地删除Archivelog:
Archivelog并不能直接得从OS层直接物理删除,因为archivelog的相关信息是记录在controlfile中的,
当物理删除后不会改变controlfile的设置。并且在查询相关的动态视图(例如v$archived_log)时,该部分日志仍然标注为存在。
也就是说Oracle并不认为这些日志被删除了,所以在删除archivelog的时候,需要我们在其他地方做一些设置。
1)使用RMAN清楚物理删除后的记录
可以使用RMAN来删除archivelog,具体可以按以下步骤操作:
1、物理删除archivelog
2、进入RMAN
3、crosscheck archivelog all;
4、delete expried archivelog all;
这样就在一些Oracle的记录中查不到相应的archivelog记录了。
2)直接使用RMAN删除archivelog
其实在RMAN中是可以使用命令直接将ARCHIVELOG删除的,命令如下:
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
表示删除7天以前的所有archivelog,但是这个命令的缺点是无法对archivelog进行细致的划分。
3)删除N天以前的归档日志,有两个命令:
delete archivelog until time 'sysdate-N'
delete archivelog all completed before 'sysdate-N'
区别已经很明显:
list archivelog until time 'sysdate-1'; 此时是按照归档日志开始时间即fisrt_time作为截止时间
list archivelog all completed before 'sysdate-1' 是按照归档日志完成时间即completion_time作为截止时间
试想如果删除归档日志,还是采用delete archivelog all completed before 'sysdate-N'
十三、备份相关的动态性能视图及监控
1.相关视图
v$backup_files
v$backup_set
v$backup_piece
v$backup_redolog
v$backup_spfile
v$backup_device
v$rman_configuration
v$archived_log
v$backup_corruption
v$copy_corruption
v$database_block_corruption
v$backup_datafile
2.查看rman完整的进度
SQL> select sid,serial#,context,sofar,totalwork,
2 round(sofar/totalwork*100,2) "% Complete"
3 from v$session_longops
4 where opname like 'RMAN:%'
5 and opname not like 'RMAN:aggregate%'
6 and totalwork!=0;
3.通过如下SQL获得rman用来完成备份操作的服务进程的SID与SPID信息:
select sid, spid, client_info
from v$process p, v$session s
where p.addr = s.paddr
and client_info like '%id=rman%'
十四、oracle10g 中rman的增强功能catalog start with---将备份集注册到控制文件
RMAN> catalog start with '/orabak/tinadb';
通过注册的形式,可以让db读取到我们的备份集,也可通过此方式异地进行备份集恢复。
常见报错:RMAN-08137: WARNING: archive log not deleted as it is still need
archived log file name=+FRA_DG/omsdb/archivelog/2013_12_31/thread_1_seq_78149.4167.835588207 thread=1 sequence=78149
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA_DG/omsdb/archivelog/2013_12_31/thread_1_seq_78150.15705.835589103 thread=1 sequence=78150
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA_DG/omsdb/archivelog/2013_12_31/thread_1_seq_78151.8949.835590003 thread=1 sequence=78151
发现有个告警信息,通过查看备份日志,发现:
released channel: ORA_DISK_1
released channel: ORA_DISK_2
piece handle=/ora01/db_bak/9rmqc9u3_1_1 tag=TAG20111030T035751 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:04:57
RMAN-08137: WARNING: archive log not deleted as it is still needed
经过研究后确认是由于这个数据库上配置了oracle stream replication,因为在备份完后进行删除时,
这个归档日志还没有被capture process解析完,因此就不能删除,出这样的告警。
尝试删除归档日志,oracle提示这些归档日志还要用到standby数据库上面,不让删除,
这个特点不错,可以避免由于没有同步standby而误删除archivelog的情况。
要删除,需要加上FORCE删除就可以了。
RMAN> delete noprompt force archivelog all;
这种方法不可取
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
old RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY;
new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
new RMAN configuration parameters are successfully stored
RMAN-08591: WARNING: invalid archived log deletion policy
然后又改回去:
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO all standby;
SQL> show parameter log_archive
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string DG_CONFIG=(omsdb,omsstd)
log_archive_dest string
log_archive_dest_1 string location=USE_DB_RECOVERY_FILE_
DEST
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_17 string
log_archive_dest_18 string
log_archive_dest_19 string
log_archive_dest_2 string service=cnsz02_omsdb_01 lgwr a
sync noaffirm reopen=60 DB_UNI
QUE_NAME=omsdb
这是因为有一个dg名为omsstd的没有了,不存在了,all stantdby就会报错,说还在用,日志不能删
这个log_archive_config 参数一旦设置了,就一定要所有的dg都同样设置。
应该是可以在线修改的,alter system set log_archive_config='',scope=both;
主备库都需要修改。
delete命令
删除相关的备份集或镜像副本的物理文件,同时将删除标记DELETE更新到控制文件,如果使用恢复目录,则是清除恢复目录内的备份集。
delete (archivelog, backuppiece, backupset, backup, controlfilecopy, copy, datafilecopy, expired, force,
foreign, global, noprompt, obsolete, proxy, script)
RMAN> delete backupset;
RMAN> delete backupset n;
RMAN> delete obsolete ;
RMAN> delete obsolete redundancy 2;
RMAN> delete noprompt copy;
RMAN> delete noprompt backupset tag TAG20101016T143521; --prompt 提示 ->noprompt 不提示
RMAN> delete obsolete recovery window of 7 days;
RMAN> delete expired backupset;
RMAN> delete expired copy;
RMAN> delete expired archivelog all;
RMAN> delete archivelog until time 'sysdate-5';
举例:
RMAN> delete backupset 17;
RMAN> delete backupset tag TINADB1218_0;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
20 20 1 1 AVAILABLE DISK /orabak/db_0_tinadb_0mqp4b88_1_1
23 23 1 1 AVAILABLE DISK /orabak/db_0_tinadb_0pqp4bou_1_1
Do you really want to delete the above objects (enter YES or NO)? ---需要输入yes确认
RMAN> delete noprompt backupset tag TINADB1218_0; ---不确认直接删除
六、rman恢复
1)恢复spfile
RMAN>restore spfile to '/u01/oracle/testspfile.ora' from autobackup;
RMAN>restore spfile from '/u01/oracle/TINADB/autobackup/2015_12_17/o1_mf_s_898707140_c74xy47h_.bkp'
2)恢复control file
RMAN> set dbid=1669126943
RMAN> restore controlfile to '/u01/oradata/tinadb/control01.ctl' from autobackup;
RMAN> restore controlfile from autobackup until time "to_date('2015-12-18 15:00:00','yyyy/mm/dd hh24:mi:ss')";
---这不是备份时的精确时间,是指这时间点之前最近一次的控制文件的备份。
3)恢复archive log
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;
4)恢复数据库
RMAN> restore database;
RMAN> recover database until time "TO_DATE('2015-12-18 15:00:00','YYYY-MM-DD HH24:MI:SS')";
七、rman report
report用于判断数据库当前可恢复状态、以及数据库已有备份的信息。
最常使用的是report obsolete; report schema;
report {device, need, obsolete, schema, unrecoverable}
report schema;---报告数据库模式
report obsolete;---报告已丢弃的备份集(配置了保留策略)。
report unrecoverable;---报告当前数据库中不可恢复的数据文件(即没有这个数据文件的备份、或者该数据文件的备份已经过期)
report need backup;---报告需要备份的数据文件(根据条件不同)
report need backup days=3;
--最近三天没有备份的数据文件(如果出问题的话,这些数据文件将需要最近3天的归档日志才能恢复)
report need backup incremental=3;
--需要多少个增量备份文件才能恢复的数据文件。(如果出问题,这些数据文件将需要3个增量备份才能恢复)
report need backup redundancy=3;
--报告出冗余次数小于3的数据文件
--例如数据文件中包含2个数据文件system01.dbf和users01.dbf.
--在3次或都3次以上备份中都包含system01.dbf这个数据文件,而users01.dbf则小于3次
--那么,报告出来的数据文件就是users01.dbf
--即,报告出数据库中冗余次数小于 n 的数据文件
report need backup recovery window of 2 days;
--报告出恢复需要2天归档日志的数据文件
八、crosscheck命令
用于检验存储仓库中的备份集或镜像副本,执行改命令后,将更新存储仓库中的刚刚校验的对象状态,便于后续操作处理。
RMAN备份校验是的几种状态:
Expired:对象不存在于磁盘或磁带。当一个备份集处于expired状态,则该备份集中所有的备份片同样处于expired状态。
Available:对象处于可用状态。当一个备份集可用,则改备份集内的所有备份片同样可用。
Unavailable:对象处于不可用状态。当一个备份可不用,则改备份集内的所有备份片同样不可用
RMAN> crosscheck backupset;
RMAN> crosscheck copy;
RMAN> crosscheck backup of controlfile;
RMAN> crosscheck backup of archivelog all;
RMAN> crosscheck backup of datafile 1,2;
RMAN> crosscheck backup of tablespace sysaux,system;
RMAN> crosscheck backup completed between '13-OCT-10' and '23-OCT-10';
RMAN> crosscheck backupset 1067,1068;
九、validate命令
验证一个备份集内的数据的完整性。RMAN扫描备份集得所有备份片,并检查校验和,验证其内容是否可以成功还原,
validate是较crosscheck更高一级的验证操作,crosscheck仅仅是检查备份集的头部信息,检验文件的存在性,validate验证数据的有效性。
RMAN> validate backupset <primary key> [check logical]
十、change
1、改变备份集状态
可用CHANGE BACKUPSET .. UNAVAILABLE/AVAILABLE 来改变一个备份集的状态。
RMAN>CHANGE BACKUPSET 22 UNAVAILABLE
2、改变映像副本状态
数据文件:CHANGE DATAFILECOPY .. AVAILABLE/UNAVAILABLE
控制文件:CHANGE CONTROLFILECOPY .. AVAILABLE/UNAVAILABLE
归档日志:CHANGE ARCHIVELOG .. AVAILABLE/UNAVAILABLE
例如:
RMAN>CHANGE DATAFILECOPY 'D:\BACKUP\DEMO_37.BAK' UNAVAILABLE;
3、建立长期备份
长期备份是指被长期保留的备份文件,使用长期备份的目的是为了可以将数据库恢复到过去的特定时间点。当社顶了长期备份之后,RMAN会从设备冗余策略中
免除该备份文件,也就是说,长期备份文件不会被标记为陈旧备份。
命令:CHANGE .. KEEP/NOKEEP
(1)使备份集156永久保留
RMAN>CHANGE BACKUPSET 156 KEEP FOREVER LOGS;
(2)使备份集198保留60天
RMAN>CHANGE BACKUPSET 198 KEEP UNTIL TIME 'SYSDATE+60' LOGS;
(3)免除备份集156的保留期限
RMAN>CHANGE BACKUPSET 156 NOKEEP
十一、常在run块中运行的命令
1)给数据文件指定新的路径和名称,例如:
rman>run {
allocate channel c1 device type disk;
set newname for datafile 4 to 'D:\oracle\bobnew\users01.dbf';
}
2)设置恢复到的时间点或SCN,例如:
rman>run {
allocate channel c1 device type disk;
set until time "to_date('2013-12-27 10:33:05','yyyy-mm-dd hh24:mi:ss') ";
...
}
3)定义备份片段的冗余数:
rman>run {
allocate channel c1 device type disk;
set backup copies 3;
...
}
4)指定resetore/recover命令产生的归档文件的存储路径,默认情况下归档文件会在log_archive_dest_1指定路径下,如果通过
set archivelog destination to指定后,则归档文件产生与set指定的路径下
rman>run {
allocate channel c1 device type disk;
set archivelog destination to '新路径';
...
}
十二、如何正确地删除Archivelog:
Archivelog并不能直接得从OS层直接物理删除,因为archivelog的相关信息是记录在controlfile中的,
当物理删除后不会改变controlfile的设置。并且在查询相关的动态视图(例如v$archived_log)时,该部分日志仍然标注为存在。
也就是说Oracle并不认为这些日志被删除了,所以在删除archivelog的时候,需要我们在其他地方做一些设置。
1)使用RMAN清楚物理删除后的记录
可以使用RMAN来删除archivelog,具体可以按以下步骤操作:
1、物理删除archivelog
2、进入RMAN
3、crosscheck archivelog all;
4、delete expried archivelog all;
这样就在一些Oracle的记录中查不到相应的archivelog记录了。
2)直接使用RMAN删除archivelog
其实在RMAN中是可以使用命令直接将ARCHIVELOG删除的,命令如下:
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
表示删除7天以前的所有archivelog,但是这个命令的缺点是无法对archivelog进行细致的划分。
3)删除N天以前的归档日志,有两个命令:
delete archivelog until time 'sysdate-N'
delete archivelog all completed before 'sysdate-N'
区别已经很明显:
list archivelog until time 'sysdate-1'; 此时是按照归档日志开始时间即fisrt_time作为截止时间
list archivelog all completed before 'sysdate-1' 是按照归档日志完成时间即completion_time作为截止时间
试想如果删除归档日志,还是采用delete archivelog all completed before 'sysdate-N'
十三、备份相关的动态性能视图及监控
1.相关视图
v$backup_files
v$backup_set
v$backup_piece
v$backup_redolog
v$backup_spfile
v$backup_device
v$rman_configuration
v$archived_log
v$backup_corruption
v$copy_corruption
v$database_block_corruption
v$backup_datafile
2.查看rman完整的进度
SQL> select sid,serial#,context,sofar,totalwork,
2 round(sofar/totalwork*100,2) "% Complete"
3 from v$session_longops
4 where opname like 'RMAN:%'
5 and opname not like 'RMAN:aggregate%'
6 and totalwork!=0;
3.通过如下SQL获得rman用来完成备份操作的服务进程的SID与SPID信息:
select sid, spid, client_info
from v$process p, v$session s
where p.addr = s.paddr
and client_info like '%id=rman%'
十四、oracle10g 中rman的增强功能catalog start with---将备份集注册到控制文件
RMAN> catalog start with '/orabak/tinadb';
通过注册的形式,可以让db读取到我们的备份集,也可通过此方式异地进行备份集恢复。
常见报错:RMAN-08137: WARNING: archive log not deleted as it is still need
archived log file name=+FRA_DG/omsdb/archivelog/2013_12_31/thread_1_seq_78149.4167.835588207 thread=1 sequence=78149
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA_DG/omsdb/archivelog/2013_12_31/thread_1_seq_78150.15705.835589103 thread=1 sequence=78150
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=+FRA_DG/omsdb/archivelog/2013_12_31/thread_1_seq_78151.8949.835590003 thread=1 sequence=78151
发现有个告警信息,通过查看备份日志,发现:
released channel: ORA_DISK_1
released channel: ORA_DISK_2
piece handle=/ora01/db_bak/9rmqc9u3_1_1 tag=TAG20111030T035751 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:04:57
RMAN-08137: WARNING: archive log not deleted as it is still needed
经过研究后确认是由于这个数据库上配置了oracle stream replication,因为在备份完后进行删除时,
这个归档日志还没有被capture process解析完,因此就不能删除,出这样的告警。
尝试删除归档日志,oracle提示这些归档日志还要用到standby数据库上面,不让删除,
这个特点不错,可以避免由于没有同步standby而误删除archivelog的情况。
要删除,需要加上FORCE删除就可以了。
RMAN> delete noprompt force archivelog all;
这种方法不可取
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
old RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY;
new RMAN configuration parameters:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO STANDBY;
new RMAN configuration parameters are successfully stored
RMAN-08591: WARNING: invalid archived log deletion policy
然后又改回去:
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO all standby;
SQL> show parameter log_archive
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string DG_CONFIG=(omsdb,omsstd)
log_archive_dest string
log_archive_dest_1 string location=USE_DB_RECOVERY_FILE_
DEST
log_archive_dest_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_17 string
log_archive_dest_18 string
log_archive_dest_19 string
log_archive_dest_2 string service=cnsz02_omsdb_01 lgwr a
sync noaffirm reopen=60 DB_UNI
QUE_NAME=omsdb
这是因为有一个dg名为omsstd的没有了,不存在了,all stantdby就会报错,说还在用,日志不能删
这个log_archive_config 参数一旦设置了,就一定要所有的dg都同样设置。
应该是可以在线修改的,alter system set log_archive_config='',scope=both;
主备库都需要修改。
发表评论
-
ETL工具--kettle简介
2016-02-24 11:21 0oracle ETL工具---数据迁移 常用的有:OWB(o ... -
oracle 游标实例
2015-12-31 17:23 1228oracle游标 游标-----内存 ... -
10053事件分析
2015-12-25 17:37 8211)10053介绍: 10053 事件是oracle 提供的用 ... -
oracle绑定变量学习
2015-12-25 17:01 1624绑定变量(binding variable) ... -
oracle 绑定变量
2015-12-24 17:26 0关键词: 绑定变量(binding variable),共享池 ... -
oracle插入大量数据
2015-12-23 17:35 1444oracle插入大量数据 1.生 ... -
ORA-03113:end-of-file on communication channel
2015-12-23 14:32 1182测试上面的一个库 plsql报错:shared memory ... -
oracle分区表【转】
2015-12-23 14:20 467oracle分区表 1.表空间及 ... -
迁移数据文件到ASM【转】
2015-12-23 11:53 8041.迁移数据文件到ASM 1) ... -
adrci命令
2015-12-23 11:46 3119一、adrci说明 在oracle11g中,dump ... -
用户+角色+权限
2015-12-21 17:58 929角色与用户权限的学习 ... -
oracle database link
2015-12-21 17:08 912目前我的数据库里只有tinadb一个实例,要创建db link ... -
oracle回收站
2015-12-21 14:22 463oracle回收站 1.drop table books; ... -
使用nid修改sid和dbname
2015-12-21 15:29 815如非必要,不建议在生产库上对dbid进行修改 1、修改dbi ... -
rman模拟故障恢复实验
2015-12-18 16:08 1196补充1:restore database和recover da ... -
rman命令学习-tina(上)
2015-12-18 16:06 924RMAN学习-tina rman的功能非常强大,下面我们来一 ... -
oracle profile介绍
2015-12-16 17:34 657profile文件的介绍: Oracle系统中的profi ... -
oracle缩小表空间
2015-12-18 16:59 1796oracle缩小表空间: oracle常用的此类命令Alte ... -
oracle数据库的启动和关闭【转】
2015-12-16 15:02 1181数据库的启动和关闭 Or ... -
oracle的主要进程
2015-12-16 14:21 1309[size=small]oracle的主要进程 Oracle实 ...
相关推荐
超经典 RMAN备份恢复--RAC环境数据库的备份
超经典 RMAN备份恢复--RAC环境数据库备份(一)
要使用RMAN进行备份,首先需要确保数据库处于归档模式下。归档模式意味着数据库会保存所有对数据库所做的更改的记录,这些记录被保存在归档重做日志中。 - 通过SQL*Plus启动并以DBA身份登录。 - 立即关闭数据库实例...
### Oracle Rman命令详解 #### 一、RMAN命令类型及使用场景 ...此外,通过使用特殊命令和子句,可以进一步增强RMAN的功能性和灵活性,使得数据库管理员能够在不同的场景下有效地管理和维护Oracle数据库。
记录一次linux向windows,使用rman全库迁移数据库的操作,百分百可行(需要源和目标同版本)
本文针对没有备份情况下,如何利用Oracle数据库本身的特性来恢复因rm -rf命令误删的数据库文件进行了详细讲解。 标题“【RMAN】rm -rf误操作的恢复过程.pdf”意味着本文将集中讨论如何在没有备份的情况下,使用...
RMAN提供了两种方式进入控制台:一种是在命令行直接输入`rman`命令,然后连接目标数据库;另一种是通过指定目标数据库和恢复目录的用户和密码。连接的目标数据库是你要备份或恢复的数据库,而恢复目录数据库则是可选...
### RMAN常用命令详解 #### 1. 连接数据库 - **命令**: `connect target /` - **功能**: 此命令用于连接到目标数据库。`target`后面通常跟具体的数据库用户,例如`sys`或者特定的恢复管理器(RMAN)用户。在本例中,...
《[三思笔记]一步一步学rman(02)-rman命令知多少.doc》 《[三思笔记]一步一步学rman(03)-rman备份演练初级篇.doc》 《[三思笔记]一步一步学rman(04)-rman备份演练进阶篇.doc》 《[三思笔记]一步一步学rman(05)-rman...
这条命令将备份名为 `system` 的表空间到指定路径 `/backup/nicholas/` 下,备份文件将以 `%d_%s.bak` 的格式命名,其中 `%d` 表示日期,`%s` 表示序列号。 ##### 2. 作业命令 作业命令通常包含在一个 `RUN` 块中...
然而,Oracle 12C引入的RMAN `RECOVER TABLE`命令简化了这一过程,允许用户直接从RMAN备份中恢复单个或多个表,极大地节省了时间和资源。 首先,我们来看一下环境准备。在进行RMAN恢复表操作前,需要注意RMAN无法...
7. **step0_set-ORACLE_HOME.bat**:设置Oracle的安装路径,这是Oracle环境配置的关键部分,确保所有命令和工具能找到正确的位置。 8. **step9_create-control.sql**:此SQL脚本可能用于创建或更新控制文件,控制...
RMAN备份命令详解 RMAN(Recovery Manager)是Oracle数据库备份和恢复的工具,提供了多种备份方式和恢复选项。下面是RMAN备份命令的详细解释: 一、切换服务器归档模式 在开始备份之前,需要切换服务器到归档模式...
### RMAN命令在Oracle数据库备份与恢复中的应用 #### RMAN简介 RMAN(Recovery Manager)是Oracle数据库系统提供的一种强大的备份与恢复工具。它主要用于实现对Oracle数据库的完整或部分备份、恢复以及灾难恢复等...
Oracle RMAN 基于 Catalog 配置与使用指南 Oracle RMAN 是 Oracle 自带的备份恢复工具软件,是 DBA 的一个重要工具。RMAN 专门用于数据库的备份、恢复、修复操作,同时自动管理备份。 RMAN 基于 Catalog 配置 ...
二、rman命令知多少 三、rman备份演练初级篇 四、rman备份演练进阶篇 五、rman外传-基础资料篇1 六、实战rman备份 七、rman外传-基础资料篇2 八、演练rman恢复 九、实战rman恢复(1)丢失控制文件的恢复 十、实战rman...
在RAC环境下,备份和恢复策略显得尤为重要,因为数据的安全性和可恢复性直接影响到业务连续性。本文将详细介绍如何使用RMAN(Recovery Manager)来管理ORACLE RAC数据库的备份与恢复。 1. **修改 RAC 数据库的归档...
本套学习资料“一步一步学RMAN进入rman[1].zip”包含了一系列的文档,旨在帮助初学者逐步掌握RMAN的使用方法。 首先,让我们从基础开始。在 "[三思笔记]一步一步学RMAN(01)-进入rman.doc" 文件中,你将了解到如何...
此文档中详解介绍了oracle数据库中关于RMAN命令的详细及其注意事项
【Oracle--Rman学习教程】 Oracle RMAN(Recovery Manager)是Oracle数据库系统中的一个强大工具,主要用于数据库备份、恢复和性能优化。本教程将深入浅出地介绍RMAN的基本概念、操作步骤以及实际应用,旨在帮助...