li
  当前位置:主页 > 备份恢复 > 文章内容
li
恢复之使用非当前控制文件恢复只读表空间
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:10  
本文章共2383字,分2页,当前第1页,快速翻页:
 

如果只读表空间存放在只读物理设置上,那么使用备份的控制文件恢复时可能会报错。


首先做好数据的备份:

SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'F:ORACLEBACKUPTEST20060418CONTROL1.BAK';

数据库已更改。

SQL> ALTER TABLESPACE USERS READ ONLY;

表空间已更改。

SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'F:ORACLEBACKUPTEST20060418CONTROL2.BAK';

数据库已更改。

SQL> HOST ATTRIB R F:ORACLEORADATATESTUSERS01.DBF

SQL> HOST COPY F:ORACLEORADATATEST*.DBF F:ORACLEBACKUPTEST20060418

注意,备份控制文件CONTROL1.BAK包括的USERS表空间状态还不是只读表空间。而备份控制文件CONTROL2.BAK包含的USERS表空间状态为只读。

然后将表空间的数据文件设置为只读,并对数据库进行备份。

对数据库进行一些修改,并手工切换依次日志文件:

SQL> INSERT INTO TEST SELECT * FROM TEST;

已创建6215行。

SQL> COMMIT;

提交完成。

SQL> ALTER SYSTEM SWITCH LOGFILE;

系统已更改。

SQL> INSERT INTO TEST SELECT * FROM TEST;

已创建12430行。

SQL> INSERT INTO TEST SELECT * FROM TEST;

已创建24860行。

SQL> COMMIT;

提交完成。

SQL> ALTER SYSTEM SWITCH LOGFILE;

系统已更改。

SQL> DELETE TEST;

已删除49720行。

SQL> COMMIT;

提交完成。

SQL> ALTER SYSTEM SWITCH LOGFILE;

系统已更改。

SQL> HOST COPY F:ORACLEORADATATEST*.LOG F:ORACLEBACKUPTEST20060418

www.ixdba.net


SQL> HOST COPY F:ORACLEORADATATEST*.CTL F:ORACLEBACKUPTEST20060418

为了恢复操作的可重复性,备份了当前的日志文件和控制文件。

下面尝试利用CONTROL1.BAK和备份的数据文件对数据库进行恢复。

SQL> CONN /@TEST AS SYSDBA
已连接。
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> HOST COPY F:ORACLEBACKUPTEST20060418CONTROL1.BAK F:ORACLEORADATATESTCONTROL01.CTL

SQL> HOST COPY F:ORACLEBACKUPTEST20060418CONTROL1.BAK F:ORACLEORADATATESTCONTROL02.CTL

SQL> HOST COPY F:ORACLEBACKUPTEST20060418CONTROL1.BAK F:ORACLEORADATATESTCONTROL03.CTL

SQL> HOST COPY F:ORACLEBACKUPTEST20060418*.DBF F:ORACLEORADATATEST

SQL> STARTUP MOUNT
ORACLE 例程已经启动。

Total System Global Area 76619308 bytes
Fixed Size 454188 bytes
Variable Size 50331648 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00283: 恢复会话因错误而取消
ORA-01114: 将块写入文件 5 时出现 IO 错误 (块 # 1)
ORA-01110: 数据文件 5: 'F:ORACLEORADATATESTUSERS01.DBF'
ORA-27091: skgfqio: 无法进行 I/O 操作
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 5) 拒绝访问。

由于只读文件无法进行修改,导致恢复过程出错。(这里是利用设置文件只读的方式,模拟只读设备)。

解决方法是将USERS表空间脱机,在恢复结束后再将其联机。

SQL> ALTER DATABASE DATAFILE 'F:ORACLEORADATATESTUSERS01.DBF' OFFLINE;

数据库已更改。

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE;
ORA-00279: 更改 48182403 (在 04/19/2006 03:15:21 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00001.001
ORA-00280: 更改 48182403 对于线程 1 是按序列 # 1 进行的


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: 更改 48182777 (在 04/19/2006 03:22:33 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:ORACLEORADATATESTARCHIVEARC00002.001
ORA-00280: 更改 48182777 对于线程 1 是按序列 # 2 进行的



阅读更多内容1 · 2 · 下一页>>


  上一篇: 恢复过程中的ORA-1113错误   下一篇: 恢复之不可恢复操作后的恢复(三...
li
 §相关评论  
 热点文章

·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 编辑推荐
·Oracle数据库远程复制与异地容
·Oracle 11g备份恢复功能增强
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·UNDO表空间的ORA-1122错误解决
·使用Flashback Query 恢复误删
·如何开启/关闭oracle的归档
·Rman的format格式中的%s类似的
·怎么样创建RMAN恢复目录
·ORA-01843:无效的月份,这个是
·ORA-01843:无效的月份
li
 相关篇章
·恢复过程中的ORA-1113错误
·恢复之使用非当前控制文件恢复只...
·恢复之缺失归档日志文件
·恢复之归档日志文件破损(一)
·恢复过程中的ORA-1113错误(二)
·恢复之归档日志文件破损(二)
·一次意外导致的ORA-600[3004]错误...
·恢复之归档日志文件破损(三)
·RMAN备份过程中调整系统时间的BU...
·重建控制文件会导致密码文件发生...
·恢复之不可恢复操作后的恢复(三...
·恢复之不可恢复操作后的恢复(一...
·恢复之恢复操作的中断
·恢复之使用非当前控制文件恢复只...
·恢复之利用RESETLOGS之前的备份进...
·恢复之利用RESETLOGS之前的备份进...
·恢复之不可恢复操作后的恢复(二...
·恢复之利用RESETLOGS之前的备份进...
·恢复之利用RESETLOGS之前的备份进...
·恢复之数据字典和控制文件不一致...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接