历史上最详细的Oracle备份与恢复案例Word文档格式.docx

上传人:b****4 文档编号:6402851 上传时间:2023-05-06 格式:DOCX 页数:68 大小:34.92KB
下载 相关 举报
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第1页
第1页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第2页
第2页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第3页
第3页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第4页
第4页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第5页
第5页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第6页
第6页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第7页
第7页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第8页
第8页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第9页
第9页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第10页
第10页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第11页
第11页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第12页
第12页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第13页
第13页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第14页
第14页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第15页
第15页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第16页
第16页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第17页
第17页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第18页
第18页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第19页
第19页 / 共68页
历史上最详细的Oracle备份与恢复案例Word文档格式.docx_第20页
第20页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

历史上最详细的Oracle备份与恢复案例Word文档格式.docx

《历史上最详细的Oracle备份与恢复案例Word文档格式.docx》由会员分享,可在线阅读,更多相关《历史上最详细的Oracle备份与恢复案例Word文档格式.docx(68页珍藏版)》请在冰点文库上搜索。

历史上最详细的Oracle备份与恢复案例Word文档格式.docx

基于撤消的恢复地在一个或多个日志组(在线的或归档的)已被介质故障所破坏,不能用于恢复过程时使用,所以介质恢复必须控制,以致在使用最近的、未损的日志组于数据文件后中止恢复操作。

  基于时间(TIME)和基于修改(SCN)的恢复:

如果DBA希望恢复到过去的某个指定点,是一种理想的不完全介质恢复,一般发生在恢复到某个特定操作之前,恢复到如意外删除某个数据表之前。

第二章.数据库恢复案例测试环境

2.1数据库环境

以下的所有案例都是通过测试经过,环境为:

OS:

Windows2000Server

DB:

Oracle816

DBNAME:

TEST

数据文件:

SQL>

selectfile#,status,enabled,namefromv$datafile;

FILE#STATUS 

ENABLED 

 

NAME

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

1SYSTEM 

READWRITED:

\Oracle\ORADATA\TEST\SYSTEM01.DBF

2ONLINE 

\Oracle\ORADATA\TEST\RBS01.DBF

3ONLINE 

\Oracle\ORADATA\TEST\USERS01.DBF

4ONLINE 

\Oracle\ORADATA\TEST\TEMP01.DBF

5ONLINE 

\Oracle\ORADATA\TEST\TOOLS01.DBF

6ONLINE 

\Oracle\ORADATA\TEST\INDX01.DBF

控制文件:

select*fromv$controlfile;

STATUS 

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

D:

\Oracle\ORADATA\TEST\CONTROL01.CTL

\Oracle\ORADATA\TEST\CONTROL02.CTL

\Oracle\ORADATA\TEST\CONTROL03.CTL

联机日志:

select*fromv$logfile;

GROUP#STATUS 

MEMBER

STALE 

\Oracle\ORADATA\TEST\REDO01.LOG

\Oracle\ORADATA\TEST\REDO02.LOG

\Oracle\ORADATA\TEST\REDO03.LOG

2.2数据库备份脚本

冷备份脚本:

rem 

script:

coldbak.sql

creater:

chenjiping

date:

5.8.2003

desc:

offlinefullbackupdatabase

--connectdatabase

connectinternal/password;

--shutdowndatabase

shutdownimmediate;

--CopyDatafile

!

xcopyd:

\Oracle\oradata\test\*.dbfd:

\database/H/R;

--CopyControlfile

\Oracle\oradata\test\*.ctld:

--CopyLogfile

\Oracle\oradata\test\*.logd:

--startupdatabase

startup;

说明:

1、以上脚本在数据库关闭状态下备份数据库所有的数据文件,联机日志,控制文件(在一个目

录下),如果成功备份,所有文件是一致的;

2、没有备份参数文件,参数文件可以另外备份,没有必要每次都备份,只需要在改变设置后备份一次;

3、如果以上命令没有成功依次执行,那么备份将是无效的,如连接数据库不成功,那么肯定关闭数据库也不成功,那么备份则无效;

