Oracle 数据库备份恢复案例.docx

上传人:b****4 文档编号:7003961 上传时间:2023-05-10 格式:DOCX 页数:19 大小:23.65KB
下载 相关 举报
Oracle 数据库备份恢复案例.docx_第1页
第1页 / 共19页
Oracle 数据库备份恢复案例.docx_第2页
第2页 / 共19页
Oracle 数据库备份恢复案例.docx_第3页
第3页 / 共19页
Oracle 数据库备份恢复案例.docx_第4页
第4页 / 共19页
Oracle 数据库备份恢复案例.docx_第5页
第5页 / 共19页
Oracle 数据库备份恢复案例.docx_第6页
第6页 / 共19页
Oracle 数据库备份恢复案例.docx_第7页
第7页 / 共19页
Oracle 数据库备份恢复案例.docx_第8页
第8页 / 共19页
Oracle 数据库备份恢复案例.docx_第9页
第9页 / 共19页
Oracle 数据库备份恢复案例.docx_第10页
第10页 / 共19页
Oracle 数据库备份恢复案例.docx_第11页
第11页 / 共19页
Oracle 数据库备份恢复案例.docx_第12页
第12页 / 共19页
Oracle 数据库备份恢复案例.docx_第13页
第13页 / 共19页
Oracle 数据库备份恢复案例.docx_第14页
第14页 / 共19页
Oracle 数据库备份恢复案例.docx_第15页
第15页 / 共19页
Oracle 数据库备份恢复案例.docx_第16页
第16页 / 共19页
Oracle 数据库备份恢复案例.docx_第17页
第17页 / 共19页
Oracle 数据库备份恢复案例.docx_第18页
第18页 / 共19页
Oracle 数据库备份恢复案例.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Oracle 数据库备份恢复案例.docx

《Oracle 数据库备份恢复案例.docx》由会员分享,可在线阅读,更多相关《Oracle 数据库备份恢复案例.docx(19页珍藏版)》请在冰点文库上搜索。

Oracle 数据库备份恢复案例.docx

Oracle数据库备份恢复案例

 

Oracle数据库备份恢复案例

 

文件类别

○手册○程序文件○指引/标准/规范/管理办法/制度●其他

文件编号

版本号

1.0

发布日期

密级

●普通○秘密

目录

1目的4

2系统说明4

2.1目标数据库服务器4

2.1.1基本信息4

2.1.2磁盘空间4

2.2RMAN目录数据库4

2.2.1基本信息4

2.2.2磁盘空间5

3结构说明5

3.1结构说明5

3.1.1服务器说明5

3.1.2数据库归档日志5

3.1.3RMAN备份5

3.1.4备份文件处理5

4环境设置5

4.1创建RMAN目录数据库5

4.1.1安装和配置RMAN目录数据库5

4.1.2创建表空间5

4.1.3创建保存目录的用户6

4.1.4给用户赋予适当的权限6

4.1.5创建目录数据库对象6

4.2修改归档方式6

4.3注册数据库7

4.4安装压缩工具7

5备份7

5.1备份计划7

5.1.1备份原则7

5.1.2备份内容7

5.1.3保存周期8

5.2控制文件备份8

5.3参数文件备份8

5.4RMAN-保持策略8

5.5RMAN-备份脚本9

5.6EXPORT9

5.6.1目标数据库9

5.6.2目录数据库10

6恢复测试10

6.1丢失参数文件10

6.1.1情形10

6.1.2方法10

6.1.3结果11

6.2丢失控制文件11

6.2.1情形11

6.2.2方法11

6.2.3结果11

6.3丢失默认临时表空间11

6.3.1情形11

6.3.2方法11

6.3.3结果12

6.4丢失一般临时表空间12

6.4.1情形12

6.4.2方法12

6.4.3结果12

6.5丢失系统表空间13

6.5.1情形13

6.5.2方法13

6.5.3结果13

6.6丢失非系统表空间13

6.6.1情形13

6.6.2方法13

6.6.3结果13

6.7丢失Undo表空间13

6.7.1情形13

6.7.2方法13

6.7.3结果14

6.8丢失当前(或活动)的联机重做日志14

6.8.1情形一14

6.8.2方法一14

6.8.3结果一15

6.8.4情形二15

6.8.5方法二15

