




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
金陵科技学院实验报告实验8 数据库备份与恢复、数据闪回技术和事务处理一、实验目的和要求1、理解数据库备份的意义、数据库逻辑备份与物理备份的区别以及各自适用的范围。2、掌握数据库逻辑备份与恢复的方法。3、掌握数据库物理备份中脱机备份(冷备份)以及恢复的方法。4、掌握数据库物理备份中的联机备份(热备份)以及恢复的方法。5、理解Oracle的数据库闪回技术适用范围及局限性,在闪回过程中基于SCN的闪回技术和基于时间戳的闪回技术。6、掌握使用SQL *Plus命令闪回表、闪回删除和闪回数据库的方法7、理解事务的概念及特性,事务的提交与回滚,保存点技术。掌握事务的完全回退和回退到保存点的方法。二、实验设备、环境设备:奔腾或奔腾以上计算机环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、ORACLE 10g中文版三、实验步骤1、分析题意,重点分析题目要求并给出解决方法。2、根据题目要求启动SQL*Plus、iSQL*Plus、OEM等管理工具。3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中。4、提交完成的实验结果。四、实验内容1、数据库的逻辑备份与恢复用EXP命令导出Orcl数据库中的Departments表。以mybak.dmp文件名存储在F盘的根目录下。然后删除该表中的数据。用IMP命令导入Departments表,查看表中的数据是否已经恢复。2、数据库的物理备份(1)冷备份在F盘的oracle目录下,查找到Orcl子目录,将该目录中的数据、日志以及控制文件拷贝到E盘的BAK目录下(需要事先创建好)。然后删除Orcl子目录下的部分数据文件。启动数据库,观察其结果。将E盘的BAK目录下的相应数据文件拷回到Orcl子目录下,启动数据库,观察其结果。(2)联机备份与恢复首先将数据库改变为归档模式。将MYTS表空间进行备份。将MYTS表空间中的的数据文件例如MYTS01拷贝到F:BACKUP目录下。将当前的联机日志进行归档和切换。(使用ALTER SYSTEM archive log CURRENT 命令和ALTER SYSTEM SWITCH LOG,FILE)关闭数据库。将MYTS01数据文件删除。然后再启动数据库,观察出错信息。将错的文件脱机并删除掉。打开数据库。此时将备份的文件拷贝到原来的路径下。恢复出错的文件,将该文件设置为联机。在察看结果,看是否已经恢复。3、数据库的闪回技术(1)闪回查询(2)闪回表(注意:闪回表事先要进行允许行迁移的准备)(3)闪回删除4、事务管理(1)回退全部事务(2)利用保存点技术将事务回退的保存点处。五、问题解答及实验结果1、数据库的逻辑备份与恢复(1)导出SQL select * 2 from departments;DEP DEPARTMENTNAME NOTE- - -1 财务部2 人力资源部3 经理办公室4 研发部5 市场部SQL drop table departments;表已删除。SQL select * 2 from departments;from departments *第 2 行出现错误:ORA-00942: 表或视图不存在(2)导入SQL select * 2 from departments;DEP DEPARTMENTNAME NOTE- - -1 财务部2 人力资源部3 经理办公室4 研发部5 市场部2、物理备份(1)冷备份-查询控制文件所在的目录set pagesize 30col name for a60select name from v$controlfile;NAME-F:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL01.CTLF:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL02.CTLF:ORACLEPRODUCT10.2.0ORADATAORCLCONTROL03.CTL-查询日志文件所在的目录col member for a60select member from v$logfile;MEMBER-F:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOGF:ORACLEPRODUCT10.2.0ORADATAORCLREDO02.LOGF:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG-查询所有数据文件所在的目录和文件名col file_name for a60set linesize 120FILE_NAME TABLESPACE_NAME- -F:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF USERSF:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF SYSAUXF:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF UNDOTBS1F:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF SYSTEMF:ORACLEPRODUCT10.2.0ORADATAORCLEXAMPLE01.DBF EXAMPLEF:DISK2ORCLPIONEER_DATA.DBF PIONEER_DATAF:DISK4ORCLPIONEER_INDX.DBF PIONEER_INDX-查询参数文件所在的目录show parameter pfileNAME TYPE VALUE- - - -spfile string F:ORACLEPRODUCT10.2.0DB_1 DBSSPFILEORCL.ORA-创建备份文件存放的目录SQLHOST -该命令从sqlplus窗口转换到dos窗口f:md backup f:cd backupf:backupmd databasef:backupmd dbsf:backupmd disk2f:backupmd disk4f:backupdir-创建存储脚本文件的目录f:oraclemd mgt-编写冷备份脚本文件:CONNECT SYS/ORCL123 AS SYSDBASHUTDOWN IMMEDIATEHOST COPY F:ORACLEPRODUCT10.2.0ORADATAORCL*.* F:backupHOST COPY F:ORACLEPRODUCT10.2.0db_1dbsSPFILEORCL.ORA F:backupdbsHOST COPY F:ORACLEPRODUCT10.2.0db_1databasepwdorcl.ora F:dackupdatabaseHOST COPY F:disk2orclPINOEER_DATA.DBF F:backupdisk2HOST COPY F:disk4orclPINOEER_INDX.DBF F:backupdisk4STARTUP将以上脚本保存在f:oraclemgtcoolbak.sql-冷备份的实施,运行coolbak.sqlSQLF:oraclemgtcoolbak-查看backup目录下的所有文件SQLHOSTF:oracleproduct10.2.0db_1bin cd f:backupf:backupdir模拟数据损害,删除数据文件后,用下面的命令进行恢复。SQLconnect sys/orcl123 as sysdbaSQLshutdown immediateSQLHOST COPY F:backup*.* F:oracleproduct10.2.0oradataorclSQLHOST COPY F:backupdbsSPFILEORCL.ORA F:oracleproduct10.2.0dbackup_1dbsSQLHOST COPY F:backupdatabasePWDORCL.ORA F:oracleproduct10.2.0db_1databaseSQLHOST COPY F:backupdisk2PIONEER_DATA.DBF F:DISK2ORCLSQLHOST COPY F:backupdisk4PIONEER_INEX.DBF F:DISK4ORCLSQLSTARTUP(2)热备份SQL archive log list数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 11当前日志序列 13数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startup mountORACLE 例程已经启动。Total System Global Area 209715200 bytesFixed Size 1248140 bytesVariable Size 88081524 bytesDatabase Buffers 117440512 bytesRedo Buffers 2945024 bytes数据库装载完毕。SQL alter database archivelog;数据库已更改。SQL alter database open;数据库已更改。SQL archive log list数据库日志模式 存档模式自动存档 启用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 31下一个存档日志序列 33当前日志序列 33SQL alter tablespace MYTS begin backup;表空间已更改。SQL HOST COPY F:ORACLEPRODUCT10.2.0ORADATAORCLMYTS01 F:BACKUP;SQL ALTER TABLESPACE MYTS END BACKUP;表空间已更改。SQL SHUTDOWN IMMEDIATE;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。模拟数据库损坏,删除MYTS01数据文件。SQL STARTUPORACLE 例程已经启动。Total System Global Area 209715200 bytesFixed Size 1248140 bytesVariable Size 130024564 bytesDatabase Buffers 75497472 bytesRedo Buffers 2945024 bytes数据库装载完毕。ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件ORA-01110: 数据文件 8: F:ORACLEPRODUCT10.2.0ORADATAORCLMYTS01SQL alter database datafile 8 offline; 数据库已更改。SQL alter database open;数据库已更改。SQL select file#,status from v$datafile; FILE# STATUS- - 1 SYSTEM 2 ONLINE 3 ONLINE 4 ONLINE 5 ONLINE 6 ONLINE 7 ONLINE 8 OFFLINE已选择8行。SQL col error for a20SQL select * from v$recover_file; FILE# ONLINE ONLINE_ ERROR CHANGE# TIME- - - - - - - 8 OFFLINE OFFLINE FILE NOT FOUND 0SQLHOST COPY F:BACKUPMYTS01 F:ORACLEPRODUCT10.2.0ORADATAORCLSQL RECOVER DATAFILE 8完成介质恢复。SQL ALTER TABLESPACE MYTS ONLINE;表空间已更改。SQL SELECT FILE#,STATUS FROM V$DATAFILE; FILE# STATUS- - 1 SYSTEM 2 ONLINE 3 ONLINE 4 ONLINE 5 ONLINE 6 ONLINE 7 ONLINE 8 ONLINE已选择8行。SQL CONNECT ADMIN/ADMIN123已连接。SQL SELECT COUNT(*) 2 FROM SALES; COUNT(*)- 918843SQL SELECT COUNT(*) 2 FROM customers; COUNT(*)- 555003、数据库闪回技术(1)闪回查询SQL CONNECT SYS/ORCL123 AS SYSDBA已连接。SQL grant execute on dbms_flashback to scott;授权成功。SQL SELECT TO_CHAR(sysdate,yyyy-mm-dd hh24:mi:ss)current_time from dual;CURRENT_TIME-2012-06-05 17:08:53SQL conn scott/tiger;已连接。SQL SELECT ENAME,SAL FROM EMP WHERE EMPNO=7788;ENAME SAL- -SCOTT 3000SQL VARIABLE scn_now NUMBERSQL EXECUTE :scn_now :=dbms_flashback.get_system_change_number; -获取SCN的值。PL/SQL 过程已成功完成。SQL PRINT :scn_now SCN_NOW- 1297964SQL SET TIME ON17:10:50 SQL EXECUTE dbms_flashback.disable; PL/SQL 过程已成功完成。17:11:06 SQL UPDATE EMP SET SAL=4000 WHERE EMPNO=7788;已更新 1 行。17:11:28 SQL CONN SCOTT/TIGER已连接。17:11:49 SQL EXECUTE :scn_now:=dbms_flashback.get_system_change_number;PL/SQL 过程已成功完成。17:12:16 SQL PRINT :SCN_NOW SCN_NOW- 129806117:12:33 SQL EXECUT dbms_flashback.enable_at_system_change_number(:scn_now);PL/SQL 过程已成功完成。17:13:24 SQL SELECT ENAME,SAL FROM EMP WHERE EMPNO=7788;ENAME SAL- -SCOTT 400017:13:48 SQL execute dbms_flashback.disable;PL/SQL 过程已成功完成。17:14:14 SQL execute dbms_flashback.enable_at_system_change_number(1297964);PL/SQL 过程已成功完成。17:15:13 SQL SELECT EMPNO,SAL FROM EMP WHERE EMPNO=7788; EMPNO SAL- - 7788 300017:15:34 SQL EXECUTE dbms_flashback.disable;PL/SQL 过程已成功完成。17:16:07 SQL UPDATE EMP SET SAL=4500 WHERE EMPNO=7788;已更新 1 行。17:16:27 SQL COMMIT;提交完成。17:17:01SQLEXECUTE dbms_flashback.enable_at_time( to_date(2012-06-05 17:13:48,yyyy-mm-dd hh24:mi:ss);PL/SQL 过程已成功完成。17:19:09 SQL SELECT EMPNO,SAL FROM EMP WHERE EMPNO=7788; EMPNO SAL- - 7788 400017:19:49 SQL EXECUTE dbms_flashback.disable;PL/SQL 过程已成功完成。17:20:16 SQL EXECUTE dbms_flashback.disable;PL/SQL 过程已成功完成。17:20:34 SQL SET TIME OFF;SQL(2)闪回表一、创建闪回表的测试条件(创建一个表空间、一个用户,并给用户授权)SQL CREATE TABLESPACE loc_tbs01 2 DATAFILE e:loc_tas01_1.dbf SIZE 5M 3 EXTENT MANAGEMENT LOCAL;表空间已创建。SQL CREATE USER myuser1 IDENTIFIED BY user1pswd 2 DEFAULT TABLESPACE loc_tbs01 3 TEMPORARY TABLESPACE temp 4 QUOTA 2M ON loc_tbs01;用户已创建。SQL GRANT connect,resource TO myuser1;授权成功。SQL GRANT execute ON dbms_flashback to myuser1;授权成功。二、模拟用户操作SQL connect myuser1/user1pswd;已连接。 CREATE TABLE Department (DeptNo CHAR(2) NOT NULL, Name VARCHAR2(20) NOT NULL, Address VARCHAR2(30), CONSTRAINT PK_DepNO PRIMARY KEY (DeptNo) VALIDATE);表已创建。SQL CREATE TABLE Student (StuNo VARCHAR2(12) NOT NULL, Name VARCHAR2(15) NOT NULL, Sex CHAR(1), DeptNo CHAR(2), CONSTRAINT PK_StuNo PRIMARY KEY (StuNo) VALIDATE, CONSTRAINT FK_DeptNO FOREIGN KEY (DeptNo) REFERENCES Department(DeptNo) VALIDATE);表已创建。SQL COMMIT;提交完成。SQL CREATE UNIQUE INDEX idx_Department ON Department(Name);索引已创建。 SQL CREATE INDEX idx_Student_name ON Student(Name);索引已创建。SQL SELECT index_name,table_name,uniqueness FROM user_indexes;INDEX_NAME TABLE_NAME UNIQUENES- - -PK_DEPNO DEPARTMENT UNIQUEIDX_DEPARTMENT DEPARTMENT UNIQUEPK_STUNO STUDENT UNIQUEIDX_STUDENT_NAME STUDENT NONUNIQUESQL COMMIT;-注意:先往Demartment表中插入数据,然后再向Student表插入数据,想一下为什么?SQL INSERT INTO Department VALUES(01,计算机系,1号楼);INSERT INTO Department VALUES(02,自动控制系,2号楼);INSERT INTO Department VALUES(03,电子技术系,3号楼);SQLINSERT INTO Student VALUES(20060302001,jack,1,03);INSERT INTO Student VALUES(20060302002,smith,1,03);INSERT INTO Student VALUES(20060302003,Iucy,0,03);SQL COMMIT;三、采用基于时间点闪回表SQL VARIABLE scn_now numberSQL EXECUTE :scn_now :=dbms_flashback.get_system_change_number; -获取SCNPL/SQL 过程已成功完成。SQL PRINT scn_now SCN_NOW- 1299435SQL ALTER TABLE Department ENABLE ROW MOVEMENT; 表已更改。SQL ALTER TABLE Student ENABLE ROW MOVEMENT;表已更改。SQL SELECT TO_CHAR(sysdate,yyyy-mm-dd hh24:mi:ss) CURRENT_TIME FROM dual;CURRENT_TIME-2012-06-05 17:42:41SQL TRUNCATE TABLE Student;表被截断。SQL DROP INDEX idx_Department;索引已删除。SQL DELETE FROM Department;已删除3行。SQL COMMIT;提交完成。SQL FLASHBACK TABLE Student TO TIMESTAMP to_timestamp(2012-06-05 17:42:41,yyyy-mm-dd hh24:mi:ss);FLASHBACK TABLE Student TO TIMESTAMP to_timestamp(2012-06-05 17:42:41,yyyy-mm-dd hh24:mi:ss) *第 1 行出现错误:ORA-01466: 无法读取数据 - 表定义已更改 -用TRUNCATE 命令截断的表不能闪回SQL FLASHBACK TABLE Department TO TIMESTAMP to_timestamp(2012-06-05 17:42:41,yyyy-mm-dd hh24:mi:ss);闪回完成。 -闪回了Department表中的数据SQL COMMIT;提交完成。SQL SELECT * FROM Student;未选定行SQL SELECT * FROM Department;DE NAME ADDRESS- - -01 计算机系 1号楼02 自动控制系 2号楼03 电子技术系 3号楼SQL SELECT index_name,table_name,uniqueness FROM user_indexes;INDEX_NAME TABLE_NAME UNIQUENES- - -PK_STUNO STUDENT UNIQUEIDX_STUDENT_NAME STUDENT NONUNIQUEPK_DEPNO DEPARTMENT UNIQUE-虽然闪回了Department表中的数据但不能闪回单独删除的索引。四、禁用行移动功能SQL ALTER TABLE Department ENABLE ROW MOVEMENT; 表已更改。SQL ALTER TABLE Student ENABLE ROW MOVEMENT; 表已更改。(3)闪回删除一、将测试环境恢复到初始状态-用DROP TABLE TABLE_name CASCADE CONSTRAINT 命令删除表及其索引然后重新创建SQL DROP TABLE Student CASCADE CONSTRAINT;表已删除。SQL DROP TABLE Department CASCADE CONSTRAINT;表已删除。-重新创建表 CREATE TABLE Department (DeptNo CHAR(2) NOT NULL, Name VARCHAR2(20) NOT NULL, Address VARCHAR2(30), CONSTRAINT PK_DepNO PRIMARY KEY (DeptNo) VALIDATE);表已创建。 CREATE TABLE Student (StuNo VARCHAR2(12) NOT NULL, Name VARCHAR2(15) NOT NULL, Sex CHAR(1), DeptNo CHAR(2), CONSTRAINT PK_StuNo PRIMARY KEY (StuNo) VALIDATE, CONSTRAINT FK_DeptNO2 FOREIGN KEY (DeptNo) REFERENCES Department(DeptNo) VALIDATE);表已创建。SQL COMMIT;提交完成。SQL CREATE UNIQUE INDEX idx_Department ON Department(Name);索引已创建。SQL CREATE INDEX idx_Student_name ON Student(Name);索引已创建。-向Department表插入数据INSERT INTO Department VALUES(01,计算机系,1号楼);INSERT INTO Department VALUES(02,自动控制系,2号楼);INSERT INTO Department VALUES(03,电子技术系,3号楼);-向Student表插入数据INSERT INTO StudentVALUES(20090601001,jack,1,03);INSERT INTO StudentVALUES(20090601002,smith,1,03);INSERT INTO StudentVALUES(20090601003,Iucy,0,03);二、创建一个触发器 CREATE OR REPLACE TRIGGER tr_Student_ActionTime BEFORE insert OR update OR delete ON Student BEGIN IF (TO_CHAR(sysdate,DAY) IN (星期六,星期天) OR (TO_CHAR(sysdate,HH24) NOT BETWEEN 8 AND 18 ) THEN RAISE_APPLICATION_ERROR(-20001,不是上班时间,不能修改Student表); END IF;END;/触发器已创建三、清除回收站,查询删除表之前的表、索引、触发器的信息。-清空回收站内容SQL PURGE RECYCLEBIN;回收站已清空。SQL SELECT table_name,tablespace_name FROM user_tables;TABLE_NAME TABLESPACE_NAME- -STUDENT LOC_TBS01DEPARTMENT LOC_TBS01SYS_TEMP_FBTSQL SELECT index_name,table_name,uniqueness FROM user_indexes ORDER BY table_name;INDEX_NAME TABLE_NAME UNIQUENES- - -PK_DEPNO DEPARTMENT UNIQUEIDX_DEPARTMENT DEPARTMENT UNIQUEPK_STUNO STUDENT UNIQUEIDX_STUDENT_NAME STUDENT NONUNIQUESQL SELECT trigger_name,trigger_type,table_name FROM user_triggers;TRIGGER_NAME TRIGGER_TYPE TABLE_NAME- - -TR_STUDENT_ACTIONTIME BEFORE STATEMENT STUDENT四、模拟用户进行数据库操作,删除Student表和Department表SQL DROP TABLE Student CASCADE CONSTRAINT;表已删除。SQL DROP TABLE Department CASCADE CONSTRAINT;表已删除。五、查看删除表以后的效果SQL desc user_recyclebin; 名称 是否为空? 类型 - - - OBJECT_NAME NOT NULL VARCHAR2(30) ORIGINAL_NAME VARCHAR2(32) OPERATION VARCHAR2(9) TYPE VARCHAR2(25) TS_NAME VARCHAR2(30) CREATETIME VARCHAR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 耐蚀塑料工三级安全教育(班组级)考核试卷及答案
- 物流大数据分析框架-洞察及研究
- 2025-2030中国医疗AI软件三类证获取动态追踪
- 2025-2030中国功能性食品市场需求变化与品牌竞争战略报告
- 2025-2030中国共享居住领域消费趋势与资本布局全景调研报告
- 2025-2030中国公寓行业工程质量管控与验收标准体系报告
- 2025-2030中国公寓行业人工智能客服应用场景开发报告
- 2025-2030中国公寓租赁行业数据安全与隐私保护报告
- 2025-2030中国光伏储能一体化技术突破与商业应用前景分析报告
- 2025-2030中国住房租赁企业融资渠道拓展与资本运作策略
- 楷书毛笔课件
- 急危重症患者的抢救应急处理预案及流程
- 班主任基本功大赛评分标准
- 额窦手术课件
- 电梯井道圈梁加固工程施工方案
- 流感疫苗项目市场营销策略方案
- 财务代理记账报税合同模板
- HY_T 0330-2022 海滩养护与修复工程验收技术方法
- 十四条经络养生课件
- 清洁生产的实施途径
- 钢结构厂房监理实施细则
评论
0/150
提交评论