oracle 数据库怎么备份

oracle 数据库怎么备份,第1张

1、EXP 备份:也称 Oracle 逻辑备份,恢复时需要的停机时间较长,因 IMP 导入恢复后不能应用归档日志,所损失的数据量较大; 对于大型数据库,EXP 会显得力不从心。

2、冷备份:也称 OS 备份,冷备份虽然恢复起来比较容易,但需要数据库停下来进行备份,备份造成停机时间的较长。而对于商业应用的数据库而言,这段时间恰恰是用来进行数据处理的。

3、RMAN(热备份):可以像冷备份一样实现数据库的全备份,而且不会影响到数据库的运行。但数据库必须在归档模式下运行;且备份文件必须存放在数据库所在服务器的磁盘上,或者数据库服务器可以直接访问的外部设备上,如磁盘柜、磁带机等。

4、StandBy 备份:在生产数据库(主数据库)的基础上,创建一个备用数据库(StandBy数据库),备用数据库实时自动与生产数据库同步。但处于只读和空闲状态,不接收用户连接和业务处理。如果生产数据库出现故障,可以立即以主数据库的模式启动 StandBy数据库,接替生产数据库的工作。采用这种备份方式,故障修复时间最短,数据丢失最少。但缺点是,必须单独提供 StandBy 数据库服务器,成本比较高。一般在金融和电信等实时性要求较高的行业广泛采用。

摘 要为了保证数据库的安全性和稳定性,通过对Oracle的备份以及恢复策略进行了分析和探讨,明确了数据库备份以及恢复技术在实际工程项目当中的应用,通过分析数据库备份的实际需求,同时选择了合理的数据备份策略以及数据恢复策略,采取了有效的数据库的管理和维护策略,有效保证了数据库中的相关数据以及整个系统的安全性和稳定性,为类似数据库的备份以及恢复策略提供了可供参考的经验。

关键字Oracle数据库;备份;数据;恢复;策略

对于企业而言,数据库中的数据是重要的数据资源,也是企业得以持续总结和发展的重要的要素,由此保证相应数据库的安全性和稳定性有着十分重要的影响。 随着数据库内数据量的逐渐增加,并且数据库发展以及运行所面临的环境也日益复杂,数据库中数据的安全性以及相关系统运行的稳定性对企业的发展尤为重要。数据库中的数据难以避免地受到了外界的侵袭,例如网络、硬件以及系统等方面的故障,甚至自然灾害也将导致则整个系统的崩溃,数据丢失,数据库中存储过程中的失误将给企业的发展带来严重的影响甚至巨大的损失,为了有效避开或者减少这些无法预测损失的到来,建立一系列安全稳定可靠的数据备份系统尤为重要。

1 建立备份策略

11 数据备份需求

(1)良好的可扩展能力

随着企业的发展和项目管理以及建设的持续发展和升级,企业数据库中的数据量将日益增长,所使用的数据库也应具有数据的扩展和升级的空间和可能。

(2)备份数据的可恢复性

为保证企业内部数据库的规范统一以及集中安全的数据恢复和备份的管理,相应的数据备份以及恢复策略应保证所备份的数据的可靠性以及可恢复性,为系统数据的恢复奠定了良好的基础。

(3)保持业务流程的连贯性

数据备份和恢复系统要以维持企业基本的业务流程和体系为基础,在保证了系统业务连续性的前提下开展数据库的数据备份,避免了数据存储设备时间较长对企业系统的使用和相关项目的运行造成影响。

12 备份设备的选型

在对PCEDM数据库备份需求分析的基础上,使用IBM的TSM作为备份数据备份的支持。TSM软件管理软件系统,是为企业级别的数据以及系统安全设计,以解决企业级数据和系统的安全性,为数据的备份提供解决方案,为石油、金融、电信管理和其他许多大型企业解决了数据的备份和管理问题。 TSM的管理结构,其高度的可扩展性和广泛的平台支持,集中式,自动化的存储管理等方面的优势,提供高效,自动,可扩展的备份管理系统。TSM专有的二进制格式,每个数据备份和恢复加密的数据传输格式,TSM自动CRC数据校验,从而保证了数据备份和恢复过程的完整性和安全。