4、冷备份建议下人工干预下执行。

数据库OS热全备份脚本

hotbak.sql

date:

backupalldatabasedatafileinarchive

--archive

altersystemarchivelogcurrent;

--start

altertablespacesystembeginbackup;

\Oracle\oradata\test\system01.dbfd:

\databak/H/R;

altertablespacesystemendbackup;

altertablespacerbsbeginbackup;

\Oracle\oradata\test\rbs01.dbfd:

altertablespacerbsendbackup;

altertablespaceusersbeginbackup;

\Oracle\oradata\test\users01.dbfd:

altertablespaceusersendbackup;

altertablespacetoolsbeginbackup;

\Oracle\oradata\test\tools01.dbfd:

altertablespacetoolsendbackup;

altertablespaceindxbeginbackup;

\Oracle\oradata\test\indx01.dbfd:

altertablespaceindxendbackup;

--end

--bakcontrolfile

--binary

alterdatabasebackupcontrolfileto'

d:

\databak\controlbinbak.000'

;

--ascii

alterdatabasebackupcontrolfiletotrace;

1、热备份必须在数据库归档方式下才可以运行;

2、以上脚本可以在数据库运行状态下备份数据库所有的数据文件(除了临时数据文件),没有必要备份联机日志;

3、归档日志至少需要一次完整备份之后的所有日志;

4、如果以上命令没有成功依次执行,那么备份也是无效的,如连接数据库不成功,那么备份则无效。

RMAN备份只讲叙有恢复目录的情况,如果没有恢复目录,情形大致相似。

以下是RMAN的热备份全备份的脚本:

bakup.rcv

backupalldatabasedatafileinarchivewithrman

#connectdatabase

connectrcvcatrman/rman@back;

connecttargetinternal/virpure;

#startbackupdatabase

run{

allocatechannelc1typedisk;

backupfulltag'

dbfull'

format'

\backup\full%u_%s_%p'

database

includecurrentcontrolfile;

sql'

altersystemarchivelogcurrent'

releasechannelc1;

}

#end

1、数据库必须运行在归档模式下;

2、RMAN将自动备份数据文件,运行可靠;

3、归档日志另外备份处理,但至少需要保存一次备份来的日志;

4、没有必要用RMAN做冷备份,效果不好。

以上举例说明了数据库的恢复案例的测试环境与部分备份测试脚本,其它的备份脚本可以根据以上脚本演变而来或在案例中加以说明。

数据库的自动实例将不加以说明,这里只举例说明媒体错误或人为错误造成的恢复可能。

以上包括以下案例都是在WINDOWS+Oracle816上测试验证的,在不同的操作系统与不同的数据库版本中略有差别。

第三章.了解与恢复相关的信息

1、理解报警日志文件

报警日志文件一般记载了数据库的启动/关闭信息,归档信息,备份信息,恢复信息,常见错误信息,部分数据库修改记录等。

一般令名规则为<

SID>

Alrt.log或Alrt<

SID>

.log,如我的测试数据库的报警日志文件的名称为testalrt.log。

报警日志文件的路径是根据初始化参数background_dump_dest来决定的,如在我的机器上,该参数值为D:

\Oracle\admin\test\bdump,那么,你就可以在该路径下找到该文件。

2、后台进程跟踪文件

后台进程跟踪文件的路径与报警日志文件的路径一致,在某些情况下,你可以通过后台跟踪文件的信息了解更多的需要恢复的信息。

如在数据库需要恢复的时候,报警日志文件中常有这样的语句:

ErrorsinfileD:

\Oracle\admin\test\bdump\testDBW0.TRC:

ORA-01157:

cannotidentify/lockdatafile1-seeDBWRtracefile

通过提示的DBWR跟踪文件,可以查询到更详细的信息。

3、v$recover_file与v$recovery_log

这是两个动态性能视图,可以在mount下查看,通过这两个视图,你可以了解详细的需要恢复的数据文件与需要使用到的归档日志。

第四章.数据库恢复案例

4.1非归档模式下的备份与恢复

