您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 实验10-Oracle数据库备份与恢复
第1页共22页实验10Oracle数据库备份与恢复姓名:学号:专业:班级:同组人:无实验日期:2013/7/23【实验目的与要求】常见数据备份与恢复的方法学会Oracle备份方案的制定【实验内容与步骤】10.1.Oracle物理备份与恢复.0.准备工作:(1)查看数据库是否运行于归档模式下:请给出查询的结果:(2)干净的关闭数据库,做一个完全的冷备份。提示:a.使用shutdown命令关闭数据库;b.复制数据文件、日志文件和控制文件到安全地方(3)把数据库改为归档模式SQLstartupmountSQLalterdatabasearchivelog;SQLalterdatabaseopen;第2页共22页设置成自动归档SQLaltersystemsetlog_archive_start=truescope=spfile;注意:本实验中的很多命令路径参数需根据自己的实现环境作出修改!!1.实验1:数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。(1)先启动数据库,用scott用户建立test表,并插入两条数据。SQLcreatetablescott.test(idint,namevarchar2(10));表已创建。SQLinsertintoscott.testvalues(1001,’zhangfei’);已创建1行。SQLinsertintoscott.testvalues(1002,’guanyu’);已创建1行。SQLcommit;提交完成。(2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。SQLshutdownabort把oracle服务停掉,移除SYSTEM01.dbf和UNDOTBS01.DBF文件(即将这两个文件移到其他文件夹下)。第3页共22页(3)启动服务,启动数据库a.启动服务b.启动数据库,肯定出错SQLstartup请给执行结果:(4)把备份的SYSTEM01.dbf和UNDOTBS01.DBF文件复制回去a.执行以下命令:请给执行结果:然后就可以打开数据库,查看scott用户的test表。SQLalterdatabaseopen;SQLselect*fromscott.test;请给执行结果:2.实验2:数据库是打开的,这时损坏的文件是用户的数据文件而不是system和undo文件。(1)用scott用户在users表空间建立test1表第4页共22页SQLcreatetablescott.test1(idint)2tablespaceusers;表已创建。(2)插入两条数据SQLinsertintoscott.test1values(1);已创建1行。SQLinsertintoscott.test1values(2);已创建1行。SQLcommit;提交完成。(3)当前日志归档SQLaltersystemarchivelogcurrent;系统已更改。(4)现在破坏users表空间,使其离线,然后移除users01.dbf到一个指定文件夹(备份)SQLaltertablespaceusersoffline;表空间已更改。移除users01.dbf到一个指定文件夹(备份)执行:SQLaltertablespaceusersonline;请给执行结果:此时出现错误,users表空间不能在线了。这时把备份的users01.DBF还原回去。然后,执行:SQLrecovertablespaceusers;(5)完成介质恢复。SQLaltertablespaceusersonline;表空间已更改。SQLselect*fromscott.test1;请给执行结果:第5页共22页3.实验3:数据文件没有备份(不能使system和undo文件)的恢复。(1)创建表空间testspace在SQLPlus中依次执行以下语句,给出最后的执行结果:SQLcreatetablespacetestspacedatafile'C:\oracle\product\10.1.0\db_1\TestDB\testspace.dbf'size10m;SQLcreatetablescott.test3(idint,namevarchar2(10))tablespacetestspace;SQLcommit;SQLaltersystemswitchlogfile;SQLinsertintoscott.test3values(1003,’songjian’);SQLcommit;SQLaltertablespacetestspaceoffline;SQLselect*fromscott.test3;请给执行结果:(2)由于没有备份数据文件,需重新创建一个SQLalterdatabasecreatedatafile'C:\oracle\product\10.1.0\db_1\TestDB\testspace.dbf';SQLrecovertablespacetestspace;(3)完成恢复SQLaltertablespacetestspaceonline;表空间已更改。SQLselect*fromscott.test3;请给执行结果:第6页共22页4.实验4:完成以下练习本练习将对数据库进行物理备份,并执行基于更改的不完全恢复,以恢复被用户误删除的数据。按以下步骤完成实验过程,并给出实验结果:1)以SYSDBA身份连接数据库。2)确定数据库运行在归档模式下。3)切换表空间USER为脱机状态。4)复制Oracle目录中的USERS01.DBF文件,然后设置表空间USERS为ONLINE状态。5)删除STUDENT表中存储的学生信息,并归档当前的日志信息。6)关闭数据库,切换数据库到MOUNT状态。第7页共22页7)复制备份的文件到数据库目录,并使用RECOVER命令执行基于更改的不完全恢复。8)打开数据库,并验证是否恢复被误删除的数据。10.2.逻辑备份:导入导出实验实验5:模式的导入导出案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到Test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据。1.准备工作(1)创建用户:CreateusertestIdentifiedbytest;(2)授权:注:这儿做了简化处理,实际工作中,尽量不要授DBA权限给一般用户。2.数据的导出与导入(1)数据准备以scott身份登录:connscott/tiger①创建测试用表:createtablejobs(namevarchar2(20),第8页共22页jobvarchar2(40),salesnumber);加入数据:insertintojobsvalues('IT_Test','softwaretesting',3000);提交:commit;②创建测试用表scott_testcreatetablescott_test(namevarchar2(10),agenumber);加入数据:insertintoscott_testvalues('manager','40');(2)以管理员身份登录:connassysdba;altersystemenablerestrictedsession;(3)导出数据库:在DOS提示符下执行:第9页共22页expsystem/testdbfull=yfile=test.dmp执行时,会要求输入system的口令,请根据实际情况输入。(4)恢复数据库运行状态connassysdba;altersystemdisablerestrictedsession;(5)进行数据库的导入:以下是一示例:impsystem/testdbfromuser=scotttouser=testtables=(scott_test,jobs)file=test.dmpignore=y;请给执行结果:3.结果检验对导入的数据进行查询,以确定导入是否成功,给出结果截图:(1)以test身份登录到数据库(2)查询刚才导出(导入)表中的某个表(如Jobs):请给执行结果:第10页共22页10.3.RMAN使用基础10.3.1.RMAN简介RMAN可以用来备份和还原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。注意:RMAN不能用于备份初始化参数文件和口令文件。RMAN启动数据库上的Oracle服务器进程来进行备份或还原。备份、还原、恢复是由这些进程驱动的。10.3.2.测试目的与环境说明验证RMAN备份与恢复全过程。记录整个过程的操作细节。OS:WindowsXPORACLEVERSION:OracleDatabase10gEnterpriseEditionRelease10.1.0.2.0–ProdORACLE运行模式:归档模式ORACLE数据存储:文件系统,存储于C:\oracle\product\10.1.0\db_1\TestDB(此路径应根据实验环境确定),包含文件如下:10.3.3.准备工作(1)创建测试用表在Scott用户模式下创建测试用表emp_t,并导入测试数据:插入一行新测试数据:第11页共22页(2)查看数据库是否运行于归档模式下:请给出查询的结果:(3)如果系统不是运行于归档模式下,则按以下步骤修改运行模式,使其运行于归档模式:(4)执行以下命令,确认系统运行于归档模式下:请给出执行结果:10.3.4.数据备份过程1.RMAN数据库全备份(1)启动RMAN在CMD命令行提示符下,执行如下命令:第12页共22页(2)在C:\下创建备份文件存放目录OracleBak(3)执行全备份操作在RMAN提示符下执行如下语句:run{allocatechannelc1typedisk;backupdatabaseformat'C:\OracleBak\db_full_%U'includecurrentcontrolfile;sql'altersystemarchivelogcurrent';#crosscheckarchivelogall;backupformat'C:\OracleBak\arch_full_%U'archivelogalldeleteinput;releasechannelc1;}请给出执行结果:第13页共22页(4)查看执行结果完成以下命令集后,打开C:\OracleBak文件夹,查看其中备份文件情况。请给结果:【注意】在本实验中:RMAN采用无恢复目录模式备份数据库过程包含当前控制文件备份数据库处于归档模式,备份过程包含所有归档日志的备份数据库必须处于mount或者open状态,才能进行数据库备份(5)检查备份结果备份完成后,在RMAN提示符下分别执行以下命令,检查备份结果a.Listbackup请给出执行结果:第14页共22页b.Listbackupofarchivelogall;请给出执行结果:2.模拟系统故障(1)在RMAN全备份后继续数据库的操作,即在测试表中插入数据。SQLconnscott/tigerSQLinsertintoemp_t(empno,ename,sal)2values(2003,'zhangfei',3031);第15页共22页(2)正常关闭数据库。并删除原数据库所有文件,包括:控制文件、数据文件、日志文件,以模拟更换磁盘阵列或者文件丢失的情况。SQLconnsys/testdbassysdbaSQLshutdownimmediateSQLhostmoveC:\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文件夹。请给结果:【注意】删除文件过程,将以更目录名称的方
本文标题:实验10-Oracle数据库备份与恢复
链接地址:https://www.777doc.com/doc-4475424 .html