6.8.6结果二16

6.9丢失非当前(或活动)的联机重做日志16

6.9.1情形16

6.9.2方法16

6.9.3结果17

7运维要求17

7.1日常巡检17

7.1.1磁盘空间17

7.1.2备份日志17

7.1.3归档日志17

7.2故障处理17

7.2.1备份故障17

7.2.2数据库故障18

8修订记录18

1目的

本文档主要说明ORACLE9i数据库的备份和恢复的概念说明和方案制作指南,是《Oracle数据库备份恢复指南》的辅助文件,也可作为其他版本Oracle的参考。

备份根据实际的使用要求和硬件环境进行执行。

方案具有较强的可扩展性,高可用性,零数据丢失。

Ø可扩展性:

备份的内容可以满足业务的增加和变化,可以满足数据量的迅速增长。

Ø高可用性:

备份的内容是可以恢复的,备份恢复的时间是可知的。

Ø零数据丢失:

使用完备的备份方法,实现由于存储设备问题导致的停机、操作系统级和数据库级的坏块等,数据不出现丢失或较少的丢失(如果在线重做日志文件出现问题可能会出现数据丢失,建议每组多个在线重做日志文件)。

2系统说明

2.1目标数据库服务器

2.1.1基本信息

操作系统:

Windows2000AdvancedServer

数据库:

Oracle9i9.2.0.4(稳定版)

2.1.2磁盘空间

分区

正侧

副侧

备注

合计大小

剩余大小

合计大小

剩余大小

C:

14.6G

5.67G

14.6G

9.91G

操作系统

D:

10.8G

4.69G

9.99G

4.41G

Oracle软件及数据

E:

25.3G

7.21G

26.2G

12.4G

其他软件

2.2RMAN目录数据库

建议要有200G以上的空间。

2.2.1基本信息

操作系统:

Windows2000Server

数据库:

Oracle9i9.2.0.1

2.2.2磁盘空间

分区

合计大小

剩余大小

备注

C:

20G

操作系统及Oracle软件

D:

140G

数据

E:

160G

数据

3结构说明

3.1结构说明

3.1.1服务器说明

目录数据库(管理数据库):

RMAN目录数据库

目标数据库(备份数据库):

Oracle业务数据库

3.1.2数据库归档日志

数据库归档日志由数据库自动产生,分别归档到各个系统的本地磁盘。

3.1.3RMAN备份

RMAN执行备份产生的文件将保存在各个系统的本地磁盘。

3.1.4备份文件处理

RMAN备份结束后,将备份产生的文件拷贝到RMAN目录数据库服务器上,并对其进行压缩保存。

4环境设置

由于这个业务数据库需要使用RMAN进行的热备份,要求数据库需要在归档模式。

为了便于管理,创建了RMAN的目录数据库。

4.1创建RMAN目录数据库

4.1.1安装和配置RMAN目录数据库

具体的安装和配置参照相关的Oracle安装配置文档。

这里主要描述创建RMAN的相关对象。

4.1.2创建表空间

SQL>CONNECTsys/...@rmanassysdba;

SQL>CREATETABLESPACEtsp_rman

DATAFILE'C:

\Oracle\oradata\rman\rman01.dbf'SIZE200MREUSE

EXTENTMANAGEMENTLOCAL

AUTOALLOCATESEGMENTSPACEMANAGEMENTAUTO;

4.1.3创建保存目录的用户

SQL>CREATEUSERrmanIDENTIFIEDBYrman

DEFAULTTABLESPACEtsp_rmanTEMPORARYTABLESPACEtemp

QUOTAUNLIMITEDONtsp_rman;

4.1.4给用户赋予适当的权限

SQL>GRANTrecovery_catalog_owner,dba,connect,resource,sysdbaTOrman;

4.1.5创建目录数据库对象

连接到目录数据库,创建目录数据库对象

RMAN>CONNECTCATALOGrman/rman@rman;

RMAN>CREATECATALOGTABLESPACEtsp_rman;

4.2修改归档方式

将目标数据库修改为归档模式。

--编辑init.ora文件

log_archive_start=TRUE

log_archive_max_processes=2

log_archive_format=ORCL_%T_%S.log'

log_archive_dest_1='LOCATION=D:

\oracle\archivedREOPEN'

--关闭数据库

