RMAN备份
- 格式:doc
- 大小:106.00 KB
- 文档页数:9
Rman使用简明一、Rman备份概述1,含义RMAN可以用来备份和恢复数据库文件、归档日志和控制文件,在9i中也可以用来备份和恢复spfile。
也可以用来执行完全或不完全的数据库恢复。
RMAN启动数据库上的Oracle服务器进程来进行备份或还原。
备份、还原、恢复是由这些进程驱动的。
具有如下特点:1)功能类似物理备份,但比物理备份强大N倍,从下面的特点可以看到;2)可以压缩空块;3)可以在块水平上实现增量;4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;5)备份与恢复的过程可以自动管理;6)可以使用脚本(存在Recovery catalog中)7)可以做坏块监测2,概念备份集(backup sets):备份集顾名思义就是一次备份的集合,它包含本次备份的备份片,以oracle 专有的格式保存。
一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。
注:一次备份可能产生多个备份集,根据数据量的大小和参数设定不同而变化备份片(Backup pieces):每个备份片是一个单独的输出文件。
如果备份片没有大小的限制,一个备份集就只由一个备份片构成。
备份片的大小不能大于你的文件系统所支持的文件长度的最大值。
Image copies (映像备份)映像备份不压缩、不打包、直接COPY独立文件(数据文件、归档日志、控制文件),类似操作系统级的文件备份。
Full backup 全备份全备份是指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的,也就是说,RMAN进行备份是进行压缩的。
Incremental backup 增量备份增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修改过的数据块。
与完全备份相同,增量备份也进行压缩。
增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。
完全备份:完全备份是指对数据库中使用过的所有数据块进行备份,当然,没有使用过的数据块是不做备份的。
在进行完全备份时,RMAN将数据文件中所有的非空白数据块都复制到备份集中。
在RMAN中,可以对数据文件进行完全备份或者增量备份,但是对控制文件和日志文件只能进行完全备份。
在一个完全数据库备份中,将所有的数据库文件,复制到闪回恢复区。
完全备份实例:【例】通过BACKUP FULL语句,对数据库执行完全备份。
使用TAG参数和FORMAT参数,指定备份文件位置以及备份文件的名称格式。
如下:RMAN>RUN{2> #BACKUP THE COMPLETE DATABASE3> ALLOCATE CHANNEL ch1 TYPE DISK;4> BACKUP FULL5> TAG full_db_backup FORMAT"E:\app\backup\db_t%t_s%s_p%p" (database);6> RELEASE CHANNEL ch1;7> }【例】在RMAN中执行LIST命令,查看建立的备份集与备份段信息,如下:RMAN> LIST BACKUP OF DATABASE;增量备份:增量备份就是将那些与前一次备份相比发生变化的数据块复制到备份集中。
进行增量备份时,RMAN会读取整个数据文件,通过RMAN可以为单独的数据文件、表空间、或者整个数据库进行增量备份。
在RMAN中建立的增量备份可以具有不同的级别,每个级别都使用一个不小于0的整数来标识,也就是在BACKUP命令中使用LEVEL关键字指定的,例如LEVEL = 0表示备份级别为0,LEVEL = 1表示备份级别为1。
增量备份的方式:差异增量备份:使用增量备份,执行0级增量备份,也就是实现完全数据库备份,如下:RMAN>RUN{2> ALLOCATE CHANNEL ch1 TYPE disk;3> BACKUP INCREMENTAL LEVEL 0 ASCOMPRESSED BACKUPSET DATABASE;4> RELEASE CHANNEL ch1;5> }在备份语句中没有指定备份文件的保存路径,默认情况下,保存在app\Administrator\flash_recovery_area\ORCL目录下。
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数据库全库备份语句,可以根据实际需求选择合适的备份方式进行数据库备份。
1.恢复管理器(Recovery Manager,RMAN)是一个与操作系统无关的数据库备份工具,可以跨越不同的操作系统进行数据库备份。
RMAN必须运行在一个数据库上。
与常用的数据库备份、逻辑数据库备份不同,RMAN使用数据库对数据库进行备份的原理。
在RMAN中,可以使用COPY命令将数据库文件复制到磁盘或磁带上,也可以用BACKUP命令对整个数据库、一个指定的表空间、控制文件、日志文件进行备份。
上面写的哪些东西估计也没有什么用下面说说怎么用那些东西首先要创建恢复目录(recobery catalog)只有建立了目录,rman才能重目录数据库文件中工作呀1.先要创建恢复目录数据库可以通过企业管理器建立包括系统表空间,rbs表空间,临时表空间,日志文件设置,catalog表空间,2 创建rman用户SQL>Create user rman identifiey by rman default tablespace cattbs temporary tablespace temp;SQL>Grant connect,resource to rman;SQL>Grant recovery_catalog_owner to rman;3 创建恢复目录$rman catalogRMAN>create catalog; 创建个目录很简单哈哈然后开始配置rman通道先说什么是通道RMAN在执行数据库备份与恢复操作时,都要使用操作系统进程,启动操作系统进程是通过分配通道来实现的,每分配一个通道RMAN启动一个服务器进程。
手动分配通道Run {Allocate channel ora_sbt_1 device type sbt rate 200k; #rate限定通道的传输速率/秒Allocate channel ora_sbt_2 device type sbt rate 500k; # ora_sbt_2通道名可任意取Backup(tablespace system,users channel ora_sbt_1)(tablespace example channel ora_sbt_2); }自动通道配置在RUN外部使用backup,restore,delete命令,或在RUN中使用这些命令但未定义通道时RMAN自动使用自动通道配置。
RMAN备份命令(转摘)1、切换服务器归档模式,如果已经是归档模式可跳过此步:%sqlplus /nolog (启动sqlplus)SQL> conn / as sysdba (以DBA身份连接数据库)SQL> shutdown immediate; (立即关闭数据库)SQL> startup mount (启动实例并加载数据库,但不打开)SQL> alter database archivelog; (更改数据库为归档模式)SQL> alter database open; (打开数据库)SQL> alter system archive log start; (启用自动归档)SQL> exit (退出)2、连接:%rman target=rman/rman@mydb (启动恢复管理器)3、基本设臵:RMAN> configure default device type to disk; (设臵默认的备份设备为磁盘) RMAN> configure device type disk parallelism 2; (设臵备份的并行级别,通道数)RMAN> configure channel 1 device type disk format '/backup1/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure channel 2 device type disk format '/backup2/backup_%U'; (设臵备份的文件格式,只适用于磁盘设备)RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)RMAN> configure controlfile autobackup format for device type disk to '/backu p1/ctl_%F'; (设臵控制文件与服务器参数文件自动备份的文件格式)4、查看所有设臵:RMAN> show all;5、查看数据库方案报表:RMAN> report schema;6、备份全库:RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志)7、备份表空间:RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志)_8、备份归档日志:RMAN> backup archivelog all delete input;9、复制数据文件:RMAN> copy datafile 1 to '/oracle/dbs/system.copy';10、查看备份和文件复本:RMAN> list backup;11、验证备份:RMAN> validate backupset 3;12、从自动备份中恢复服务器参数文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件)13、从自动备份中恢复控制文件:RMAN> shutdown immediate; (立即关闭数据库)RMAN> startup nomount; (启动实例)RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)13、恢复和复原全数据库:RMAN> shutdown immediate; (立即关闭数据库)RMAN> exit (退出)%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)%rman target=rman/rman@mydb (启动恢复管理器)RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)RMAN> restore database; (还原数据库)RMAN> recover database; (恢复数据库)RMAN> alter database open; (打开数据库)14、恢复和复原表空间:RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机) RMAN> exit (退出恢复管理器)%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名) %rman target=rman/rman@mydb (启动恢复管理器)RMAN> restore tablespace users; (还原表空间)RMAN> recover tablespace users; (恢复表空间)RMAN> sql 'alter tablespace users online'; (将表空间联机)15、增量备份与恢复:第一天的增量基本备份:RMAN> backup incremental level=0 database plus archivelog delete input;第二天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第三天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第四天的增量差异备份:RMAN> backup incremental level=1 database plus archivelog delete input;第五天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第六天的增量差异备份:RMAN> backup incremental level=2 database plus archivelog delete input;第七天的增量差异备份:RMAN> backup incremental level=0 database plus archivelog delete input;增量恢复:RMAN> shutdown immediate;RMAN> exit%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak%rman target=rman/rman@mydbRMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.oraRMAN> restore database;RMAN> recover database;RMAN> alter database open;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数据库备份方法。
rman备份原理
RMAN备份是Oracle数据库备份的一种方式,也是备份恢复管理器(Recovery Manager)的缩写。
RMAN备份是由Oracle官方提供的备份恢复工具,可以实现高效、可靠的备份和恢复操作。
RMAN备份具有以下特点:
1. 数据库在线备份:RMAN备份可以通过Oracle数据库的在线备份功能实现,在备份期间不会影响到数据库的正常运行。
2. 高效备份:RMAN备份具有高效率的备份功能,可以在短时间内完成大量数据的备份操作。
3. 增量备份:RMAN备份可以实现增量备份,只备份增加或修改的数据,从而节省备份存储空间。
4. 压缩备份:RMAN备份可以对备份数据进行压缩,从而减少备份存储空间。
5. 数据库恢复:RMAN备份可以实现快速、可靠的数据库恢复功能。
RMAN备份原理如下:
1. RMAN备份过程会首先创建一个RMAN备份集,并将备份的数据存放在该备份集中。
2. 在备份时,RMAN备份会在数据库中创建一个备份集的标识符,并将备份数据与该标识符相关联。
3. RMAN备份会通过Oracle数据库的复制机制将备份数据复制到备份集中。
4. RMAN备份会在备份集中创建元数据,包括备份时间、备份类型、备份集ID等信息,以便于备份的管理和恢复。
5. 当需要恢复数据库时,RMAN备份会通过备份集中的元数据来确定要恢复的数据,并将备份数据还原到数据库中。
总之,RMAN备份是一种高效、可靠的数据库备份方式,可用于实现快速、可靠的数据库备份和恢复操作。
oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。
2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。
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数据库全库备份的语句,可以根据实际需求选择其中一种或多种备份方式进行数据库的备份工作。
orcle数据库备份语句Oracle数据库备份是一项非常重要的任务,可以保障数据的安全性和完整性。
在进行数据库备份时,我们可以使用不同的语句和方法来完成备份操作。
以下是一些常用的Oracle数据库备份语句:1. 使用RMAN备份整个数据库:RMAN是Oracle推荐的备份工具,可以使用以下语句备份整个数据库:```RMAN> BACKUP DATABASE;```2. 使用RMAN备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```RMAN> BACKUP TABLESPACE tablespace_name;```3. 使用RMAN备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```RMAN> BACKUP DATAFILE 'datafile_path';4. 使用RMAN备份指定控制文件:控制文件是数据库的关键组成部分,可以使用以下语句备份控制文件:```RMAN> BACKUP CURRENT CONTROLFILE;```5. 使用RMAN备份归档日志:归档日志包含了数据库的所有更改记录,可以使用以下语句备份归档日志:```RMAN> BACKUP ARCHIVELOG ALL;```6. 使用EXPDP备份数据库:EXPDP是Oracle提供的数据泵工具,可以使用以下语句备份整个数据库:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp full=yes;7. 使用EXPDP备份指定表:如果只需要备份数据库中的特定表,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tables=table_name;```8. 使用EXPDP备份指定表空间:如果只需要备份数据库中的特定表空间,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp tablespaces=tablespace_name;```9. 使用EXPDP备份指定用户:如果只需要备份数据库中的特定用户,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp schemas=user_name;```10. 使用EXPDP备份指定数据文件:如果只需要备份数据库中的特定数据文件,可以使用以下语句:```expdp username/password directory=directory_name dumpfile=dumpfile_name.dmp filesperset=1 include=datafile:'datafile_path';```总结:以上是一些常用的Oracle数据库备份语句,通过使用不同的备份语句可以实现对整个数据库、指定表空间、指定数据文件、归档日志等的备份。
使用RMAN备份DB一、建置环境与情境本文件说明使用RMAN由来源DB复制DB到另一台主机上。
测试的环境描述如下:1.来源和复制主机为相同平台和OS系统,OS:HP-UX,平台:Intel Itanium2.来源DB和复制DB的版本相同,皆为Oracle 10.2.0.4版3.来源DB和复制DB的SID和服务名称相同,SID:HPDEV2,服务名称:4.来源DB和复制DB都是使用ASM做为储存媒介,ASM内储存结构也相同,储存目录root都为+DATADG5.RMAN使用control纪录备份回、复信息如要参考此步骤进行复制,请先确认以上环境的差异,参考Backup and Recovery Advanced User’s Guide.pdf中13章部分和Backup and Recovery Reference.pdf手册进行修改。
在RMAN复制DB操作上,来源DB是以target DB连接,而复制DB则以auxiliary DB连接。
操作时请注意来源、复制DB和target DB、auxiliary DB间的关系,避免混淆。
二、复制DB步骤1.检查来源DB archive log mode使用RMAN复制DB必须先用RMAN备份来源DB,备份时请注意DB的archive log mode,如果为noarchive log模式,RMAN只能在DB为mount模式下备份,在备份时DB无法提供服务。
故如果DB无法容忍长时间停机,应先将RMAN切换为archive log mode,如此可以在DB open的状况下进行备份。
检查archive log可以用sqlplus以sys登入下以下指令查询:如需要修改可以下以下指令:shutdown immediate;startup mount;alter database archivelog; --或noarchivelogalter database open;设定完后可以重新以:archive log list;查询设定是否成功。
RMAN的备份与恢复步骤详解RMAN(Recovery Manager)是Oracle数据库备份和恢复技术的核心工具,提供了一种集中管理和自动化备份和恢复操作的方式。
下面将详细介绍RMAN的备份与恢复步骤。
备份步骤:1.配置RMAN环境:确定RMAN备份目标、备份库、目标库的连接信息,并设置环境变量。
2.创建RMAN备份目标:使用CREATECATALOG命令创建RMAN备份目标,以存储备份信息和恢复目标的元数据。
3.创建备份策略:确定备份类型(完全备份、增量备份、增量备份级别等),备份周期(每日、每周)、备份级别(全局备份、局部备份)以及备份介质(磁盘、磁带)等。
4.执行备份命令:使用BACKUP命令执行备份操作。
根据备份策略选择相应的备份类型,并指定备份集的存储位置。
可以使用全量备份、增量备份或归档日志备份等方式进行备份。
5.备份验证和测试:使用RESTORE命令验证备份集是否可恢复。
可以恢复到测试库中,检查数据的完整性以及备份恢复的过程和时间。
恢复步骤:1.准备恢复环境:确定系统状态,关闭数据库、归档日志模式,备份控制文件,以备份增量恢复,恢复目标数据库的连接信息,并设置环境变量。
2.恢复控制文件:将备份的控制文件还原到指定位置,以获取数据库的结构信息。
3.恢复数据库文件:使用RESTORE命令恢复需要的数据文件。
可以选择完全恢复(使用全量备份和归档日志进行恢复)、增量恢复(使用增量备份和归档日志进行恢复)或点恢复(使用时间点或SCN号进行恢复)的方式。
4.打开数据库:使用OPENRESETLOGS命令打开数据库,恢复数据库文件到最新的状态。
5.检查恢复结果:验证恢复后数据库的完整性和一致性。
使用相应的SQL语句检查数据的正确性、索引的可用性和对象的有效性。
常见问题处理:1.恢复失败的处理:RMAN提供了很多失败后的处理命令,比如RECOVER命令来恢复损坏的数据文件,CROSSCHECK命令来检查备份文件的完整性等。
在Oracle RMAN备份中,可以使用压缩功能来减小备份文件的大小,从而节省存储空间。
以下是一些常用的RMAN备份压缩参数:
PRESSION LEVEL:RMAN允许设置不同的压缩级别,包括NONE(无压缩)、
LOW(低压缩,速度快)、MEDIUM(中等压缩)和HIGH(高压缩,速度慢)。
可以
根据需求选择合适的压缩级别。
2.BACKUPSET COMPRESSION:可以通过设置BACKUPSET COMPRESSION选项来启
用或禁用备份集的压缩。
语法为“BACKUP AS COMPRESSED BACKUPSET DATABASE”。
3.DATAFILE COPY COMPRESSION:对数据文件副本进行备份时,也可以使用压缩参
数。
语法为“BACKUP AS COPY COMPRESSED DATAFILE”。
4.ARCHIVELOG COMPRESSION:在备份归档日志时,也可以使用压缩参数。
语法为
“BACKUP ARCHIVELOG ALL COMPRESSED”。
在实际操作中,可以根据需要选择合适的压缩参数,并结合具体的备份策略和存储需求来进行设置。
压缩参数的选择应平衡备份速度、存储成本和恢复性能等因素。
此外,还需要注意压缩可能会增加备份和恢复的CPU负载,因此需要综合考虑系统资源的利用情况。
rman备份原理
RMAN(Recovery Manager)是Oracle数据库备份和恢复的工具,使用RMAN备份可以快速恢复整个数据库或部分数据。
RMAN备份原理如下:
1. RMAN备份与传统文件系统备份不同,它将数据以Oracle块(Block)为单位备份,而非具体的数据文件。
2. RMAN备份时先创建备份集(Backup Set),备份集包含多个备份块(Backup Piece),每个备份块是一个独立的文件。
这些备份块被存储在磁盘或磁带中。
3.RMAN使用备份集来保存备份块,这样可以进行增量备份和差异备份。
4.RMAN备份支持全备、增量备和差异备份。
全备份备份所有数据,增量备份只备份上次全备份后发生改变的部分数据,差异备份备份上次差异备份后发生改变的部分数据。
5.RMAN支持增量恢复,增量恢复可以从最近的全备份开始,然后应用增量备份,将数据库恢复至最新状态。
6.RMAN备份还支持从磁带、网络存储设备和云存储设备进行备份和恢复。
RMAN地备份与恢复步骤详解RMAN(Recovery Manager)是Oracle数据库中用于备份和恢复数据的工具。
RMAN提供了一种灵活、高效的备份和恢复机制,可以帮助数据库管理员有效地管理数据库的备份和恢复工作。
在本文中,我们将详细介绍RMAN备份与恢复的步骤和操作方法。
备份步骤:1.配置RMAN环境:在开始进行RMAN备份之前,首先需要配置RMAN环境。
这包括设置RMAN的环境变量、创建RMAN的配置文件以及配置RMAN的连接信息等操作。
您可以使用RMAN命令行或者RMAN配置助手来完成这些操作。
2.创建备份任务:在配置好RMAN环境之后,可以通过RMAN命令行或者RMAN配置助手来创建备份任务。
您可以选择全量备份、增量备份或者归档日志备份等不同类型的备份任务。
3. 执行备份任务:一旦创建了备份任务,就可以使用RMAN命令来执行备份任务。
您可以使用“backup database”命令来执行全量备份任务,使用“backup incremental”命令来执行增量备份任务,使用“backup archivelog”命令来执行归档日志备份任务等。
4. 监控备份过程:在执行备份任务的过程中,可以使用RMAN命令来监控备份的进度和状态。
您可以使用“show”命令来查看备份任务的进度、使用“list”命令来列出备份文件的信息等。
5. 完成备份任务:一旦备份任务执行完毕,可以使用RMAN命令来验证备份文件的完整性和一致性。
您可以使用“crosscheck”命令来验证备份文件的状态,使用“delete”命令来删除过期的备份文件等。
恢复步骤:1.配置RMAN环境:在开始进行RMAN恢复之前,需要先配置好RMAN的环境。
确保RMAN的环境变量、配置文件和连接信息都已经设置好。
2. 恢复数据库:如果数据库遇到了故障或者数据丢失的情况,可以使用RMAN命令来恢复数据库。
您可以使用“restore database”命令来还原数据库的备份文件,使用“recover database”命令来恢复数据库的数据文件。
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,提供了强大的备份、恢复和数据库复制功能。
以下是使用RMAN进行备份的基本步骤:
1. 连接到 RMAN:
通过命令行或脚本连接到 RMAN。
在命令行中输入:
这会使用操作系统认证连接到默认的本地数据库实例。
2. 设置备份配置参数:
在 RMAN 中,您可以设置各种备份配置参数,例如备份类型、备份目标、备份文件位置等。
以下是一个设置备份参数的示例:
这将启用自动备份控制文件和配置备份文件的保存路径。
3. 执行备份:
执行备份命令以创建数据库备份。
以下是创建全库备份的示例:
您还可以根据需要选择性地备份表空间、数据文件等。
4. 查看备份:
您可以使用以下命令查看备份信息:
这将显示当前配置的备份。
5. 恢复数据库:
如果需要进行恢复,您可以使用 RMAN 执行还原和恢复操作。
以下是一个简单的例子:
这将还原数据库文件并应用必要的日志以完成数据库的恢复。
6. 退出 RMAN:
完成备份和恢复操作后,使用以下命令退出 RMAN:
这是一个基本的 RMAN 备份和恢复过程。
请注意,在实际环境中,您可能需要根据数据库的具体要求和策略进行更复杂的备份和恢复配置。
请参考 Oracle 官方文档以获取更详细的信息和高级用法。
rman备份原理RMAN备份原理是指在Oracle数据库系统中,通过使用RMAN工具来执行备份操作的一种机制。
RMAN的全称为Recovery Manager,它是Oracle提供的自动化备份和恢复工具。
在备份时,RMAN会将数据库的数据文件和控制文件备份到磁盘或磁带上,以保证数据的可靠性和一致性。
同时,RMAN还会备份归档日志和参数文件等信息。
备份完成后,可以使用RMAN进行恢复操作,将数据恢复到之前的状态。
RMAN备份的原理包括以下几个方面:1. 备份类型:RMAN支持全备、增量备份、差异备份等多种备份类型。
全备是将整个数据库备份,增量备份和差异备份则只备份发生变化的部分。
2. 数据文件备份:RMAN会通过读取数据库的控制文件确定需要备份的数据文件,并将其备份到指定的位置。
备份时可以采用并行备份和压缩备份等技术,提高备份效率和节省存储空间。
3. 归档日志备份:归档日志是数据库在运行过程中生成的一种日志文件,包含了数据库操作的详细记录。
备份归档日志可以保证数据的完整性和可恢复性。
4. 参数文件备份:RMAN会备份数据库的参数文件,包括了数据库的各种配置信息。
在恢复时,这些信息可以帮助快速还原数据库。
5. 数据库恢复:当数据库发生故障时,可以使用RMAN进行恢复操作。
RMAN会根据备份文件和归档日志以及参数文件等信息,将数据库恢复到指定的时间点或者备份点。
在恢复过程中,RMAN会自动进行数据块的校验和修复,保证数据的一致性和正确性。
总之,RMAN备份原理是一种基于Oracle数据库系统的自动化备份和恢复机制,能够保证数据的可靠性和一致性,为数据安全提供了可靠的保障。
RMAN备份介绍RMAN备份【官⽅⽂档】 Backup and Recovery Reference Backup and Recovery User's Guide1 备份⽂件类型1.1 backupset备份集 不备份datafile⾥⾯从未使⽤块、可以实现增量备份(可以备份到disk和tape)。
可以使⽤压缩,如果只启⽤⼀个channel,默认会把所有备份的datafile放⼊到⼀个backupset⾥,并且⽣成⼀个备份⽚backup piece 使⽤section size时,⼀个backupset中可以包含多个backup piece1.1.1 备份全库① RMAN> backup database format='/u01/backup/rman/prod_%s.bak' filesperset 3;② RMAN> backup database plus archivelog delete input;说明:备份所有数据⽂件及控制⽂件、spfile⽂件与所有归档⽇志,并删除旧的归档⽇志,当deleteinput后,控制⽂件相关信息(v$archived_log)也会被更新。
archivelog物理⽇志也被删除③ RMAN> backup database format '/u01/backup/rman/%U.bak' plus archivelog delete input skip inaccessible;说明:archivelog的备份是根据控制⽂件中(v$archived_log)中的内容导航的,如果控制⽂件中记录了⽽实际归档中⼜不存在,则会报错,skip inaccessible的含义是跳过物理上缺失的⽇志⽂件因为有了全备,随时可以还原备份,还原点之前的归档⽇志可以删除,如果想单独还原归档⽇志备份可以使⽤:restore archivelog all; 1.1.2 备份表空间RMAN> backup tablespace users format '/u01/backup/rman/users_%U.bak' tag=userbak;1.1.3 备份数据⽂件RMAN> backup datafile 3,5 format '/u01/backup/rman/%d_%s.bak';备份数据⽂件,可以⼀次备份多个,以“,” 分开1.1.4 备份归档⽇志查看当前数据库中归档⽇志RMAN> list archivelog all;备份所有归档⽇志,备份完成后删除库⾥的归档⽇志⽂件RMAN> backup archivelog all delete input;将归档⽇志⽂件从备份转储回库中RMAN> restore archivelog all;1.1.5 备份控制⽂件RMAN> backup current controlfile;1.1.6 备份参数⽂件RMAN> backup spfile;1.2 image copy(映像⽂件)备份1.2.1 image copy(映像⽂件) 实际上和⼿⼯cp类似的,备份datafile所有的数据块,不能作为增量备份的基础(即0级增量备份),只能备份到disk,不能备份到tape,优点是可以省略还原步骤,恢复数据库速度快1.2.2 语法① RMAN> copy datafile 4 to '/u01/backup/rman/users_%s.bak';② RMAN> backup as copy tablespace 'TEST' format '/u01/backup/rman/%d_test_%s.bak';建议使⽤backup语法,统⼀格式backup as copy database format '/u01/backup/rman/%U.bak';list datafilecopy all;删除delete datafilecopy all;2 rman冷热备脚本参考2.1 rman冷备脚本vi /u01/backup/rman/cold.sql写⼊脚本:run{shutdown immediate;startup mount;allocate channel c1 device type disk;allocate channel c2 device type disk;backup database format '/u01/backup/rman/db_%d_%T_%U.bak';backup current controlfile format '/u01/backup/rman/ctl_%d_%T_%U.bak';alter database open;release channel c1;release channel c2;}2.2 rman热备vi /u01/backup/rman/hot.sql写⼊脚本:run{allocate channel c1 device type disk;allocate channel c2 device type disk;backup database format '/u01/backup/rman/db_%d_%T_%U.bak' plus archivelog format '/u01/backup/rman/ar_%d_%T_%U.bak';backup current controlfile format '/u01/backup/rman/ctl_%d_%T_%U.bak';release channel c1;release channel c2;}3 增量备份incremental backup【官⽅⽂档】 Database Backup and Recovery User's Guide ---> 8 RMAN Backup Concepts ---> Incremental Backups3.1 概念 只备份⾃某次备份以来发⽣变化的block。
使用RMAN備份DB一、建置環境與情境本文件說明使用RMAN由來源DB複製DB到另一台主機上。
測試的環境描述如下:1.來源和複製主機為相同平台和OS系統,OS:HP-UX,平台:Intel Itanium2.來源DB和複製DB的版本相同,皆為Oracle 10.2.0.4版3.來源DB和複製DB的SID和服務名稱相同,SID:HPDEV2,服務名稱:4.來源DB和複製DB都是使用ASM做為儲存媒介,ASM內儲存結構也相同,儲存目錄root都為+DATADG5.RMAN使用control紀錄備份回、復資訊如要參考此步驟進行複製,請先確認以上環境的差異,參考Backup and Recovery Advanced User’s Guide.pdf中13章部分和Backup and Recovery Reference.pdf手冊進行修改。
在RMAN複製DB操作上,來源DB是以target DB連接,而複製DB則以auxiliary DB連接。
操作時請注意來源、複製DB和target DB、auxiliary DB間的關係,避免混淆。
二、複製DB步驟1.檢查來源DB archive log mode使用RMAN複製DB必須先用RMAN備份來源DB,備份時請注意DB的archive log mode,如果為noarchive log模式,RMAN只能在DB為mount模式下備份,在備份時DB無法提供服務。
故如果DB無法容忍長時間停機,應先將RMAN切換為archive log mode,如此可以在DB open的狀況下進行備份。
檢查archive log可以用sqlplus以sys登入下以下指令查詢:如需要修改可以下以下指令:shutdown immediate;startup mount;alter database archivelog; --或noarchivelogalter database open;設定完後可以重新以:archive log list;查詢設定是否成功。
在本例子中,無法長期停止DB服務,故以archive模式進行備份。
2.檢查來源DB儲存媒介是否有block損壞進行RMAN備份前,如DB沒有進行過備份,或與次備份相隔很久。
請先使用RMAN進行儲存媒體檢查,看是否有邏輯或實體的block損壞。
RMAN備份、回復過程會檢查block是否損壞,預設狀況下RMAN會中斷工作,如果DB很龐大,將會浪費很多時間。
RMAN檢查包含檢邏輯與實體儲存媒體檢查,script:chk_backup.sql,執行的shell script 請見:chk_backup.sh。
執行請先以oracle帳號telnet登入來源DB主機,並review script 檔案內容,執行請在shell下呼叫:chk_backup.sh。
開始執行後,檢查進度可以用以下SQL查詢執行狀況:--查詢validate進度SELECT opname,sid,serial#,CONTEXT,sofar,totalwork,round(sofar / totalwork * 100, 2) "%_complete"FROM v$session_longopsWHERE opname LIKE 'RMAN%'AND opname NOT LIKE '%aggregate%'AND totalwork != 0AND sofar <> totalworkORDER BY sid;查詢結果如下:傳回筆數視RMAN設定的平行數目決定,每筆代表一個RMAN執行的process或thread。
另外,也可以查看V$RMAN_BACKUP_JOB_DETAILS內容:select * from V$RMAN_BACKUP_JOB_DETAILS order by start_time desc;此view會回報執行狀況,執行完會顯示完成或失敗,並顯示最後處理資料量。
而詳細的執行內容,可以觀看chk_backup.log檔。
檢查完成,損壞block資訊會寫到DB v$database_block_corruption view,可用以下SQL查出哪個物件發生問題:--查詢發生錯誤的block物件和檔案SELECT t3.owner,t3.object_type,t2.segment_name object_name,(SELECT NAME FROM v$datafile t4 WHERE t1.file# = t4.file#) filename,t1.corruption_type,t1.file#,t1.block#FROM v$backup_corruption t1LEFT OUTER JOIN dba_extents t2 ON t2.file_id = t1.file#AND block# BETWEEN t2.block_id ANDt2.block_id + t2.blocks - 1LEFT OUTER JOIN dba_objects t3 ON t2.segment_name = t3.object_nameAND t2.owner = t3.owner;如有block損壞,必須進行修復。
修復可以使用:◆Flashback:產生undo SQL或Flashback Table回復錯誤區塊資料◆DEMS_REPAIR package:僅標示損壞的block,無法進行實際修復◆Block media recovery(BMR):使用RMAN BLOCKRECOVER回復,需有已存在的備份另外,如果損壞物件為index、MV之類的由資料推導出的DB物件,可以重新建立或rebuild 修復。
3.備份來源資料庫本例中的RMAN備份設定:◆備份、回復的平行度設定為4◆使用backup set方式備份,每個backup set包含一個backup piece,backup set最多存放5個資料檔◆備份包含:datafile、archive log、spfile、control file◆CONTROLFILE AUTOBACKUP設定為OFF◆備份過程刪除已備份的archive log檔以oracle帳號telnet登入來源DB主機,執行備份,備份將放在/orabackup/dev2_backup 目錄下。
RMAN備份script請見:full_backup.sql,執行的shell script請見:full_backup.sh。
備份執行後,可以查詢backup_log.log看執行是否發生問題。
執行過程可以查詢V$RMAN_BACKUP_JOB_DETAILS內容(如同前面步驟:檢查來源DB儲存媒介是否有block損壞所述),如果有驗證block損壞,則可以由總處理量與每秒處理資料量預估處理時間。
4.處理pfile複製DB將會使用來源DB的pfile設定,所以需要將來原資料庫的spfile轉存成pfile,並複製到複製DB主機上。
轉存spfile成pfile請用sys登入來源DB,執行:create pfile='<pfile路徑與檔名>' from spfile;5.將備份檔案上傳或掛到複製DB主機上複製DB必須有來源DB的備份檔才能進行複製,且備份檔放置的位置必須要同原備份檔。
例如:來源DB的備份放在/orabackup/dev2_backup,則在複製DB也需放在/orabackup/dev2_backup目錄下。
由於備份檔可能很大,故可以使用NFS或磁碟掛載方式共享備份檔,避免FTP的時間並節省儲存空間使用。
註:備份DB中備份檔如與原備份放置位置不同,必須重新對備份檔以catalog指令修改RMAN 紀錄,故在此建議存放在相同位置6.建立備份DB本案例使用ASM當作儲存媒介,故在進行複製前請確認備份DB主機ASM instance已經啟動。
在備份主機上建立備份DB,此DB只是一個空殼供RMAN備份使用,其中的設定複製後都會以來原DB覆蓋。
7.修改複製DB設定◆tnsnames.ora:在tnsnames.ora新增對來源DB的連線資訊,本例中複製DB的tnsnames為:91_HPDEV2,來源DB的tnsnames為:92_HPDEV2◆listener.ora:設定備份DB的靜態註冊,確保listener可以找到備份DB的instance。
◆修改來源DB複製過來的pfile,pfile的類似:請依照實際狀況調整各參數,在本例子中,由於DB SID和服務名稱都相同,儲存空間目錄結構也不變,故僅需調整記憶體相關參數設定,避免超過複製DB主機資源。
本例子的pfile請參考:HPDEV2_PFILE.ora8.複製DB可以在來源或複製端DB執行RMAN,本例中是在複製DB端執行RMAN進行複製。
進行RMAN 複製DB,來源DB必須是mount或open狀態,複製DB必須為nomount。
複製DB使用shell script為:duplicate_database_unix.sh,此shell script在執行前請review 其ORACLE_SID、pfile_path等參數設定是否正確,執行過程中會自動產生rman script檔案:duplicate_db.sql,以及sqlplus執行的script檔案:md_spfile_nomount.sql,並依序執行md_spfile_nomount.sql和duplicate_db.sql,將複製DB shutdown後,使用來源的pfile開啟在nomount模式,再登入RMAN執行DB複製。
當複製開始進行,可以在來源DB以sys登入查詢v$rman_status View:select * from v$rman_status order by start_time desc;此時可以注意查詢欄位operation有RESTORE的資料,如正在執行則STATUS欄位會顯示RUNNING:執行成功通常顯示COMPLETED,失敗則為FAILED。
另外,也可以查看log:duplicate_db_log.log檔得知目前處理的進度和結果。
9.檢查複製DB結果◆查看log檔最後觀看結果,成功會顯示如:◆連線到複製DB中,下SQL查詢DB物件數目是否與來源相同:select count(1) from dba_objects;◆查詢Table資料是否可以查詢且筆數與來源一致:select count(1) from uvalblb;注意,如果使用線上備份並複製,因來源DB仍在使用,物件數目或資料有可能與來源DB 有些許出入10.建立複製DB的directories物件對應的目錄開發要調整以下directory目錄位置:◆PLSQL_OUTPUT◆PLSQL_JAVA_OUTPUT◆V3_FILE_BACKUP◆V3_FILE_UPLOAD◆V3_FILE_DOWNLOAD◆DATAPUMP◆CV_TEST_PLSQL_JAVA_OUTPUT◆CV_TEST_PLSQL_OUTPUT◆VLIFE_FILE_DOWNLOAD◆VLIFE_FILE_UPLOAD◆VLIFE_SMS_EXCHANGE◆VLIFE_MAIL_EXCHANGE而非開發需調整以下目錄:◆DATAPUMP◆VLIFE_SMS_EXCHANGE◆VLIFE_MAIL_EXCHANGE◆VLIFE_FILE_DOWNLOAD◆VLIFE_FILE_UPLOAD◆V3_FILE_DOWNLOAD◆V3_FILE_UPLOAD◆V3_FILE_BACKUP◆PLSQL_JAVA_OUTPUT◆PLSQL_OUTPUT三、注意事項1.RMAN使用NFS的注意事項:RMAN使用NFS當作備份磁碟必須遵照各平台Oracle安裝文件(Ex:Installation Guide 10g Release 2 (10.2) for hp-ux Itanium、Installation Guide 10g Release 2 (10.2) for AIX 5L Based Systems (64-Bit))中的NAS使用說明規範設定。