Oracle数据库开发实用教程第十章
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
28
数据库完全恢复步骤(续)
将数据库启动到MOUNT状态, STARTUP MOUNT; 使用RECOVER命令进行恢复。命令如下: RECOVER DATABASE; 将数据库修改为打开状态: ALTER DATABASE OPEN; RECOVER DATABASE; 恢复完成后,重新打开数据库 ALTER DATABASE OPEN;
ALTER DATABASE BACKUP CONTROLFILE TO „d:\back\control.bkp‟ reuse; ALTER DATABASE BACKUP CONTROLFILE TO TRACE
将控制文件备份为文本文件
21
热备份:备份的其他文件
归档当前的联机日志文件 备份归档日志文件 备份初始化参数文件
关闭数据库,
开始备份
备份完成
备份
故障时刻
恢复
重装备份副本
恢复丢失数据
15
冷备份步骤
在SQL*Plus环境中进行数据库冷备份的步骤如下:
1. 启动SQL*Plus,以SYSDBA身份登录数据库; 2. 使用下面的语句查询当前数据库所有数据文件、控制文件、联机重 做日志文件的位置;
SQL>SELECT file_name FROM dba_data_files; SQL>SELECT member FROM v$logfile; SQL>SELECT name FROM v$controlfile;
SQL>STARTUP
16
热备份
热备份是备份数据库的最佳方法。
系统工作在归档模式下。
转到归档模式后,应立即进行热备份。
17
பைடு நூலகம்
热备份
热备份
当数据库正在运行时进行的数据库备份过程。当数据 库处在可归档日志模式下,可使用热备份。 有些关键数据库应用系统可能需要数据库每天24小时 ,每周7天的运行,就应该使用热备份热备份的优点:
物理备份,是指通过将重要的物理文件备份起来,以避
免物理故障造成的损失。
逻辑备份,通常是SQL语句的集合。
在实际应用中,应该以物理备份为主,逻辑备份作为补充 进行 Oracle 备份恢复的方式有两种 使用RMAN进行备份恢复 使用操作系统命令进行备份,并使用 SQL*Plus 进行恢 复
恢复策略
根据数据库介质故障原因,确定采用完全介质恢复还是不完全 介质恢复; 如果数据库运行在非归档模式,则当介质故障发生时,只能进 行数据库的不完全恢复,将数据库恢复到最近的备份时刻的状 态; 如果数据库运行在归档模式,则当一个或多个数据文件损坏时 ,可以使用备份的数据文件进行完全或不完全恢复数据库; 如果数据库运行在归档模式,则当数据库的控制文件损坏时, 可以使用备份的控制文件实现数据库的不完全恢复: 如果数据库运行在归档模式,则当数据库的联机日志文件损坏 时,可以使用备份的数据文件和联机重做日志文件不完全恢复 数据库; 如果执行了不完全恢复,则当重新打开数据库时应该使用 RESETLOGS选项。
31
数据库完全恢复示例
首先进行一次归档模式下的数据库完整备份 以SYSDBA身份登录数据库进行下列操作
SQL>CREATE TABLE test_rec(ID NUMBER PRIMARY KEY,NAME CHAR(20)) TABLESPACE SYSTEM; SQL>INSERT INTO test_rec VALUES(l,‟ZHANGSAN‟); SQL>COMMIT; SQL>INSERT INTO test_rec VALUES(2,‟LISI‟); SQL>COMMIT; SQL>ALTER SYSTEM SWITCH LOGFILE; SQL>SELECT *FROM test_rec; ID NAME ┄┄┄┄┄┄┄┄┄┄┄ 1 ZHANGSAN 2 LISI SQL> SHUTDOWN ABORT
实例恢复的步骤
实例恢复分两个步骤进行: Oracle启动实例并加载数据库后,首先采用前 滚技术(Roll Forward)重做实例崩溃前已经完成 并提交的事务; 然后利用回滚技术(Roll Back)撤销发生故障时 已写入日志文件但没有提交的事务,将数据库 恢复到故障时刻的状态。
Oracle数据库故障类型和恢复措施
物理备份与恢复
冷备份 热备份 从冷备份中恢复 从热备份中恢复
13
冷备份
冷备份
关闭数据库实例,用操作系统的实用工具备份数据文件。 如果没有启用归档模式,数据库不能恢复到备份完成后的任 意时刻。
14
冷备份
如果启用归档模式,从冷备份结束后到出现故障这段时间的 数据库恢复,可以利用联机日志文件和归档日志文件实现。
RECOVER[ AUTOMATIC] [FROM 'location„] [DATABASE | TABLESPACE tspname | DATAFILE dfname]
27
数据库完全恢复步骤
确保数据库已经关闭(使用ABORT操作) SHUTDOWN ABORT; 用最后的数据库备份恢复数据文件。 如果当前控制文件丢失,使用镜像版本复制到 已修好的磁盘中,或者重新创建控制文件。 还原所有已归档的日志。 如果服务器参数文件损坏,则利用备份的初始 化参数文件创建服务器参数文件。 CREATE SPFILE FROM PFILE;
29
表空间级别的恢复
用备份的表空间对应的所有数据文件复制到原来 的目录,覆盖受损的数据文件。 恢复表空间 RECOVER TABLESPACE tablespacename; 将数据库修改为打开状态 ALTER DATABASE OPEN;
30
数据文件级别的恢复
将受损的数据文件脱机 ALTER DATAFILE datafile OFFLINE 用备份的数据文件覆盖受损的数据文件 恢复数据文件 RECOVER DATAFILE datafile ; 将数据文件联机 ALTER DATAFILE datafile ONLINE; 将数据库修改为打开状态 ALTER DATABASE OPEN;
备份策略
增加、重命名、删除日志文件和数据文件,改变数据库结构,控制文 件都应备份; 在非归档模式下,当数据库结构发生变化时,应该进行数据库的完全 备份; 在归档模式下,对于经常使用的表空间,可以采用表空间备份方法提 高备份效率; 在归档模式下,通常不需要对联机重做日志文件进行备份; 使用RESETLOGS方式打开数据库后,应该进行一个数据库的完全 备份; 对于重要的表中的数据,可以采用逻辑备份方式进行备份; 确保应用数据位于独立的表空间中,以保证出现介质故障时其他应用 可以继续使用
3. 关闭数据库;
SQL>SHUTDOWN IMMEDIATE
4. 复制所有从步骤(2)得到的数据文件、联机重做日志文件以及控制 文件到备份磁盘,可以直接在操作系统中使用复制、粘贴方式进行 ,也可以使用下面的操作系统命令完成;
SQL>HOST COPY原文件名称 目标路径名称
5. 重新启动数据库;
完全恢复可以在数据库级、表空间级、数据文件 级或块级进行。 数据库级完全恢复主要应用于所有或多数数据 文件损坏的恢复; 表空间级完全恢复是对指定表空间中的数据文 件进行恢复; 数据文件级完全恢复是针对特定的数据文件进 行恢复
热备份下的数据库恢复
归档模式下数据库完全恢复的基本语法
完全恢复是指一个或多个数据文件损坏,利用热 备份的数据文件替换损坏的数据文件,再根据归 档日志文件和联机重做日志文件,采用前滚技术 重做自备份以来的所有修改,采用回滚技术回滚 未提交的操作,以恢复到数据库故障时刻的状态 不完全恢复是指这样一个恢复过程:首先将数据 库还原,然后利用部分(但不是全部)日志有选 择性地前滚到一个预先确定的时间点或系统修改 号SCN。这种恢复产生的数据库不是当时的版本 ,而是发生问题前的某一时刻。
备份时,数据库可以是打开的。
可用来全面恢复数据库(可用来在任何一点上恢复)
18
在SQL*Plus环境中进行数据库完全热备份的 步骤如下: 启动SQL*Plus,以SYSDBA身份登录数据库; 将数据库设置为归档模式; 以表空间为单位,进行数据文件备份;
热备份:备份数据文件
查询视图v$datafile 和视图v$tablespace决定需 要备份的数据文件 将某个表空间设为备份模式
Oracle 11g实用教程
第十章 数据库的备份和恢复
内容概要
1 2 3 4 5
备份与恢复概述 物理备份与恢复
逻辑备份和恢复
使用RMAN的备份和恢复
自动备份和恢复
备份与恢复概述
备份与恢复的基本概念 Oracle数据库故障类型和恢复措施 备份策略 恢复策略
3
备份与恢复的基本概念
备份分为物理备份和逻辑备份
数据库完全恢复示例
删除SYSTEM表空间的数据文件 ‟/u01/app/oracle/oradata/orcl/system01.dbf‟ ,以模拟数据文件损坏的情形。 用备份的数据文件 ‟/u01/app/oracle/backup/orcl/system01.dbf’
在Oracle数据库中常见的故障包括 语句故障 进程故障 用户错误 实例故障 网络故障 介质故障
备份策略
在刚建立数据库时,应该立即进行数据库的完全备份; 将所有数据库备份保存在一个独立磁盘或磁盘组上,并通过使用基于RAID的存 储系统来建立系统冗余数据; 应该保持控制文件的多路复用,且控制文件的副本应该存放在不同磁盘控制器下 的不同磁盘设备上; 应该保持归档重做日志文件的多个拷贝。 在磁盘上保持最小备份和数据库文件前滚所需的所有归档重组日志文件; 保持多个联机日志文件组,每个组中至少应该有两个日志成员,同一日志组的多 个成员应该分散存放在不同的磁盘上; 保证两个归档重做日志文件的归档目标,不同归档目标应分散于不同的磁盘,且 不要与数据库文件或联机重做日志文件存储在同一个物理磁盘设备上; 定期执行数据库备份以减少恢复时间; 如果条件允许,尽量保证数据库运行于归档模式;
ALTER TABLESPACE name BEGIN BACKUP;
使用操作系统命令将该表空间所有数据文件备份 结束该表空间的备份模式
ALTER TABLESPACE name BEGIN BACKUP;
对数据库的每个表空间,执行步骤3、4、5操作
20
热备份:备份控制文件
将控制文件备份为二进制文件
介质恢复的步骤
首先使用一个完整备份将数据库恢复到备份时刻 的状态; 然后利用归档日志文件和联机重做日志文件中的 日志信息,采用前滚技术(Roll Forward)重做 备份以后已经完成并提交的事务; 最后利用回滚技术(Roll Back)取消发生故障时 已写入日志文件但没有提交的事务,将数据库恢 复到出现故障时的状态
22
从冷备份中恢复
数据库的恢复主要包括三个步骤 文件还原 前滚恢复 回滚撤销
冷备份的恢复
非归档模式下恢复 关闭数据库 用备份文件覆盖原有文件 重新启动数据库 注意:非归档模式下的数据库恢复是不完全恢复 ,只能将数据库恢复到最近一次完全冷备份的状 态。
24
从热备份中恢复
4
物理备份类型
根据数据库备份时数据库服务器状态不同,物理 备份分为冷备份和热备份 根据备份的状态不同,物理备份又可以分为一致 性备份和不一致备份 根据数据库备份的规模不同,物理备份还可以分 为完全备份和部分备份
恢复的概念
在数据库发生故障后,使用备份还原数据库,使 数据库恢复到无故障状态 恢复的类型 根据数据库恢复时使用的备份不同,恢复分为 物理恢复和逻辑恢复两类 根据数据库恢复程度的不同,恢复可分为完全 恢复和不完全恢复 根据数据库恢复的方式不同,恢复可分为介质 恢复和实例恢复
数据库完全恢复步骤(续)
将数据库启动到MOUNT状态, STARTUP MOUNT; 使用RECOVER命令进行恢复。命令如下: RECOVER DATABASE; 将数据库修改为打开状态: ALTER DATABASE OPEN; RECOVER DATABASE; 恢复完成后,重新打开数据库 ALTER DATABASE OPEN;
ALTER DATABASE BACKUP CONTROLFILE TO „d:\back\control.bkp‟ reuse; ALTER DATABASE BACKUP CONTROLFILE TO TRACE
将控制文件备份为文本文件
21
热备份:备份的其他文件
归档当前的联机日志文件 备份归档日志文件 备份初始化参数文件
关闭数据库,
开始备份
备份完成
备份
故障时刻
恢复
重装备份副本
恢复丢失数据
15
冷备份步骤
在SQL*Plus环境中进行数据库冷备份的步骤如下:
1. 启动SQL*Plus,以SYSDBA身份登录数据库; 2. 使用下面的语句查询当前数据库所有数据文件、控制文件、联机重 做日志文件的位置;
SQL>SELECT file_name FROM dba_data_files; SQL>SELECT member FROM v$logfile; SQL>SELECT name FROM v$controlfile;
SQL>STARTUP
16
热备份
热备份是备份数据库的最佳方法。
系统工作在归档模式下。
转到归档模式后,应立即进行热备份。
17
பைடு நூலகம்
热备份
热备份
当数据库正在运行时进行的数据库备份过程。当数据 库处在可归档日志模式下,可使用热备份。 有些关键数据库应用系统可能需要数据库每天24小时 ,每周7天的运行,就应该使用热备份热备份的优点:
物理备份,是指通过将重要的物理文件备份起来,以避
免物理故障造成的损失。
逻辑备份,通常是SQL语句的集合。
在实际应用中,应该以物理备份为主,逻辑备份作为补充 进行 Oracle 备份恢复的方式有两种 使用RMAN进行备份恢复 使用操作系统命令进行备份,并使用 SQL*Plus 进行恢 复
恢复策略
根据数据库介质故障原因,确定采用完全介质恢复还是不完全 介质恢复; 如果数据库运行在非归档模式,则当介质故障发生时,只能进 行数据库的不完全恢复,将数据库恢复到最近的备份时刻的状 态; 如果数据库运行在归档模式,则当一个或多个数据文件损坏时 ,可以使用备份的数据文件进行完全或不完全恢复数据库; 如果数据库运行在归档模式,则当数据库的控制文件损坏时, 可以使用备份的控制文件实现数据库的不完全恢复: 如果数据库运行在归档模式,则当数据库的联机日志文件损坏 时,可以使用备份的数据文件和联机重做日志文件不完全恢复 数据库; 如果执行了不完全恢复,则当重新打开数据库时应该使用 RESETLOGS选项。
31
数据库完全恢复示例
首先进行一次归档模式下的数据库完整备份 以SYSDBA身份登录数据库进行下列操作
SQL>CREATE TABLE test_rec(ID NUMBER PRIMARY KEY,NAME CHAR(20)) TABLESPACE SYSTEM; SQL>INSERT INTO test_rec VALUES(l,‟ZHANGSAN‟); SQL>COMMIT; SQL>INSERT INTO test_rec VALUES(2,‟LISI‟); SQL>COMMIT; SQL>ALTER SYSTEM SWITCH LOGFILE; SQL>SELECT *FROM test_rec; ID NAME ┄┄┄┄┄┄┄┄┄┄┄ 1 ZHANGSAN 2 LISI SQL> SHUTDOWN ABORT
实例恢复的步骤
实例恢复分两个步骤进行: Oracle启动实例并加载数据库后,首先采用前 滚技术(Roll Forward)重做实例崩溃前已经完成 并提交的事务; 然后利用回滚技术(Roll Back)撤销发生故障时 已写入日志文件但没有提交的事务,将数据库 恢复到故障时刻的状态。
Oracle数据库故障类型和恢复措施
物理备份与恢复
冷备份 热备份 从冷备份中恢复 从热备份中恢复
13
冷备份
冷备份
关闭数据库实例,用操作系统的实用工具备份数据文件。 如果没有启用归档模式,数据库不能恢复到备份完成后的任 意时刻。
14
冷备份
如果启用归档模式,从冷备份结束后到出现故障这段时间的 数据库恢复,可以利用联机日志文件和归档日志文件实现。
RECOVER[ AUTOMATIC] [FROM 'location„] [DATABASE | TABLESPACE tspname | DATAFILE dfname]
27
数据库完全恢复步骤
确保数据库已经关闭(使用ABORT操作) SHUTDOWN ABORT; 用最后的数据库备份恢复数据文件。 如果当前控制文件丢失,使用镜像版本复制到 已修好的磁盘中,或者重新创建控制文件。 还原所有已归档的日志。 如果服务器参数文件损坏,则利用备份的初始 化参数文件创建服务器参数文件。 CREATE SPFILE FROM PFILE;
29
表空间级别的恢复
用备份的表空间对应的所有数据文件复制到原来 的目录,覆盖受损的数据文件。 恢复表空间 RECOVER TABLESPACE tablespacename; 将数据库修改为打开状态 ALTER DATABASE OPEN;
30
数据文件级别的恢复
将受损的数据文件脱机 ALTER DATAFILE datafile OFFLINE 用备份的数据文件覆盖受损的数据文件 恢复数据文件 RECOVER DATAFILE datafile ; 将数据文件联机 ALTER DATAFILE datafile ONLINE; 将数据库修改为打开状态 ALTER DATABASE OPEN;
备份策略
增加、重命名、删除日志文件和数据文件,改变数据库结构,控制文 件都应备份; 在非归档模式下,当数据库结构发生变化时,应该进行数据库的完全 备份; 在归档模式下,对于经常使用的表空间,可以采用表空间备份方法提 高备份效率; 在归档模式下,通常不需要对联机重做日志文件进行备份; 使用RESETLOGS方式打开数据库后,应该进行一个数据库的完全 备份; 对于重要的表中的数据,可以采用逻辑备份方式进行备份; 确保应用数据位于独立的表空间中,以保证出现介质故障时其他应用 可以继续使用
3. 关闭数据库;
SQL>SHUTDOWN IMMEDIATE
4. 复制所有从步骤(2)得到的数据文件、联机重做日志文件以及控制 文件到备份磁盘,可以直接在操作系统中使用复制、粘贴方式进行 ,也可以使用下面的操作系统命令完成;
SQL>HOST COPY原文件名称 目标路径名称
5. 重新启动数据库;
完全恢复可以在数据库级、表空间级、数据文件 级或块级进行。 数据库级完全恢复主要应用于所有或多数数据 文件损坏的恢复; 表空间级完全恢复是对指定表空间中的数据文 件进行恢复; 数据文件级完全恢复是针对特定的数据文件进 行恢复
热备份下的数据库恢复
归档模式下数据库完全恢复的基本语法
完全恢复是指一个或多个数据文件损坏,利用热 备份的数据文件替换损坏的数据文件,再根据归 档日志文件和联机重做日志文件,采用前滚技术 重做自备份以来的所有修改,采用回滚技术回滚 未提交的操作,以恢复到数据库故障时刻的状态 不完全恢复是指这样一个恢复过程:首先将数据 库还原,然后利用部分(但不是全部)日志有选 择性地前滚到一个预先确定的时间点或系统修改 号SCN。这种恢复产生的数据库不是当时的版本 ,而是发生问题前的某一时刻。
备份时,数据库可以是打开的。
可用来全面恢复数据库(可用来在任何一点上恢复)
18
在SQL*Plus环境中进行数据库完全热备份的 步骤如下: 启动SQL*Plus,以SYSDBA身份登录数据库; 将数据库设置为归档模式; 以表空间为单位,进行数据文件备份;
热备份:备份数据文件
查询视图v$datafile 和视图v$tablespace决定需 要备份的数据文件 将某个表空间设为备份模式
Oracle 11g实用教程
第十章 数据库的备份和恢复
内容概要
1 2 3 4 5
备份与恢复概述 物理备份与恢复
逻辑备份和恢复
使用RMAN的备份和恢复
自动备份和恢复
备份与恢复概述
备份与恢复的基本概念 Oracle数据库故障类型和恢复措施 备份策略 恢复策略
3
备份与恢复的基本概念
备份分为物理备份和逻辑备份
数据库完全恢复示例
删除SYSTEM表空间的数据文件 ‟/u01/app/oracle/oradata/orcl/system01.dbf‟ ,以模拟数据文件损坏的情形。 用备份的数据文件 ‟/u01/app/oracle/backup/orcl/system01.dbf’
在Oracle数据库中常见的故障包括 语句故障 进程故障 用户错误 实例故障 网络故障 介质故障
备份策略
在刚建立数据库时,应该立即进行数据库的完全备份; 将所有数据库备份保存在一个独立磁盘或磁盘组上,并通过使用基于RAID的存 储系统来建立系统冗余数据; 应该保持控制文件的多路复用,且控制文件的副本应该存放在不同磁盘控制器下 的不同磁盘设备上; 应该保持归档重做日志文件的多个拷贝。 在磁盘上保持最小备份和数据库文件前滚所需的所有归档重组日志文件; 保持多个联机日志文件组,每个组中至少应该有两个日志成员,同一日志组的多 个成员应该分散存放在不同的磁盘上; 保证两个归档重做日志文件的归档目标,不同归档目标应分散于不同的磁盘,且 不要与数据库文件或联机重做日志文件存储在同一个物理磁盘设备上; 定期执行数据库备份以减少恢复时间; 如果条件允许,尽量保证数据库运行于归档模式;
ALTER TABLESPACE name BEGIN BACKUP;
使用操作系统命令将该表空间所有数据文件备份 结束该表空间的备份模式
ALTER TABLESPACE name BEGIN BACKUP;
对数据库的每个表空间,执行步骤3、4、5操作
20
热备份:备份控制文件
将控制文件备份为二进制文件
介质恢复的步骤
首先使用一个完整备份将数据库恢复到备份时刻 的状态; 然后利用归档日志文件和联机重做日志文件中的 日志信息,采用前滚技术(Roll Forward)重做 备份以后已经完成并提交的事务; 最后利用回滚技术(Roll Back)取消发生故障时 已写入日志文件但没有提交的事务,将数据库恢 复到出现故障时的状态
22
从冷备份中恢复
数据库的恢复主要包括三个步骤 文件还原 前滚恢复 回滚撤销
冷备份的恢复
非归档模式下恢复 关闭数据库 用备份文件覆盖原有文件 重新启动数据库 注意:非归档模式下的数据库恢复是不完全恢复 ,只能将数据库恢复到最近一次完全冷备份的状 态。
24
从热备份中恢复
4
物理备份类型
根据数据库备份时数据库服务器状态不同,物理 备份分为冷备份和热备份 根据备份的状态不同,物理备份又可以分为一致 性备份和不一致备份 根据数据库备份的规模不同,物理备份还可以分 为完全备份和部分备份
恢复的概念
在数据库发生故障后,使用备份还原数据库,使 数据库恢复到无故障状态 恢复的类型 根据数据库恢复时使用的备份不同,恢复分为 物理恢复和逻辑恢复两类 根据数据库恢复程度的不同,恢复可分为完全 恢复和不完全恢复 根据数据库恢复的方式不同,恢复可分为介质 恢复和实例恢复