SHUTDOWNIMMEDIATE

--启动数据库到Mount状态

STARTUPMOUNT

--修改数据库为归档模式

ALTERDATABASEARCHIVELOG;

--打开数据库

ALTERDATABASEOPEN;

--查看归档日志状态

ARCHIVELOGLIST;

--日志切换,查看是否正常产生归档日志

ALTERSYSTEMSWITCHLOGFILE;

4.3注册数据库

--连接到目录数据库:

RMAN>CONNECTCATALOGrman/rman@rman

--连接到目标数据库:

RMAN>CONNECTTARGETsys/…@orcl

--注册目标数据库

RMAN>REGISTERDATABASE;

4.4安装压缩工具

由于需要将备份后的文件进行压缩,需要在每台目标服务器上安装WINRAR(v3.2)压缩工具。

5备份

依据备份计划对各个目标数据库进行备份。

5.1备份计划

5.1.1备份原则

在数据库负载较轻的情况下执行。

在执行了大量的数据处理后执行。

每天各个数据库执行一次全备份。

5.1.2备份内容

具体的备份内容如下:

数据库

备份对象

备份时间

备份频率

备份方式

目标数据库

数据库、归档日志

05:

00

每天一次

RMAN全备

数据库脚本

05:

00

每天一次

EXPORT

控制文件脚本

数据库结构发生变化

命令

参数文件

数据库参数发生变化

命令

目录数据库

数据

06:

00

每天一次

EXPORT

5.1.3保存周期

备份的内容保存一个月(如果数据量太大,可以考虑保存一周的数据)。

5.2控制文件备份

在数据库结构发生变化后,需要备份控制文件。

备份的脚本如下:

SQL>ALTERSESSIONSETtracefile_identified=control_file;

SQL>ALTERDATABASEBACKUPCONTROLFILETOTRACE;

在ORACLE_BASE下的\admin\orcl\udump目录中查找文件名含有control_file的当前文件,将其保存。

各个数据库的控制文件备份方式相同。

5.3参数文件备份

在数据库参数发生变化后,需要备份参数文件。

数据库参数文件可能使用spfile文件或pfile文件。

spfile文件备份:

将其备份为pfile或者是直接拷贝文件。

备份为pfile文件的脚本如下:

SQL>CREATEPFILE='d:

\oracle\backup\orcl_pfile.bak'FROMSPFILE;

pfile文件备份:

直接拷贝pfile文件,

各个数据库的参数文件备份方式相同。

5.4RMAN-保持策略

RMAN备份的保持策略。

--显示RMAN的配置信息

RMAN>SHOWALL;

--备份保持策略,冗余策略,规定至少有几个冗余的备份

RMAN>CONFIGURERETENTIONPOLICYTONONE;

--默认通道分配:

RMAN>CONFIGUREDEVICETYPEDISKPARALLELISM3;

--设置控制文件的快照。

在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性

RMAN>CONFIGURESNAPSHOTCONTROLFILENAMETO'd:

\oracle\backup\orcl_rman_control_file_snap';

--检查RMAN的配置信息

RMAN>SHOWALL;

5.5RMAN-备份脚本

RMAN备份的备份脚本。

RUN{

#分配通道

ALLOCATECHANNELch1TYPEDISK;

#备份数据库

BACKUPFULLTAGFULL_DB_OPENFORMAT'd:

\oracle\backup\his_rman_%T_s%s_p%p_full'DATABASE;

#备份归档日志

BACKUPTAGARCHIVED_LOGFORMAT'd:

\oracle\backup\his_rman_%T_s%s_p%p_arch'ARCHIVELOGALLDELETEINPUT;

}

5.6EXPORT

使用EXP备份各个数据库中制定用户的数据结构或数据。

下面仅节选了部分脚本。

5.6.1目标数据库

SETCURR_DATE=%date:

~4,4%%date:

~9,2%%date:

~12,2%

SETDB_ID=orcl

SETEXP_CONNECT=test/...@orcl

SETHOME_DIR=d:

\oracle\dbbak

SETTMP_DIR=%HOME_DIR%\tmp

SETEXPDMP=%TMP_DIR%\%DB_ID%_exp_%CURR_DATE%.dmp

SETEXPLOG=%TMP_DIR%\%DB_ID%_exp_%CURR_DATE%.log

