ITPUX技术网

交流 . 资讯 . 分享
Make progress together!
Oracle数据库DBA高级工程师培训视频
Oracle数据库培训-备份恢复-性能优化-集群容灾
mysql数据库视频教程

ORACLE备份与恢复技术介绍

内容发布:风哥| 发布时间:2014-3-22 12:17:55
ORACLE备份与恢复技术介绍

一、       备份分类
简单的按照备份进行的方式,可以分为逻辑备份、冷备份(脱机备份)、热备份(联机备份),其实冷备份与热备份又可以合称为物理备份
按照备份的工具,可以分为EXP/IMP备份、OS拷贝、RMAN、第三方工具,如VERITAS
以下我们将从多个角度来说明以上的各种备份方式


EXP/IMP逻辑备份
导入/导出是ORACLE幸存的最古老的两个命令行工具了,其实我们从来不认为Exp/Imp是一种好的备份方式,实际上Oracle官方也不建议使用Exp/Imp作为数据库的日常备份手段,正确的说法是Exp/Imp只能是一个好的转储工具。特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳。当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议。
对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具。

1.    OS备份
操作系统备份有两类,冷备份(Coldbackup)与热备份(Hot backup),操作系统备份与以上的逻辑备份有本质的区别。逻辑备份提取数据库的数据内容,而不备份物理数据块。而操作系统备份则是拷贝整个的数据文件。

2.    冷备份
在文件级备份开始前数据库必须彻底关闭。关闭操作必须用带有normal、immediate、transaction选项的shutdown来执行。
数据库使用的每个文件都被备份下来,这些文件包括:所有数据文件、所有控制文件、所有联机REDO LOG 文件、INIT.ORA文件(可选)
作冷备份一般步骤是:
a. 正常关闭要备份的实例(instance);
b. 备份整个数据库到一个目录
c. 启动数据库
SVRMGRL>connectinternal
SVRMGRL>shutdown immediate
SVRMGRL >! cp<file> <backup directory>
SVRMGRL >!tarcvf /dev/rmt/0 /u01/oradata/prod
SVRMGRL>startup
注意:如果利用脚本对数据库进行冷备份,必须对关闭数据库的命令进行逻辑检查,如果发生关闭数据库的命令不能正常执行而导致数据库没有正常关闭,那么,所有的冷备份将回是无效的。

3.    热备份
热备份是当数据库打开并对用户有效是的OS级的数据备份。热备份只能用于ARCHIVELOG方式的数据库。在数据文件备份之前,对应的表空间必须通过使用ALTER TABLESPACE …… BEGIN BACKUP以备份方式放置。然后组成表空间的数据文件可以使用类似冷备份的操作系统命令进行拷贝。在数据文件用操作系统命令拷贝后,应使用ALTER TABLESPACE …… END BACKUP命令使表空间脱离热备份方式。
热备份没有必要备份联机日志,但必须是归档状态,在实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜相状态,当前联机日志的损坏,对于数据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工作。
对于临时表空间,存放的是临时信息,在热备份是也可以考虑不用备份,如果临时文件发生故障,可以删除该数据文件与表空间,重建一个临时表空间。
热备份的优点是显而易见的
a.可在表空间或数据文件级备份,备份时间短。
b.备份时数据库仍可使用。
c.可达到秒级恢复(恢复到某一时间点上)。
d.可对几乎所有数据库实体作恢复。
e.恢复是快速的,在大多数情况下在数据库仍工作时恢复。
操作系统作热备份的一般步骤为:
1. 连接数据库
SVRMGRL>connectinternal;
2. 将需要备份的表空间(如User)设置为备份方式
SVRMGRL>Altertablespace User begin backup;
3. 拷贝数据文件
SVRMGRL>!cp/u01/oradata/prod/user01.ora /backup/prod/user01.ora
Or
$cp cp/u01/oradata/prod/user01.ora /backup/prod/user01.ora
4. 在数据文件拷贝完成后,将表空间拖体备份方式
SVRMGRL>Altertablespace User end backup;
5. 对所有需要备份的表空间重复2,3,4
6. 使用如下的命令备份控制文件ALTER DATABSE ……BACKUP CONTROLFILE
如备份成二进制文件
alter databasebackup controlfile to ‘new fielname’;
备份成文本文件
alter databasebackup controlfile to trace;
因为热备份的时候,用户还在操作数据库,所以,最好是每个表空间处于备份状态的时间最短,这样就要求一个表空间一个表空间的备份,不要一起使表空间处于备份状态而同时拷贝数据文件。
注意:如果在热备份的时候如果数据库中断(如断电),那么在重新启动数据库的时候,数据库将提示有数据文件需要恢复,你需要把正在断电时候的处于备份状态的数据文件通过ALTER TABLESPACE …… END BACKUP结束备份方式。具体哪个数据文件或表空间处于备份状态,可以通过v$backup与v$datafile来获得