2 制定备份策略

通过详细分析Oracle数据库的存储结构、数据库的运行模式、数据存储文件、数据增长的速度和数据增长密度等实际状况,结合几个备份Oracle数据库的优点和缺点分析,数据的备份策略表示如下:

21 使用RMAN与冷备份、逻辑备份相结合。使用Oracle数据库本身的RMAN和冷备份以及逻辑备份的方式结合起来,其中,Oracle数据库所提供的备份方式是主要的备份方式,而冷备份,逻辑备份作为辅助备份。

22 RMAN 备份包括全备份和增量备份 2 种方式。使用备份数据量小,低差异增量备份。在进行了一次级别为n的Differential增量的备份过程中,RMAN备份仅仅将那些最近一次等级等于或小于增量备份n相比,产生变化的数据块进行备份。差异增量备份策略RMAN的方法,设定在每个星期天,星期三0级备份数据库和日志文件的备份,周一,周二,周四,周五,周六为第一级增量备份和日志文件的备份。

23 备份触发方式,在Unix预定时间以及计划内启动。构建系统的CRON任务,根据备份策略编辑命令,在确定的时间内起动文件以及备份计划。

3 数据备份方案的具体实施

备份存储设备使用的磁盘阵列和磁带库的组合方式。TSM备份存储池,并最终利用RMAN备份的数据进行备份的IBM Ultrium3584磁带库EMC CX700磁盘阵列空间分割出的一部分作为备份的存储区域。数据库服务器放置在本地磁盘系统进行数据库冷备份以及逻辑备份过程中所产生的备份文件。

31 冷备份

在数据库以TRANSACTIONAL,IMMEDIATE 或 NORMAL 方式关闭后进行的数据备份称为冷备份或脱机备份,所以得到的是一个备份的一致性。在数据库关闭, *** 作系统的所有订单数据文件,控制文件和联机日志文件,初始化参数文件等进行备份,冷备份副本。一旦数据库发生故障,可以将这些文件拷贝覆盖原始文件的位置。这个备份数据库,它可以返回到之前的状态。 由于PCEDM数据库需要,以确保7天24小时运作,冷备份必须在封闭的数据库进行。冷备份在正常的服务维修期间进行每一年两次的备份。使用冷备份具有一致性的优势,可以保证系统恢复的迅速。

32 逻辑备份

逻辑备份使用Oracle导出工具将数据库中的对象模型得出的二进制文件,有一个需要重用Oracle导入工具将模型的二进制文件导入到对象数据库。基于整个数据库备份的逻辑模式,用户模式或表模型可以将数据输出,更灵活。对于一些重要的数据可以作为辅助备份方式。通过使用不同 *** 作系统平台,以及不同的数据库版本之间进行了数据库中数据的迁移,这成为了数据库物理备份的补充形式。

33 RMAN 备份

RMAN是Oracle提供的外部工具,专门用于数据库备份和恢复 *** 作。通过在RMAN备份系统中启动Oracle服务进程完成备份的任务。创建RMAN的备份的具体步骤如下:

(1)在数据库服务器上安装TSM客户端,选择相关文件进行编辑,设置DSMI_ORC_CONFIG,TDPO_ PSWDPATH参数,建立RMAN备份和TSM备份管理软件系统的连接。

(2)创建RMAN目录数据库备份恢复,以保存备份的索引信息。

(3)RMAN恢复管理器,同时开始在目标数据库的连接。

(4)目标数据库的注册。

(5)修改RMAN默认的配置参数。 CONFIGURE命令可以用来改变默认的RMAN设置,如配置自动通道,在指定的备份保留策略,激活或屏蔽备份优化功能。

(6)创建备份脚本。

4 Oracle 数据库恢复

41 RMAN 的完全恢复

