`
wsql
  • 浏览: 11823261 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

对 Oracle 备份与恢复 的补充说明

 
阅读更多

之前曾整理过一片文章,来说明Oracle的备份与恢复的。

Oracle备份与恢复概述

http://blog.csdn.net/xujinyang/article/details/6829578

今天又看到了一些知识,与上次说明的角度不一样。所以整理下,算是对上篇的一个补充说明。

Oracle备份分逻辑备份和物理备份。

一.逻辑备份

逻辑备份就是exp/imp10g以后推出了数据泵(DataPump/expdp/impdp).数据泵在效率上要比之前的exp/imp高那么几倍,直观的反应就是备份所花的时间少了。还有就是DataPump的功能要比exp/imp多一点。

Oracle10gEXPDPIMPDP使用说明

http://blog.csdn.net/xujinyang/article/details/6830446

.物理备份

先说明一下,RMAN属于物理备份Oracle分为Archivelog模式和NoArchiveLog模式。

1.NoArchiveLog模式下的物理备份

这种模式下只能在数据库关闭的情况下才能备份。并且只能完全恢复到备份的时间点。

手工备份的步骤如下:

(1)完全关闭数据库

(2)备份所有数据库的数据文件,控制文件和联机重做日志

(3)重新启动数据库

2.NoArchiveLog模式下的恢复

很简单,关闭数据库后,把备份的数据文件,控制文件和联机重做日志还原,在启动数据库即可。不过这种备份只能恢复到最后的备份时间点。

3.ArchiveLog模式下的物理备份

3.1脱机备份(冷备份)

步骤如下:

(1)完全关闭数据库

(2)备份所有数据库的数据文件

(3)重新启动数据库

(4)使用altersystemswitchlogfile命令强制执行一个联机重做日志切换,一旦归档了联机重做日志,那么就备份所有的归档重做日志。

(5)使用alterdatabasebackupcontrolfiletotracealterdatabasebackupcontrolfileto'file_name'命令创建控制文件的一个备份

3.2联机备份(热备份)

步骤如下:

(1)使用altertablespacets_namebeginbackup命令将需要备份的表空间和数据文件置入联机备份模式。

如果希望备份整个数据库,可以使用alterdatabasebeginbackup命令。

2)备份与刚才置入备份模式的表空间相关的数据文件

3)执行altertablespacets_nameendbackup或者alterdatabaseendbackup,将表空间或者数据库从热备份模式中取出。

4)使用altersystemswitchlogfile命令,强制执行一次redolog切换。一旦完成切换,就备份所有的归档的重做日志。

说明:为什么要强制切换redolog。因为恢复操作必须应用在备份期间生成的所有重做上。Oracle在联机备份期间不断地物理更新数据文件(除了数据文件头)时,在备份操作期间存在数据块分离的可能性,这种可能性就会导致备份数据文件不一致。此外,数据文件可能在备份之后,但是在整个备份进程结束之前被写入,由于备份中的每个数据文件可能会有不同的SCN,因此数据文件备份映像会不一致,所以拥有在备份期间生成的重做以应用于恢复是非常重要的。

联机备份的不足:

执行Altertablespacets_namebeginbackupalterdatabasebeginbackup命令时,重做日志会发生更改。一般来说,Oracle只将更改矢量存储为重做记录,这些小型的记录指定义已经发生的更改。当数据文件处于联机备份模式时,Oracle会记录数据文件的整块更改,而不是仅仅记录更改矢量,这意味着联机备份期间总的重做日志会大量增加,这样在热备份进程执行期间所需要的磁盘空间和CPU开销会收到影响。

RMAN提供了不将表空间置入热备份模式而执行热备份的功能。所以就避免了使用I/0操作,当结束数据文件的联机备份状态时,就可以进行正常的操作。

注意:

Archivelog模式下,联机备份和脱机备份,不备份联机重做日志和控制文件,只是备份归档文件及创建备份的控制文件,这是因为在恢复期间不希望冒险重写联机重做日志或者控制文件。

为什么不恢复联机重做日志,因为在Archivelog模式的恢复期间,联机重做日志中可能有最新的重做,这样当前的联机重做日志将被用于完全的时间点恢复。如果丢失了联机重做日志,就必须用所有的归档日志来执行时间点恢复。

不备份控制文件的原因和重做一样,因为当前的控制文件含有最新的联机重做日志信息和归档的重做日志信息。

4.ArchiveLog模式下的恢复

4.1Archivelog模式下的完全恢复

完全恢复,就是没有数据丢失的恢复,它的前提是所有联机重做日志文件都没有损坏,所有的归档文件都在。如果丢失了redolog或者归档文件,就需要执行时间点的恢复。如果丢失了控制文件的备份,就需要恢复控制文件并执行不完全恢复。

完全恢复的步骤如下:

(1)从备份中还原所有数据文件

(2)还原所有备份的归档

(3)加载数据库(startupmount

(4)恢复数据库(recoverdatabase

(5)Oracle会提示应用归档重做日志,在提示符下输入:AUTOOracle会自动应用所有重做日志。

(6)应用结束有,打开数据库。

补充:如果用Recoverdatabaseuntilcancel命令会恢复所需的重做日志,在应用完最后一个归档的冲过日志后,需要输入cancel命令来结束日志应用。

4.2ArchiveLog模式下的表空间恢复和数据文件恢复

可以在数据库加载或者数据库打开时执行表空间或者数据文件的恢复。

表空间的恢复步骤如下:

(1)是表空间脱机(altertablespacetbnameoffilne

(2)还原与要恢复的表空间相关联的所有数据文件

(3)联机恢复表空间(recovertablespace

(4)恢复完成后,使表空间联机(altertablespacetnnameonline

数据文件的恢复,它的有点是可以保持表空间的联机,步骤如下:

(1)使数据文件脱机(alterdatabasedatafile'file_name'offline

(2)还原所有要恢复的数据文件

(3)联机恢复数据文件(recoverdatafile

(4)完成恢复后,使数据文件联机(alterdatabase'file_name'online.

4.3ArchiveLog模式下时间点恢复

4.3.1恢复到某一时间点数据库的步骤

(1)从备份中恢复所有数据文件,这个备份要在恢复时间点之前结束

(2)使用命令恢复数据库并应用redorecoverdatabaseuntiltime'2010-6-4'

(3)完成恢复后打开数据库

4.3.2使用SCN号来恢复,步骤如下:

(1)从备份中恢复所有数据文件,这个备份要在恢复时间点之前结束

(2)使用命令恢复数据库并应用redorecoverdatabaseuntilchange'1287299'

(3)打开数据库

SCN小知识补充:

查看SCN:
SELECTdbms_flashback.get_system_change_numberFROMdual;
SELECTCURRENT_SCNFROMV$DATABASE;

查看SCNtimestamp之间的对应关系:

selectscn,to_char(time_dp,'yyyy-mm-ddhh24:mi:ss')fromsys.smon_scn_time;

系统时间标记与scn的每5分钟匹配一次。举个例子,比如scn:339988,339989分别匹配09-05-3013:52:0009-05-30-13:57:00,则当你通过asoftimestamp查询09-05-3013:52:0009-05-3013:56:59这段时间点内的时间时,oracle都会将其匹配为scn:339988undo表空间中查找,也就说在这个时间内,不管你指定的时间点是什么,查询返回的都将是09-05-3013:52:00这个时刻的数据。


------------------------------------------------------------------------------

分享到:
评论

相关推荐

    oracle备份与恢复

    逻辑备份:指通过逻辑导出对数据进行备份。将数据库中的用户对象导出到一个二进制文件中,逻辑备份...逻辑备份则是对物理备份的方式的一种补充,由于逻辑备份具有平台无关性,逻辑备份被作为数据迁移及移动的主要手段。

    ORACLE数据库备份与恢复测试

    为了提高各位ORACLE爱好着数据库备份与恢复实践能力,我把以前做过的备份与恢复测试共享给大家。希望大家能够补充,我也能从中提高自己,如有错误的地方也望大家指出,谢谢! 这个案例有1万多行

    临危不惧:Oracle11g数据库恢复技术

    资源名称:临危不惧:Oracle 11g数据库恢复技术内容简介:《临危不惧:Oracle 11g数据库恢复技术》分为三大部分:恢复的原理、恢复的工具、恢复的具体步骤与实战。第一部分能够让读者领略恢复操作的本质,是其他部分...

    使用rman恢复数据库,备份与恢复

    为了提高各位ORACLE爱好着数据库备份与恢复实践能力,我把以前做过的备份与恢复测试共享给大家。希望大家能够补充,我也能从中提高自己,如有错误的地方也望大家指出,谢谢! 这个案例有1万多行,所以我也列了个目录

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    12.7其他备份恢复技术 12.7.1用户管理备份 12.7.2导入导出工具数据泵 12.7.3跨平台数据迁移 12.7.4可传输表空间 12.7.5使用RMAN工具复制数据库 12.8本章小结 第13章 RAC恢复 13.1恢复技术基础 13.1.1恢复...

    oracle 9i课件

    备份与恢复;表的连接、多表查询、视图的运用;表数据操作;表数据的查询;大型数据库设计原则(工程硕士补充);第3章 oracle数据库管理系统基本概念;第13章 脚本的编写;第16章 PowerBuilder高级开发技巧;管理Oracle数据库...

    oracle学习笔记(知识点补充).zip

    这是我自己学习oracle的时候,写的代码案例和笔记(rownum和rowid、嵌套表、可变数组、闪回、事务、索引、备份和恢复、用户创建和权限授予、序列和同义词、设计范式等等知识点),大家可以作为参考!

    Oracle 10g 开发与管理

    第13讲 备份与恢复 106 一.数据库备份概述 106 1.备份和恢复 106 2.备份的类型 106 二. 数据库备份模式 106 三. 备份数据库 107 (一)物理备份 107 1.脱机备份 (无成本复制 copy paste) 107 2.联机备份 24*7...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    说明:Oracle中需要创建用户一定是要具有dba(数据库管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 例子: 2. 修改密码 说明:...

    Oracle帮助文档

    Oracle帮助文档 正文 [ 分卷阅读 ] 1.Oracle账户开启停止系统用户 2.... 数据备份(exp)与恢复(imp) 归档方式 过程练习题 考试题_查询部分 考试题_查询部分(2) 考试题_pl/sql 习题_触发器

    [三思笔记]一步一步学RMAN

    《[三思笔记]一步一步学rman(03)-rman备份演练初级篇.doc》 《[三思笔记]一步一步学rman(04)-rman备份演练进阶篇.doc》 《[三思笔记]一步一步学rman(05)-rman基础知识补充(1).doc》 《[三思笔记]一步一步学rman(06)-...

    SQL培训第一期

    2.1.7 备份与恢复 2.1.7.1 导出 导出用户: exp cssdj/cssdj@zr owner=(cssdj,cssdj_zsy) file=d:/cssdj.dmp log=d:/cssdj.log 导出用户表: exp cssdj/cssdj@zr tables=(g_dict,g_dict_item) file=d:/cssdj.dmp log...

    勤哲excel服务器2010教程

    13.1 数据备份与恢复 219 13.1.1 自动备份 220 13.1.2 手工备份 222 13.1.3 数据恢复 223 13.2 管理连接 224 13.2.1 查看当前连接 224 13.2.2 自动中断不活动的连接 225 13.3 改变系统外观 226 13.3.1 自定义登录...

Global site tag (gtag.js) - Google Analytics