4.    RMAN(备份与恢复管理器)
5.1 使用RMAN进行备份
5.1.1 了解RMAN
Recovery manager(RMAN)是ORACLE提供的DBA工具,用语管理备份和恢复操作。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,其中包括表空间、数据文件,控制文件和归档文件。RMAN可以按要求存取和执行备份和恢复。
RMAN备份有如下优点:
Ø       支持在线热备份
Ø       支持多级增量备份
Ø       支持并行备份、恢复
Ø       减少所需要备份量
Ø       备份、恢复使用简单
重要的是,使用恢复管理器允许您进行增量数据块级的备份(这个与导出/导入的增量截然不同)。增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。另一个空间有效的RMAN特性是它只备份数据文件中使用的数据块,忽略空的,未用的数据块,这个对于预分配空间的表空间有很大的好处。
从9i开始,还增加了RMAN的数据块级别的恢复,可以进一步减少数据库恢复时间。
RMAN支持以下不同类型的备份
Ø       FULL 数据库全备份,包括所有的数据块
Ø       INCREMENTAL 增量备份,只备份自上次增量备份以来修改过的数据块。需要一个0级的增量作为增量的基础,可以支持7级增量。
理解BACKUP,RESTORE,RECOVER命令,这是RMAN最基本的三个命令,可以进行数据库的备份,复原以及恢复操作。

5.1.2 了解恢复目录
理解恢复目录,RMAN可以在没有恢复目录(NOCATALOG)下运行,这个时候备份信息保存在控制文件。保存在控制文件的备份信息是很危险的,如果控制文件的破坏将导致备份信息的丢失与恢复的失败,而且,没有恢复目录,很多RMAN的命令将不被支持。所以对于重要的数据库,建议创建恢复目录,恢复目录也是一个数据库,只不过这个数据库用来保存备份信息,一个恢复目录可以用来备份多个数据库。
创建RMAN目录,以下步骤说明了在一个数据库中尽力RMAN目录的过程。
1.为目录创建一个单独的表空间
SQL>Create tablespace tools datafile ‘fielname’ size 50m;
2.创建RMAN用户
SQL>Create user RMAN identified by RMAN defaulttablespace tools temporary tablespace temp;
3.给RMAN授予权限
SQL>Grant connect , resource , recovery_catalog_ownerto rman;
4.打开RMAN
$>RMAN
5.连接数据库
RMAN>connectcatalog rman/rman
6.创建恢复目录
RMAN>Createcatalog tablespace tools
注册目标数据库,恢复目录创建成功后,就可以注册目标数据库了,目标数据库就是需要备份的数据库,一个恢复目录可以注册多个目标数据库,注册目标数据库的命令为:
$>RMAN target internal/password catalog rman/rman@rcdb;
RMAN>Registerdatabase;
数据库注册完成,就可以用RMAN来进行备份了,更多命令请参考ORACLE联机手册。
注销数据库不是简单的在RMAN提示下反注册就可以了,需要运行一个程序包,过程如下:
1. 连接目标数据库,获得目标数据库ID
$> RMAN targetinternal/password catalog rman/rman@rcdb;
RMAN-06005:connected to target database: RMAN (DBID=1231209694)
2. 查询恢复目录,得到更详细的信息
SQL> SELECTdb_key, db_id FROM db WHERE db_id = 1231209694;
DB_KEY DB_ID
-------------------------
1 1237603294
1 row selected.
3. 运行过程dbms_rcvcat.unregisterdatabase注销数据库,如
SQL> EXECUTEdbms_rcvcat.unregisterdatabase(1 , 1237603294)
5.1.3 采用RMAN进行备份
RMAN使用脚本来备份数据库,以下是RMAN进行备份的几个例子。
1.备份整个数据库
backup full tag‘basicdb’ format ‘/bak/oradata/full_%u_%s_%p’ database;
2.备份一个表空间
backup tag‘tsuser’ format ‘/bak/oradata/tsuser_%u_%s_%p’ tablespace users;
3.备份归档日志
backup tag ‘alog’format ‘/bak/archivebak/arcbak_%u_%s_%p’ archivelog all delete input;
5.2 维护RMAN
5.2.1 查看RMAN的信息
检查现有备份
RMAN>listbackup
列出过期备份
RMAN>reportobsolete
删除过期的备份
RMAN>allocatechannel for maintenance type disk;
RMAN>changebackupset id delete;
RMAN>releasechannel;
5.2.2 同步或重置RMAN
如果目标数据库物理对象发生了变化,如添加了一个数据文件,需要用如下命令同步:
RMAN>resynccatalog;
如果目标数据库reset了数据库,需要用如下命令同步
RMAN>resetdatabase;
当手工删除了数据库的归档文件后,要执行以下脚本同步
RMAN>allocatechannel for maintenance type disk;
RMAN> changearchivelog all crosscheck;
RMAN>releasechannel;
当手工删除了数据库的RMAN备份后,要执行以下脚本来同步
RMAN>allocatechannel for maintenance type disk;
RMAN>crosscheckbackup;
RMAN>deleteexpire backup;
RMAN>releasechannel;

