实验10-Oracle数据库备份与恢复_第1页
实验10-Oracle数据库备份与恢复_第2页
实验10-Oracle数据库备份与恢复_第3页
实验10-Oracle数据库备份与恢复_第4页
实验10-Oracle数据库备份与恢复_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验10 Oracle数据库备份与恢复姓名:学号:专业:班级:同组人:无实验日期:2013/7/23【实验目的与要求】n 常见数据备份与恢复的方法n 学会Oracle备份方案的制定【实验内容与步骤】10.1. Oracle物理备份与恢复.0准备工作:(1) 查看数据库是否运行于归档模式下:请给出查询的结果:(2) 干净的关闭数据库,做一个完全的冷备份。提示:a.使用shutdown命令关闭数据库; b.复制数据文件、日志文件和控制文件到安全地方(3) 把数据库改为归档模式SQL startup mountSQL alter database archivelog;SQL alter datab

2、ase open;设置成自动归档SQL alter system set log_archive_start = true scope=spfile;注意:本实验中的很多命令路径参数需根据自己的实现环境作出修改!1实验1:数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。(1) 先启动数据库,用scott用户建立test表,并插入两条数据。SQL create table scott.test(id int,name varchar2(10);表已创建。SQL insert into scott.test values(1001,zhangfei);已创建 1 行。SQ

3、L insert into scott.test values(1002,guanyu);已创建 1 行。SQL commit;提交完成。(2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。SQL shutdown abort把oracle服务停掉,移除SYSTEM01.dbf和UNDOTBS01.DBF文件(即将这两个文件移到其他文件夹下)。(3)启动服务,启动数据库a. 启动服务b. 启动数据库,肯定出错SQL startup请给执行结果:(4)把备份的SYSTEM01.dbf和UNDOTBS01.DBF文件复制回去a. 执行以下命令:请给执行结果:然后就可以打开数据库,查看scott用

4、户的test表。SQL alter database open;SQL select * from scott.test; 请给执行结果:2实验2:数据库是打开的,这时损坏的文件是用户的数据文件而不是system和undo文件。(1)用scott用户在users表空间建立test1表SQL create table scott.test1(id int)2tablespace users;表已创建。(2) 插入两条数据SQL insert into scott.test1 values(1);已创建 1 行。SQL insert into scott.test1 values(2);已创建 1

5、 行。SQL commit;提交完成。(3)当前日志归档SQL alter system archive log current;系统已更改。(4)现在破坏users表空间,使其离线,然后移除users01.dbf到一个指定文件夹(备份)SQL alter tablespace users offline;表空间已更改。 移除users01.dbf到一个指定文件夹(备份)执行:SQL alter tablespace users online;请给执行结果:此时出现错误,users表空间不能在线了。这时把备份的users01.DBF还原回去。然后,执行:SQL recover tablespa

6、ce users;(5)完成介质恢复。SQL alter tablespace users online;表空间已更改。SQL select * from scott.test1; 请给执行结果:3. 实验3:数据文件没有备份(不能使system和undo文件)的恢复。(1)创建表空间testspace在SQL Plus中依次执行以下语句,给出最后的执行结果:SQL create tablespace testspace datafile C:oracleproduct10.1.0db_1TestDBtestspace.dbf size 10m;SQL create table scott.t

7、est3(id int,name varchar2(10) tablespace testspace;SQL commit;SQL alter system switch logfile;SQL insert into scott.test3 values(1003,songjian);SQL commit;SQL alter tablespace testspace offline;SQL select * from scott.test3;请给执行结果:(2)由于没有备份数据文件,需重新创建一个SQL alter database create datafile C:oracleprodu

8、ct10.1.0db_1TestDBtestspace.dbf;SQL recover tablespace testspace;(3) 完成恢复SQL alter tablespace testspace online;表空间已更改。SQL select * from scott.test3;请给执行结果:4实验4:完成以下练习本练习将对数据库进行物理备份,并执行基于更改的不完全恢复,以恢复被用户误删除的数据。按以下步骤完成实验过程,并给出实验结果:1) 以SYSDBA身份连接数据库。2) 确定数据库运行在归档模式下。3) 切换表空间USER为脱机状态。4) 复制Oracle目录中的USER

