实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx

上传人:b****6 文档编号:18868037 上传时间:2023-01-01 格式:DOCX 页数:22 大小:817.97KB
下载 相关 举报
实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx_第1页
第1页 / 共22页
实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx_第2页
第2页 / 共22页
实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx_第3页
第3页 / 共22页
实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx_第4页
第4页 / 共22页
实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx

《实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。

实验10 Oracle数据库备份与恢复VWord文档下载推荐.docx

(idint,namevarchar2(10));

表已创建。

insertintoscott.testvalues(1001,’zhangfei’);

已创建1行。

insertintoscott.testvalues(1002,’guanyu’);

commit;

提交完成。

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

shutdownabort

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

(3)启动服务,启动数据库

a.启动服务

b.启动数据库,肯定出错

startup

请给执行结果:

(4)把备份的SYSTEM01.dbf和UNDOTBS01.DBF文件复制回去

a.执行以下命令:

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

select*fromscott.test;

 

2.实验2:

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

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

createtablescott.test1(idint)

tablespaceusers;

(2)插入两条数据

insertintoscott.test1values

(1);

insertintoscott.test1values

(2);

(3)当前日志归档

altersystemarchivelogcurrent;

系统已更改。

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

altertablespaceusersoffline;

表空间已更改。

移除users01.dbf到一个指定文件夹(备份)

执行:

altertablespaceusersonline;

此时出现错误,users表空间不能在线了。

这时把备份的users01.DBF还原回去。

然后,执行:

recovertablespaceusers;

(5)完成介质恢复。

select*fromscott.test1;

3.实验3:

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

(1)创建表空间testspace

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

createtablespacetestspacedatafile'

C:

\oracle\product\10.1.0\db_1\TestDB\testspace.dbf'

size10m;

createtablescott.test3(idint,namevarchar2(10))

tablespacetestspace;

altersystemswitchlogfile;

insertintoscott.test3values(1003,’songjian’);

altertablespacetestspaceoffline;

select*fromscott.test3;

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

alterdatabasecreatedatafile

'

;

recovertablespacetestspace;

(3)完成恢复

altertablespacetestspaceonline;

4.实验4:

完成以下练习

本练习将对数据库进行物理备份,并执行基于更改的不完全恢复,以恢复被用户误删除的数据。

按以下步骤完成实验过程,并给出实验结果:

1)以SYSDBA身份连接数据库。

2)确定数据库运行在归档模式下。

3)切换表空间USER为脱机状态。

4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。

5)删除STUDENT表中存储的学生信息,并归档当前的日志信息。

6)关闭数据库,切换数据库到MOUNT状态。

7)复制备份的文件到数据库目录,并使用RECOVER命令执行基于更改的不完全恢复。

8)打开数据库,并验证是否恢复被误删除的数据。

10.2.逻辑备份:

导入导出实验

实验5:

模式的导入导出

案例:

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

1.准备工作

(1)创建用户:

Createusertest

Identifiedbytest;

(2)授权:

注:

这儿做了简化处理,实际工作中,尽量不要授DBA权限给一般用户。

2.数据的导出与导入

(1)数据准备

以scott身份登录:

connscott/tiger

创建测试用表:

createtablejobs(

namevarchar2(20),

jobvarchar2(40),

salesnumber);

加入数据:

insertintojobsvalues('

IT_Test'

'

softwaretesting'

3000);

提交:

创建测试用表scott_test

createtablescott_test(

namevarchar2(10),

agenumber);

加入数据:

insertintoscott_testvalues('

manager'

40'

);

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

connassysdba;

altersystemenablerestrictedsession;

(3)导出数据库:

在DOS提示符下执行:

expsystem/testdbfull=yfile=test.dmp

执行时,会要求输入system的口令,请根据实际情况输入。

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

altersystemdisablerestrictedsession;

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

以下是一示例:

impsystem/testdbfromuser=scotttouser=testtables=(scott_test,jobs)file=test.dmpignore=y;

3.结果检验

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

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

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

10.3.RMAN使用基础

10.3.1.RMAN简介

RMAN可以用来备份和还原数据库文件、归档日志和控制文件。

它也可以用来执行完全或不完全的数据库恢复。

RMAN不能用于备份初始化参数文件和口令文件。

RMAN启动数据库上的Oracle服务器进程来进行备份或还原。

备份、还原、恢复是由这些进程驱动的。

10.3.2.测试目的与环境说明

验证RMAN备份与恢复全过程。

记录整个过程的操作细节。

OS:

WindowsXP

ORACLEVERSION:

OracleDatabase10gEnterpriseEditionRelease10.1.0.2.0–Prod

ORACLE运行模式:

归档模式

ORACLE数据存储:

文件系统,存储于C:

\oracle\product\10.1.0\db_1\TestDB(此路径应根据实验环境确定),包含文件如下:

10.3.3.准备工作

(1)创建测试用表

在Scott用户模式下创建测试用表emp_t,并导入测试数据:

插入一行新测试数据:

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

(3)如果系统不是运行于归档模式下,则按以下步骤修改运行模式,使其运行于归档模式:

(4)执行以下命令,确认系统运行于归档模式下:

请给出执行结果:

10.3.4.数据备份过程

1.RMAN数据库全备份

(1)启动RMAN

在CMD命令行提示符下,执行如下命令:

(2)在C:

\下创建备份文件存放目录OracleBak

(3)执行全备份操作

在RMAN提示符下执行如下语句:

run