在使用RMAN的完全恢复,在线和归档重做日志文件中的所有记录将被用于恢复数据库,从备份中恢复已损坏的文件,然后应用日志文件,将数据文件恢复到当前的时间。

42 RMAN的不完全恢复

通过RMAN中的不完全恢复数据库,将数据库恢复到指定的时刻或状态,通过将指定的SCN或者应用指定日期顺序归档重做日志之后的状态,也就是从时间、SCN或日志这三种方式中选择一种方式作为恢复终止的标记。

5 结语

实践证明,这种设计的备份策略,实现真正意义上的数据备份自动化管理,使系统的管理从传统的繁琐的手工备份中解放出来,提高工作效率和工作质量;有效避免了人为错误,提高数据备份的安全性和可靠性;减少了数据库的I / O *** 作,提高了数据备份恢复的速度以及数据备份的有效性。与此同时,也使备份系统具有良好的可扩展性,能够满足当前和今后几年的业务发展的实际需求。

参考文献:

[1]张自辉 ORACLE数据库的备份方法和策略[J] 吉首大学学报(自然科学版), 2009,(01)

[2]安亚强 Oracle备份与恢复及故障研究[J] 内蒙古煤炭经济, 2009,(04)

[3]王立新 Oracle数据库备份与恢复策略浅析[J] 才智, 2009,(28)

[4]杨志彬 Oracle数据库备份策略[J] 电脑知识与技术, 2009,(17)

严格的说双机热备并不是数据库备份,它属于服务器设备和服务软件高可用性的一种实施方案。而真正的Oracle数据库备份通常有两种方式,一种是热备份,另外一种是冷备份。

所谓热备份指的是在数据库没有终端服务的情况下对数据库进行备份。Oracle采用exp命令将数据库中的各种对象导出到一个dmp文件中,这个dmp可直接用于数据还原。

冷备份是指在数据库停止服务时,直接复制数据库的控制文件、参数文件、数据文件和重做日志文件,这些文件可直接用于数据还原。

