oracle数据库rman恢复数据库
A. 用rman,在oracle不同版本间作数据恢复,怎么弄
一、RMAN 备份的内容
RMAN做数据库全备时包含了 数据文件、归档日志、控制文件和参数文件和备份日志,如下:
arch_20160223_08qukp2t_1_1 arch_20160223_0bqukp92_1_1 ctl_c-3234695588-20160223-01 rmanbak-20160223-0852.log scp_20160223_09qukp2u_1_1 scp_20160223_0aqukp2u_1_1
二、测试环境
OS:CentOS release 6.4 (Final)
Database:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Proction
原平台与当前平台环境一致,但是oracle数据库目录结构不一致。
三、开始恢复
1、 确认原数据库的DBID(通过RMAN的备份日志,或者通过RMAN备份的控制文件名来识别),同时确认一下原数据库的实例名;
2、 将RMAN备份的内容拷贝到目标数据库上;
3、 设置好环境变量:
[oracle@dg1 ~]$ export NLS_DATA_FORMAT='YYYY-MM-DD HH24:MI:SS'
[oracle@dg1 ~]$ export ORACLE_SID=scp
[oracle@dg1 ~]$ rman target /
Recovery Manager: Release 12.1.0.2.0 - Proction on Fri May 6 22:18:52 2016
4、装载数据库并进行恢复
A、装斗兆载数据库
复制代码
RMAN> set dbid=3234695588;
executing command: SET DBID
RMAN> startup nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/proct/12.1.0.2/dbs/initscp.ora'
starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started
复制代码
B、先恢复spfile文件(或者是pfile文件,可以修改各项参数),因为在spfile 文件中包含了控制文件的位置
RMAN> restore spfile to pfile '$ORACLE_HOME/dbs/initscp.ora' from '/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01';
OR:
RMAN> restore spfile to '$ORACLE_HOME/培则dbs/spfilescp.ora' from '/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01';
C、根据pfile文件中的相关参数去修改本地系统目录,或者修改这个pfile文件来匹配本地系统中的路径和目录,我们选择后者
需要修改:oracle_base、*.audit_file_dest、*.control_files、*.db_recovery_file_dest、*.db_recovery_file_dest_size、*.diagnostic_dest、*.log_archive_dest_1、
memory_target、undo_tablespace等。并在当前配销棚系统中创建好相关的目录和权限。
复制代码
[oracle@dg1 dbs]$ vim initscp.ora
scp.__data_transfer_cache_size=0
scp.__db_cache_size=822083584
scp.__java_pool_size=16777216
scp.__large_pool_size=33554432
scp.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
scp.__pga_aggregate_target=654311424
scp.__sga_target=1241513984
scp.__shared_io_pool_size=50331648
scp.__shared_pool_size=301989888
scp.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/scp/amp'
*.audit_trail='db'
*.compatible='12.1.0.2.0'
*.control_files='/u01/app/oracle/oradata/scp/control01.ctl','/u01/app/oracle/fast_recovery_area/scp/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='scp'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4560m
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=scpXDB)'
*.log_archive_dest_1='LOCATION=/OracleArch'
*.memory_target=1800m
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
复制代码
D、从修改后的pfile文件启动数据库,进行控制文件的恢复
复制代码
RMAN> shutdown abort;
RMAN> startup nomount pfile='$ORACLE_HOME/dbs/initscp.ora';
RMAN> restore controlfile from '/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01';
Starting restore at 06-MAY-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=243 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/home/OracleData/scp/control01.ctl
output file name=/home/OracleArch/fast_recovery_area/control02.ctl
Finished restore at 06-MAY-16
复制代码
E、控制文件恢复后就可以mount数据库了
RMAN> alter database mount;
Statement processed
released channel: ORA_DISK_1
F、至此,控制文件已经恢复,数据库已经mount,所有的RMAN配置参数均已设置,您应该验证路径以确保它们适用于该主机。
复制代码
RMAN> show all;
RMAN configuration parameters for database with db_unique_name SCP are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/orabackup/RmanBackupSet/20160223/ctl_%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/proct/12.1.0.2/dbs/snapcf_scp.f'; # default
复制代码
G、为了能让RMAN找到恢复文件的位置,我们有两种途径可以实现:一是修改RMAN配置以符合当前备份文件所在位置,其次是将RMAN备份文件拷贝到配置文件中设定的位置 (需要参考RMAN的备份日志)。在第一个方法中,为了让RMAN知道备份文件位置 /home/OracleBack/rmanbak ,我们使用catalog命令:
复制代码
RMAN> catalog start with '/home/OracleBack/rmanbak';
Starting implicit crosscheck backup at 06-MAY-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=243 device type=DISK
Crosschecked 4 objects
Finished implicit crosscheck backup at 06-MAY-16
Starting implicit crosscheck at 06-MAY-16
using channel ORA_DISK_1
Finished implicit crosscheck at 06-MAY-16
searching for all files in the recovery area
cataloging files...
no files cataloged
searching for all files that match the pattern /home/OracleBack/rmanbak
List of Files Unknown to the Database
=====================================
File Name: /home/OracleBack/rmanbak/scp_20160223_09qukp2u_1_1
File Name: /home/OracleBack/rmanbak/arch_20160223_0bqukp92_1_1
File Name: /home/OracleBack/rmanbak/scp_20160223_0aqukp2u_1_1
File Name: /home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01
File Name: /home/OracleBack/rmanbak/arch_20160223_08qukp2t_1_1
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /home/OracleBack/rmanbak/scp_20160223_09qukp2u_1_1
File Name: /home/OracleBack/rmanbak/arch_20160223_0bqukp92_1_1
File Name: /home/OracleBack/rmanbak/scp_20160223_0aqukp2u_1_1
File Name: /home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01
File Name: /home/OracleBack/rmanbak/arch_20160223_08qukp2t_1_1
复制代码
H、对备份集做交叉检查,否则还原数据库时可能会报错
复制代码
RMAN> crosscheck backup;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/arch_20160223_08qukp2t_1_1 RECID=8 STAMP=904553565
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/arch_20160223_08qukp2t_1_1 RECID=16 STAMP=911172456
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/scp_20160223_0aqukp2u_1_1 RECID=9 STAMP=904553567
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/scp_20160223_0aqukp2u_1_1 RECID=14 STAMP=911172456
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/scp_20160223_09qukp2u_1_1 RECID=10 STAMP=904553567
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/scp_20160223_09qukp2u_1_1 RECID=12 STAMP=911172456
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/orabackup/RmanBackupSet/20160223/arch_20160223_0bqukp92_1_1 RECID=11 STAMP=904553762
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/arch_20160223_0bqukp92_1_1 RECID=13 STAMP=911172456
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/home/OracleBack/rmanbak/ctl_c-3234695588-20160223-01 RECID=15 STAMP=911172456
Crosschecked 9 objects
复制代码
I、通过控制文件获得表空间及数据文件列表
复制代码
RMAN> report schema;
RMAN-06139: WARNING: control file is not current for REPORT SCHEMA
Report of database schema for database with db_unique_name SCP
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 0 SYSTEM *** /u01/app/oracle/oradata/scp/system01.dbf
2 0 ZYTK_AC *** /u01/app/oracle/oradata/scp/zytk_ac01.dbf
3 0 SYSAUX *** /u01/app/oracle/oradata/scp/sysaux01.dbf
4 0 UNDOTBS1 *** /u01/app/oracle/oradata/scp/undotbs01.dbf
5 0 EXAMPLE *** /u01/app/oracle/oradata/scp/example01.dbf
6 0 USERS *** /u01/app/oracle/oradata/scp/users01.dbf
7 0 ZYTK_AC *** /u01/app/oracle/oradata/scp/zytk_ac02.dbf
8 0 ZYTK_ID *** /u01/app/oracle/oradata/scp/zytk_id01.dbf
9 0 ZYTK_ID *** /u01/app/oracle/oradata/scp/zytk_id02.dbf
10 0 ZYTK_OP *** /u01/app/oracle/oradata/scp/zytk_op01.dbf
11 0 ZYTK_OP *** /u01/app/oracle/oradata/scp/zytk_op02.dbf
12 0 ZYTK_TEST01 *** /u01/app/oracle/oradata/scp/zytk_test01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 60 TEMP 32767 /u01/app/oracle/oradata/scp/temp01.dbf
注意:restore 的时候不会对temp 表空间进行restore。所以等restore 之后,我们需要手工创建temp表空间。
B. 使用Rman备份的归档日志恢复数据库时,需要先还原归档日志吗
oracle中可以利用 rman 还原归档日志到某个时间点:
1、理解还原与恢复
恢复(recover): 将备份之后的归档日志apply到数据库,也就根据归档日志的事务将数据库刷新到特定或最新状态(通常在还原之后操作)。对于归
档日志中那些已提交的事务进行前滚,未提交的事务进行回滚。
还原归档日志: 还原归档日志是位于还原数据库与恢复数据库之间的这么一个过程。它会将那些在备份归档日志时使用delete [all] input方式
删除的归档日志还原到缺省的归档位置。在还原数据库之后,如果要做recover,也就是作介质恢复那就需要用到归档日志。那还原之后进行
recover需要的归档日志在哪里呢?归档日志在指定的归档路径那里,那到底有没有呢?如果有,还原时出现提示,归档日志已经在指定位置。
如果没有,但是备份的归档备份集那里有,也行啊。备份集里包含备份片,也就是打包了归档日志。那既然打包就要解包,解包到缺省路径
或指定路径。这就是还原归档日志。
--演示环境
--为了较好的模拟还原归档日志,我们仅仅使用了一个特定的数据文件进行方式备份,然后备份归档日志(备份时删除归档日志)
--接下来破坏数据文件,还原数据文件,还原归档日志文件,恢复日志文件。
[oracle@linux3 ~]$ cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.5 (Carthage)
Kernel \r on an \m
[oracle@linux3 ~]$ sqlplus -V
SQL*Plus: Release 11.2.0.1.0 Proction
a、备份数据文件及归档日志
RMAN> list backup of archivelog all; --->列出当前数据库已经备份的归档日志
specification does not match any backup in the repository
RMAN> list backupset; --->列出当前数据库已存在的备份集
specification does not match any backup in the repository
SQL> select username,default_tablespace from dba_users where username='SCOTT'; -->查看用户scott所在的表空间及数据文件
C. oracle RMAN 的使用
3. 恢复目录
3.1.恢复目录的概念
恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。
恢复目录可以存在于ORACLE数据库的计划中。
虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。
恢复目录数据库不能使用恢复目录备份自身。
3.2.建立恢复目录
第一步,在目录数据库中创建恢复目录所用表空间:
SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_ts.dbf' size 20M;
表空间已创建。
第二步,在目录数据库中创建RMAN 用户并授权:
SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;
用户已创建。
SQL> grant recovery_catalog_owner to rman ;
授权成功。
SQL> grant connect, resource to rman ;
授权成功。
第三步,在目录数据库中创建恢复目录
C:\>rman catalog rman/rman
恢复管理器:版本8.1.6.0.0 - Proction
RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录
RMAN>create catalog tablespace rman_ts;
RMAN-06431:恢复目录已创建
注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信陪游息。不使用恢复目录将会对备份恢复操作有限制。
3.3.使用恢复目录的优势
可以存储脚本;
记载较长时间的备份恢复操作;
4. 启动RMAN
RMAN为交互式命令行处理界面,也可以从企业管理器中运行。
为了使用下面的实例,先检查环境符合:
the target database is called "his" and has the same TNS alias
user rman has been granted "recovery_catalog_owner "privileges
目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接
the recovery catalog database is called "rman" and has the same TNS alias
the schema containing the recovery catalog is "rman" (same password)
在使用RMAN前,设置NLS_DATE_FORMAT 和NLS_LANG环境变量,很多RMAN LIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。
下例是环境变量的示范:
NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS
为了保证RMAN使芦搜销用时能连接恢复目录,恢复目录数漏迟据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。
4.1.使用不带恢复目录的RMAN
设置目标数据库的 ORACLE_SID ,执行:
% rman nocatalog
RMAN> connect target
RMAN> connect target internal/<password>@his
4.2.使用带恢复目录的RMAN
% rman rman_ts rman/rman@rman
RMAN> connect target
% rman rman_ts rman/rman@rman target internal/<password>@his
4.3.使用RMAN
一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令, 下面是一个使用RMAN交互界面的实例:
RMAN> resync catalog;
RMAN-03022:正在编译命令:resync
RMAN-03023:正在执行命令:resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync
使用脚本的实例:
RMAN> execute script alloc_1_disk;
创建或者替代存储的脚本:
RMAN> replace script alloc_1_disk {
2> allocate channel d1 type disk;
3> }
5.注册或者注销目标数据库
5.1.注册目标数据库
数据库状态:
恢复目录状态:打开
目标数据库:加载或者打开
目标数据库在第一次使用RMAN之前必须在恢复目录中注册:
第一步,启动恢复管理器,并且连接目标数据库:
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢复管理器:版本8.1.6.0.0 - Proction
RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库
第二步,注册数据库:
RMAN> register database;
RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的resync
RMAN-08004:完成全部resync
5.2.注销目标数据库
RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。
为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。
C:\>rman target internal/oracle@his catalog rman/rman@rman
恢复管理器:版本8.1.6.0.0 - Proction
RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库
其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:
连接到目标数据库,查询db表:
SQL> select * from db;
DB_KEY DB_ID CURR_DBINC_KEY
---------- ---------- --------------
1 3021445076 2
获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:
SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076);
PL/SQL 过程已成功完成。
至此,注销数据库操作完成。
... ...
请采纳。
D. 数据库的备份和恢复 [Oracle数据库的备份与恢复策略分析]
【摘 要】为了保证数据库的安全性和稳定性,通过对Oracle的备份以及恢复策略进行了分析和探讨,明确了数据库备份以及恢复技术在实际工程项目当中的应用,通过分析数据库备份的实际需求,同时选择了合理的数据备份策略以及数据恢复策略,采取了有效的数据库的管理和维护策略,有效保证了数据库中的相关数据以及整个系统的安全性和稳定性,为类似数据库的备份以及恢复策略提供了可供参考的经验。
【关键字】Oracle数据库;备份;数据;恢复;策略
对于企业而言,数据库中的数据是重要的数据资源,也是企业得以持续总结和发展的重要的要素,由此保证相应数据库的安全性和稳定性有着十分重要的影响。 随着数据库内数据量的逐渐增加,并且数据库发展以及运行所面临的环境也日益复杂,数据库中数据的安全性以及相关系统运行的稳定性对企业的发展尤为重要。数据库中的数据难以避免地受到了外界的侵袭,例如网络、硬件以及系统等方面的故障,甚至自然灾害也将导致则整个系统的崩溃,数据丢失,数据库中存储过程中的失误将给企业的发展带来严重的影响甚至巨大的损失,为了尺茄有效避开或者减少这些无法预测损失的到来,建立一系列安全稳定可靠的数据备份系统尤为重要。
1 建立备份策略
1.1 数据备份需求
(1)良好的可扩展能力
随着企业的发展和项目管理以及建设的持续发展和升级,企业数据库中的数据量将日益增长,所使用的数据库也应具有数据的扩展和升级的空间和可能。
(2)备份数据的可恢复性
为保证企业内部数据库的规范统一以及集中安全的数据恢复和备份的管理,相应的数据备份以及恢复策略应保证所备份的数据的可靠性以及可恢复性,为系统数据的恢复奠定了良好的基础。
(3)保持业务流程的连贯性
数据备份和恢复系统要以维持企业基本的业务流程和体系为基础,在保证了系统业务连续性的前提下开展数据库的数据备份,避免了数据存储设备时间较长对企业系统的使用和相关项目的运行造成影响。
1.2 备份设备的选型
在对PCEDM数据库陵手察备份需求分析的基础上,使用IBM的TSM作为备份数据备份的支持。TSM软件管理软件系统,是为企业级别的数据以及系统安全设计,以解决企业级数据和系统的安全性,为数据的备份提供解决方案,为石油、金融、电信管理和其他许多大型企业解决了数据的备份和管理问题。 TSM的管理结构,其高度的可扩展性和广泛的平台支持,集中式,自动化的存储管理等方面的优势,提供高效,自动,可扩展的备份管理系统。TSM专有的二进制格式,每个数据备份和恢复加密的数据传输格式,TSM自动CRC数据校验,从而保证了数据备份和恢复过程的完整性和安全。
2 制定备份策略
通过详细分析Oracle数据库的存储结构、数据库的运行模式、数据存储文件、数据增长的速度和数据增长密度等实际状况,结合几个备份Oracle数据库的优点和缺点分析,数据的备份策略表示如下:
2.1 使用RMAN与冷备份、逻辑备份相结合。使用Oracle数据库本身的RMAN和冷备份以及逻辑备份的方式结合起来,其中,Oracle数据库所提供的备份方式是主要的备份方式,而冷备份,逻辑备份作为辅助备份。
2.2 RMAN 备份包括全备份和增量备份 2 种方式。使用备份数据量小,低差异增量备份。在进行了一次级别为n的Differential增量的备薯差份过程中,RMAN备份仅仅将那些最近一次等级等于或小于增量备份n相比,产生变化的数据块进行备份。差异增量备份策略RMAN的方法,设定在每个星期天,星期三0级备份数据库和日志文件的备份,周一,周二,周四,周五,周六为第一级增量备份和日志文件的备份。
2.3 备份触发方式,在Unix预定时间以及计划内启动。构建系统的CRON任务,根据备份策略编辑命令,在确定的时间内起动文件以及备份计划。
3 数据备份方案的具体实施
备份存储设备使用的磁盘阵列和磁带库的组合方式。TSM备份存储池,并最终利用RMAN备份的数据进行备份的IBM Ultrium3584磁带库EMC CX700磁盘阵列空间分割出的一部分作为备份的存储区域。数据库服务器放置在本地磁盘系统进行数据库冷备份以及逻辑备份过程中所产生的备份文件。
3.1 冷备份
在数据库以TRANSACTIONAL,IMMEDIATE 或 NORMAL 方式关闭后进行的数据备份称为冷备份或脱机备份,所以得到的是一个备份的一致性。在数据库关闭,操作系统的所有订单数据文件,控制文件和联机日志文件,初始化参数文件等进行备份,冷备份副本。一旦数据库发生故障,可以将这些文件拷贝覆盖原始文件的位置。这个备份数据库,它可以返回到之前的状态。 由于PCEDM数据库需要,以确保7天24小时运作,冷备份必须在封闭的数据库进行。冷备份在正常的服务维修期间进行每一年两次的备份。使用冷备份具有一致性的优势,可以保证系统恢复的迅速。
3.2 逻辑备份
逻辑备份使用Oracle导出工具将数据库中的对象模型得出的二进制文件,有一个需要重用Oracle导入工具将模型的二进制文件导入到对象数据库。基于整个数据库备份的逻辑模式,用户模式或表模型可以将数据输出,更灵活。对于一些重要的数据可以作为辅助备份方式。通过使用不同操作系统平台,以及不同的数据库版本之间进行了数据库中数据的迁移,这成为了数据库物理备份的补充形式。
3.3 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 数据库恢复
4.1 RMAN 的完全恢复
在使用RMAN的完全恢复,在线和归档重做日志文件中的所有记录将被用于恢复数据库,从备份中恢复已损坏的文件,然后应用日志文件,将数据文件恢复到当前的时间。
4.2 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) .
E. 怎么才能把一个数据库的rman备份恢复到同平台上的另一个数据库中
要求:本地已有生产数据库prod,制定rman备份策略,将数据备份到制定目录/oracle/rman_bk下。现在需要做恢复测试,验证备份出来的数据是有效的。且不影响原有的生产数据库prod。
解决思路:在备份出来的数据中(控制文件),包含了数据库名,数据文件,redo log等文件的存放路径,如果在本地直接做恢复,将和原有的数据库携顷****,因此,需要修改这些信息,将备份出来的数据恢复到另外一个数据库辩滑陆中。具体步骤如下:
1.创建新数据库数据文件及跟踪文件存放目录
-bash-2.05b$mkdir -p /oracle/oradata/test
-bash-2.05b$mkdir -p /oracle/admin/test/bmp
-bash-2.05b$mkdir -p /oracle/admin/test/ump
-bash-2.05b$mkdir -p /oracle/admin/test/cmp
2.登录到生产数据库。查看当前数据文件信息:
-bash-2.05b$ sqlplus '/ as sysdba'
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 /oracle/oradata/test/system01.dbf
2 /oracle/oradata/test/undo01.dbf
3 /oracle/oradata/test/users01.dbf
3.利用rman更改数据文件存放路径并restore到新的路径
run {
set newname for datafile 1 to '/oracle/oradata/test/system01.dbf';
set newname for datafile 2 to '/oracle/oradata/test/undo01.dbf';
set newname for datafile 3 to '/oracle/oradata/test/users01.dbf';
restore datafile 1;
restore datafile 2;
restore datafile 3;
}
4。重建控制文件
CREATE CONTROLFILE REUSE set DATABASE "test" RESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 '/oracle/oradata/test/redo01.log' SIZE 10M,
GROUP 2 '/oracle/oradata/test/redo02.log' SIZE 10M,
GROUP 3 '/oracle/oradata/test/redo03.log' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/oracle/oradata/test/system01.dbf',
'/oracle/oradata/test/undo01.dbf'让兄,
'/oracle/oradata/test/users01.dbf'
CHARACTER SET ZHS16GBK
;
5.打开数据库
SQL> alter database open resetlogs;
backup archivelog all delete input format '/rman/rman_%t_%s_%p.arc';
with a as
(select rownum p from al connect by level<=21)
select
7 + CEIL(
(7 + CEIL(
(7 + CEIL(p/3))
/3))
/3)
from a;
7+CEIL((7+CEIL((7+CEIL(p/3))/3))/3
本答案来自于互联网,仅供参考学习作用
如果您对我的回答有不满意的地方,还请您继续追问;
答题不易,互相理解,互相帮助!