Oracle Database 11G 完全备份[Whole Database Backups]概述

    xiaoxiao2022-07-06  231

    Oracle Database 11G 完全备份[Whole Database Backups]概述

    RMAN 的完全备份(Whole Database Backups using RMAN)Oracle数据库的状态查询使用 RMAN 进行数据库完全备份归档模式下执行完全备份非归档模式下,执行全库备份 引用

    RMAN 的完全备份(Whole Database Backups using RMAN)

    完全备份(Whole Database Backups),包括数据文件、控制文件、归档文件(归档模式)和初始化参数文件。完全备份的数据库既可以是归档模式(archivelog),也可以是非归档模式(noarchivelog),但备份是否有效,取决于备份时数据库的状态。

    归档模式下:

    数据库正常打开状态(open read write)下创建的备份是不一致性的有效备份(常用)数据库在只读模式(mount, open read only)下创建的备份是一致性的有效备份数据库正常关闭状态(shutdown normal, shutdown transational, shutdown immediate)下创建的备份都是一致性的有效备份数据库异常关闭(shutdown abort, 故障停机)下创建的备份是不一致性的备份,不建议使用!

    非归档模式下:

    数据库正常打开状态(open read write)下创建的不一致性备份是无效备份数据库在只读模式(mount, open read only)下创建的备份是一致性的有效备份(常用)数据库正常关闭状态(shutdown normal, shutdown transactional, shutdown immediate)下创建的备份都是有效备份数据库异常关闭(shutdown abort, 故障停机)下创建的备份是不一致性的备份,不建议使用!

    Oracle数据库的状态查询

    表 Oracle数据库的状态查询 (引用-1)

    启动状态语句结果shutdownSQL> select status from v$instance;ORA-01034: ORACLE not availableSQL> select open_mode from v$database;ORA-01034: ORACLE not availableRMAN> backup database;ORA-01034: ORACLE not availablenomountSQL> select status from v$instance;STARTEDSQL> select open_mode from v$database;ORA-01507: database not mountedRMAN> backup database;ORA-01507: database not mountedmountSQL> select status from v$instance;MOUNTEDSQL> select open_mode from v$database;MOUNTEDRMAN> backup database;[runnable]openSQL> select status from v$instance;OPENSQL> select open_mode from v$database;READ WRITE 或者 READ ONLYRMAN> backup database;[runnable]

    综上,RMAN 只有在数据库可访问的状态: mount, open read only, open read write,才能实施数据库完全备份。其中,非归档状态下,只能在 mount, open read only 模式下实施数据库完全备份。

    使用 RMAN 进行数据库完全备份

    归档模式下:

    “BACKUP DATABASE” 数据库完整备份“INCLUDE CURRENT CONTROLFILE” 子句,等同于 “CONFIGURE CONTROLFILE AUTOBACKUP ON;” 的 RMAN 备份配置,将在 “BACKUP DATABASE” 数据库完全备份后,备份控制文件(control files)和参数文件(spfile);如果没有该子句和 开启 AUTOBACKUP 的RMAN备份配置,“BACKUP DATABASE” 数据库完全备份只会备份控制文件(control files).“PLUS ARCHIVELOG DELETE INPUT” 子句,在归档模式下,将归档日志文件备份后,删除这些已备份的归档日志文件。

    归档模式下执行完全备份

    SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 90 Next log sequence to archive 92 Current log sequence 92

    通过指令 “archive log list” 查看数据库已启用归档。

    RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE PLUS ARCHIVELOG DELETE INPUT; ---------------- 启动备份 ---------------- Starting backup at 23-MAY-19 ---------------- 归档当前联机重做日志 ---------------- current log archived ---------------- 使用控制文件管理 RMAN 备份集信息 ---------------- using target database control file instead of recovery catalog ---------------- 分配通道 ---------------- allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=136 device type=DISK ---------------- 启动归档日志文件的备份 ---------------- channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=92 RECID=1 STAMP=1009034905 channel ORA_DISK_1: starting piece 1 at 23-MAY-19 channel ORA_DISK_1: finished piece 1 at 23-MAY-19 piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2019_05_23/o1_mf_annnn_TAG20190523T152827_ggdlwxsh_.bkp tag=TAG20190523T152827 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:08 ---------------- 删除已归档的归档日志文件 ---------------- channel ORA_DISK_1: deleting archived log(s) archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_05_23/o1_mf_1_92_ggdlwrwd_.arc RECID=1 STAMP=1009034905 ---------------- 完成归档日志文件的备份 ---------------- Finished backup at 23-MAY-19 ---------------- 启动备份 ---------------- Starting backup at 23-MAY-19 ---------------- 使用已分配的通道 ---------------- using channel ORA_DISK_1 ---------------- 启动全库备份 ---------------- channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf channel ORA_DISK_1: starting piece 1 at 23-MAY-19 channel ORA_DISK_1: finished piece 1 at 23-MAY-19 piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2019_05_23/o1_mf_nnndf_TAG20190523T152837_ggdlx6ro_.bkp tag=TAG20190523T152837 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:11:38 ---------------- 对控制文件和参数文件进行备份 ---------------- channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 23-MAY-19 channel ORA_DISK_1: finished piece 1 at 23-MAY-19 piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2019_05_23/o1_mf_ncsnf_TAG20190523T152837_ggdmm22j_.bkp tag=TAG20190523T152837 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 23-MAY-19 ---------------- 对备份过程中产生的联机重做日志文件进行归档 ---------------- Starting backup at 23-MAY-19 current log archived ---------------- 对刚归档的日志文件进行备份 ---------------- using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log backup set channel ORA_DISK_1: specifying archived log(s) in backup set input archived log thread=1 sequence=93 RECID=2 STAMP=1009035619 channel ORA_DISK_1: starting piece 1 at 23-MAY-19 channel ORA_DISK_1: finished piece 1 at 23-MAY-19 piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2019_05_23/o1_mf_annnn_TAG20190523T154019_ggdmm396_.bkp tag=TAG20190523T154019 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 ---------------- 删除已归档的归档日志文件 ---------------- channel ORA_DISK_1: deleting archived log(s) archived log file name=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_05_23/o1_mf_1_93_ggdmm35l_.arc RECID=2 STAMP=1009035619 Finished backup at 23-MAY-19

    归档模式下,全库备份的执行步骤:

    归档当前的联机重做日志(online redo logs)备份归档日志文件(archive logs)删除已备份的归档日志文件备份数据库的数据文件(datafiles)备份控制文件与参数文件(control files, spfile)归档备份过程中产生的联机重做日志(online redo logs)备份新归档的归档日志文件删除已归档的归档日志文件

    非归档模式下,执行全库备份

    SQL> select open_mode from v$database; OPEN_MODE ------------------------------------------------------------ READ ONLY SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 90 Current log sequence 92

    通过语句 “select open_mode from v$database;” 和 “archive log list” 确定当前数据库处于只读状态,并且未开启归档。

    RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE PLUS ARCHIVELOG DELETE INPUT; ---------------- 使用控制文件管理 RMAN 备份集 ---------------- Starting backup at 23-MAY-19 using target database control file instead of recovery catalog ---------------- 分配通道 ---------------- allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=129 device type=DISK ---------------- 数据库未启用归档 ---------------- specification does not match any archived log in the repository backup cancelled because there are no files to backup Finished backup at 23-MAY-19 ---------------- 备份数据文件 ---------------- Starting backup at 23-MAY-19 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf channel ORA_DISK_1: starting piece 1 at 23-MAY-19 channel ORA_DISK_1: finished piece 1 at 23-MAY-19 piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2019_05_23/o1_mf_nnndf_TAG20190523T220607_ggfb6j45_.bkp tag=TAG20190523T220607 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:07:35 ---------------- 备份控制文件和参数文件 ---------------- channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 23-MAY-19 channel ORA_DISK_1: finished piece 1 at 23-MAY-19 piece handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2019_05_23/o1_mf_ncsnf_TAG20190523T220607_ggfbnr4m_.bkp tag=TAG20190523T220607 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 23-MAY-19 ---------------- 数据库未启用归档 ---------------- Starting backup at 23-MAY-19 using channel ORA_DISK_1 specification does not match any archived log in the repository backup cancelled because there are no files to backup Finished backup at 23-MAY-19

    非归档模式下,全库备份的执行步骤:

    未发现归档日志文件(archive files)备份数据库的数据文件(datafiles)备份控制文件与参数文件(control files, spfile)未发现归档日志文件(archive files)

    引用

    引用-1 Oracle数据库的状态查询

    最新回复(0)