ECHO运行EXP进行备份

EXP%EXP_CONNECT%file=%EXPDMP%log=%EXPLOG%buffer=327680statistics=nonerows=n

5.6.2目录数据库

SETCURR_DATE=%date:

~4,4%%date:

~9,2%%date:

~12,2%

SETDB_ID=mgr

SETEXP_CONNECT=rman/...@rman

SETHOME_DIR=d:

\oracle\dbbak

SETTMP_DIR=%HOME_DIR%\tmp

SETEXPDMP=%TMP_DIR%\%DB_ID%_exp_%CURR_DATE%.dmp

SETEXPLOG=%TMP_DIR%\%DB_ID%_exp_%CURR_DATE%.log

ECHO运行EXP进行备份

EXP%EXP_CONNECT%file=%EXPDMP%log=%EXPLOG%buffer=327680statistics=none

6恢复测试

恢复测试是对备份内容的测试。

保证备份工作是否全面的、正确的、有效的。

当数据库出现各类问题的时候,能快速、准确的进行恢复。

6.1丢失参数文件

6.1.1情形

参数文件编写错误或者参数文件丢失。

6.1.2方法

参数文件分为pfile文件和spfile文件。

pfile文件:

将备份的参数文件,放到存放参数文件的目录(Windows:

%ORACL_HOME%\database;UNIX:

$ORACLE_HOME/dbs)。

spfile文件:

数据库先使用备份的pfile文件启动,通过pfile创建spfile,再用spfile启动数据库。

具体过程如下:

C:

\>sqlplus"/assysdba"

SQL>shutdownimmediate;

SQL>startuppfile='D:

\oracle\backup\orcl_pfile.bak';

SQL>showparametersspfile

VALUE显示为空

SQL>createspfilefrompfile='D:

\oracle\backup\orcl_pfile.bak';

SQL>shutdownimmediate

SQL>startup

SQL>showparametersspfile

VALUE显示为%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA

6.1.3结果

数据库使用spfile启动运行。

6.2丢失控制文件

6.2.1情形

控制文件丢失或者控制文件损坏。

6.2.2方法

1>.关闭数据库,备份所有数据文件

2>.恢复控制文件

C:

\>rmancatalogrman/rman@samtargetsys/test@orcl

RMAN>startupnomount;

RMAN>restorecontrolfile;

RMAN>alterdatabasemount;

RMAN>recoverdatabase;

RMAN>alterdatabaseopenresetlogs;

3>.添加所有临时表空间的数据文件

从原有脚本获取,或者依据存在的临时表空间文件重新编写脚本。

6.2.3结果

数据库恢复正常。

过去的备份失效,需要进行一次新的备份。

6.3丢失默认临时表空间

RMAN不备份临时表空间。

所以不能使用RMAN进行恢复。

6.3.1情形

默认临时表空间丢失单个数据文件或全部数据文件。

6.3.2方法

1>.获取旧的临时表空间的脚本

从原有脚本获取,或者重新编写脚本。

2>.创建新的临时表空间

CREATETEMPORARYTABLESPACEtempaTEMPFILE'c:

\oracle\oradata\orcl\tempa01.dbf'SIZE20M

REUSEEXTENTMANAGEMENTLOCALUNIFORMSIZE2M;

ALTERTABLESPACEtempaADDTEMPFILE'c:

\oracle\oradata\orcl\tempa02.dbf'SIZE20M;

3>.将新创建的临时表空间设为默认表空间

ALTERDATABASEDEFAULTTEMPORARYTABLESPACEtempa;

4>.删除旧的临时表空间

DROPTABLESPACEtemp;

5>.创建旧的临时表空间

--修改脚本中的文件路径或名称

CREATETEMPORARYTABLESPACE"TEMP"TEMPFILE

'd:

\oracle\oradata\orcl\temp01.dbf'SIZE40MREUSE,

'd:

\oracle\oradata\orcl\temp02.dbf'SIZE40MREUSE

EXTENTMANAGEMENTLOCALUNIFORMSIZE1024K;

6>.将旧的临时表空间再改为默认临时表空间

ALTERDATABASEDEFAULTTEMPORARYTABLESPACEtemp;

7>.删除新的临时表空间

DROPTABLESPACEtempa;

6.3.3结果