二、       备份解决方案

1.    数据备份的原则
对数据进行备份是为了保证数据的一致性和完整性,消除系统使用者和操作者的后顾之忧。不同的应用环境要求不同的解决方案来适应,一般来说,一个完善的备份系统,需要满足以下原则:
稳定性
备份产品的主要作用是为系统提供一个数据保护的方法,于是该产品本身的稳定性和可靠性就变成了最重要的一个方面。首先,备份软件一定要与操作系统100%的兼容,其次,当事故发生时,能够快速有效地恢复数据。
全面性
在复杂的计算机网络环境中,可能会包括了各种操作平台,如各种厂家的UNIX、NetWare、WindowsNT、VMS等,并安装了各种应用系统,如ERP、数据库、群件系统等。选用的备份软件,要支持各种操作系统、数据库和典型应用。
自动化
很多系统由于工作性质,对何时备份、用多长时间备份都有一定的限制。在下班时间系统负荷轻,适于备份。可是这会增加系统管理员的负担,由于精神状态等原因,还会给备份安全带来潜在的隐患。因此,备份方案应能提供定时的自动备份,并利用磁带库等技术进行自动换带。在自动备份过程中,还要有日志记录功能,并在出现异常情况时自动报警。
高性能
随着业务的不断发展,数据越来越多,更新越来越快,在休息时间来不及备份如此多的内容,在工作时间备份又会影响系统性能。这就要求在设计备份时,尽量考虑到提高数据备份的速度,利用多个磁带机并行操作的方法。
操作简单
数据备份应用于不同领域,进行数据备份的操作人员也处于不同的层次。这就需要一个直观的、操作简单的图形化用户界面,缩短操作人员的学习时间,减轻操作人员的工作压力,使备份工作得以轻松地设置和完成。
实时性
有些关键性的任务是要24小时不停机运行的,在备份的时候,有一些文件可能仍然处于打开的状态。那么在进行备份的时候,要采取措施,实时地查看文件大小、进行事务跟踪,以保证正确地备份系统中的所有文件。
容灾考虑
将磁带库中的磁带拷贝一份,存放在远离数据中心的地方,以防数据中心发生不可预测的灾难。

2.    备份系统组成
能否安全有效的备份取决于以下三个因素:
(1)       执行备份的磁带机
磁带机的质量与性能在整个备份过程中是至关重要的,它是能否进行高速高质量备份的关键所在。
(2)       存储备份数据的介质
介质是数据的负载物,它的质量一定要有保证,使用质量不过关的介质无疑是拿自己的数据冒险。
(3)       控制备份的软件
操作系统通常包括一些基本功能,但是为了达到更好的备份效果,最好使用专门的备份软件。优秀备份软件包括加速备份、自动操作、灾难恢复等特殊功能,对于安全有效的数据备份是非常重要的。

