如何实现ORACLE数据库完整备份
oracle数据库全库备份语句

oracle数据库全库备份语句Oracle数据库是一种关系型数据库管理系统,提供了全库备份的功能,可以用来备份整个数据库。
下面列举了10个不同的Oracle数据库全库备份语句。
1. 使用RMAN备份全库:使用RMAN工具备份整个Oracle数据库,可以使用以下命令:```RMAN> backup database;```2. 使用expdp备份全库:使用expdp工具备份整个Oracle数据库,可以使用以下命令:```expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;```3. 使用exp备份全库:使用exp工具备份整个Oracle数据库,可以使用以下命令:```exp system/password@database_name full=y file=full_backup.dmp log=full_backup.log;4. 使用Data Pump备份全库:使用Data Pump工具备份整个Oracle数据库,可以使用以下命令:```expdp system/password@database_name full=Y directory=backup_dir dumpfile=full_backup.dmp logfile=full_backup.log;```5. 使用RMAN增量备份全库:使用RMAN工具进行增量备份,可以使用以下命令:```RMAN> backup incremental level 1 cumulative database;```6. 使用expdp表空间备份:使用expdp工具备份指定表空间的数据,可以使用以下命令:```expdp system/password@database_name tablespaces=tablespace_name directory=backup_dir dumpfile=tablespace_backup.dmplogfile=tablespace_backup.log;7. 使用exp表空间备份:使用exp工具备份指定表空间的数据,可以使用以下命令:```exp system/password@database_name tablespaces=tablespace_name file=tablespace_backup.dmp log=tablespace_backup.log;```8. 使用RMAN备份控制文件和参数文件:使用RMAN工具备份控制文件和参数文件,可以使用以下命令:```RMAN> backup current controlfile;```9. 使用expdp备份指定用户的数据:使用expdp工具备份指定用户的数据,可以使用以下命令:```expdp system/password@database_name schemas=user_name directory=backup_dir dumpfile=user_backup.dmp logfile=user_backup.log;```10. 使用exp备份指定用户的数据:使用exp工具备份指定用户的数据,可以使用以下命令:```exp system/password@database_name owner=user_name file=user_backup.dmp log=user_backup.log;```以上是10个不同的Oracle数据库全库备份语句,可以根据实际需求选择合适的备份方式进行数据库备份。
oracle dg rman备份策略

oracle dg rman备份策略Oracle数据库的备份是非常重要的,可以在系统出现故障或数据丢失的情况下恢复数据库的完整性。
在Oracle数据库中,可以使用RMAN(Recovery Manager)来管理和执行备份和恢复操作。
RMAN是Oracle提供的一个备份恢复工具,可以通过RMAN备份策略来实现灵活、高效的数据库备份。
RMAN备份策略主要包括完全备份、增量备份和增量备份合并等几个方面。
1. 完全备份:完全备份是指备份整个数据库的操作。
在RMAN中使用“backup database”命令可以进行完全备份。
完全备份是数据库备份策略的基础,因为只有完全备份才能确保数据库的全部数据得到保存。
完全备份可以通过物理备份或逻辑备份来实现。
物理备份是指备份数据库文件本身,包括数据文件、控制文件和归档日志文件等。
逻辑备份是指将数据库中的逻辑对象(如表、视图、存储过程等)导出为可执行的SQL语句,并将其存储到备份集中。
2. 增量备份:增量备份是在完全备份的基础上,只备份数据库中自上次备份后有所修改的数据。
增量备份可以减少备份的数据量和备份时间,并且可以更快地进行恢复操作。
在RMAN中,可以通过“backup incremental”命令进行增量备份。
增量备份可以分为增量备份级别0和增量备份级别1。
增量备份级别0是指备份整个数据库,与完全备份相同;而增量备份级别1只备份自上次备份后有所修改的数据块。
3. 增量备份合并:随着时间的推移,增量备份产生的备份集可能会变得很大。
为了减少备份集的大小和提高恢复操作的效率,可以使用增量备份合并来合并增量备份集。
在RMAN中,可以使用“backup incremental ... merge”命令来合并增量备份集。
增量备份合并可以通过将最新的增量备份与之前的备份集合并来创建一个新的备份集,从而减少备份集的数量。
除了以上的备份策略,还可以通过设置保留策略来管理备份集的保留时间和数量。
简单易懂的linux下oracle数据库备份方法