9、S01.DBF文件,然后设置表空间USERS为ONLINE状态。5) 删除STUDENT表中存储的学生信息,并归档当前的日志信息。6) 关闭数据库,切换数据库到MOUNT状态。7) 复制备份的文件到数据库目录,并使用RECOVER命令执行基于更改的不完全恢复。8) 打开数据库,并验证是否恢复被误删除的数据。10.2. 逻辑备份:导入导出实验实验5:模式的导入导出案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到Test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据。1准备工作(1)创建用户:Create user testIdentified by

10、test;(2)授权:注:这儿做了简化处理,实际工作中,尽量不要授DBA权限给一般用户。2数据的导出与导入(1)数据准备以scott身份登录: conn scott/tiger创建测试用表:create table jobs( name varchar2(20),job varchar2(40), sales number);加入数据:insert into jobs values(IT_Test,software testing,3000);提交: commit;创建测试用表scott_test create table scott_test( name varchar2(10), age

11、number);加入数据: insert into scott_test values(manager,40);(2)以管理员身份登录: conn as sysdba; alter system enable restricted session; (3)导出数据库: 在DOS提示符下执行:exp system/ testdb full=y file=test.dmp执行时,会要求输入system的口令,请根据实际情况输入。 (4)恢复数据库运行状态 conn as sysdba; alter system disable restricted session; (5)进行数据库的导入:以下是

12、一示例:imp system/testdb fromuser=scott touser=test tables=(scott_test,jobs) file=test.dmp ignore=y;请给执行结果:3结果检验对导入的数据进行查询,以确定导入是否成功,给出结果截图:(1)以test身份登录到数据库(2)查询刚才导出(导入)表中的某个表(如Jobs):请给执行结果:10.3. RMAN使用基础10.3.1. RMAN简介RMAN可以用来备份和还原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。 注意:RMAN不能用于备份初始化参数文件和口令文件。RMAN启动数据

13、库上的Oracle服务器进程来进行备份或还原。备份、还原、恢复是由这些进程驱动的。10.3.2. 测试目的与环境说明验证RMAN备份与恢复全过程。记录整个过程的操作细节。OS:Windows XPORACLE VERSION: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 ProdORACLE运行模式:归档模式ORACLE数据存储:文件系统,存储于C:oracleproduct10.1.0db_1TestDB(此路径应根据实验环境确定),包含文件如下:10.3.3. 准备工作(1) 创建测试用表在Scott用户模式下创建测试

14、用表emp_t,并导入测试数据:插入一行新测试数据:(2) 查看数据库是否运行于归档模式下:请给出查询的结果:(3) 如果系统不是运行于归档模式下,则按以下步骤修改运行模式,使其运行于归档模式:(4) 执行以下命令,确认系统运行于归档模式下:请给出执行结果:10.3.4. 数据备份过程1. RMAN 数据库全备份(1) 启动RMAN在CMD命令行提示符下,执行如下命令:(2) 在C:下创建备份文件存放目录OracleBak(3) 执行全备份操作在RMAN提示符下执行如下语句:run allocate channel c1 type disk;backup database format C:O

15、racleBakdb_full_%U include current controlfile;sql alter system archive log current;#crosscheck archivelog all;backup format C:OracleBakarch_full_%U archivelog all delete input;release channel c1;请给出执行结果:(4) 查看执行结果完成以下命令集后,打开C:OracleBak文件夹,查看其中备份文件情况。请给结果:【注意】在本实验中:RMAN采用无恢复目录模式备份数据库过程包含当前控制文件备份数据库处