{

allocatechannelc1typedisk;

backupdatabaseformat'

\OracleBak\db_full_%U'

includecurrentcontrolfile;

sql'

altersystemarchivelogcurrent'

#crosscheckarchivelogall;

backupformat'

\OracleBak\arch_full_%U'

archivelogalldeleteinput;

releasechannelc1;

}

(4)查看执行结果

完成以下命令集后,打开C:

\OracleBak文件夹,查看其中备份文件情况。

请给结果:

【注意】在本实验中:

RMAN采用无恢复目录模式

备份数据库过程包含当前控制文件备份

数据库处于归档模式,备份过程包含所有归档日志的备份

数据库必须处于mount或者open状态,才能进行数据库备份

(5)检查备份结果

备份完成后,在RMAN提示符下分别执行以下命令,检查备份结果

a.Listbackup

b.Listbackupofarchivelogall;

2.模拟系统故障

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

insertintoemp_t(empno,ename,sal)

2values(2003,'

zhangfei'

3031);

(2)正常关闭数据库。

并删除原数据库所有文件,包括:

控制文件、数据文件、日志文件,以模拟更换磁盘阵列或者文件丢失的情况。

connsys/testdbassysdba

shutdownimmediate

hostmoveC:

\oracle\product\10.1.0\db_1\TestDBC:

\oracle\product\10.1.0\db_1\TestDB.bak

(3)查看数据库数据文件等的存在情况

打开数据库目录“C:

\oracle\product\10.1.0\db_1”,查看是否还存在TestDB文件夹。

【注意】删除文件过程,将以更目录名称的方式,用以模拟新盘阵列上的文件存储路径与原系统不同。

(4)数据库启动测试

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

【注意】

此时由于实例存在,但是database全部丢失,则INSTANCE启动成功,但是database启动失败。

即可,NOMOUNT状态(只启动INSTANCE)成功;

进入MOUNT状态时,由于控制文件丢失,MOUNT失败。

数据库启动过程不能继续。

10.3.5.数据库恢复过程

当前情况下,所有的控制文件、数据库文件、联机日志文件均全部丢失。

按照数据库恢复/启动过程,应按照先恢复数据库控制文件,再恢复数据文件的步骤进行。

1.从RMAN备份中恢复控制文件

在本实验中,RMAN备份脚本进行了控制文件的备份。

所以,控制文件的恢复过程可以利用RMAN的备份完成。

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

过程如下:

a.将数据库启动到nomount状态

b.执行如下命令:

declare

devtypevarchar2(256);

doneboolean;

begin

devtype:

=dbms_backup_restore.deviceallocate(NULL);

dbms_backup_restore.restoresetdatafile;

dbms_backup_restore.restorecontrolfileto('

\oracle\product\10.1.0\db_1\TestDB\CONTROL01.CTL'

dbms_backup_restore.restorebackuppiece('

\OracleBak\DB_FULL_03MERUOO_1_1'

done=>

done);

end;

/

(1)若出错,报告无法创建指定的控制文件,可能是由于文件目录并不存在,请先创建之(即创建数据库数据文件夹C:

\oracle\product\10.1.0\db_1\TestDB);

(此时是测试时,留下此问题,还记得前面采用修改目录名的方式启动删除所有文件的步骤吗?

(2)备份文件“DB_FULL_03MERUOO_1_1”名字应根据具体实际作出修改;

c.查看控制文件恢复状态

完成前述命令的执行后,到文件夹“C:

\oracle\product\10.1.0\db_1\TestDB”,看是否存在一控制文件。

d.此时启动数据库试验一下

startupnomount

alterdatabasemount;

系统启动不了,缺少控制文件。

e.复制controlfile

检查一下spfile的设置。

showparametercontrol_files

将C:

\oracle\product\10.1.0\db_1\TestDB下的控制文件Control01.ctl作两个拷贝,并分别改名为Control02.ctl和Control03.ctl。

f.重新启动系统

startupnomount;

此时,系统可完成加载,但不能Open.

遗留一个问题。

此时是由RMAN备份的控制文件中恢复。

那么如果RMAN没有备份控制文件,同时RMAN没有设置自动备份控制文件,那么该如何恢复呢?

当然,如果完全没有控制文件的备份,那么就彻底歇菜了!

对于控制文件的手工备份,可以采用

Alterdatabasebackupcontrolfiletotrace;

(此恢复有点难度)

Alterdatabasebackupcontrolto‘c:

\control.bak’;

(此恢复简单)

恢复数据库数据文件

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

a.检查备份情况

C:

\>

rmannocatelogtarget/

RMAN>

listbackupsetsummary;

crosscheckbackup;

b.执行恢复操作

restoredatabase;

c.检查物理存储恢复结果

至此数据库恢复存储完成,但是注意并非数据库恢复完成。

打开数据库数据文件夹C:

\oracle\product\10.1.0\db_1\TestDB,查看数据文件等是否得以恢复,若没有,请检查前面操作,看是否有误。

请给出结果:

d.检查恢复结果:

数据库使用测试

如果此时强行打开数据库则报告需要介质恢复,属正常现象。

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

recoverdatabase;

f.数据的不完全恢复

此时日志组不存在,那么只能进行不完全恢复了,执行以下命令

recoverdatabaseuntilcancel;

alterdatabaseopenresetlogs;

g.数据恢复结果测试

检查C:

\oracle\product\10.1.0\db_1\TestDB目录,看是否所有文件均得到恢复。

select*fromemp_t;

自此数据库成功打开。

但是,由于在数据库恢复过程中,由于日志文件全部丢失。

那么自上一次数据库全备份后的所有数据必然全部丢失。

由此看到如果需要数据库完全恢复,日志文件是多么的重要。

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

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1