oracle备份的几种方法:\x0d\1)导出/导入(EXP/IMP)。\x0d\ 2)热备份。\x0d\ 3)冷备份。\x0d\ 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份。\x0d\ 一、 导出/导入(Export/Import)\x0d\ 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。\x0d\ 1、简单导出数据(Export)和导入数据(Import)\x0d\ Oracle支持三种方式类型的输出:\x0d\(1)、表方式(T方式),将指定表的数据导出。\x0d\exp amis/amis@amisdb tables= B_S_AGT_LNE_ACCT_H_0714 file=B_S_AGT_LNE_ACCT_H_0714dmp \x0d\imp odsbdata/odsbdata@amisdb file= B_S_AGT_DEP_ACCT_TDE_H_0714dmp full=y ignore=y\x0d\ (2)、用户方式(U方式),将指定用户的所有对象及数据导出。\x0d\ (3)、全库方式(Full方式),瘵数据库中的所有对象导出。\x0d\ 数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。\x0d\ 2、 增量导出/导入\x0d\ 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。导出文件名缺省为exportdmp,如果不希望自己的输出文件定名为exportdmp,必须在命令行中指出要用的文件名。\x0d\ 增量导出包括三种类型:\x0d\ (1)、“完全”增量导出(Complete)\x0d\ 即备份三个数据库,比如:\x0d\ exp system/manager inctype=complete file=040731dmp\x0d\ (2)、“增量型”增量导出\x0d\ 备份上一次备份后改变的数据,比如:\x0d\ exp system/manager inctype=incremental file=040731dmp\x0d\ (3)、“累积型”增量导出\x0d\ 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:\x0d\ exp system/manager inctype=cumulative file=040731dmp\x0d\ 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。\x0d\ 比如数据库的被封任务可以做如下安排:\x0d\ 星期一:完全备份(A)\x0d\ 星期二:增量导出(B)\x0d\ 星期三:增量导出(C)\x0d\ 星期四:增量导出(D)\x0d\ 星期五:累计导出(E)\x0d\ 星期六:增量导出(F)\x0d\ 星期日:增量导出(G)\x0d\ 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:\x0d\ 第一步:用命令CREATE DATABASE重新生成数据库结构;\x0d\ 第二步:创建一个足够大的附加回滚。\x0d\ 第三步:完全增量导入A:\x0d\ imp system/manager inctype=RESTORE FULL=y FILE=A\x0d\ 第四步:累计增量导入E:\x0d\ imp system/manager inctype=RESTORE FULL=Y FILE=E\x0d\ 第五步:最近增量导入F:\x0d\ imp system/manager inctype=RESTORE FULL=Y FILE=F\x0d\二、 冷备份\x0d\ 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是:\x0d\ 1、 是非常快速的备份方法(只需拷文件)\x0d\ 2、 容易归档(简单拷贝即可)\x0d\ 3、 容易恢复到某个时间点上(只需将文件再拷贝回去)\x0d\ 4、 能与归档方法相结合,做数据库“最佳状态”的恢复。\x0d\ 5、 低度维护,高度安全。\x0d\ 但冷备份也有如下不足:\x0d\ 1、 单独使用时,只能提供到“某一时间点上”的恢复。\x0d\ 2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。\x0d\ 3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。\x0d\ 4、 不能按表或按用户恢复。\x0d\ 如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:\x0d\ 1、 所有数据文件\x0d\ 2、 所有控制文件\x0d\ 3、 所有联机REDO LOG文件\x0d\ 4、 Initora文件(可选)\x0d\ 值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。\x0d\ 下面是作冷备份的完整例子。\x0d\ (1) 关闭数据库\x0d\ sqlplus /nolog\x0d\ sql>connect /as sysdba\x0d\ sql>shutdown normal;\x0d\ (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件\x0d\ sql>cp \x0d\ (3) 重启Oracle数据库\x0d\ sql>startup\x0d\ 三、 热备份\x0d\ 热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下 *** 作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:\x0d\ 1 数据文件一个表空间一个表空间的备份。\x0d\ (1) 设置表空间为备份状态\x0d\ (2) 备份表空间的数据文件\x0d\ (3) 回复表空间为正常状态\x0d\ 2 备份归档log文件\x0d\ (1) 临时停止归档进程\x0d\ (2) log下那些在archive rede log目标目录中的文件\x0d\ (3) 重新启动archive进程\x0d\ (4) 备份归档的redo log文件\x0d\ 3 用alter database bachup controlfile命令来备份控制文件\x0d\ 热备份的优点是:\x0d\ 1 可在表空间或数据库文件级备份,备份的时间短。\x0d\ 2 备份时数据库仍可使用。\x0d\ 3 可达到秒级恢复(恢复到某一时间点上)。\x0d\ 4 可对几乎所有数据库实体做恢复\x0d\ 5 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。\x0d\ 热备份的不足之处:\x0d\ 1 不能出错,否则后果不堪设想。\x0d\ 2 假如热备份不成功,所得结果则不能用于时间点的恢复(scn)。\x0d\如果是全库一般需要配置一个rman\x0d\oracle的恢复方案:\x0d\oracle 恢复表到以前的某个状态\x0d\1用bda登录进去\x0d\select from syssmon_scn_time; --scn 与时间的对应关系 \x0d\每隔5分钟,系统产生一次系统时间标记与scn的匹配并存入syssmon_scn_time表。 \x0d\以下是我在测试机上做了一个测试:\x0d\select from table as of scn 3296161275\x0d\\x0d\select from table as of scn 3296200982;\x0d\\x0d\然后我们恢复到这个检查点。\x0d\以上是oracle的备份和恢复方案。

Oracle数据库备份方式

Oracle的内核提供数据库的备份和恢复机制,SQLDBA按表空间进行数据的备份和恢复。Oracle提供两种方式:备份恢复和向前滚动,保证意外故障恢复数据库的一致性和完整性。

1 备份恢复方式

对数据库的某个一致状态建立副本,并储存在介质上脱机保存,以此作为数据库恢复的基础。现以Oracle实用程序Export/Import来介绍备份恢复方式。

Export/Import是Oracle提供的两个互补性程序,即卸载和装载。它们既完成数据库与 *** 作系统文件的互为转载,同时可以有效地回收数据库的碎片,提供不同版本间Oracle 数据传送的手段,进行不同用户间的数据传送。

Export数据卸载,将数据从Oracle写到指定的 *** 作系统文件进行备份。卸载的对象、内容与数量有三种模式:TABLE MODE(表模式)、USER MODE(用户模式)、FULL DATABASEM ODE(所有数据库模式)。使用方式既可用交互方式,也可采用命令行方式,以"关键字=值" 将所需信息在命令行中逐一描述来进行卸载。Export要求用户具有CONNECT或DBA特权。

Import与Export互逆,将 *** 作系统文件重新装载至Oracle数据库中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特权,且可选择部分或全部装入。

Export/Import非常方便,系统开销小,它的限制是输出的 *** 作系统文件采用专门的压缩方式存放,仅提供给Import使用。

也可采用SQLPLUS和SQLLOADER实用工具进行备份。使用SQLPLUS的SPOOL命令通过脱机定向输出,使用PLUS格式化结果,形成指定格式的ASCII文件,需要时可用SQLLOADER 进行加载。它的方便之处是ASCII文件可以编辑,可方便地加载至其他数据库(如FoxPro、 Sybase中)。

2 向前滚动方式

Oracle提供向前滚动方式,使建立备份后成功的事务不会丢失。恢复的基础是数据库的某个一致性状态(即方式1完成的备份恢复),恢复的依据是存档的重作记录文件。启动重作记录文件方法如下:

(1) 启动Oracle;

(2) 连接Oracle:CONNECT SYSTEM/PASSWORD;

(3) 启动ARCHIVE LOG。

出现介质故障时,可用SQLDBA的RECOVER命令,利用存档的重作记录文件恢复一个或多个表空间。RECOVER命令对DATABASE或TABLASPACE进行恢复。前者要求SQLDBA START UP已被排斥方式装载且未被打开;后者对无活跃回退段的表空间执行脱机,要求数据库已装载且被打开。

由于向前滚动方式恢复的依据是存档的重作记录文件,因而系统开销大,但恢复的是建立备份以后的成功事务,所以恢复的程度更高、更完备。

IT JOB

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。下面我为大家分享一下oracle数据库自动备份系统的 方法 ,有需要的可以参考一下!

oracle数据库自动备份系统

实现过程:

1 建立文件 backupbat (自定义文件名bat)

@echo off

REM ###########################################################

REM # Windows Server 2003下Oracle数据库自动备份批处理脚本

REM ###########################################################

REM 取当前系统时间,可能因 *** 作系统 不同而取值不一样

set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%

set CURMON=%date:~0,4%%date:~5,2%

set CURTIME=%time:~0,2%

REM 小时数如果小于10,则在前面补0

if "%CURTIME%"==" 0" set CURTIME=00

if "%CURTIME%"==" 1" set CURTIME=01

if "%CURTIME%"==" 2" set CURTIME=02

if "%CURTIME%"==" 3" set CURTIME=03

if "%CURTIME%"==" 4" set CURTIME=04

if "%CURTIME%"==" 5" set CURTIME=05

if "%CURTIME%"==" 6" set CURTIME=06

if "%CURTIME%"==" 7" set CURTIME=07

if "%CURTIME%"==" 8" set CURTIME=08

if "%CURTIME%"==" 9" set CURTIME=09

set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%

REM 设置所有者、用户名和密码

set OWNER=orcl

set USER=bktcgl

set PASSWORD=bktcgl

REM 创建备份用目录,目录结构为oraclebak/YYYYMMDD/

if not exist "oraclebak" mkdir oraclebak

cd oraclebak

if not exist "%CURMON%" mkdir %CURMON%

set FILENAME=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%DMP

set EXPLOG=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%_loglog

REM 调用ORACLE的exp命令导出用户数据

exp %USER%/%PASSWORD%@%OWNER% file=%FILENAME% log=%EXPLOG% owner=%USER% grants=n

exit

注:

1bat文件可双击或直接在命令行执行,检查正确与否

2检查时可注释掉exit

3以上文件实现按月份创建文件夹,按时间生成备份文件

2建立windows任务

步骤:

开始 -> 所有程序 -> 附件 -> 系统工具 -> 任务计划程序 -> *** 作 -> 创建基本任务

-> 任务名输入"oracle_backup"(自定义任务名),执行这个任务选择每天,下一步

-> 起始时间下午12:00,起始日期2012-7-11,下一步 ->(启动程序)下一步

->在 浏览 中查找刚刚写好的 backupbat 文件 >下一步 > 完成

注:

1在任务计划栏目下新增一个名为"oracle_backup"的任务计划,表明已经配置完毕。

2不同系统的任务计划略有不同,但基本换汤不换药,不做一一例举

问题:系统警告"已创建新任务,但可能不能运行,因为无法设置账户信息。指定的错误是:Ox80041315:任务计划程序服务没有运行"

原因:电脑的任务计划程序服务没有启动起来。

解决:开始 > 所有程序 > 管理工具 > 服务,找到"Task Scheduler"服务,发现启动类型为"已禁用",

右键单击更改为"自动",并把它启动起来,然后重新添加一次任务计划就可以了。

3简单解释

1 bat:是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用 Cmdexe按照该文件中各个命令出现的顺序来逐个运行它们。

2 Echo 命令:打开回显或关闭请求回显功能,或显示消息。

3 @ 命令:表示不显示@后面的命令

4 Rem 命令:注释命令

5 If命令:if表示将判断是否符合规定的条件,从而决定执行不同的命令。

6 exit :退出命令行

7 GRANTS: 是权限的意思,在你导出的目标数据库中可能会有一些表的如select 权限等赋给了别的用户。

GRANTS=Y导出的时候将这些权限导出,导入的时候将这些权限导入。

GRANTS=N权限不被导入。

多工联机重作日志文件

每个数据库实例都有其自己的联机重作日志组 在 *** 作数据库时 Oracle首先将数据库的全部改变保存在重作日志缓冲区中 随后日志记录器进程(LGWR)将数据从系统共用区SGA(System Global Area)的重作日志缓冲区写入联机重作日志文件 在磁盘崩溃或实例失败时 可以通过与之相关的联机重作日志来保护数据库 将损失降至最低 但Oracle在默认的方式下只创建一组重作日志文件(每一组只有一个项目文件) 为了减少丢失这些重要的重作日志文件的危险 因此需要对其进行镜像拷贝

在Oracle级多工联机重作日志文件 即增加多个文件到每个组以便镜像数据 这样I/O故障或写丢失只损坏一个拷贝 从而保证了LGWR后台进程至少能够向一个成员写入信息 数据库仍然可以继续运行 同时应保证日志组的成员不应驻存在同一物理设备上 因为这将削弱多重日志文件的作用

镜像拷贝控制文件

控制文件描述通用的数据库结构 它存储了大量数据库状态信息 包括物理结构和联机重作日志文件在当时的名称 位置 状态 控制文件在数据库启动时被Oracle实例读取 保持打开并随着 *** 作而文件内容更新 直到实例关闭为止 在它打开的过程中能够同步需要恢复的信息 包括检查点信息 因此若损坏或丢失了控制文件 Oracle将不能继续工作 因此应在系统中保持控制文件的多个拷贝 且这些拷贝应置于安装于不同磁盘控制器下的不同磁盘设备中

由于Oracle没有提供对控制文件多工的完整支持 因此应在对控制文件使用 *** 作系统或硬件镜像 即在修改初始化文件的control_files参数后重新启动数据库前 应将控制文件复制到定义的新位置 否则数据库启动时将会出错

激活归档进程

当数据库运行于NOARCHIVELOG模式下时 只能在完全关闭数据库后进行数据库的一致备份 并且同时禁用了联机重作日志的存档 这样在Oracle实例失败时只能将数据库修复到最近的完整数据库备份时的那一点上 不能在失效点处对实例进行恢复 而在ARCHIVELOG模式下 数据库不仅可以进行一致备份 还可以在数据库打开的情况下进行联机备份 通过数据库的备份和联机与存档的重作日志文件 用户可以恢复所有已提交的事务 并允许将数据库恢复到指定的时间 SCN或日志系列号处 增大了恢复的灵活性 减少了故障时的数据丢失 因此数据库应运行于ARCHIVELOG模式

在ARCHIVELOG模式下为了防止文件损坏和介质故障 应把日志归档到不同的磁盘上 这可以通过在初始化文件中为归档重作日志指定多个目标实现

数据库实施较大改变时备份

因为控制文件中保存了数据库的模式结构信息 因此在对数据库进行较大改变(包括改变表结构 增加 删除日志文件或数据文件等)时应立即备份控制文件及相应的数据文件

使用RESETLOGS选项打开数据库后进行备份

在以RESETLOGS选项打开数据库后 应对整个数据库进行脱机或联机的备份 否则将不能恢复重置日志后的改变

当以RESETLOGS选项打开数据库时 Oracle将抛弃恢复中没有应用的重复信息 并确保永远不再运用 同时还将初始化控制文件中关于联机日志和重作线程的信息 清除联机日志中的内容 因此 RESETLOGS前的归档日志的序列号将与RESETLOGS后的Oracle控制文件的要求值不相符(备份文件中的检查点比控制文件中的检查点旧) 即在恢复中不能应用以前的归档日志文件 从而导致RESETLOGS *** 作之前的备份在新形体中无用

避免备份联机重作日志文件

由于文中提出了多工联机重作日志文件且数据库运行于ARCHIVELOG模式 ARCH进程能够将联机重作日志归档 因此不必对其进行备份 若用备份的联机重作日志文件重建它 可能会引起日志文件序列号的混乱 从而破坏数据库 得到适得其反的结果

重置联机日志

在进行了不完全恢复或用备份控制文件进行恢复后 应重置联机日志

为了确保数据库的一致性 必须保证在恢复后所有数据文件都恢复到同一个时间点 但不完全恢复可能导致数据文件中具有一个与其它文件不同的检查点 导致数据库的一致性受到破坏 同样 备份的控制文件中保存的SCN和计数器与当前日志文件中的值可能不同 从而也破坏了数据库的一致性 因此应在进行完上述两项 *** 作后重置联机日志

数据库的逻辑备份

以上所述备份都为物理备份 是实际物理数据库文件从一处拷贝到另一处的备份 除此之外还可使用Oracle提供的导出实用程序进行数据库的逻辑备份 Oracle同时还提供了相应的导入实用程序重建逻辑备份中保存的信息

逻辑备份只拷贝数据库中的数据 而不记录数据位置的备份过程 它利用SQL语句 从数据库中导出数据到一个存放在合适位置的外部文件中 同时并可检测到数据块的损坏 因此可用其作为物理备份的补充

备份策略

考虑到如今大部分信息系统每周的业务是 × *** 作 因此采用联机备份 否则可每隔一定时间进行一次脱机备份

应用上述规则 可得出下述典型的备份策略

①镜像拷贝重作日志文件

②镜像拷贝控制文件

③激活归档进程 即以ARCHIVELOG模式 *** 作数据库

④每天进行数据库的部分联机备份(每天进行数据库的完全热备份将无畏地增加数据库的负担且没有必要 同时也增加了数据库恢复时的灵活性)

⑤每隔一周或几周进行一次数据库的逻辑备份

实际项目应用

当数据库中的文件达到一定数量后 DBA可能记不住该备份的文件的名或位置 因此 若能使备份过程自动化可有效地减轻DBA的负担 同时不会遗漏应备份的文件 应用自动批处理文件及脚本文件可实现备份 恢复的自动化 下面简介了在实际项目开发中应用本文所提出的自动备份 恢复策略 通过实际应用 证明了该策略的正确性和可行性

( )下述脚本实现联机重作日志的多工

connect 账户名/密码    alter database ktgis add logfile member 日志文件的存储位置 to group 联机日志组号;    shutdown immediate    startup pfile=初始化文件的存放位置 exclusive mount; 装载数据库且不打开    alter database archivelog; 激活归档进程    alter database open;    exit

( )下列VB代码自动建立联机备份的批处理文件及相应的脚本文件

Set adoTmp = objConnect Execute( select tablespace_name from sys dba_data_files ) 得到数据库中的表空间名    Dim lnum As Long    Dim lnum As Long    lNum = FreeFile    Open 自动备份批处理文件路径 For Binary As lNum    lnum = FreeFile    Open onlinebegin sql For Binary As lnum onlinebegin sql为设置表空间进入热备份模式的脚本文件文件名    lnum = FreeFile    Open onlineend sql For Binary As lnum onlinebegin sql为结束表空间热备份模式的脚本文件文件名    strTmp = connect 账户名/密码 & Chr( ) & Chr( )    Put lnum strTmp    strTmp = shutdown immediate & Chr( ) & Chr( )    Put lnum strTmp    strTmp = startup pfile=初始化文件的存放位置exclusive mount; & Chr( ) & Chr( )    Put lnum strTmp    strTmp = alter database archivelog; & Chr( ) & Chr( )    Put lnum strTmp    strTmp = alter database open; & Chr( ) & Chr( )    Put lnum strTmp    strTmp = connect 账户名/密码 & Chr( ) & Chr( )    Put lnum strTmp    strTmp = Oracle服务管理器路径 & @ & onlinebegin sql & Chr( ) & Chr( ) 在服务管理器中执行脚本文件onlinebegin sql    Put lNum strTmp    Do While Not adoTmp EOF    Set adoTmp = objConnect Execute( select file_name from sys dba_data_files where tablespace_name= & adoTmp Fields( ) & ) 得到当前表空间所对应的所有数据文件名 通过循环即可得到所有表空间所对应数据文件名 若只备份指定的表空间 可指定表空间名从而得到其对应的物理数据文件    strTmp = alter tablespace & adoTmp Fields( ) & begin backup; & Chr( ) & Chr( ) 将表空间置于热备份模式    Put lnum strTmp    strTmp = Oracle的ocopy exe工具全路径 & adoTmp Fields( ) & & 备份文件存放路径 & Chr( ) & Chr( )    Put lNum strTmp    strTmp = alter tablespace & adoTmp Fields( ) & end backup; & Chr( ) & Chr( ) 表空间恢复正常模式    Put lnum strTmp    adoTmp MoveNext    Loop    strTmp = Oracle服务管理器路径 & @ & onlineend sql & Chr( ) & Chr( ) 在服务管理器中执行脚本文件onlineend sql    Put lNum strTmp    strTmp = exit & Chr( ) & Chr( ) 退出服务管理器    Put lnum strTmp    strTmp = alter system switch logfile; & Chr( ) & Chr( ) 强制日志转换 使Oracle创建一个归档日志文件    Put lnum strTmp    strTmp = exit & Chr( ) & Chr( )    Put lnum strTmp    Close    Set adoTmp = Nothing    Set adoTmp = Nothing

运行得到的自动批处理文件 即可自动进行数据库的联机备份

( )在从备份中恢复数据文件后 执行下列脚本将数据库的恢复程序

connect账户名/密码    shutdown abort    startup mount pfile=初始化文件的存放位置; 装载数据库    set autorecovery on; 打开自动恢复    recover database;    alter database open; 打开数据库

结束语

lishixinzhi/Article/program/Oracle/201311/18527

以上就是关于oracle 数据库怎么备份全部的内容,包括:oracle 数据库怎么备份、数据库的备份和恢复 [Oracle数据库的备份与恢复策略分析]、Oracle数据库备份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9770005.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存