简单易懂的linux下oracle数据库备份方法在Linux环境下,对Oracle数据库进行备份是一项至关重要的工作,以确保数据的安全性和完整性。
下面将为您介绍一种简单易懂的Oracle数据库备份方法。
一、准备工作1.确保已安装Oracle数据库,并正确配置环境变量。
2.确保有足够的权限(如:dba权限)进行数据库备份操作。
3.了解数据库的名称、表空间等信息,以便进行正确的备份。
二、备份方法1.使用RMAN工具进行备份RMAN(Recovery Manager)是Oracle提供的一个强大的备份和恢复工具。
以下是一个简单的RMAN备份示例:a.连接到目标数据库:```rman target /```b.使用RMAN进行备份:```backup database;```这将备份整个数据库,包括控制文件和归档日志。
c.退出RMAN:```exit;```2.使用Oracle SQL命令进行备份a.使用SQL*Plus连接到目标数据库:```sqlplus / as sysdba```b.使用SQL命令备份整个数据库:```alter database backup controlfile to trace;```这将生成控制文件的备份脚本。
c.使用SQL命令备份表空间:```backup tablespace <表空间名称> to disk;```这将备份指定的表空间。
d.退出SQL*Plus:```exit;```三、备份文件的存储1.将备份文件存储在安全的磁带上或磁盘上。
2.建议将备份文件存储在不同的物理位置,以防止数据丢失。
四、定期检查备份1.定期检查备份文件是否完整、可用。
2.定期进行恢复测试,以确保备份的有效性。
通过以上步骤,您已经了解了一种简单易懂的Linux下Oracle数据库备份方法。
备份oracle数据库表的方法

备份oracle数据库表的方法备份Oracle数据库表是保证数据库数据安全的重要措施之一。
本文将介绍几种备份Oracle数据库表的方法,帮助用户选择适合自己的备份方式。
一、使用数据泵导出表数据数据泵是Oracle提供的一个强大的工具,可以将表数据导出为一个可移植的二进制文件。
使用数据泵导出表数据的步骤如下:1. 连接到数据库:使用SQL*Plus或SQL Developer等工具连接到Oracle数据库。
2. 导出表数据:运行以下命令导出表数据:```expdp username/password@connect_string tables=table_name directory=directory_name dumpfile=dumpfile_name.dmp```其中,username是数据库用户名,password是密码,connect_string是数据库连接字符串,table_name是要导出的表名,directory_name是存储导出文件的目录,dumpfile_name是导出文件的名称。
3. 导出结果:数据泵将会导出表数据,并保存在指定的目录中的导出文件中。
二、使用INSERT语句备份表数据除了使用数据泵,还可以使用INSERT语句将表数据备份到另一个表中。
这种方法适用于小型数据库,备份过程如下:1. 创建备份表:在同一个数据库中创建一个与原表结构相同的备份表。
```CREATE TABLE backup_table AS SELECT * FROM original_table WHERE 1=0;```2. 备份数据:运行以下命令将表数据备份到备份表中。
```INSERT INTO backup_table SELECT * FROM original_table;```注意,这个命令会将原表的所有数据复制到备份表中。
三、使用Oracle备份工具除了以上两种方法,还可以使用Oracle备份工具进行表数据备份。
oracle数据库全备份和增量备份

