网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  如何使用备份的控制文件来恢复数据库?     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:112次  录入:管理员--2008-01-31  
 

问:如何使用备份的控制文件来恢复数据库?

答:你可以使用备份的控制文件(db物理结构已经变化)来恢复数据库。具体的示例请参考下文:

sql> alter database backup controlfile to 'e:oracleproduct10.2.0oradataorcl
ctl_bakcontrol01.ctl';

database altered.

sql> create tablespace test datafile 'e:oracleproduct10.2.0oradataorcl est
.dbf' size 5m;

tablespace created.

sql> select group# , sequence# , status from v$log;

group# sequence# status
---------- ---------- ----------------
1 2 current
2 0 unused
3 1 inactive

sql> create table t1(id int) tablespace test;

table created.

sql> insert into t1 values(1);

1 row created.

sql> commit;

commit complete.

sql> alter system switch logfile;

system altered.

sql> select group# , sequence# , status from v$log;

group# sequence# status
---------- ---------- ----------------
1 2 active
2 3 current
3 1 inactive

sql> insert into t1 values(2);

1 row created.

sql> commit;

commit complete.

sql> alter system switch logfile;

system altered.

sql> select group# , sequence# , status from v$log;

group# sequence# status
---------- ---------- ----------------
1 2 active
2 3 active
3 4 current

sql> insert into t1 values(3);

1 row created.

sql> commit;

commit complete.

sql> alter database backup controlfile to trace;

database altered.

sql> shutdown immediate
database closed.
database dismounted.
oracle instance shut down.
--删除当前所有控制文件
--拷贝最上面备份的控制文件回来,注意备份的控制文件中并没有记录test.dbf
sql> startup mount
ora-32004: obsolete and/or deprecated parameter(s) specified
oracle instance started.

total system global area 167772160 bytes
fixed size 1247900 bytes
variable size 71304548 bytes
database buffers 92274688 bytes
redo buffers 2945024 bytes
数据库装载完毕。
sql> alter database open ;
alter database open
*
第 1 行出现错误:
ora-01589: 要打开数据库则必须使用 resetlogs 或 noresetlogs 选项


sql> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ora-01152: 文件 1 没有从过旧的备份中恢复
ora-01110: 数据文件 1: 'e:oracleproduct10.2.0oradataorclsystem01.dbf'


sql> recover database using backup controlfile;
ora-00279: 更改 244868 (在 09/16/2007 16:00:16 生成) 对于线程 1 是必需的
ora-00289: 建议:
e:oracleproduct10.2.0flash_recovery_areaorclarchivelog2007_09_16o1_mf_1_

2_%u_.arc
ora-00280: 更改 244868 (用于线程 1) 在序列 #2 中


指定日志: {=suggested | filename | auto | cancel}
auto
ora-00283: 恢复会话因错误而取消
ora-01244: 未命名的数据文件由介质恢复添加至控制文件
ora-01110: 数据文件 2: 'e:oracleproduct10.2.0oradataorcltest.dbf'


ora-01112: 未启动介质恢复


sql> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ora-01113: 文件 1 需要介质恢复
ora-01110: 数据文件 1: 'e:oracleproduct10.2.0oradataorclsystem01.dbf'

--我认为之所以能恢复过来的原因是执行了recover datafile 1;
sql> recover datafile 1;
ora-00283: 恢复会话因错误而取消
ora-01610: 使用 backup controlfile 选项的恢复必须已完成

在执行了recover datafile 1;之后再执行
recover database using backup controlfile; oracle提示出

“'e:oracleproduct10.2.0db_1databaseunnamed00002”信息,
这是能恢复回来的关键!

sql> recover database using backup controlfile;
ora-00283: 恢复会话因错误而取消
ora-01111: 数据文件 2 名称未知 - 请重命名以更正文件
ora-01110: 数据文件 2: 'e:oracleproduct10.2.0db_1databaseunnamed00002'
ora-01157: 无法标识/锁定数据文件 2 - 请参阅 dbwr 跟踪文件
ora-01111: 数据文件 2 名称未知 - 请重命名以更正文件
ora-01110: 数据文件 2: 'e:oracleproduct10.2.0db_1databaseunnamed00002'


sql> alter database rename file 'e:oracleproduct10.2.0db_1databaseunnamed0
0002' to 'e:oracleproduct10.2.0oradataorcltest.dbf';

