admin 管理员组

文章数量: 1184232


2023年12月23日发(作者:ui页面层级)

实验六 oracle备份恢复

一、实验目的及要求

掌握oracle数据库常用的备份和恢复方法。

二、实验主要内容

(1) 数据备份与恢复的方法

物理备份与恢复、

逻辑备份与恢复、

RMAN(选做)

(2)Oracle备份方案的制定

三、实验仪器设备

在局域网环境下,有一台服务器和若干台客户机。服务器成功安装Oracle 11g数据库服务器(企业版),客户机成功安装Oracle 11g客户端软件,网络服务配置正确,数据库和客户端正常工作。

四、实验步骤

1 Oracle物理备份与恢复

.0.准备工作:

(1) 查看数据库是否运行于归档模式下:

(2) 干净的关闭数据库,做一个完全的冷备份。

提示:a.使用showdown命令; b.复制数据文件、日志文件和控制文件到安全地方

(3) 把数据库改为归档模式

1.实验1:

数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。

(1) 先启动数据库,用scott用户建立test表,并插入两条数据。

(2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。

把oracle服务停掉,移除和文件(即将这两个文件移到其他文件夹下)。

(3)启动服务,启动数据库, 提示如下错误

a. 启动服务

b. 启动数据库

(4) 把备份的和文件复制回去

a. 执行以下命令:

请给执行结果:

然后就可以打开数据库,查看scott用户的test表。

实验2:

数据库是打开的,这时损坏的文件是用户的数据文件而不是system和undo文件。

(1)用scott用户在users表空间建立test1表

(2) 插入两条数据

(3)当前日志归档

(4)现在破坏users表空间,使其离线,然后移除到一个指定文件夹(备份)

此时出现错误,users表空间不能在线了。这时把备份的还原回去。

(5)完成介质恢复。

实验3:数据文件没有备份(不能使system和undo文件)的恢复。

(1)创建表空间testspace

在SQL Plus中依次执行以下语句,给出最后的执行结果:

(2)由于没有备份数据文件,需重新创建一个

(3) 完成恢复

2 Oracle逻辑备份:导入导出实验

实验4:模式的导入导出

案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到Test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据。

1.准备工作

(1)创建用户:

(2)授权:

2.数据的导出与导入

(1)数据准备

以scott身份登录: conn scott/tiger

①创建测试用表:

加入数据:

提交:

②创建测试用表scott_test

加入数据:

(2)以管理员身份登录:

(3)导出数据库:

在DOS提示符下执行:

(4)恢复数据库运行状态

(5)进行数据库的导入:

3.结果检验

对导入的数据进行查询,以确定导入是否成功,给出结果截图:

(1)以test身份登录到数据库

(2)查询刚才导出(导入)表中的某个表(如Jobs):

3 RMAN使用基础

测试说明

测试目的

验证RMAN备份与恢复全过程。记录整个过程的操作细节。

利用RMAN的备份与恢复可完成如下工作:

(1) 数据库备份/恢复;

(2) 同一主机,不同磁盘阵列,相同数据存储路径(模式)的数据迁移;(在恢复过程中改变数据存储路径/模式过程待验证)

(3) 不同主机,相同操作系统、同一数据库版本之间的的数据库迁移。(不同数据库版本之间是否可利用RMAN 备份与恢复进行数据迁移待验证。)

测试环境说明

• OS:Windows XP

• ORACLE VERSION: Oracle Database 10g Enterprise Edition Release 11.2.0.2.0 – Prod

• ORACLE运行模式:归档模式

ORACLE数据存储:文件系统,存储于D:oracleproduct11.2.0oradataorcl

数据备份过程

1.连接本地数据库: rman target /

通过rman连接本地数据库非常简单,进入到命令提示符界面:

数据库全备份

3.数据库在数据全备份后继续操作

(1)在RMAN全备份后继续数据库的操作。即在测试表中插入数据。

(2)正常关闭数据库。并删除原数据库所有文件,包括:控制文件、数据文件、日志文件。以模拟更换磁盘阵列或者文件丢失的情况。

此时,重新启动数据库过程必然失败。

数据库恢复过程

当前情况下,所有的控制文件、数据库文件、联机日志文件均全部丢失。按照数据库恢复/启动过程,应按照先恢复数据库控制文件,再恢复数据文件的步骤进行。

1.

从RMAN备份中恢复控制文件

在本例子中,RMAN备份脚本进行了控制文件的备份。所以,控制文件的恢复过程可以利用RMAN的备份完成。

此时,也存在两种情况。

• RMAN设置了控制文件自动备份。

• RMAN未设置控制文件自动备份,而由RMAN脚本进行控制文件备份。如本例所示。

对于此两种情况,分别说明如下。

(1) RMAN未设置控制文件自动备份

2.

由于RMAN未设置控制文件自动备份。则可以利用程序包,从备份集中恢复。如下:

3.

(2) RMAN设置了控制文件自动备份

建议开启RMAN 自动备份控制文件选项。操作如下:

经过以上设置后,会在数据库的结构发生变化的时候自动备份控制文件。

从RMAN设置了控制文件自动备份后,恢复控制文件的过程如下:

利用以上语句完成控制文件自从控制文件自动备份集中恢复。完成控制文件的恢复操作。将在D:oracleproduct11.2.0oradataorcl目录中生成新的控制文件。注意,此时恢复的控制文件为全部的控制文件。本例中为3个控制文件。

2. 从手动控制文件备份中恢复

手动备份控制文件的方式有两种。

控制文件备份方式(1)

控制文件备份方式(2)

方式(2)将在user_dump_dest目录中生成一个trace文件。该文件中将生成控制文件的生成脚本。

本例中user_dump_dest路径为D:oracleproduct11.2.0adminorcludump。控制文件生成脚本如下:

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE “ORCL” NORESETLOGS ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 454

LOGFILE

GROUP 3 ‘D:’ SIZE 10M,

GROUP 4 ‘D:’ SIZE 10M,

GROUP 5 ‘D:’ SIZE 10M,

GROUP 6 ‘D:’ SIZE 10M

– STANDBY LOGFILE

DATAFILE

‘D:’,

‘D:’,

‘D:’,

‘D:’

CHARACTER SET ZHS16GBK

;

下面将对利用方法(2)生成的控制文件脚本进行控制文件恢复的步骤说明如下:

利用trace中的创建控制文件脚本,创建控制文件。注意,此时创建的控制文件为所有控制文件,本例中为3个控制文件。创建控制文件位置、数量均由spfile指定。

控制文件已创建

注意:控制文件一旦创建,则数据库将启动到MOUNTED状态。

3.恢复数据库数据文件

在控制文件恢复后,可以开始数据库文件的恢复。

继续进行RMAN数据库恢复操作

既然此时日志组不存在,那么只能进行不完全恢复了。

附加的测试过程

1.假设:日志文件没有丢失

修改以上的测试条件。假设除日志文件外,其他文件均丢失。在完成restore database后,将日志文件复制到原路径,之后进行数据恢复测试。


本文标签: 文件 控制 备份 数据库 恢复