备份方案:

采用OS冷备份

1. 

连接数据库并创建测试表

connectinternal/passwordassysdba;

Connected.

createtabletest(aint);

Tablecreated

insertintotestvalues

(1);

1rowinserted

commit;

Commitcomplete

2. 

备份数据库

@coldbak.sql或在DOS下svrmgrl@coldbak.sql

3. 

再插入记录

insertintotestvalues

(2);

select*fromtest;

A

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

1

2

4. 

关闭数据库

shutdownimmediate;

Databaseclosed.

Databasedismounted.

Oracleinstanceshutdown.

5. 

毁坏一个或多个数据文件,如删除user01.dbf

C:

\>

delD:

模拟媒体毁坏。

6. 

重新启动数据库,会发现如下错误

startup

Oracleinstancestarted.

TotalSystemGlobalArea 

102020364bytes

FixedSize 

70924bytes

VariableSize 

85487616bytes

DatabaseBuffers 

16384000bytes

RedoBuffers 

77824bytes

Databasemounted.

cannotidentify/lockdatafile3-seeDBWRtracefile

ORA-01110:

datafile3:

'

D:

\Oracle\ORADATA\TEST\USERS01.DBF'

在报警文件中,会有更详细的信息

ORA-27041:

unabletoopenfile

OSD-04002:

O/S-Error:

(OS2)系统找不到指定的文件。

7. 

拷贝备份复原到原来位置(restore过程)

\database\*.*d:

\Oracle\oradata\test/H/R/S

8. 

打开数据库,检查数据

alterdatabaseopen;

Databasealtered.

A

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

这里可以发现,数据库恢复成功,但在备份之后与崩溃之前的数据丢失了。

1、非归档模式下的恢复方案可选性很小,一般情况下只能有一种恢复方式,就是数据库的冷备

份的完全恢复,仅仅需要拷贝原来的备份就可以(restore),不需要recover;

2、这种情况下的恢复,可以完全恢复到备份的点上,但是可能是丢失数据的,在备份之后与崩溃之前的数据将全部丢失;

3、不管毁坏了多少数据文件或是联机日志或是控制文件,都可以通过这个办法恢复,因为这个恢复过程是Restore所有的冷备份文件,而这个备份点上的所有文件是一致的,与最新的数据库没有关系,就好比把数据库又放到了一个以前的"

点"

上;

4、对于非归档模式下,最好的办法就是采用OS的冷备份,建议不要用RMAN来作冷备份,效果不好,因为RMAN不备份联机日志,restore不能根本解决问题;

5、如果没有备份联机日志,如RMAN的备份,就需要利用不完全恢复(untilcancel)的方法来重新创建联机日志文件。

4.2归档模式下丢失或损坏一个数据文件

4.2.1OS备份方案

在归档方式下损坏或丢失一个数据文件,如果存在相应的备份与该备份以来的归档日志,恢复还是比较简单的,可以作到尽量少的Down机时间,并能作到数据库的完全恢复。

1、连接数据库,创建测试表并插入记录

createtabletest(aint)tablespaceusers;

2、备份数据库

@hotbak.sql或在DOS下svrmgrl@hotbak.sql

3、继续在测试表中插入记录

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

altersystemswitchlogfile;

Systemaltered.

4、关闭数据库,模拟丢失数据文件

Oracleinstanceshutdown

5、启动数据库错误,脱机该数据文件:

77824bytes

还可以查看报警文件(见上一个恢复案例)或动态视图v$recover_file

如SQL>

select*fromv$recover_file;

FILE#ONLINE 

ERROR 

CHANGE# 

TIME

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

ONLINE 

1013500 

2003-05-07

脱机数据文件

alterdatabasedatafile3offlinedrop;

6、打开数据库,拷贝备份回来(restore),恢复(recover)该数据文件,并联机:

拷贝备份从备份处

copyd:

\databak\users01.dbfd:

\Oracle\oradata\test;

恢复该数据文件

recoverdatafile3;

ORA-00279:

change1053698generatedat05

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2