3.    推荐备份系统
Ø        磁带库、Veritas备份软件
对数据安全要求高的项目组,可以采用比较专业的备份软件和磁带库、虚拟带库来进行备份与恢复。
需要购买磁带库或者虚拟带库硬件、以及备份软件(如HP DP、IBM TSM、SymantecVeritas等)。
Ø       磁盘、RMAN
对于数据库容量在MB级、项目经费不够的小项目组,可以采用Oracle自带的RMAN和备份服务器来进行备份与恢复。
在性能允许条件下,备份服务器可以使用现有的数据库服务器或应用服务器来“兼任”,也无需另外购买软件,由开发人员编写备份脚本来实现。

4.    备份策略
除了上述原则之外,一个好的备份/恢复系统,除了配备有好的软硬件之外,更需要有良好的备份策略和管理规划来进行保证。对于一个复杂的系统,必须根据各种应用和业务的处理类型来分别制定具体的备份策略。但总体上来讲,一个好的备份策略的组成,主要分为以下内容:

4.1 备份类型的选择
备份类型主要有三种:
(1)       全备份:
每次备份定义的所有数据,优点是恢复快,缺点是备份数  据量大,数据多时可能做一次全备份需很长时间
(2)       差异增量备份:
备份自上一次备份以来更新的所有数据,其优点是每次备份的数据量少,缺点是恢复时需要全备份及多份增量备份
(3)       累计增量备份:
备份自上一次全备份以来更新的所有数据,其优缺点介于上两者之间
在备份类型选择时,一般的规则是:
(1)       对于操作系统和应用程序代码,可在每次系统更新或安装新软件时,做一次全备份
(2)       对于一些日常数据更新量大,但总体数据量不是非常大的关键应用数据,可每天在用户使用量较小的时候安排全备份
(3)       对于日常更新量相对于总体数据量较小,而总体数据量非常大的关键应用数据,可每隔一个月或一周安排一次全备份,再此基础上,每隔一个较短的时间间隔做增量备份
4.2备份窗口选择
所谓备份窗口,是指每次备份的间隔时间,这主要取决于每次备份间隔能够容忍丢失的数据量、每次备份的数据量和备份的速度。理论上,备份的间隔越短越好,但每次备份总需一定的时间,而且备份总会或多或少地影响系统的正常处理性能。因而,对一些关键数据,可预先定义备份窗口大小,再根据备份数据量计算所需的备份速度,若备份速度不能满足要求,则可考虑使用更快速的带库或增加带库上的驱动器数据。
其计算流程为:
Ø        确定备份数据量及数据压缩比
Ø        根据控制器类型推算出单驱动器的备份速度
Ø        确定必需的备份窗口
Ø        计算出单驱动器所需备份时间
Ø        确定所需的驱动器数目

4.3确定介质保存时间
备份过程中要用到大量的存储介质,备份介质的保留时间的长短将决定所需购置和维护的介质量。目前的备份策略都是基于多磁带轮换制,即保存有过时数据的介质可重新覆盖使用,轮换频率可根据备份类型和备份的窗口来确定。
4.4计算所需磁带介质数量
备份系统所需的介质数量可根据下述流程确定:
Ø        确定介质容量
Ø        计算每个服务器上的数据做全备份所需的介质数量
Ø        计算每个服务器上的数据做增量备份所需的介质数量
Ø        根据每种介质的保留时间或轮换频率即可计算出所需的介质数目

4.5备份介质的管理
备份好的介质,最好不要与计算机系统放在一起,而要放到保险柜或运输到备份中心统一保存。同时,为了更好的管理介质,对所有磁带需按统一的规则来命名,如:
备份类型 集合名 – 日期
Ø        备份类型:
— F 完全备份
— A 部分备份
Ø        集合名:
— 使用者指定的唯一性名字
Ø        日期:
— 使用该介质进行备份的时间
— MM/DD/YY格式