1. 检查数据库模式:sqlplus /nologconn /as sysdbaarchive log list (查看数据库是否处于归档模式中)若为非归档,则修改数据库归档模式。
startup mountalter database archivelogalter database open2.连接到target数据库命令:connect target / (connect target system/oracle@ora10g,如果数据库没有起来,也可要直接在rman命令下用startup进行启动数据库)可以连接到target database.(rman 一边连接到target数据库,另外一边连接到control file(nocatalog mode),control file 中存储rman 的备份信息)3.用list backupset 命令查看有没有备份4. 常用备份命令:备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_备份归档日志:RMAN> backup archivelog all delete input;1.全库备份(备份数据文件中有数据的,有数据文件,控制文件,归档日志文件,spfile文件,不备份联机重做日志文件或临时文件)RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; --控制文件自动备份RMAN>CONFIGURE DEVICE TYPE DISK PARALLELISM 2 backup type to compressedbackupset; --压缩RMAN> CONFIGURE channel DEVICE TYPE DISK format 'D:\APP\rman\full_%s.bk'; --备份的路径RMAN>BACKUP DATABASE; --全备份RMAN>list backup of database; --检查备份信息RMAN>backup archivelog all delete input; --备份归档日志并删除归档日志RMAN> list backup of archivelog all; --检查归档日志2.差异增量备份RMAN> backup incremental level 0 database; --0级全备份RMAN> backup incremental level 2 database;--2级备份RMAN> list backup of database; --检查备份信息3.累积增量备份(2c 不做参照对象)RMAN> backup incremental level 2 cumulative database;中心数据库,RMAN一周备份方案============================0.星期天晚上-level 0 backup performed(全备份)1.星期一晚上-level 2 backup performed2.星期二晚上-level 2 backup performed3.星期三晚上-level 1 backup performed4.星期四晚上-level 2 backup performed5.星期五晚上-level 2 backup performed6.星期六晚上-level 2 backup performed如果星期二需要恢复的话,只需要0+1,如果星期四需要恢复的话,只需要0+3,如果星期五需要恢复的话,只需要0+3+4,如果星期六需要恢复的话,只需要0+3+4+5具体步骤:1.创建0,1,2级备份脚本 D:\rman_bak_scriptrun{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup as compressed backupset incremental level 0 tag 'db_level0' database format 'H:\RMAN_BAK\level0_%u_%s_%p.bak';sql 'alter system archive log current';backup as compressed backupset archivelog all format'H:\ARCHIVELOG_BAK\arch0_%u_%s_%p' delete input;delete noprompt obsolete;release channel c1;release channel c2;release channel c3;}run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup as compressed backupset incremental level 1 tag 'db_level1' database format 'H:\RMAN_BAK\level1_%u_%s_%p.bak';sql 'alter system archive log current';backup as compressed backupset archivelog all format 'H:\ARCHIVELOG_BAK\arch1_%u_%s_%p' delete input;delete noprompt obsolete;release channel c1;release channel c2;release channel c3;}run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup as compressed backupset incremental level 2 tag 'db_level2' database format 'H:\RMAN_BAK\level2_%u_%s_%p.bak';sql 'alter system archive log current';backup as compressed backupset archivelog all format 'H:\ARCHIVELOG_BAK\arch2_%u_%s_%p' delete input;delete noprompt obsolete;release channel c1;release channel c2;release channel c3;}2.创建周日至周六执行的批处理文件 D:\rman_bak_script\Mon…Sun星期天rman target / logD:\rman_bak_script\Sun\rmanlog_Sun%date:~0,4%_%date:~5,2%_%date:~8,2%.txt cmdfile=D:\rman_bak_script\rman_level0.cmd星期一 rman target / logD:\rman_bak_script\Mon\rmanlog_Mon%date:~0,4%_%date:~5,2%_%date:~8,2%.txt cmdfile=D:\rman_bak_script\rman_level2.cmd星期二rman target / logD:\rman_bak_script\Tue\rmanlog_Tue%date:~0,4%_%date:~5,2%_%date:~8,2%.txt cmdfile=D:\rman_bak_script\rman_level2.cmd星期三rman target / logD:\rman_bak_script\Wen\rmanlog_Wen%date:~0,4%_%date:~5,2%_%date:~8,2%.txt cmdfile=D:\rman_bak_script\rman_level1.cmd星期四rman target / logD:\rman_bak_script\Thu\rmanlog_Thu%date:~0,4%_%date:~5,2%_%date:~8,2%.txt cmdfile=D:\rman_bak_script\rman_level2.cmd星期五rman target / logD:\rman_bak_script\Fri\rmanlog_Fri%date:~0,4%_%date:~5,2%_%date:~8,2%.txt cmdfile=D:\rman_bak_script\rman_level2.cmd星期六rman target / logD:\rman_bak_script\Sat\rmanlog_Sat%date:~0,4%_%date:~5,2%_%date:~8,2%.txt cmdfile=D:\rman_bak_script\rman_level2.cmd3.创建任务计划。
oracle备份数据库的sql语句

oracle备份数据库的sql语句Oracle备份数据库使用两种SQL语句:用于全文档备份和备份特定表/表空间。
1. 全文档备份Oracle用RMAN来备份数据库,其常用语句如下:(1) 启动备份:startup nomount;(2) 配置RMAN:rman target sys/password;(3) 备份数据库:backup database;(4) 保留几天的备份:configure retention policy to recovery window of num_days;(5) 进行压缩:configure compression device physical backupset on;(6) 备份到网络存储:backup device type 'SBT_TAPE' format 'my_backup_%U.dbf' database include current controlfile;(7) 停止RMAN:shutdown immediate;(8) 退出RMAN:exit;2. 备份特定表/表空间如果要备份特定表或者表空间,可以使用如下SQL语句:(1) 备份某个表空间:expdp system/password directory='data_pump_dir' dumpfile='tablename.dmp' tablespaces=tablename;(2) 备份某个表:expdp system/password directory='data_pump_dir' dumpfile='tablename.dmp' table=tablename;(3) 获取备份存储的位置:select * from dba_directories;(4) 检查备份的完整性:impdp system/password directory='data_pump_dir' dumpfile='tablename.dmp' table=tablenamelogfile='check_dumpfile.log' full=y;。
oracle数据库全库备份语句

