Oracle数据库教程(第3版 微课视频版) 课件 第12章 备份和恢复_第1页
Oracle数据库教程(第3版 微课视频版) 课件 第12章 备份和恢复_第2页
Oracle数据库教程(第3版 微课视频版) 课件 第12章 备份和恢复_第3页
Oracle数据库教程(第3版 微课视频版) 课件 第12章 备份和恢复_第4页
Oracle数据库教程(第3版 微课视频版) 课件 第12章 备份和恢复_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1第12章备份和恢复12.1备份和恢复概述12.2逻辑备份与恢复12.3脱机备份与恢复12.4联机备份与恢复12.5闪回技术Oracle数据库教程(第3版•微课视频版)212.1备份和恢复概述12.1.1备份概述1.根据备份方式的不同,备份分为逻辑备份和物理备份两种。2.根据数据库备份时是否关闭服务器,物理备份分为联机备份和脱机备份两种。3.根据数据库备份的规模不同,物理备份分为完全备份和部分备份两种。备份一个Oracle数据库有三种标准方式:导出(Export)、脱机备份(OfflineBackup)和联机备份(OnlineBackup)。导出是数据库的逻辑备份。脱机备份和联机备份都是物理备份。12.1.2恢复概述1.根据故障原因,恢复可以分为实例恢复和介质恢复。2.根据数据库使用的备份不同,恢复可以分为逻辑恢复和物理恢复。3.根据数据库恢复程度的不同,恢复可以分为完全恢复和不完全恢复。

Oracle数据库教程(第3版•微课视频版)312.2逻辑备份与恢复1.使用EXPDP进行导出【例12.1】使用EXPDP导出system用户student表。(1)创建目录。为存储数据泵导出的数据,首先在Windows中创建目录:d:\OraBak,然后在SQL*Plus中,使用system用户创建目录。在SQL*Plus窗口中,代码和运行结果如下。SQL>CREATEDIRECTORYdp_diras'd:\OraBak';目录已创建。(2)使用EXPDP导出数据。在命令提示符窗口C:\Windows\dell\system32\cmd.exe中,输入以下命令。C:\Users\dell>EXPDPSYSTEM/Ora123456DUMPFILE=STUDENT.DMPDIRECTORY=DP_DIRTABLES=STUDENT运行结果:

Oracle数据库教程(第3版•微课视频版)412.2逻辑备份与恢复Export:Release19.0.0.0.0-Productionon星期二3月2816:52:162023Version19.3.0.0.0Copyright(c)1982,2019,Oracleand/oritsaffiliates.Allrightsreserved.;;;连接到:OracleDatabase19cEnterpriseEditionRelease19.0.0.0.0-Production启动"SYSTEM"."SYS_EXPORT_TABLE_01":SYSTEM/********DUMPFILE=STUDENT.DMPDIRECTORY=DP_DIRTABLES=STUDENT处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA处理对象类型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS处理对象类型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS处理对象类型TABLE_EXPORT/TABLE/STATISTICS/MARKER处理对象类型TABLE_EXPORT/TABLE/TABLE处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT..导出了"SYSTEM"."STUDENT"7.460KB6行已成功加载/卸载了主表"SYSTEM"."SYS_EXPORT_TABLE_01"******************************************************************************SYSTEM.SYS_EXPORT_TABLE_01的转储文件集为:D:\ORABAK\STUDENT.DMP作业"SYSTEM"."SYS_EXPORT_TABLE_01"已于星期二3月2816:52:302023elapsed000:00:14成功完成

Oracle数据库教程(第3版•微课视频版)512.2逻辑备份与恢复2.使用IMPDP进行导入【例12.2】使用IMPDP导入system用户student表。将student表删除后,使用IMPDP查看导入效果。在命令提示符窗口C:\Windows\dell\system32\cmd.exe中,输入以下命令。C:\Users\dell>IMPDPSYSTEM/Ora123456DUMPFILE=STUDENT.DMPDIRECTORY=DP_DIRTABLES=STUDENT运行结果:

Oracle数据库教程(第3版•微课视频版)612.2逻辑备份与恢复Import:Release19.0.0.0.0-Productionon星期二3月2816:57:442023Version19.3.0.0.0Copyright(c)1982,2019,Oracleand/oritsaffiliates.Allrightsreserved.;;;连接到:OracleDatabase19cEnterpriseEditionRelease19.0.0.0.0-Production已成功加载/卸载了主表"SYSTEM"."SYS_IMPORT_TABLE_01"启动"SYSTEM"."SYS_IMPORT_TABLE_01":SYSTEM/********DUMPFILE=STUDENT.DMPDIRECTORY=DP_DIRTABLES=STUDENT处理对象类型TABLE_EXPORT/TABLE/TABLE处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA..导入了"SYSTEM"."STUDENT"7.460KB6行处理对象类型TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT处理对象类型TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS处理对象类型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS处理对象类型TABLE_EXPORT/TABLE/STATISTICS/MARKER作业"SYSTEM"."SYS_IMPORT_TABLE_01"已于星期二3月2816:58:002023elapsed000:00:16成功完成

Oracle数据库教程(第3版•微课视频版)712.3脱机备份与恢复12.3.1脱机备份【例12.3】将stsystem数据库所有数据文件、控制文件和重做日志文件都进行备份。在进行脱机备份前,创建一个备份文件目录D:\OfflineBak。(1)启动SQL*Plus,以sys用户sysdba身份登录。代码和运行结果如下。SQL>CONNECTsys/Ora123456ASsysdba已连接。(2)查询数据字典视图。通过查询V$DATAFILE视图可以获取数据文件的列表。代码和运行结果如下。SQL>SELECTSTATUS,FILE_NAMEFROMDBA_DATA_FILES;

Oracle数据库教程(第3版•微课视频版)812.3脱机备份与恢复STATUSFILE_NAME---------------------------------------------------------------------------------------------------------------------------AVAILABLEF:\APP\ORADATA\STSYSTEM\DATAFILE\O1_MF_SYSTEM_KKFVGYCH_.DBFAVAILABLEF:\APP\ORADATA\STSYSTEM\DATAFILE\O1_MF_SYSAUX_KKFVJCK3_.DBFAVAILABLEF:\APP\ORADATA\STSYSTEM\DATAFILE\O1_MF_UNDOTBS1_KKFVK4PF_.DBFSTATUS

FILE_NAME---------------------------------------------------------------------------------------------------------------------------AVAILABLEF:\APP\ORADATA\STSYSTEM\DATAFILE\O1_MF_USERS_KKFVK5T4_.DBFAVAILABLED:\APP\TESTSPACE01.DBFAVAILABLED:\APP\TBSPACE01.DBF已选择6行。通过查询V$LOGFILE视图可以获取联机重做日志文件的列表,通过查询V$CONTROLFILE视图可以获取控制文件的列表。代码和运行结果如下。

Oracle数据库教程(第3版•微课视频版)912.3脱机备份与恢复SQL>SELECTGROUP#,STATUS,MEMBERFROMV$LOGFILE;GROUP#STATUSMEMBER--------------------------------------------------------------------------------------------------------------------------

3F:\APP\ORADATA\STSYSTEM\ONLINELOG\O1_MF_3_KKFVPTY2_.LOG

3F:\APP\FAST_RECOVERY_AREA\STSYSTEM\ONLINELOG\O1_MF_3_KKFVPVVP_.LOG

2F:\APP\ORADATA\STSYSTEM\ONLINELOG\O1_MF_2_KKFVPTXM_.LOG

GROUP#STATUSMEMBER---------------------------------------------------------------------------------------------------------------------------

2F:\APP\FAST_RECOVERY_AREA\STSYSTEM\ONLINELOG\O1_MF_2_KKFVPVVB_.LOG

1F:\APP\ORADATA\STSYSTEM\ONLINELOG\O1_MF_1_KKFVPTXB_.LOG

1F:\APP\FAST_RECOVERY_AREA\STSYSTEM\ONLINELOG\O1_MF_1_KKFVPVV6_.LOG已选择6行。

Oracle数据库教程(第3版•微课视频版)1012.3脱机备份与恢复SQL>SELECTSTATUS,NAMEFROMV$CONTROLFILE;STATUSNAME---------------------------------------------------------------------------------------------------------------------------F:\APP\ORADATA\STSYSTEM\CONTROLFILE\O1_MF_KKFVPOQC_.CTLF:\APP\FAST_RECOVERY_AREA\STSYSTEM\CONTROLFILE\O1_MF_KKFVPOQP_.CTL(3)以IMMEDIATE方式关闭数据库。代码和运行结果如下。SQL>SHUTDOWNIMMEDIATE;数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。

Oracle数据库教程(第3版•微课视频版)1112.3脱机备份与恢复(4)复制所有数据到目标路径。可以使用操作系统的复制、粘贴方式,也可以使用操作系统命令,备份所有的数据文件、重做日志文件、控制文件和参数文件到备份文件目录。(5)重新启动数据库。代码和运行结果如下。SQL>STARTUPOPEN;ORACLE例程已经启动。TotalSystemGlobalArea5066718176bytesFixedSize

9038816bytesVariableSize956301312bytesDatabaseBuffers4093640704bytesRedoBuffers

7737344bytes数据库装载完毕。数据库已经打开。

Oracle数据库教程(第3版•微课视频版)1212.3脱机备份与恢复12.3.2脱机恢复【例12.4】脱机恢复stsystem数据库。(1)以sys用户sysdba身份登录,以IMMEDIATE方式关闭数据库。(2)从脱机备份的备份文件目录中复制所有的数据库文件到原始位置。(3)打开数据库。

Oracle数据库教程(第3版•微课视频版)13

12.4联机备份与恢复联机备份又称热备份,在数据库运行的情况下对数据库进行物理备份。进行联机备份,数据库必须运行在归档日志(ARCHIVELOG)模式下。联机完全备份步骤如下:(1)设置归档日志模式,创建恢复目录用的表空间。(2)创建RMAN用户(3)使用RMAN程序进行备份(4)使用RMAN程序进行恢复RMAN(RecoveryManager)是Oracle数据库备份和恢复的主要管理工具之一,它可以方便快捷的对数据库实现备份和恢复,还可保存已经备份的信息以供查询,用户可以不经过实际的还原即可检查已经备份的数据文件的可用性,

Oracle数据库教程(第3版•微课视频版)14

12.5闪回技术12.5.1查询闪回语法格式:SELECT<列名1>[,<列名2>[…n]]FROM<表名>[ASOFSCN|TIMESTAMP<表达式>][WHERE<条件表达式>]说明:(1)ASOFSCNSCN是系统改变号,从FLASHBACK_TRANSACTION_QUERY中可以查到,可以进行基于ASOFSCN的查询闪回。(2)ASOFTIMESTAMP可以进行基于ASOFTIMESTAMP的查询闪回,此时需要使用两个时间函数:TIMESTAMP和TO_TIMESTAMP。其中,函数TO_TIMESTAMP的语法格式为:TO_TIMESTAMP('timepoint','format')

Oracle数据库教程(第3版•微课视频版)15

12.5闪回技术(3)在Oracle内部都是使用SCN,如果指定的是ASOFTIMESTAMP,Oracle也会将其转换成SCN。TIMESTAMP与SCN之间的对应关系可以通过查询SYS模式下的SMON_SCN_TIME表获得。在以下例题中,stu1表的表结构和数据与student表的表结构和数据相同,cou1表的表结构和数据与course表的表结构和数据相同。【例12.5】使用查询闪回恢复在stu1表中删除的数据。(1)使用system用户登录SQL*Plus,使用SET语句在“SQL>”标识符前显示当前时间。代码和运行结果如下。SQL>SETTIMEON(2)查询stu1表中的数据,删除stu1表中的数据并提交,记录删除的时间点为14:54:06。代码和运行结果如下。

Oracle数据库教程(第3版•微课视频版)16

12.5闪回技术14:53:52SQL>SELECT*FROMstu1;SIDSNAMESSEXSBIRTHDAYSPECIALITYTC--------------------------------------------------------------------------------221001何德明男2001-07-16计算机52221002王丽女2002-09-21计算机50221004田桂芳女2002-12-05计算机52224001周思远男2001-03-18通信52224002许月琴女2002-06-23通信48224003孙俊松男2001-10-07通信50已选择6行。14:54:06SQL>DELETEFROMstu1;已删除6行。14:54:06SQL>COMMIT;提交完成。14:54:06SQL>SELECT*FROMstu1;未选定行

Oracle数据库教程(第3版•微课视频版)17

12.5闪回技术(3)进行查询闪回,可看到表中原有数据。代码和运行结果如下。14:54:16SQL>SELECT*FROMstu1ASOFTIMESTAMP14:56:362TO_TIMESTAMP('2023-3-2914:54:06','YYYY-MM-DDHH24:MI:SS');SIDSNAMESSEXSBIRTHDAYSPECIALITYTC--------------------------------------------------------------------------------221001何德明男2001-07-16计算机52221002王丽女2002-09-21计算机50221004田桂芳女2002-12-05计算机52224001周思远男2001-03-18通信52224002许月琴女2002-06-23通信48224003孙俊松男2001-10-07通信50已选择6行。

Oracle数据库教程(第3版•微课视频版)18

12.5闪回技术(4)将闪回中的数据重新插入stu1表并提交。代码和运行结果如下。14:56:38SQL>INSERTINTOstu114:56:482SELECT*FROMstu1ASOFTIMESTAMP14:56:483TO_TIMESTAMP('2023-3-2914:54:06','YYYY-MM-DDHH24:MI:SS');已创建6行。14:56:48SQL>COMMIT;提交完成。

Oracle数据库教程(第3版•微课视频版)19

12.5闪回技术12.5.2表闪回语法格式FLASHBACKTABLE[用户方案名.]<表名>TO{[BEFOREDROP[RENAMETO<新表名>]]|[SCN|TIMESTAMP]<表达式>[ENABLE|DISABLE]TRIGGERS}说明:(1)SCN:将表恢复到指定的SCN时的状态。(2)TIMESTAMP:将表恢复到指定的时间点。(3)ENABLE|DISABLETRIGGER:恢复后是否直接启用触发器。

Oracle数据库教程(第3版•微课视频版)20

12.5闪回技术【例12.6】使用表闪回恢复在cou1表中删除的数据。(1)使用system用户登录SQL*Plus,开启时间显示。代码和运行结果如下。SQL>SETTIMEON;(2)查询cou1表中的数据,删除cou1表中的数据并提交,记录删除的时间点为15:07:00。代码和运行结果如下。15:06:45SQL>SELECT*FROMcou1;CID

CNAMECREDIT-------------------------------------1004

数据库系统41015

数据结构31201

英语54002数字电路38001高等数学5

Oracle数据库教程(第3版•微课视频版)21

12.5闪回技术15:07:00SQL>DELETEFROMcou1WHEREcid='1201';已删除1行。15:07:20SQL>COMMIT;提交完成。15:07:32SQL>SELECT*FROMcou1;CIDCNAMECREDIT-------------------------------------1004数据库系统41015数据结构34002数字电路38001高等数学5

Oracle数据库教程(第3版•微课视频版)22

12.5闪回技术(3)使用表闪回进行恢复代码和运行结果如下。15:07:59SQL>ALTERTABLEcou1ENABLEROWMOVEMENT;表已更改。15:09:27SQL>FLASHBACKTABLEcou1TOTIMESTAMP15:09:492TO_TIMESTAMP('2023-03-2915:07:00','YYYY-MM-DDHH24:MI:SS');闪回完成。

Oracle数据库教程(第3版•微课视频版)23

12.5闪回技术12.5.3删除闪回【例12.7】使用删除闪回恢复被删除的st表。(1)使用Lee用户连接数据库。代码和运行结果如下。SQL>CONNECTLee/test;已连接。(2)创建st表,再删除st表。代码和运行结果如下。SQL>CREATETABLEst(sidchar(6));表已创建。SQL>DROPTABLEst;表已删除(3)使用删除闪回进行恢复代码和运行结果如下。SQL>FLASHBACKTABLEstTOBEFOREDROP;闪回完成。

Oracle数据库教程(第3版•微课视频版)24

12.5闪回技术12.5.4数据库闪回语法格式FLASHBACK[STANDBY]DATABASE<数据库名>{TO[SCN|TIMESTAMP]<表达式>|TOBEFORE[SCN|TIMESTAMP]<表达式>}说明:(1)TOSCN:指定一个系统改变号SCN。(2)TOBEFORESCN:恢复到之前的SCN。(3)TOTIMESTAMP:指定一个需要恢复的时间点。(4)TOBEFORETIMESTAMP:恢复到之前的时间点。使用FLASHBACKDATABASE,必须以MOUNT启动数据库实例,设置FLASHBACKDATABASE为启用,数据库闪回操作完成后,关闭FLASHBACKDATABASE功能。

Oracle数据库教程(第3版•微课视频版)25

12.5闪回技术【例12.8】设置数据库闪回环境。(1)使用system用户登录SQL*Plus,查询闪回信息代码和运行结果如下。SQL>SHOWPARAMETERDB_RECOVERY_FILE_DESTNAMETYPEVALUE-----------------------------------------------------------------------------------------------db_recovery_file_deststringF:\app\fast_recovery_areadb_recovery_file_dest_sizebiginteger

8256MSQL>SHOWPARAMETERFLASHBACKNAMETYPEVALUE-----------------------------------------------------------------------------------------------db_flashback_retention_targetinteger1440

Oracle数据库教程(第3版•微课视频版)26

12.5闪回技术(2)以MOUNT方式打开数据库,设置归档日志模式,将数据库实例由非归档模式切换到归档模式。代码和运行结果如下。SQL>CONNECTSYS/Ora123456ASSYSDBA已连接。SQL>SHUTDOWNIMMEDIATE;数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。SQL>STARTUPMOUNTORACLE例程已经启动。TotalSystemGlobalArea5066718176bytesFixedSize9038816bytesVariableSize

956301312bytesDatabaseBuffers

4093640704bytesRedoBuffers

7737344bytes数据库装载完毕。

Oracle数据库教程(第3版•微课视频版)27

12.5闪回技术SQL>ALTERDATABASEARCHIVELOG;数据库已更改。SQL>SELECTDBID,NAME,LOG_MODE,PLATFORM_NAMEFROMV$DATABASE;

DBIDNAME

LOG_MODEPLATFORM_NAME-------------------------------------------------------------------------------------------------------------------350048405STSYSTEMARCHIVELOGMicrosoftWindowsx8664-bit(3)设置FLASHBACKDATABASE为启用。代码和运行结果如下。SQL>ALTERDATABASEFLASHBACKON;数据库已更改。SQL>ALTERDATABASEOPEN;数据库已更改。

Oracle数据库教程(第3版•微课视频版)28

12.5闪回技术【例12.9】使用数据库闪回恢复被删除的stu2表。(1)查询当前数据库是否是归档模式和启用闪回数据库代码和运行结果如下。SQL>SELECTDBID,NAME,LOG_MODEFROMV$DATABASE;

DBIDNAMELOG_MODE------------------------------------------------------------

350048405STSYSTEMARCHIVELOGSQL>ARCHIVELOGLIST数据库日志模式存档模式自动存档启用存档终点

USE_DB_RECOVERY_FILE_DEST最早的联机日志序列525下一个存档日志序列527当前日志序列

527SQL>SHOWPARAMETERDB_RECOVERY_FILE_DESTNAMETYPEVALUE-----------------------------------------------------------------------------------------------db_recovery_file_dest

string

F:\app\fast_recovery_areadb_recovery_file_dest_sizebiginteger8256M

Oracle数据库教程(第3版•微课视频版)29

12.5闪回技术(2)查询当前用户、当前时间和旧的闪回号。代码和运行结果如下。SQL>SHOWUSER;USER为"SYS"SQL>ALTERSESSIONSETNLS_DATE_FORMAT='YYYY-MM-DDHH24:MI:SS';会话已更改。SQL>SELECTSYSDATEFROMDUAL;SYSDATE-------------------------------2023-04-0116:50:56SQL>SELECTOLDEST_FLASHBACK_SCN,OLDEST_FLASHBACK_TIME2FROMV$FLASHBACK_DATABASE_LOG;OLDEST_FLASHBACK_SCNOLDEST_FLASHBACK_TI-------------------------------------------------------------------------------

592949142023-04-0116:46:13SQL>SETTIMEON16:52:44SQL>

Oracle数据库教程(第3版•微课视频版)30

12.5闪回技术(3)在当前用户下创建stu2表,然后删除stu2表,记录删除时间点为17:08:20。代码和运行结果如下。16:56:58SQL>CREATETABLEstu2ASSELECT*FROMsystem.student;表已创建。17:07:40SQL>SELECTSYSDATEFROMDUAL;SYSDATE--------------------------------2023-04-0117:08:2017:08:20SQL>DROPTABLEstu2;表已删除。17:08:39SQL>DESCstu2;ERROR:ORA-04043:对象stu2不存在

Oracle数据库教程(第3版•微课视频版)31

12.5闪回技术(4)以MOUNT方式打开数据库,使用数据库闪回进行恢复。代码和运行结果如下。17:08:55SQL>SHUTDOWNIMMEDIATE;数据库已经关闭。已经卸载数据库。ORACLE例程已经关闭。17:12:32SQL>STARTUPMOUNTEXCLUSIVEORACLE例程已经启动。TotalSystemGlobalArea5066718176bytesFixedSize9038816bytesVariableSize

956301312bytesDatabaseBuffers

4093640704bytesRedoBuffers

7737344bytes数据库装载完毕。

Oracle数据库教程(第3版•微课视频版)32

12.5闪回技术17:15:08SQL>FLASHBACKDATABASE17:16:292TOTIMESTAMP(TO_DATE('2023-04-0117:08:20','YYYY-MM-DDHH24:MI:SS'));闪回完成。17:16:36

温馨提示

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

评论

0/150

提交评论