5.    灾难恢复策略
备份的目的是为了防止在异常事故下的数据丢失,一旦运行数据发生问题,如何从备份介质中恢复出最当前的数据,才是我们真正关心的问题。我们不希望灾难发生,也不希望任何故障出现。然而灾难的出现往往是突然的、预先不可知的。所以我们应有一套应付各种灾难情况下的灾难恢复解决方案,以备不时之需。归纳出以下有可能会出现的几种情况,并提出了相应的解决措施。
情况一:主机数据磁盘故障(非系统盘)
情况二:主机物理损坏
情况三:系统盘物理损坏
情况四:操作系统不能启动
情况五:磁盘上数据损坏(如由于人为失误、病毒或黑客攻击)
情况六:整个数据中心灾难
解决措施:
情况一:主机数据磁盘故障(非系统盘)
Ø         若数据盘使用了RAID1、RAID5等技术,则应该可直接热替换硬盘
Ø        若数据盘已不能访问,则需先修好物理盘,然后从备份介质恢复数据
情况二:主机物理损坏
Ø        替换主机,使用原来的系统盘或数据盘
Ø         若不使用原来的系统盘或数据盘,则可以通过备份系统的灾难恢复功能恢复操作系统,然后恢复数据
情况三:系统盘物理损坏
Ø         替换系统盘
Ø        则可以通过备份系统的灾难恢复功能恢复操作系统
情况四:操作系统不能启动
Ø        直接通过备份系统的灾难恢复功能恢复操作系统
情况五:磁盘上数据损坏(如由于人为失误、病毒或黑客攻击)
Ø        通过备份介质上的数据备份恢复数据
情况六:数据中心灾难
            所谓数据中心灾难,是指一些特殊情况发生时,数据中心的主机系统的存放在磁盘上的数据,以及备份带库中的备份介质上的数据均遭损坏。此时,若没有很好的容灾解决方法,就可能导致严重的后果。
可生成一个备份内容的多个备份介质拷贝,因而,在数据中心保留一份备份介质的同时,可将同样内容的其它备份介质送到远程的保险库中保留起来。一旦灾难发生,即使磁带库中的备份介质损坏,还可用保险库中的备份介质通过本地或远程进行恢复。



上一篇:10gR2在linux上的存储选项
下一篇:RAC安装过程中碰到的问题以及是如何解决的。
189070296,150201289

专业提供Oracle数据库服务、主机、存储、备份、中间件等相关技术支持服务,QQ号:176140749
关注ITPUX技术网微信公众号itpux_com  ,了解本站最新技术资料的分享.

欢迎加QQ群,提供超多高质量Oracle/Unix/Linux技术文档与视频教程的下载。

Oracle/MySQL/Linux群4-5:189070296  150201289  
Oracle/MySQL/Linux群6-8:244609803   522261684   522651731
备注:请勿重复加群,另请注明 from itpux

加群分享视频教程部分如下:

1、公开课视频:Oracle/MySQL数据库工程师职业发展前景讲解(免费)
http://edu.51cto.com/course/7015.html

2、51CTO学院Oracle数据库高级工程师培训(高薪就业.课程介绍)
http://edu.51cto.com/px/train/131?xiaotu

3、Oracle DBA数据库高级工程师培训视频课程1.1(系列78套+七大阶段+上千案例)
套餐视频地址: http://edu.51cto.com/topic/1121.html

4、MySQL数据库(终身门徒)套餐:http://edu.51cto.com/sd/1e1a6

回复

使用道具 举报

内容发布:fany1987| 发布时间:2014-3-22 16:31:44
不错,挺详细的
回复 支持 反对

使用道具 举报

内容发布:dujia1027| 发布时间:2014-4-1 17:30:58
真的好详细,收藏
回复 支持 反对

使用道具 举报

内容发布:xjcydf909| 发布时间:2014-10-28 13:27:44
学习学习,~~~
回复

使用道具 举报

内容发布:ann001| 发布时间:2015-3-6 11:19:13
支持一下 ,谢谢分享了······
回复 支持 反对

使用道具 举报

内容发布:xiangcj| 发布时间:2015-3-13 10:33:36
谢谢分享 :P:P:P:P:P:P
回复

使用道具 举报

1框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表