oracle数据库全库备份语句Oracle数据库是一种关系型数据库管理系统,它可以用于存储和管理大量的结构化数据。
在进行数据库管理时,备份是非常重要的一项工作,它可以保护数据库免受数据丢失和系统故障的影响。
下面列举了十个Oracle数据库全库备份的语句,以供参考。
1. 使用RMAN进行全库备份:RMAN是Oracle提供的备份和恢复工具,可以通过以下命令进行全库备份:```RMAN> BACKUP DATABASE;```2. 使用EXPDP进行全库逻辑备份:EXPDP是Oracle提供的逻辑备份工具,可以通过以下命令进行全库备份:```expdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y; ```3. 使用IMPDP进行全库逻辑恢复:IMPDP是Oracle提供的逻辑恢复工具,可以通过以下命令进行全库恢复:```impdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y; ```4. 使用ALTER DATABASE进行全库备份:ALTER DATABASE命令可以备份整个数据库,可以通过以下命令进行全库备份:```SQL> ALTER DATABASE BACKUP CONTROLFILE TO '/path/to/backup/controlfile.bkp';```5. 使用Data Pump进行全库备份:Data Pump是Oracle提供的数据导入导出工具,可以通过以下命令进行全库备份:```SQL> EXPDP system/password@database_nameDIRECTORY=data_pump_dir DUMPFILE=full_backup.dmp FULL=YES;```6. 使用RMAN进行全库增量备份:RMAN可以进行增量备份,只备份发生变化的数据,可以通过以下命令进行全库增量备份:```RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;```7. 使用EXP进行全库逻辑备份:EXP是Oracle提供的逻辑备份工具,可以通过以下命令进行全库备份:```exp system/password@database_name file=full_backup.dmp full=y;```8. 使用ALTER TABLESPACE进行表空间备份:可以通过ALTER TABLESPACE命令备份指定的表空间,可以通过以下命令进行表空间备份:```SQL> ALTER TABLESPACE tablespace_name BEGIN BACKUP;```9. 使用RMAN进行全库镜像备份:RMAN可以进行镜像备份,备份数据库的所有镜像拷贝,可以通过以下命令进行全库镜像备份:```RMAN> BACKUP AS COPY DATABASE;```10. 使用EXPDP进行全库逻辑备份,并压缩备份文件:可以通过以下命令进行全库逻辑备份,并对备份文件进行压缩:```expdp system/password@database_name directory=backup_directory dumpfile=full_backup.dmp full=y compression=all;```以上是十个Oracle数据库全库备份的语句,可以根据实际需求选择其中一种或多种备份方式进行数据库的备份工作。
Oracle数据库-备份整个数据库与还原整个数据库数据