数据库可以正常使用默认的临时表空间。

6.4丢失一般临时表空间

RMAN不备份临时表空间。

所以不能使用RMAN进行恢复。

6.4.1情形

一般临时表空间丢失单个数据文件或全部数据文件。

6.4.2方法

1>.获取创建临时表空间的脚本

2>.修改脚本内容,文件路径或名称

3>.删除临时表空间

4>.创建临时表空间

6.4.3结果

数据库可以正常使用临时表空间。

6.5丢失系统表空间

6.5.1情形

系统表空间丢失或者出现损坏。

6.5.2方法

1>.关闭数据库,备份所有数据文件

2>.恢复系统表空间

C:

\>rmancatalogrman/rman@samtargetsys/test@orcl

RMAN>startupmount;

RMAN>restoredatabase;

RMAN>recoverdatabase;

RMAN>alterdatabaseopen;

6.5.3结果

数据库恢复正常。

需要进行一次全库备份。

6.6丢失非系统表空间

6.6.1情形

系统表空间丢失或者出现损坏。

6.6.2方法

1>.关闭数据库,备份所有数据文件

2>.恢复非系统表空间

C:

\>rmancatalogrman/rman@samtargetsys/test@orcl

RMAN>startupmount;

RMAN>restoredatabase;

RMAN>recoverdatabase;

RMAN>alterdatabaseopen;

6.6.3结果

数据库恢复正常。

需要进行一次全库备份。

6.7丢失Undo表空间

6.7.1情形

Undo表空间丢失或者出现损坏。

6.7.2方法

1>.关闭数据库,备份所有数据文件

2>.恢复Undo表空间

C:

\>rmancatalogrman/rman@samtargetsys/test@orcl

RMAN>startupmount;

RMAN>restoredatabase;

RMAN>recoverdatabase;

RMAN>alterdatabaseopen;

6.7.3结果

数据库恢复正常。

需要进行一次全库备份。

6.8丢失当前(或活动)的联机重做日志

联机重做日志需要采用每组多个成员的方式。

以防止出现单个文件错误或丢失。

在线日志的状态有以下几种类型:

CURRENT:

表示当前的联机重做日志文件组。

这说明该联机重做日志文件组是活动的。

ACTIVE:

表示联机重做日志文件组是活动的,但是并非当前联机重做日志文件组。

崩溃恢复需要该状态。

它可用于块恢复。

它可能已归档,也可能未归档。

UNUSED:

表示从未对联机重做日志文件组进行写入。

这是刚添加的联机重做日志文件的状态。

CLEARING_CURRENT:

表示正在清除当前日志文件中的已关闭线程。

如果切换时发生某些故障,如写入新日志标头时发生了输入/输出(I/O)错误,则日志可能处于此状态。

CLEARING:

表示在执行ALTERDATABASECLEARLOGFILE命令后正在将该日志重建为一个空日志。

日志清除后,其状态更改为UNUSED。

INACTIVE:

表示例程恢复不再需要联机重做文件日志组。

它可能已归档,也可能未归档。

丢失当前或活动的在线重做日志是个很严重的问题,可能会出现数据丢失。

6.8.1情形一

损坏或丢失当前(或活动)的在线重做日志。

数据库是正常关闭,日志文件中没有未决的事务需要实例恢复。

6.8.2方法一

1>.关闭数据库,备份所有数据文件

2>.恢复当前(或活动)的联机重做日志

SQL>startup

ORACLEinstancestarted.

TotalSystemGlobalArea101784276bytes

FixedSize453332bytes

VariableSize75497472bytes

DatabaseBuffers25165824bytes

RedoBuffers667648bytes

Databasemounted.

ORA-00313:

openfailedformembersofloggroup1ofthread1

ORA-00312:

onlinelog1thread1:

'D:

\ORACLE\ORADATA\ORCL\REDO01.LOG'

SQL>alterdatabaseclearunarchivedlogfilegroup1;

Databasealtered.

SQL>alterdatabaseopen;

Databasealtered.

6.8.3结果一

数据库恢复正常。

需要进行一次全库备份。

6.8.4情形二

损坏或丢失当前(或活动)的在线重做日志。

日志组中有活动的事务,数据库需要媒体恢复,日志组需要用来同步。

6.8.5方法二

1>.关闭

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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