rman备份方法
RMAN备份与恢复之完全备份和增量备份
完全备份:完全备份是指对数据库中使用过的所有数据块进行备份,当然,没有使用过的数据块是不做备份的。
在进行完全备份时,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数据库全库备份语句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数据库全库备份语句,可以根据实际需求选择合适的备份方式进行数据库备份。
简单易懂的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数据库备份方法。
RMAN备份详解
RMAN备份1、创建映像文件备份2、创建整体数据库备份3、创建完全数据库备份4、启用快速增量备份5、创建双向备份集6、备份备份集7、创建RMAN多部分备份8、创建归档备份以用于长期保留9、报告和维护备份1:创建映像文件备份即在backup的时候指定as copy即可。
2、备份整体数据库。
即将所有数据文件及归档文件,还有控制文件跟参数文件备份了去:如下:所有,看到上面,可以发现归档,数据,参数,控制4种文件都备份。
3:增量备份。
(1):完全备份:即将包含所有使用的数据文件块备份。
(即不包括高水位以上的和以下未使用的块)。
这样,就是完全备份。
将users表空间的使用的数据块全部备份了(2)0级增量备份:等同于标记为0级的完全备份(即跟完全备份不同的是0级增量备份能增量备份,完全备份不能。
)即可以在这个备份上做增量备份。
(3)1级累积增量备份:只包含自上次0级增量备份以来修改过的块。
(4)1级差异增量备份:只包含自上次增量备份以来修改过的块。
与1级累积增量备份不同的是,1即累积增量备份是自上次0级增量备份以来修改过的块,而差异增量备份是上次增量备份以来修改过的块,下面来个图比较:4、快速增量备份:通过块更改跟踪实现,它可以:维护自上次备份以来发生更改的块的记录。
生成重做时,将此记录写入文件。
执行备份时自动访问,使备份更快的执行。
快速增量备份,即启用块更改跟踪。
块更改跟踪会将有更改的每个块得物理地址写入到一个文件中。
需要执行增量备份时,RMAN可查看块更改跟踪文件,并只备份该文件所引用的块,无需通过扫描每个块来确定该块自上次备份以来是否发生过更改。
这会加快增量备份的速度。
跟踪文件的维护是完全自动进行的,不需用户干预。
如下:启用了块更改跟踪。
因为是0级增量备,所以会记录全部的扫描的129个,我们给他加个表,再1级增量备份试试;从上面图中发现,不是1级增量备份明显比0级得扫描的块少,只要扫描和更改改变的块就行了。
Oracle 使用RMAN备份数据库文件和归档日志
Oracle 使用RMAN 备份数据库文件和归档日志当数据库打开时,可以使用RMAN BACKUP 命令备份如下对象:● 数据库● 表空间● 数据文件● 归档重做日志● 控制文件● 备份集在使用BACKUP 命令备份数据文件时,可以为其设置参数,定义备份段的文件名,文件数和每个输入文件的通道。
1.备份数据库如果备份操作是在数据库被安全关闭之后进行的,那么对整个数据库的备份是一致的;与之相对应,如果数据库是在打开状态下对整个数据库进行的备份,则该备份是非一致的。
非一致性备份整个数据库的操作步骤如下:(1)启动RMAN 并连接到目标数据库,输入BACKUP DATABASE 命令备份数据库。
在BACKUP 命令中可以指定FORMA T 参数,为RMAN 生成的每个备份片段指定一个惟一的名称,以及存储的位置。
C:\>rman target system/admin nocatalogRMAN> backup database format 'f:\oracle_backup\ora11g_%Y_%M_%D_%U.bak' maxsetsize=2G; 还可以为BACKUP 命令指定TAG 参数,为备份片段定义备份标签。
例如: RMAN>backup database tag='weekly_backup';(2)如果建立的是非一致性备份,那么必须在完成备份后对当前的联机重做日志进行归档,因为在使用备份恢复数据库需要使用当前重做日志中的重做记录。
RMAN>sql'alter system archive log current';(3)在RMAN 中执行LIST BACKUP OF DA TABASE 命令,查看建立的备份集与备份片段的信息。
RMAN> list backup of database;如果需要对整个数据库进行一致性备份,则首先需要关闭数据库,并启动数据库到MOUNT 状态。
oracle数据库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数据库是一种关系型数据库管理系统,它可以用于存储和管理大量的结构化数据。
在进行数据库管理时,备份是非常重要的一项工作,它可以保护数据库免受数据丢失和系统故障的影响。
下面列举了十个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数据库备份语句
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备份
使用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的备份与恢复步骤详解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命令来检查备份文件的完整性等。
rman备份原理
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地备份与恢复步骤详解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原理
rman原理RMAN即Recovery Manager,它是Oracle提供的用于备份和恢复数据库的工具。
下面我们来详细了解一下RMAN的原理。
一、备份RMAN的备份分为在线备份和离线备份两种。
在线备份是在数据库运行的同时备份数据库,而离线备份需要关闭数据库才能备份。
1. 在线备份原理在进行在线备份时,RMAN会先把被备份的数据文件标记为“备份使能”,然后创建一个备份集,将备份集的信息存储到控制文件中。
接着,RMAN会将需要备份的数据块读入内存,并生成一个输入流,将输入流和备份集的信息一起写入备份设备中。
最后,RMAN会将备份设备中的备份集的信息更新到控制文件中。
2. 离线备份原理离线备份需要先将数据库关闭,然后再备份数据库。
RMAN在备份时,会先读取控制文件中的信息,然后将所有数据文件读入内存,并生成一个输入流,将输入流写入备份设备中。
备份完成后,RMAN会将备份设备中的备份集的信息更新到控制文件中。
二、恢复恢复分为完全恢复和不完全恢复两种。
完全恢复是将数据库恢复到最后一次备份的状态,而不完全恢复则是将数据库恢复到指定的时间点或者将一些表空间或数据文件进行恢复。
1. 完全恢复原理完全恢复的原理是要满足两个条件:备份和日志。
首先,需要用备份来恢复到某一个时间点。
然后,将数据库日志应用到这个时间点之后,直至“恢复完成”为止。
在执行完备份后,通过RMAN恢复数据库到某一个时间点,RMAN 首先需要使用备份生成一个控制文件副本。
然后,使用REDOS文件将数据库恢复到指定的时间点。
继而,将REDO日志应用到指定时间点之后,最后检查数据库的一致性。
2. 不完全恢复原理不完全恢复的原理相对于完全恢复来说要简单一些。
即可以通过备份恢复,也可以通过RMAN将某一表空间或者数据文件进行恢复。
在进行不完全恢复时,需要先确认恢复的是表空间还是数据文件,并选择方式进行恢复。
如果是表空间的话,需要确定恢复的表空间中存在的数据文件和控制文件是否可以找到。
oracle—rman备份使用方法
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,提供了强大的备份、恢复和数据库复制功能。
以下是使用RMAN进行备份的基本步骤:
1. 连接到 RMAN:
通过命令行或脚本连接到 RMAN。
在命令行中输入:
这会使用操作系统认证连接到默认的本地数据库实例。
2. 设置备份配置参数:
在 RMAN 中,您可以设置各种备份配置参数,例如备份类型、备份目标、备份文件位置等。
以下是一个设置备份参数的示例:
这将启用自动备份控制文件和配置备份文件的保存路径。
3. 执行备份:
执行备份命令以创建数据库备份。
以下是创建全库备份的示例:
您还可以根据需要选择性地备份表空间、数据文件等。
4. 查看备份:
您可以使用以下命令查看备份信息:
这将显示当前配置的备份。
5. 恢复数据库:
如果需要进行恢复,您可以使用 RMAN 执行还原和恢复操作。
以下是一个简单的例子:
这将还原数据库文件并应用必要的日志以完成数据库的恢复。
6. 退出 RMAN:
完成备份和恢复操作后,使用以下命令退出 RMAN:
这是一个基本的 RMAN 备份和恢复过程。
请注意,在实际环境中,您可能需要根据数据库的具体要求和策略进行更复杂的备份和恢复配置。
请参考 Oracle 官方文档以获取更详细的信息和高级用法。
OracleRMAN的备份与恢复命令详解
还原检查与恢复测试
与备份检查一样,还原操作也可以检查是否能正常 restore 或者是否该备份集是否有效。如::
可以使用 CHECK LOGICAL 选项测试通过了物理损坏检查的数据和索引块,查看它们是否存在逻辑损坏,如行片或索引条目损坏。如果检测到任何块存在逻辑损坏,则 将该块记录到服务器进程的警报日志和跟踪文件中。
可以使用 MAXCORRUPT 参数设置逻辑和物理损坏的阈值。只要在某个文件中检测到的逻辑和物理损坏总和低于该值,则 RMAN 命令完成,同时 Oracle 将损坏块的 范围植入到 V$COPY_CORRUPTION 视图。如果超出 MAXCORRUPT,则该命令终 止,并且不植入视图。 当并行度比较高时,占用的计算机资源较多,但备份操作完成 速度较快。缺省情况下将启用对物理损坏的错误检查。有关在备份过程中遇到的损坏数据文件块的信息将记录在控制文件和警报日志中。
运行 BACKUP ARCHIVELOG ALL 命令。注意如果备份优化被启用,RMAN只会备份未备份过的日志
备份 BACKUP命令中定义的文件
运行 ALTER SYSTEM ARCHIVE LOG CURRENT 命令
备份所有的剩下的归档日志
备份完后删除归档日志RMAN> backup …… ARCHIVELOG all delete all input;修改备份集的保存策略例如:将备份设置为永久有效RMAN> backup database keep forever logs|nologs;设置为有效期 180 天RMAN> backup database keep until time='sysdate+180';重写configure exclude / noexclude通过 configure exclude 可以配置 RMAN 不备份上次备份以来没有发生变化的数据文件。如果要确保 RMAN备份这些数据文件,可以在 backup命令中添加 noexclude 选项。 例如:RMAN> backup database noexclude;
RMAN备份方法
以下都是使用rman增量备份,主要是从数据库大小和备份还原所用时间两个方面考虑。
0级备份表示数据库的全备份,默认不包括只读表空间。
1级备份表示小于等于1级备份以来的数据库变化情况。
2级备份表示小于等于2级别分以来数据库的变化情况。
3级,4级的意思和1级相似。
1、一月一次0级备份,两周一次1级备份,一周一次2级备份,每天一次3级备份。
此备份方案将备份时间分散,可以说是节省了备份的时间,而且节省了许多存储备份的空间,但是这造成还原时间增加了许多。
2、两周一次0级备份,一周一次1级备份,每天一次2级备份。
此备份方案相对方案2在备份时间上增长,还原时间缩短,存储备份的空间也相对有少量的增加。
3、一周一次0级备份,每天一次1级备份。
此方案平凡的对数据库进行全备份,占用操作系统的资源相对方案2和方案3大了很多,而且占用更多存储空间,但是此方案节省了很多恢复的时间。
数据库的备份方案选择主要调节备份和还原所用时间之间的平衡,使其对生产系统的影响降到最小。
如果备份时间过长会长时间的占用I/O和内存资源,造成生产环境文件读取速度慢;如果还原时间太长,则拖延了系统恢复后正常上线的时间。
对于现在的数据库系统,案2和方案3在备份时间上和方案4相差无几,在备份存储上比方案4节省不少,但是在还原时间上却大大超过方案4。
为了数据的安全性,建议不用方案1作为主要备份。
而对于2,3,4,在实际生产环境中,根据现在数据库大小和每天产生的数据量大小的估计,方案4最适合。
虽然平凡的0级备份对操作系统的资源占用很大,但是从测试的情况看,每次0级备份所发的时间是20分钟左右,1级备份所用的时间是6分钟左右,而且每次0级备份都在周末比较空闲的00:00进行,对生产环境的影响可以忽略不计。
在备份存储方面,一次0级备份占用空间30G,每天1级备份占用空间是600M左右,一周的全部备份文件大小在120G左右,E盘存储空间大小正好适合于两周数据的存储,可以在1-2周手动的清理过期的备份集一次。
RMAN备份介绍
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
startup
backup database;
run {
configure retention policy to recovery window of 7 days;
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to 'D:\1\%F';
}
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt obsolete;
全备
RMAN> run{
2> allocate channel cha1 type disk;
1. 是否选择增量备份
1. 建立增量备份的全库备份RMAN>BACKUP INCREMENTAL LEVEL=0 DATABASE;
2. 为数据文件user.dbf建立1级增量备份RMAN>BACKUP INCREMENTAL LEVEL=1 DATAFILE 'D:\ORAHOME\ORADATA\USER.DBF';
3> backup
4> format ' Nhomakorabea:\bak\full_%t'
5> tag full_backup
6> database;
7> release channel cha1;
8> }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
以下都是使用rman增量备份,主要是从数据库大小和备份还原所用时间两个方面考虑。
0级备份表示数据库的全备份,默认不包括只读表空间。
1级备份表示小于等于1级备份以来的数据库变化情况。
2级备份表示小于等于2级别分以来数据库的变化情况。
3级,4级的意思和1级相似。
1、一月一次0级备份,两周一次1级备份,一周一次2级备份,每天一次3级备份。
此备份方案将备份时间分散,可以说是节省了备份的时间,而且节省了许多存储备份的空间,但是这造成还原时间增加了许多。
2、两周一次0级备份,一周一次1级备份,每天一次2级备份。
此备份方案相对方案2在备份时间上增长,还原时间缩短,存储备份的空间也相对有少量的增加。
3、一周一次0级备份,每天一次1级备份。
此方案平凡的对数据库进行全备份,占用操作系统的资源相对方案2和方案3大了很多,而且占用更多存储空间,但是此方案节省了很多恢复的时间。
数据库的备份方案选择主要调节备份和还原所用时间之间的平衡,使其对生产系统的影响降到最小。
如果备份时间过长会长时间的占用I/O和内存资源,造成生产环境文件读取速度慢;如果还原时间太长,则拖延了系统恢复后正常上线的时间。
对于现在的数据库系统,案2和方案3在备份时间上和方案4相差无几,在备份存储上比方案4节省不少,但是在还原时间上却大大超过方案4。
为了数据的安全性,建议不用方案1作为主要备份。
而对于2,3,4,在实际生产环境中,根据现在数据库大小和每天产生的数据量大小的估计,方案4最适合。
虽然平凡的0级备份对操作系统的资源占用很大,但是从测试的情况看,每次0级备份所发的时间是20分钟左右,1级备份所用的时间是6分钟左右,而且每次0级备份都在周末比较空闲的00:00进行,对生产环境的影响可以忽略不计。
在备份存储方面,一次0级备份占用空间30G,每天1级备份占用空间是600M左右,一周的全部备份文件大小在120G左右,E盘存储空间大小正好适合于两周数据的存储,可以在1-2周手动的清理过期的备份集一次。
所以综合考虑,方案4最适合现在的生产环境。
不过当数据库大小增加到200G以上时,0级备份时间与还原时间分配不平衡时,可以换用方案3;当数据库大小增加到1T以上时,可以考虑用方案2或者制定其他的方案。
一、备份方法。
如果恢复目录已经创建,执行第六步就行。
1、启动数据库归档
Startup mount
Alter database open archivelog;
2、创建工具表空间。
Create tablespace tools datafile …数据文件路径‟ size 50m;
3、创建rman用户
Create user rman identified by rman0501 default tablespace tools temporary tablespace temp;
4、给rman用户授予权限
Grant resource,connect,recovery_catalog_owner to rman;
5、创建恢复目录
Rman target / catalog rman/rman0501
Create catalog tablespace tools;
6、注册数据库
Register database;
6、编写备份执行脚本
0级备份文件backup_0.rcv
1级备份文件backup_1.rcv
2级备份文件backup_2.rcv
批处理文件backup_0.bat, backup_1.bat, backup_2.bat
用方案2定制的定时任务命令
每周日运行一次0 级备份
Schtasks /create /tn “backup_0” /tr backup_0.bat(绝对路径) /sc weekly /d SUN /st 01:00
每天运行一次1级备份
Schtasks /create /tn “backup_1” /tr backup_1.bat /sc daily /st 23:59
每隔两周手动清理一次数据
查看过期的备份
Report obsolete
留下上一周备份,上一周以前的备份全部删除
Delete backupset id1,id2…
二、还原数据库
1、完全恢复
用于数据出现崩溃后,无法启动的情况。
编写恢复脚本
recovery.rcv
执行批处理
recovery.bat
2、不完全恢复,用于因误操作导致表或数据别删除的情况。
出现这种情况请立即关闭应用。
在nrecovery.rcv中设置需要恢复到的时间点。
如果不知道是哪个时间点。
就启动数据库执行:
启动命令模式
Conn / as sysdba
Select …exec dbms_logmnr.add_logfile(…‟‟||member||‟‟‟) from v$logfiles;
执行以上的查询结果。
Exec dbms_logmnr.start_logmnr
Select scn,sql_redo from v$logmnr_contents where sql_redo like …%delete 或者drop%‟;
Exec dbms_logmnr_end_logmnr
将recovery.rcv中的set until time 改成set until scn …以上查询出来的‟
执行nrecovery.bat
最后在rman中reset database; 同步数据库。
运行过程中如果出现ora-01861错误,则进入注册表在hkey_local_machines/oftware/oraclehome0下新建字串名为nls_date_format,定义时间格式为
yyyy-mm-dd:hh24:mi:ss。