Oracle数据库-备份整个数据库与还原整个数据库数据这个功能是为了防止数据库中的数据损坏,而拿备份的表去顶替损坏的表这个功能是在DOS窗口实现的,可并非是在Oracle数据库中执行的先说本地的导出与导入:备份(也叫导出):exp 用户名/密码@本地服务名 file=目标地址举例: exp sys/sys@orcl file=C:\Users\Administrator\Desktop注:1、@orcl一般本地库的没动的话都叫这个2、C:\Users\Administrator\Desktop是本地桌面地址3、导出的文件是在硬盘上生成后缀名为dmp的文件还原【导入】:imp 用户名/密码@本地服务名 file=文件的位置 ignore=y举例:imp sys/sys@orcl file=C:\Users\Administrator\Desktop\某.dmp full=y ignore=y注:1、ignore=y的作用是忽视一些不必要的错误如果不加的话有时候会报:ORACLE 这些对象由 XXXX 导出, 而不是当前用户2、有时候会提示IMP-00031:必须指定 FULL=Y 或提供 .....(记不清了)这时候需要 ignore=y 改为 full=y 就可以了(在这里向评论区的那位同志道歉我之前没遇见过这个问题,抱歉)3、(2020年10月26日12:08:26改)full=y是导入全部文件的含义有本地的当然有远程的导出与导入:备份【导出】:exp 用户名/密码@网络服务名 file=目标地址还原【导入】:imp 用户名/密码@网络服务名 file=文件位置 ignore=y注意:如果从A用户导出,然后导入B用户,则需要加上 fromuser=A touser=B举例:imp 用户名/密码@网络服务名 file=文件位置 ignore=y fromuser=A touser=B如果你发现导入数据报错,请往下看oracle 导入DMP文件时IMP-00013: 只有DBA 才能导入由其他 DBA 导出的文件 IMP-00000: 未成功终止导入报这个错误主要是一个DBA用户权限问题,导出数据的用户拥有DBA权限,而我要导入的用户没有这个权限而已,我们需要给要导入的用户加上DBA权限按照网上的其他教程用同一个用户给同一个用户权限.... 对不起我在想,要是他没有权限是怎么给同一用户赋予权限的首先在DOS窗口,执行sqlplus然后会让你输入用户名,你可以输入用system或者sys用户赋予登录密码就是管理口令然后就会碰见如下就如上图一样,挨个执行grant dba to usernam注:2这里直接敲回车grant dba to 用户名;即可-全文完-。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何实现ORACLE数据库完整备份
远程磁盘镜像是一种被广泛应用的数据保护技术,然而在对Oracle数据库进行备份的实际应用中,由于该技术本身所固有的局限,使得其无法很好地实现数据库的完整备份,为此,本文提出以Oracle的容灾技术Data Guard,来实现Oracle数据库的完整备份。
Data Guard是Oracle公司提出的数据库容灾技术,它提供了一种管理、监测和自动运行的体系结构,用于创建和维护一个或多个备份数据库。
与远程磁盘镜像技术的根本区别在于,Data Guard 是在逻辑级,通过传输和运行数据库日志文件,来保持生产和备份数据库的数据一致性。
一旦数据库因某种情况而不可用时,备份数据库将正常切换或故障切换为新的生产数据库,以达到无数据损失或最小化数据损失的目的,为业务系统提供持续的数据服务能力。
Data Guard体系结构
一个Data Guard环境可配置一个生产数据库和最多至9个备份数据库系统,生产和备份数据库之间通过Oracle Net技术互联,并且没有任何距离上的限制(Data Guard体系结构如图2所示)。
物理备份数据库物理上提供了与生产数据库在数据块级的一致性镜像。
物理备份数据库是通过Redo Apply技术来保障数据镜像能力。
逻辑备份数据库通过SQL Apply(即Log Miner)技术,将接收到的日志文件还原成SQL语句,并在逻辑备份数据库上执行,从而达到数据一致性的目的。
Data Guard的保护模式
● 最大保护模式: 该模式以牺牲生产数据库性能为代价,换取无数据损失的能力。
● 最大可用模式: 该模式也能提供无数据损失,对生产数据库的影响较小。
● 最大性能模式: 该模式允许少量数据损失,但能为生产数据库提供最大性能。
与远程磁盘镜像技术比较
Data Guard和远程磁盘镜像技术的总体比较
远程磁盘镜像技术是存储层的数据保护方案,对于Oracle数据库而言,Oracle Data Guard提供了更有效、可行,更完备的数据库容灾方案。
以下是两种方案的总体比较:
异步远程磁盘镜像技术的潜在问题
远程磁盘镜像技术可采用异步方式,达到降低网络延时、减轻对生产系统影响等目的。
但用这种方式进行Oracle数据库的镜像,却存在一个潜在问题:无法保证写操作顺序的一致性(write-order consistency),导致出现数据坏块的可能性增大。
最坏情况,可能导致备份数据库无法打开。
而Data Guard基于逻辑级,传输的是与业务逻辑完整性相关的日志文件。
Data Guard是以日志文件为边界,会自动检验日志文件的完整性,并可进行断点日志文件的检查(log gap detection),通过FAL后台进程自动重传断点日志文件。
因此,备份数据库的一致性会得到保证。
网络传输量分析
网络传输量的大小直接关系到容灾方案实施的可行性。
在原理上,Data Guard只是传输一份日志文件,而磁盘镜像技术将传输数据文件、联机日志、归档日志、控制文件等所有发生变化的文件。
例如,针对交易处理,Data Guard只传输相应DML语句的日志信息,而磁盘镜像技术将传输该交易所涉及的所有数据块,以及归档日志等数据。
根据统计资料显示,磁盘镜像的网络传输量是Data Guard的7倍,而磁盘I/O次数是Data Guard的27倍。
以某银行业务系统为实例: 该系统日交易量达到高峰时,日志文件将有60GB,网络传输率要求6Mbps/秒。
使用磁盘镜像技术,网络传输率则至少会达到6×7 = 42Mbps/秒。
如果还要考虑DB2、CICS、MQ等系统对线路的复用,以及系统的扩充,即便采用155Mbps的线路,从广域网络建设和运行成本等考虑,磁盘镜像进行数据库容灾也难以实施。
远程灾备分析
远程磁盘镜像技术由于受底层通信技术(光纤、ESCON等)限制,一般都有距离限制,如几十或百公里,如果要在广域网实施远程磁盘镜像,则需要大量的网络中继和转发设备,这样,网络设备投入将大量增加,而且网络延时的增加,对生产系统的影响也将加大。
相比之下,Data Guard基于Oracle Net Services(即标准的TCP/IP协议) 传输数据。
TCP/IP 协议是ESCON之上的传输协议,由于在信息包转发、路由和拥塞控制等方面更为优化,同时TCP/IP 与底层通信协议无关(以太网、ATM、SONET等),而且,TCP/IP可以并行地进行若干信息包的传输。
因此,TCP/IP的效率更高、网络延时更低,对生产系统的影响也更小。
数据保护能力分析
在各种故障中,故障率最高的是磁盘故障(Corruption)。
一旦出现磁盘坏块,磁盘镜像技术将忠实地将这种错误传播到备份数据库的磁盘中,导致备份数据库无法使用。
而由于Data Guard传输的是日志文件,而且传输之前对日志文件的完整性进行了校验,因此,不可能发生因系统磁盘出现物理坏块,或磁盘控制器故障等,将数据块写坏而导致备份数据库出现坏块的情况。
投资回报率(ROI)分析
Data Guard软件对硬件没有特殊的要求,网络只要求TCP/IP。
备份数据库可以建立在相对低档的系统和廉价的磁盘阵列中。
而磁盘镜像技术不仅需要单独购买昂贵的磁盘镜像软件,而且对硬件要求也很苛刻。
此外,Data Guard具有备份数据库的查询统计功能,而磁盘镜像技术建立的备份数据库在正常情况下处于闲置状态,只有在发生故障时,才能投入应用;为降低生产数据库的负载,Data Guard 还可以将物理备份功能移植到备份数据库进行,备份数据库产生的物理备份数据,同样可用于生产数据库的恢复操作。
互为补充的关系
在实际应用中,Oracle数据库与远程磁盘镜像技术应该是互为补充的关系。
理论上,远程磁盘镜像可在存储层实现所有系统的容灾,而Data Guard则提供了更有效、可行、成本更低的Oracle数据库灾备方案。
Oracle已推出了OSCP(Oracle's Storage Compatibility Program)计划,有关存储和硬件厂商可以与Oracle相关技术进行兼容性验证,用户也可通过验证名单选择全面的灾备技术。
Oracle针对灾备系统的应用需求,提出了以下基本建议:
● 对Oracle数据库系统,选择Data Guard方案;
● 对文件系统和非Oracle系统,选择远程磁盘镜像技术。
点评:Oracle——适用于数据库的高效备份
亮点:Oracle Data Guard容灾方案是专为数据库备份而设计的,它提供了远程磁盘镜像技术所无法实现的功能,特别是在远程数据库备份过程中,Data Guard的优势更加明显。
对于Oracle数据库远程异步备份而言,Data Guard则提供了更有效可行、成本更低的Oracle数据库灾备方案,而远程磁盘镜像技术却无法保证写操作顺序的一致性,导致数据坏块的可能性增大,甚至有可能使备份数据库无法打开。
另外在网络资源占用上,Data Guard只传输相应DML语句的日志信息,而磁盘镜像技术传输交易所涉及的所有数据块及归档日志数据,其传输量是Data Guard的7倍。
更为关键的是,磁盘镜像技术将忠实地将源磁盘中的错误传播到备份数据库的磁盘中,导致备份数据库无法使用。
而Data Guard传输的是日志文件,而且传输之前对日志文件的完整性进行了校验,因此,不可能发生损坏数据块的现象,使得数据安全性得到提高。
不足:在实际应用中,Oracle Data Guard与远程磁盘镜像技术应该是互为补充的关系,远程磁盘镜像是在存储层实现所有系统的容灾,而Oracle Data Guard方案仅仅适用于对Oracle数据库系统的容灾备份。