搜索: 标题内容作者  
  首页数据库Oracle
背景:
阅读新闻

ORACLE备份恢复方法

[日期:2007-07-22]   来源:互联网整理  作者:佚名   [字体: ]
    新闻简介: 第一章. 理解什么是数据库恢复 
当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。恢复过程大致可以分为复原(Restore)与恢复(Restore)过程。 
数据库恢复可以分为以下两类: 
1.1实例故障的一致性恢复 
当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实
        关 键 词:  

(c) Copyright 1999 oracle Corporation. All rights reserved. 
SQL> connect internal/password as sysdba; 
Connected. 
SQL> create table test(a int); 
Table created 
SQL> insert into test values(1); 
1 row inserted  [Page]
SQL> commit; 
Commit complete 
2.备份数据库 
SQL> @coldbak.sql 或在DOS下 svrmgrl @coldbak.sql 
3.再插入记录 
SQL> insert into test values(2); 
1 row inserted 
SQL> commit; 
Commit complete 
SQL> select * from test; 

--------------------------------------- 


4.关闭数据库 
SQL> shutdown immediate; 
Database closed. 
Database dismounted. 
ORACLE instance shut down. 
5.毁坏一个或多个数据文件,如删除user01.dbf 
C:>del D:ORACLEORADATATESTUSERS01.DBF 
模拟媒体毁坏 
6.重新启动数据库,会发现如下错误 
SQL> startup 
ORACLE instance started. 
Total System Global Area 102020364 bytes 
Fixed Size 70924 bytes 
Variable Size 85487616 bytes 
Database Buffers 16384000 bytes 
Redo Buffers 77824 bytes 
Database mounted. 
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file 
ORA-01110: data file 3: ’D:ORACLEORADATATESTUSERS01.DBF’ 
在报警文件中,会有更详细的信息 
Errors in file D:OracleadmintestbdumptestDBW0.TRC: 
ORA-01157: cannot identify/lock data file 3 - see DBWR trace file 
ORA-01110: data file 3: ’D:ORACLEORADATATESTUSERS01.DBF’ 
ORA-27041: unable to open file 
OSD-04002: unable to open file 
O/S-Error: (OS 2) 系统找不到指定的文件。 
7.拷贝备份复原到原来位置(restore过程) 
C:>xcopy d:database*.* d:oracleoradatatest/H/R/S 
8.打开数据库,检查数据 
SQL> alter database open; 
Database altered. 
SQL> select * from test; 

--------------------------------------- 

这里可以发现,数据库恢复成功,但在备份之后与崩溃之前的数据丢失了。 
说明: 
1、非归档模式下的恢复方案可选性很小,一般情况下只能有一种恢复方式,就是数据库的冷备份的完全恢复,仅仅需要拷贝原来的备份就可以(restore),不需要recover。 
2、这种情况下的恢复,可以完全恢复到备份的点上,但是可能是丢失数据的,在备份之后与崩溃之前的数据将全部丢失。  [Page]
3、不管毁坏了多少数据文件或是联机日志或是控制文件,都可以通过这个办法恢复,因为这个恢复过程是Restore所有的冷备份文件,而这个备份点上的所有文件是一致的,与最新的数据库没有关系,就好比把数据库又放到了一个以前的“点”上。 
4、对于非归档模式下,最好的办法就是采用OS的冷备份,建议不要用RMAN来作冷备份,效果不好,因为RMAN不备份联机日志,restore不能根本解决问题。 
5、如果没有备份联机日志,如RMAN的备份,就需要利用不完全恢复(until cancel)的方法来重新创建联机日志文件 
4.2归档模式下丢失或损坏一个数据文件 
4.2.1 OS备份方案 
在归档方式下损坏或丢失一个数据文件,如果存在相应的备份与该备份以来的归档日志,恢复还是比较简单的,可以作到尽量少的Down机时间,并能作到数据库的完全恢复。 
1、连接数据库,创建测试表并插入记录 
SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003 
(c) Copyright 1999 Oracle Corporation. All rights reserved. 
SQL> connect internal/password as sysdba; 
Connected. 
SQL> create table test(a int) tablespace users; 
Table created 
SQL> insert into test values(1); 
1 row inserted 
SQL> commit; 
Commit complete 
2、备份数据库 
SQL> @hotbak.sql 或在DOS下 svrmgrl @hotbak.sql 
3、继续在测试表中插入记录 
SQL> insert into test values(2); 
1 row inserted 
SQL> commit; 
Commit complete 
SQL> select * from test; 

--------------------------------------- 


SQL> alter system switch logfile; 
System altered. 
SQL> alter system switch logfile; 

If you believe an article violates your rights or the rights of others, please contact us.

收藏 推荐 打印 | 录入:admin | 阅读:
相关新闻      
友情链接
本文评论   [发表评论] 全部评论 (0)
赞助商广告
热门评论