数据库已更改。

sql> recover database using backup controlfile;
ora-00279: 更改 244905 (在 09/16/2007 16:08:37 生成) 对于线程 1 是必需的
ora-00289: 建议:
e:oracleproduct10.2.0flash_recovery_areaorclarchivelog2007_09_16o1_mf_1_

2_%u_.arc
ora-00280: 更改 244905 (用于线程 1) 在序列 #2 中


指定日志: {=suggested | filename | auto | cancel}
e:oracleproduct10.2.0oradataorclredo01.log
ora-00279: 更改 244983 (在 09/16/2007 16:10:25 生成) 对于线程 1 是必需的
ora-00289: 建议:
e:oracleproduct10.2.0flash_recovery_areaorclarchivelog2007_09_16o1_mf_1_

3_%u_.arc
ora-00280: 更改 244983 (用于线程 1) 在序列 #3 中
ora-00278: 此恢复不再需要日志文件
'e:oracleproduct10.2.0oradataorclredo01.log'


指定日志: {=suggested | filename | auto | cancel}
e:oracleproduct10.2.0oradataorclredo02.log'
ora-01756: 引号内的字符串没有正确结束


sql> recover database using backup controlfile;
ora-00279: 更改 244983 (在 09/16/2007 16:10:25 生成) 对于线程 1 是必需的
ora-00289: 建议:
e:oracleproduct10.2.0flash_recovery_areaorclarchivelog2007_09_16o1_mf_1_

3_%u_.arc
ora-00280: 更改 244983 (用于线程 1) 在序列 #3 中


指定日志: {=suggested | filename | auto | cancel}
e:oracleproduct10.2.0oradataorclredo02.log
ora-00279: 更改 244992 (在 09/16/2007 16:10:47 生成) 对于线程 1 是必需的
ora-00289: 建议:
e:oracleproduct10.2.0flash_recovery_areaorclarchivelog2007_09_16o1_mf_1_

4_%u_.arc
ora-00280: 更改 244992 (用于线程 1) 在序列 #4 中
ora-00278: 此恢复不再需要日志文件
'e:oracleproduct10.2.0oradataorclredo02.log'


指定日志: {=suggested | filename | auto | cancel}
e:oracleproduct10.2.0oradataorclredo03.log'
ora-01756: 引号内的字符串没有正确结束


sql> recover database using backup controlfile;
ora-00279: 更改 244992 (在 09/16/2007 16:10:47 生成) 对于线程 1 是必需的
ora-00289: 建议:
e:oracleproduct10.2.0flash_recovery_areaorclarchivelog2007_09_16o1_mf_1_

4_%u_.arc
ora-00280: 更改 244992 (用于线程 1) 在序列 #4 中


指定日志: {=suggested | filename | auto | cancel}
e:oracleproduct10.2.0oradataorclredo03.log
已应用的日志。
完成介质恢复。
sql> alter database open resetlogs;

数据库已更改。

sql> select * from t1;

id
----------
1
2
3

...
sql>

 
 
上一篇: 巧用"rman"的tspitr技术找回删除的表    下一篇: oracle特殊包和"dbms_job"包的使用方法 (1)
  相关文档
轻松掌握oracle peeking 绑定变量的控制 11-15
如何在高级的复制中切换主体定义站点 03-26
解决linux下sql*plus命令行历史回调功能 07-29
轻松掌握分布式数据库全局名与数据库链 09-29
Oracle 9i 的增强型内存使用率查看表 04-11
Java连接Oracle数据库的各种方法 04-23
oracle数据库专享工具介绍:sql*loader (1) 09-09
oracle developer 2000中的一些实用语句 08-18
oracle数据库中按用户名重建索引的方法 04-29
三种Windows版本下教你如何卸载Oracle 05-27
全面剖析Oracle数据库中的分区功能 04-11
快速解决oracle数据库10g导出错误6550 04-18
解析:如何修改 oracle 数据库表的大小 11-21
带你快速了解wait等待事件及其处理方法 04-17
帮你完全了解 Oracle 标签安全测试 05-13
教你删除oracle数据库中重复没用的数据 09-10
八个学习点帮助你全面认识Oracle数据库TableSpace 06-03
在oracle中添加用户 赋权 修改密码 解锁 05-29
如何将非归档日志模式切换到归档日志模式 05-13
Oracle数据库 ASM功能方法的说明 09-29
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息