16、于归档模式,备份过程包含所有归档日志的备份数据库必须处于mount或者open状态,才能进行数据库备份(5) 检查备份结果备份完成后,在RMAN提示符下分别执行以下命令,检查备份结果a. List backup请给出执行结果:b. List backup of archivelog all;请给出执行结果:2. 模拟系统故障(1) 在RMAN全备份后继续数据库的操作,即在测试表中插入数据。SQL conn scott/tigerSQL insert into emp_t(empno,ename,sal) 2 values(2003,zhangfei,3031);(2) 正常关闭数据库。并删除原

17、数据库所有文件,包括:控制文件、数据文件、日志文件,以模拟更换磁盘阵列或者文件丢失的情况。SQL conn sys/testdb as sysdbaSQL shutdown immediateSQL host move C:oracleproduct10.1.0db_1TestDB C:oracleproduct10.1.0db_1TestDB.bak(3) 查看数据库数据文件等的存在情况打开数据库目录“C:oracleproduct10.1.0db_1”,查看是否还存在TestDB文件夹。请给结果:【注意】删除文件过程,将以更目录名称的方式,用以模拟新盘阵列上的文件存储路径与原系统不同。(4

18、) 数据库启动测试此时,重新启动数据库过程必然失败。请给出执行结果:【注意】此时由于实例存在,但是database全部丢失,则INSTANCE启动成功,但是database启动失败。即可,NOMOUNT状态(只启动INSTANCE)成功;进入MOUNT状态时,由于控制文件丢失,MOUNT 失败。数据库启动过程不能继续。10.3.5. 数据库恢复过程当前情况下,所有的控制文件、数据库文件、联机日志文件均全部丢失。按照数据库恢复/启动过程,应按照先恢复数据库控制文件,再恢复数据文件的步骤进行。1. 从RMAN备份中恢复控制文件在本实验中,RMAN备份脚本进行了控制文件的备份。所以,控制文件的恢复过

19、程可以利用RMAN的备份完成。由于RMAN未设置控制文件自动备份,则可以利用程序包,从备份集中恢复。过程如下:a. 将数据库启动到nomount状态b. 执行如下命令:declare devtype varchar2(256);done boolean;begin devtype := dbms_backup_restore.deviceallocate(NULL); dbms_backup_restore.restoresetdatafile; dbms_backup_restore.restorecontrolfileto(C:oracleproduct10.1.0db_1TestDBCO

20、NTROL01.CTL);dbms_backup_restore.restorebackuppiece(C:OracleBakDB_FULL_03MERUOO_1_1,done = done);end;/请给出执行结果:【注意】(1) 若出错,报告无法创建指定的控制文件,可能是由于文件目录并不存在,请先创建之(即创建数据库数据文件夹C:oracleproduct10.1.0db_1TestDB);(此时是测试时,留下此问题,还记得前面采用修改目录名的方式启动删除所有文件的步骤吗?)(2)备份文件“DB_FULL_03MERUOO_1_1”名字应根据具体实际作出修改;c. 查看控制文件恢复状态完

21、成前述命令的执行后,到文件夹“C:oracleproduct10.1.0db_1TestDB”,看是否存在一控制文件。请给出执行结果:d. 此时启动数据库试验一下SQL startup nomountSQL alter database mount;请给出执行结果:【注意】系统启动不了,缺少控制文件。e. 复制controlfile检查一下spfile的设置。SQL show parameter control_files将C:oracleproduct10.1.0db_1TestDB下的控制文件Control01.ctl作两个拷贝,并分别改名为Control02.ctl和Control03.

22、ctl。f. 重新启动系统SQL startup nomount;SQL alter database mount;请给出执行结果:【注意】此时,系统可完成加载,但不能Open.遗留一个问题。此时是由RMAN备份的控制文件中恢复。那么如果RMAN没有备份控制文件,同时RMAN没有设置自动备份控制文件,那么该如何恢复呢?当然,如果完全没有控制文件的备份,那么就彻底歇菜了!对于控制文件的手工备份,可以采用Alter database backup controlfile to trace;(此恢复有点难度)Alter database backup control to c:control.bak;(此恢复简单)恢复数据库数据文件在控制文件恢复后,可以开始数据库文件的恢复。 a. 检查备份情况C: rman nocat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论