RMAN中include current conrtrolfile在9i和10g的不同

9i完全备份不包含最新控制文件导致 RMAN-06023的解决方案[@more@]
现在我们在来看一下9i中同样的情况
(1)进行全库的备份
RMAN> run{
2> allocate channel C1 device type disk;
3> backup full database format 'E:%U.dbf' include current controlfile;
4> sql 'alter system archive log current';
5> release channel C1;
6> }
?
正在使用目标数据库控制文件替代恢复目录
分配的通道: C1
通道 C1: sid=16 devtype=DISK
?
启动 backup 05-4 -07
通道 C1: 正在启动 full 数据文件备份集
通道 C1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT9.2.0ORADATATEST9ISYSTEM01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT9.2.0ORADATATEST9IUNDOTBS01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT9.2.0ORADATATEST9IEXAMPLE01.DBF
输入数据文件 fno=00010 name=D:ORACLEPRODUCT9.2.0ORADATATEST9IXDB01.DBF
输入数据文件 fno=00006 name=D:ORACLEPRODUCT9.2.0ORADATATEST9IINDX01.DBF
输入数据文件 fno=00009 name=D:ORACLEPRODUCT9.2.0ORADATATEST9IUSERS01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT9.2.0ORADATATEST9ICWMLITE01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT9.2.0ORADATATEST9IDRSYS01.DBF
输入数据文件 fno=00007 name=D:ORACLEPRODUCT9.2.0ORADATATEST9IODM01.DBF
输入数据文件 fno=00008 name=D:ORACLEPRODUCT9.2.0ORADATATEST9ITOOLS01.DBF
通道 C1: 正在启动段 1 05-4 -07
通道 C1: 已完成段 1 05-4 -07
handle=E:1IEDNTH_1_1.DBF comment=NONE
通道 C1: 备份集已完成, 经过时间:00:01:27
完成 backup 05-4 -07
?
sql 语句: alter system archive log current
?
释放的通道: C1
这里我们可以看到 9i 10g include current controlfile 执行方面的不同, 10g 中控制文件和数据文件放在不同的备份集中,而 9i 中是放在同一个备份集中的,从而增加了恢复的难度。
(2) 模拟删除掉所有的数据文件和控制文件
(3) 从控制文件的备份中恢复控制文件
RMAN> restore controlfile from 'E:1IEDNTH_1_1.DBF';
?
启动 restore 05-4 -07
?
正在使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在恢复控制文件
通道 ORA_DISK_1: 恢复完成
正在复制控制文件
输出文件名=D:ORACLEPRODUCT9.2.0ORADATATEST9ICONTROL01.CTL
输出文件名=D:ORACLEPRODUCT9.2.0ORADATATEST9ICONTROL02.CTL
输出文件名=D:ORACLEPRODUCT9.2.0ORADATATEST9ICONTROL03.CTL
完成 restore 05-4 -07
(4)mount,restore,recover 以及 resetlogs
RMAN> alter database mount;
?
数据库已加载
RMAN> restore database;
?
启动 restore 05-4 -07
?
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 04/05/2007 15:26:21
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 10 found to restore
RMAN-06023: no backup or copy of datafile 9 found to restore
RMAN-06023: no backup or copy of datafile 8 found to restore
RMAN-06023: no backup or copy of datafile 7 found to restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore
RMAN-06023: no backup or copy of datafile 4 found to restore
RMAN-06023: no backup or copy of datafile 3 found to restore
RMAN-06023: no backup or copy of datafile 2 found to restore
RMAN-06023: no backup or copy of datafile 1 found to restore
现在我们看到 9i 10g 在这一点上的最大的不同,在 9i 中备份的控制文件是不包含本次备份的信息的。而 10g 是包含的因此可以轻松恢复。 9i 中需要用到 dbms_backup_restore 包。
sys@TEST9I> column name format a55
sys@TEST9I> select file#,name from v$datafile;
?
???? FILE# NAME
---------- -------------------------------------------------------
???????? 1 D:ORACLEPRODUCT9.2.0ORADATATEST9ISYSTEM01.DBF
???????? 2 D:ORACLEPRODUCT9.2.0ORADATATEST9IUNDOTBS01.DBF
???????? 3 D:ORACLEPRODUCT9.2.0ORADATATEST9ICWMLITE01.DBF
???????? 4 D:ORACLEPRODUCT9.2.0ORADATATEST9IDRSYS01.DBF
???????? 5 D:ORACLEPRODUCT9.2.0ORADATATEST9IEXAMPLE01.DBF
???????? 6 D:ORACLEPRODUCT9.2.0ORADATATEST9IINDX01.DBF
???????? 7 D:ORACLEPRODUCT9.2.0ORADATATEST9IODM01.DBF
???????? 8 D:ORACLEPRODUCT9.2.0ORADATATEST9ITOOLS01.DBF
???????? 9 D:ORACLEPRODUCT9.2.0ORADATATEST9IUSERS01.DBF
??????? 10 D:ORACLEPRODUCT9.2.0ORADATATEST9IXDB01.DBF
?
sys@TEST9I> DECLARE
? 2? devtype varchar2(256);
? 3? done boolean;
4? BEGIN
-- 分配 channel
5? devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'C1');
-- 开始恢复 datafile
6? sys.dbms_backup_restore.restoreSetDatafile;
-- 指明 datafile file# name( v$datafile 中可以查到 )
? 7? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9ISYSTEM01.DBF');
? 8 ?sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9IUNDOTBS01.DBF');
? 9 ?sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9ICWMLITE01.DBF');
?10? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9IDRSYS01.DBF');
?11? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9IEXAMPLE01.DBF');
?12? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9IINDX01.DBF');
?13? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>07,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9IODM01.DBF');
?14? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>08,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9ITOOLS01.DBF');
?15? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>09,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9IUSERS01.DBF');
?16? sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>10,toname=>'D:ORACLEPRODUCT9.2.0ORADATA
TEST9IXDB01.DBF');
-- 指明从那个备份集恢复
?17 ?sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'E:1IEDNTH_1_1.DBF', params=>nu
ll);
-- 释放 channel
?18? sys.dbms_backup_restore.deviceDeallocate;
?19? END;
?20? /
?
PL/SQL 过程已成功完成。
?
--手动指明需要的归档
--红色的是输入的部分
sys@TEST9I> Recover database using backup controlfile until cancel;
ORA-00279: 更改 194912 ( 04/05/2007 15:05:21 生成) 对于线程 1 是必需的
?
指定日志: {=suggested | filename | AUTO | CANCEL}
D:oracleproduct9.2.0oradatatest9iarchive1_1.DBF
ORA-00279: 更改 195153 ( 04/05/2007 15:06:48 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:ORACLEPRODUCT9.2.0ORADATATEST9IARCHIVE1_2.DBF
ORA-00280: 更改 195153 对于线程 1 是按序列 # 2 进行的
ORA-00278: 此恢复不再需要日志文件 'D:oracleproduct9.2.0oradatatest9iarchive1_1.DBF'
?
指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
?
sys@TEST9I> alter database open resetlogs;
?
数据库已更改。

RMAN中include current conrtrolfile在9i和10g的不同(1)
itpub上看到一个关于数据文件和控制文件完全丢失的帖子,自己做了一点实验过程如下
(原帖http://www.itpub.net/showthread.php?s=&threadid=244345&perpage=10&pagenumber=1)
首先我们看一下 10g 的情况
(1) 进行全库的备份
?
RMAN> run{
2> allocate channel C1 device type disk;
3> backup full database tag 'FULLBACKUP' format 'E:FULL_%U.dbf' include current controlfile;
4> sql 'alter system archive log current';
5> release channel C1;
6> }
?
分配的通道: C1
通道 C1: sid=143 devtype=DISK
?
启动 backup 05-4 -07
通道 C1: 启动全部数据文件备份集
通道 C1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.2.0ORADATATESTSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.2.0ORADATATESTSYSAUX01.DBF
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.2.0ORADATATESTUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.2.0ORADATATESTUSERS01.DBF
通道 C1: 正在启动段 1 05-4 -07
通道 C1: 已完成段 1 05-4 -07
段句柄=E:FULL_04IED8O1_1_1.DBF 标记=FULLBACKUP 注释=NONE
通道 C1: 备份集已完成, 经过时间:00:00:54
通道 C1: 启动全部数据文件备份集
通道 C1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
通道 C1: 正在启动段 1 05-4 -07
通道 C1: 已完成段 1 05-4 -07
段句柄=E:FULL_05IED8PN_1_1.DBF 标记=FULLBACKUP 注释=NONE
通道 C1: 备份集已完成, 经过时间:00:00:02
完成 backup 05-4 -07
?
sql 语句: alter system archive log current
?
释放的通道: C1
?
(2) 模拟删除掉所有的数据文件和控制文件,此时 startup 肯定会报错的
?
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
?
F:fileTurningSQLnewuse>sqlplus sys/oracle@test as sysdba
?
SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 4 5 10:51:20 2007
?
Copyright (c) 1982, 2006, Oracle.? All Rights Reserved.
?
已连接到空闲例程。
?
idle> startup
ORACLE 例程已经启动。
?
Total System Global Area? 167772160 bytes
Fixed Size????????????????? 1289508 bytes
Variable Size?????????? ??104858332 bytes
Database Buffers?????????? 58720256 bytes
Redo Buffers??????????????? 2904064 bytes
ORA-00205: error in identifying controlfile, check alert log for more info
?
(3) 从控制文件的备份中恢复控制文件
?
可以用 restore controlfile from ' 路径文件名 ';
如果启动了自动备份也可以使用 restore controlfile from autobackup;
?
RMAN> connect target sys/oracle@test
?
连接到目标数据库: TEST (未装载)
使用目标数据库控制文件替代恢复目录
?
RMAN> restore controlfile from 'E:FULL_05IED8PN_1_1.DBF';
?
启动 restore 05-4 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
?
通道 ORA_DISK_1: 正在复原控制文件
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:06
输出文件名=D:ORACLEPRODUCT10.2.0ORADATATESTCONTROL01.CTL
输出文件名=D:ORACLEPRODUCT10.2.0ORADATATESTCONTROL02.CTL
输出文件名=D:ORACLEPRODUCT10.2.0ORADATATESTCONTROL03.CTL
完成 restore 05-4 -07
?
(4)mount,restore,recover 以及 resetlogs
?
RMAN> alter database mount;
?
数据库已装载
释放的通道: ORA_DISK_1
?
此时最好重新登录一下 rman, 我在这里遇到错误 , 重新登录问题解决 , 不知道是什么问题
?
?
RMAN> restore database;
?
启动 restore 05-4 -07
启动 implicit crosscheck backup 05-4 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
已交叉检验的 3 对象
完成 implicit crosscheck backup

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/82387/viewspace-1016600/,如需转载,请注明出处,否则将追究法律责任。

user_pic_default.png
请登录后发表评论 登录
全部评论
<%=items[i].createtime%>

<%=items[i].content%>

<%if(items[i].items.items.length) { %>
<%for(var j=0;j
<%=items[i].items.items[j].createtime%> 回复

<%=items[i].items.items[j].username%>   回复   <%=items[i].items.items[j].tousername%><%=items[i].items.items[j].content%>

<%}%> <%if(items[i].items.total > 5) { %>
还有<%=items[i].items.total-5%>条评论 ) data-count=1 data-flag=true>点击查看
<%}%>
<%}%>
<%}%>

转载于:http://blog.itpub.net/82387/viewspace-1016600/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值