Oracle RMAN备份与还原
RMAN在數(shù)據(jù)庫服務(wù)器的幫助下實現(xiàn)數(shù)據(jù)庫文件、控制文件、數(shù)據(jù)庫文件與控制文件的映像副本、歸檔日志文件、數(shù)據(jù)庫服務(wù)器參數(shù)文件的備份。
RMAN的特點:
(1) 支持增量備份:傳統(tǒng)的exp與expdp備份工具,只能實現(xiàn)一個完整備份而不能增量備份,RMAN采用備份級別實現(xiàn)增量備份,在一個完整的備份基礎(chǔ)上采用增量備份可以大大減少備份的數(shù)量;
(2) 自動管理備份文件:RMAN備份的數(shù)據(jù)是RMAN自動管理的,包括文件名字,備份文件存儲目錄等;
(3) 自動化備份與恢復(fù):在備份與恢復(fù)操作時,使用簡單的指令就可以實現(xiàn)備份與恢復(fù),執(zhí)行過程完全有RMAN維護(hù)。
(4) 不產(chǎn)生重做信息: RMAN聯(lián)機備份不產(chǎn)生重做信息。
(5) 支持映像復(fù)制: 使用RMAN可以實現(xiàn)映像復(fù)制,映像以操作系統(tǒng)的文件格式存在,這種復(fù)制類似于用戶管理的脫機備份方式。
(6) 備份的數(shù)據(jù)文件壓縮處理: RMAN提供一個參數(shù),說明是否對備份文件進(jìn)行壓縮,壓縮的備份文件以二進(jìn)制文件格式存在,可以減少備份文件的存儲空間。
(7) 備份文件有效性檢查功能: 可以在備份之后恢復(fù)檢測備份文件是否可用,避免無效恢復(fù)操作。
1 RMAN 脫機備份與還原
1.1 使用RMAN命令連接到數(shù)據(jù)庫
[oracle@oracledb ~]$ rman target/
Recovery Manager: Release 11.2.0.1.0 - Production on Tue May 30 14:33:04 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1452257309)
1.2 脫機備份之前確定數(shù)據(jù)庫處于非歸檔模式下,使用管理員賬號登錄到數(shù)據(jù)庫查看
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Current log sequence
1.3 脫機備份時數(shù)據(jù)必須處于mount狀態(tài)下,關(guān)機啟動數(shù)據(jù)庫到mount狀態(tài)下
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 450953216 bytes
Fixed Size 2214256 bytes
Variable Size 339740304 bytes
Database Buffers 104857600 bytes
Redo Buffers 4141056 bytes
Database mounted.
1.4 RMAN模式下輸入脫機備份命令,系統(tǒng)會自動備份整個數(shù)據(jù)庫到默認(rèn)的目錄下
RMAN> backup as compressed backupset database;
Starting backup at 30-MAY-17
using channel ORA_DISK_1
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/usr/oracle/app/oradata/orcl/CTRR_DATA.dbf
input datafile file number=00007 name=/home/oracle/data/CTRR_DATA_1.dbf
channel ORA_DISK_1: starting piece 1 at 30-MAY-17
channel ORA_DISK_1: finished piece 1 at 30-MAY-17
piece handle=/usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqjoft_.bkp tag=TAG20170530T105100 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:26
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00009 name=/home/oracle/data/rman_ts1.dbf
input datafile file number=00006 name=/usr/oracle/app/oradata/orcl/APSALU3_DATA.dbf
channel ORA_DISK_1: starting piece 1 at 30-MAY-17
channel ORA_DISK_1: finished piece 1 at 30-MAY-17
piece handle=/usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqmdbx_.bkp tag=TAG20170530T105100 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/usr/oracle/app/oradata/orcl/system01.dbf
input datafile file number=00004 name=/usr/oracle/app/oradata/orcl/users01.dbf
input datafile file number=00008 name=/home/oracle/data/default_tablespace.dbf
input datafile file number=00003 name=/usr/oracle/app/oradata/orcl/undotbs01.dbf
input datafile file number=00002 name=/usr/oracle/app/oradata/orcl/sysaux01.dbf
channel ORA_DISK_1: starting piece 1 at 30-MAY-17
channel ORA_DISK_1: finished piece 1 at 30-MAY-17
piece handle=/usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqmfgv_.bkp tag=TAG20170530T105100 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:01:26
Finished backup at 30-MAY-17
Starting Control File and SPFILE Autobackup at 30-MAY-17
piece handle=/usr/oracle/app/flash_recovery_area/ORCL/autobackup/2017_05_30/o1_mf_s_945338539_dlsqp4yv_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 30-MAY-17
以上備份信息可以看出,RMAN將數(shù)據(jù)文件備份在目錄/usr/oracle/app/flash_recovery_area/ORCL/backupset/下,將控制文件與服務(wù)器參數(shù)文件備份在/usr/oracle/app/flash_recovery_area/ORCL/autobackup/下。這里需要注意如果想要RMAN在整庫備份時自動備份控制文件與服務(wù)器參數(shù)文件,需要設(shè)置參數(shù)
configure controlfile autobackup的值為on:?configure controlfile autobackup on;
RMAN> configure controlfile autobackup on;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
此時使用RMAN完成了整個數(shù)據(jù)庫的脫機備份。
備份完成之后用scott用戶創(chuàng)建一個測試表,插入一條數(shù)據(jù),等恢復(fù)完成之后看這個表是否還存在。
create table t_test1(id number, name varchar2(50));
insert into t_test1(id, name)
values(1,'latiny1');
commit;
非歸檔模式下實現(xiàn)脫機備份恢復(fù)
為了測試?yán)妹摍C備份文件完全恢復(fù)數(shù)據(jù)庫,我們刪除部分?jǐn)?shù)據(jù)文件、全部控制文件模擬數(shù)據(jù)庫文件丟失,然后進(jìn)行恢復(fù)。
[root@oracledb orcl]# ls -l
total 4867456
-rw-r----- 1 oracle oinstall 524296192 May 30 12:12 APSALU3_DATA.dbf
-rw-r----- 1 oracle oinstall 9748480 May 30 14:48 control01.ctl
-rw-r----- 1 oracle oinstall 2147491840 May 30 12:12 CTRR_DATA.dbf
-rwxrwxr-x 1 oracle oinstall 52429312 May 30 14:48 redo01.log
-rwxrwxr-x 1 oracle oinstall 52429312 May 30 12:12 redo02.log
-rwxrwxr-x 1 oracle oinstall 52429312 May 30 12:12 redo03.log
-rwxrwxr-x 1 oracle oinstall 660611072 May 30 14:48 sysaux01.dbf
-rwxrwxr-x 1 oracle oinstall 754982912 May 30 14:48 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 Mar 23 10:52 temp01.dbf
-rwxrwxr-x 1 oracle oinstall 723525632 May 30 14:48 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 May 30 12:12 users01.dbf
?首先關(guān)閉數(shù)據(jù)庫,然后刪除users01.dbf、CTRR_DATA.dbf、control01.ctl、APSALU3_DATA.dbf,然后啟動數(shù)據(jù)庫:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 450953216 bytes
Fixed Size 2214256 bytes
Variable Size 339740304 bytes
Database Buffers 104857600 bytes
Redo Buffers 4141056 bytes
ORA-00205: error in identifying control file, check alert log for more info
由于控制文件丟失,數(shù)據(jù)庫無法啟動到mount狀態(tài),先恢復(fù)控制文件再啟動,恢復(fù)控制文件需要指定控制文件對應(yīng)的備份文件路勁,之前的備份信息里可以獲取得到:
RMAN> restore controlfile from '/usr/oracle/app/flash_recovery_area/ORCL/autobackup/2017_05_30/o1_mf_s_945338539_dlsqp4yv_.bkp';
Starting restore at 30-MAY-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/usr/oracle/app/oradata/orcl/control01.ctl
output file name=/usr/oracle/app/flash_recovery_area/orcl/control02.ctl
Finished restore at 30-MAY-17
控制文件恢復(fù)成功之后啟動數(shù)據(jù)庫到mount狀態(tài):
SQL> alter database mount;
Database altered.
啟動到mount狀態(tài)之后,在RMAN模式下恢復(fù)數(shù)據(jù)文件:
RMAN> restore database;
Starting restore at 30-MAY-17
released channel: ORA_DISK_1
Starting implicit crosscheck backup at 30-MAY-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
Crosschecked 11 objects
Finished implicit crosscheck backup at 30-MAY-17
Starting implicit crosscheck copy at 30-MAY-17
using channel ORA_DISK_1
Finished implicit crosscheck copy at 30-MAY-17
searching for all files in the recovery area
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /usr/oracle/app/flash_recovery_area/ORCL/autobackup/2017_05_30/o1_mf_s_945338539_dlsqp4yv_.bkp
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /usr/oracle/app/oradata/orcl/CTRR_DATA.dbf
channel ORA_DISK_1: restoring datafile 00007 to /home/oracle/data/CTRR_DATA_1.dbf
channel ORA_DISK_1: reading from backup piece /usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqjoft_.bkp
channel ORA_DISK_1: ORA-19870: error while restoring backup piece /usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqjoft_.bkp
ORA-19502: write error on file "/usr/oracle/app/oradata/orcl/CTRR_DATA.dbf", block number 216192 (block size=8192)
ORA-27072: File I/O error
Linux-x86_64 Error: 25: Inappropriate ioctl for device
Additional information: 4
Additional information: 216192
Additional information: 6963
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00006 to /usr/oracle/app/oradata/orcl/APSALU3_DATA.dbf
channel ORA_DISK_1: restoring datafile 00009 to /home/oracle/data/rman_ts1.dbf
channel ORA_DISK_1: reading from backup piece /usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqmdbx_.bkp
channel ORA_DISK_1: piece handle=/usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqmdbx_.bkp tag=TAG20170530T105100
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:25
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /usr/oracle/app/oradata/orcl/system01.dbf
channel ORA_DISK_1: restoring datafile 00002 to /usr/oracle/app/oradata/orcl/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /usr/oracle/app/oradata/orcl/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /usr/oracle/app/oradata/orcl/users01.dbf
channel ORA_DISK_1: restoring datafile 00008 to /home/oracle/data/default_tablespace.dbf
channel ORA_DISK_1: reading from backup piece /usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqmfgv_.bkp
channel ORA_DISK_1: piece handle=/usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqmfgv_.bkp tag=TAG20170530T105100
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:02:25
failover to previous backup
creating datafile file number=5 name=/usr/oracle/app/oradata/orcl/CTRR_DATA.dbf
Finished restore at 30-MAY-17
? 其他文件正常恢復(fù),CTRR_DATA.dbf數(shù)據(jù)文件時遇到錯誤:
ORA-19502: write error on file "/usr/oracle/app/oradata/orcl/CTRR_DATA.dbf", block number 216192 (block size=8192)
ORA-27072: File I/O error
Linux-x86_64 Error: 25: Inappropriate ioctl for device
查了一下錯誤原因,發(fā)現(xiàn)因為此數(shù)據(jù)文件較大恢復(fù)時導(dǎo)致磁盤空間不足引起的,于是刪除一些文件釋放磁盤重新執(zhí)行命令恢復(fù)成功:
RMAN> restore database;
Starting restore at 30-MAY-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
skipping datafile 1; already restored to file /usr/oracle/app/oradata/orcl/system01.dbf
skipping datafile 2; already restored to file /usr/oracle/app/oradata/orcl/sysaux01.dbf
skipping datafile 3; already restored to file /usr/oracle/app/oradata/orcl/undotbs01.dbf
skipping datafile 4; already restored to file /usr/oracle/app/oradata/orcl/users01.dbf
skipping datafile 8; already restored to file /home/oracle/data/default_tablespace.dbf
skipping datafile 7; already restored to file /home/oracle/data/CTRR_DATA_1.dbf
skipping datafile 6; already restored to file /usr/oracle/app/oradata/orcl/APSALU3_DATA.dbf
skipping datafile 9; already restored to file /home/oracle/data/rman_ts1.dbf
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /usr/oracle/app/oradata/orcl/CTRR_DATA.dbf
channel ORA_DISK_1: reading from backup piece /usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqjoft_.bkp
channel ORA_DISK_1: piece handle=/usr/oracle/app/flash_recovery_area/ORCL/backupset/2017_05_30/o1_mf_nnndf_TAG20170530T105100_dlsqjoft_.bkp tag=TAG20170530T105100
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:02:26
Finished restore at 30-MAY-17
然后去之前存放數(shù)據(jù)文件、控制文件的目錄下看一下文件是否都恢復(fù)成功:
[root@oracledb orcl]# ls -l
total 4867456
-rw-r----- 1 oracle oinstall 524296192 May 30 12:12 APSALU3_DATA.dbf
-rw-r----- 1 oracle oinstall 9748480 May 30 14:48 control01.ctl
-rw-r----- 1 oracle oinstall 2147491840 May 30 12:12 CTRR_DATA.dbf
-rwxrwxr-x 1 oracle oinstall 52429312 May 30 14:48 redo01.log
-rwxrwxr-x 1 oracle oinstall 52429312 May 30 12:12 redo02.log
-rwxrwxr-x 1 oracle oinstall 52429312 May 30 12:12 redo03.log
-rwxrwxr-x 1 oracle oinstall 660611072 May 30 14:48 sysaux01.dbf
-rwxrwxr-x 1 oracle oinstall 754982912 May 30 14:48 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 Mar 23 10:52 temp01.dbf
-rwxrwxr-x 1 oracle oinstall 723525632 May 30 14:48 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 May 30 12:12 users01.dbf
使用recover 命令恢復(fù)數(shù)據(jù)庫,由于是脫機備份恢復(fù)不使用重做日志恢復(fù)模式:
RMAN> recover database noredo;
Starting recover at 30-MAY-17
using channel ORA_DISK_1
Finished recover at 30-MAY-17
然后打開數(shù)據(jù)庫到open狀態(tài):
SQL> alter database open resetlogs;
Database altered.
查看備份之后scott用戶創(chuàng)建的表,已經(jīng)不存在了,自備份之后的數(shù)據(jù)全部丟失。
2 脫機備份之后,對于RMAN備份有了初步的了解,相對于傳統(tǒng)的用戶手動管理備份文件,RMAN備份操作起來相對要簡單方便的多,但是聯(lián)機備份相對脫機備份操作要復(fù)雜,需要掌握的地方稍微多些。
2.1 RMAN 的配置參數(shù)
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
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 '%F'; # default
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 ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/usr/oracle/app/product/11.2.0/dbhome_1/dbs/snapcf_orcl.f'; # default
CONFIGURE RETENTION POLICY TO REDUNDANCY 1: 該參數(shù)說明保留備份文件的副本數(shù)量,如果每天都備份一個數(shù)據(jù)文件,參數(shù)1說明只保留一個該數(shù)據(jù)文件的副本,并且保留最新的副本。
CONFIGURE DEFAULT DEVICE TYPE TO DISK: 該配置參數(shù)說明備份的數(shù)據(jù)文件默認(rèn)備份到數(shù)據(jù)庫服務(wù)器的磁盤上,該參數(shù)可以更改為備份到磁帶上。?
CONFIGURE BACKUP OPTIMIZATION OFF:默認(rèn)值為關(guān)閉,如果打開,rman將對備份的數(shù)據(jù)文件及歸檔等文件進(jìn)行一種優(yōu)化的算法。
CONFIGURE CONTROLFILE AUTOBACKUP ON:默認(rèn)值為關(guān)閉,強制數(shù)據(jù)庫在備份文件或者執(zhí)行改變數(shù)據(jù)庫結(jié)構(gòu)的命令之后將控制文件自動備份。
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET:?配置數(shù)據(jù)庫設(shè)備類型的并行度,并行的數(shù)目決定了開啟通道的個數(shù)。
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F':配置控制文件的備份片的路徑和格式,比如:configure controlfile autobackup format for device type disk to 'e:\backupcontrol\%F';
2.2 快閃恢復(fù)區(qū)
使用RMAN聯(lián)機備份前,必須先設(shè)置快閃恢復(fù)區(qū),將DB_RECOVERY_FILE_DEST參數(shù)指定的目錄作為歸檔重做日志備份的默認(rèn)路勁,并且快閃恢復(fù)區(qū)的尺寸設(shè)置足夠大。
SQL> show parameter db_recovery_file_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /usr/oracle/app/flash_recovery
_area
db_recovery_file_dest_size big integer 3882M
2.3 歸檔模式
RMAN聯(lián)機備份需要數(shù)據(jù)庫處于歸檔模式,關(guān)閉數(shù)據(jù)庫,啟動到mount狀態(tài),修改數(shù)據(jù)為歸檔模式
SQL> alter database archivelog;
Database altered.
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 1
SQL> alter database open;
Database altered.
SQL>
2.4 恢復(fù)目錄
恢復(fù)目錄是RMAN專用的備份信息存儲地,沒有恢復(fù)目錄時,RMAN相關(guān)的備份信息,比如歸檔文件路徑、備份集路徑等均存儲在目標(biāo)數(shù)據(jù)庫的控制文件中,考慮到控制文件并不能無限增長,而且控制文件也不僅僅是用來存儲與備份相關(guān)的信息,當(dāng)待備份的數(shù)據(jù)庫注冊到恢復(fù)目錄之后,RMAN相關(guān)的信息除了保存在控制文件中外(控制文件實際上只保存一部分),更加詳細(xì)的信息就都被存儲在恢復(fù)目錄中。
(1) 恢復(fù)目錄創(chuàng)建過程,管理員賬戶登錄到數(shù)據(jù)庫
create tablespace rman_ts datafile '/home/oracle/data/rman_ts1.dbf'
size 2G
autoextend on next 500M
maxsize 6G;
create user rman_reuser identified by 123456
default tablespace rman_ts
temporary tablespace temp02;
grant connect, resource, recovery_catalog_owner to rman_reuser;
創(chuàng)建完表空間與用戶之后,登錄到RMAN模式下創(chuàng)建恢復(fù)目錄rman_ts,注意名字與表空間一樣
RMAN>create catalog tablespace rman_ts;
注冊數(shù)據(jù)庫
RMAN>register database;
備份信息是否記入CATALOG取決于執(zhí)行RMAN操作時是否連接到了CATALOG,也就是說,即使目標(biāo)數(shù)據(jù)庫已經(jīng)注冊到恢復(fù)目錄中,但連接時沒有以CATALOG模式連接,則備份信息仍然是只存入目標(biāo)端數(shù)據(jù)庫的控制文件,相當(dāng)于NOCATALOG模式。
使用CATALOG模式連接RMAN:
[oracle@oracledb ~]$ rman target/ catalog rman_reuser/XXXXXX;
Recovery Manager: Release 11.2.0.1.0 - Production on Tue May 30 17:53:46 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1452257309)
connected to recovery catalog database
設(shè)置備份文件保存路勁:/home/oracle/oradata/backup
RMAN> configure channel device type disk format '/home/oracle/oradata/backup/data_%d_%M_%U';
old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/oracle/oradata/backup/%d_%M_%D';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/oracle/oradata/backup/data_%d_%M_%U';
new RMAN configuration parameters are successfully stored
starting full resync of recovery catalog
full resync complete
設(shè)置控制文件默認(rèn)的存放位置:/home/oracle/oradata/backup/
RMAN> configure controlfile autobackup format for device type disk to '/home/oracle/oradata/backup/ctl_%d_%M_%F';
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/oradata/backup/ctl_%d_%M_%F';
new RMAN configuration parameters are successfully stored
starting full resync of recovery catalog
full resync complete
到此聯(lián)機備份準(zhǔn)備工作完成。
3 聯(lián)機備份與恢復(fù)
? 3.1 聯(lián)機備份整個數(shù)據(jù)庫
默認(rèn)備份,不顯示指定任何參數(shù)
RMAN> backup as compressed backupset database plus archivelog delete all input;
Starting backup at 30-MAY-17
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=45 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=41 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=44 device type=DISK
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=1 RECID=7 STAMP=945368451
channel ORA_DISK_1: starting piece 1 at 30-MAY-17
channel ORA_DISK_1: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/0es5ibcf_1_1_ORCL tag=TAG20170530T182102 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_1: deleting archived log(s)
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_05_30/o1_mf_1_1_dltktmly_.arc RECID=7 STAMP=945368451
Finished backup at 30-MAY-17
Starting backup at 30-MAY-17
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/usr/oracle/app/oradata/orcl/CTRR_DATA.dbf
input datafile file number=00007 name=/home/oracle/data/CTRR_DATA_1.dbf
channel ORA_DISK_1: starting piece 1 at 30-MAY-17
channel ORA_DISK_2: starting compressed full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00009 name=/home/oracle/data/rman_ts1.dbf
input datafile file number=00003 name=/usr/oracle/app/oradata/orcl/undotbs01.dbf
input datafile file number=00002 name=/usr/oracle/app/oradata/orcl/sysaux01.dbf
channel ORA_DISK_2: starting piece 1 at 30-MAY-17
channel ORA_DISK_3: starting compressed full datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00001 name=/usr/oracle/app/oradata/orcl/system01.dbf
input datafile file number=00004 name=/usr/oracle/app/oradata/orcl/users01.dbf
input datafile file number=00008 name=/home/oracle/data/default_tablespace.dbf
channel ORA_DISK_3: starting piece 1 at 30-MAY-17
channel ORA_DISK_2: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/0gs5ibde_1_1_ORCL tag=TAG20170530T182130 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:06:28
channel ORA_DISK_2: starting compressed full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00006 name=/usr/oracle/app/oradata/orcl/APSALU3_DATA.dbf
channel ORA_DISK_2: starting piece 1 at 30-MAY-17
channel ORA_DISK_2: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/0is5ibpk_1_1_ORCL tag=TAG20170530T182130 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_3: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/0hs5ibde_1_1_ORCL tag=TAG20170530T182130 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:06:55
channel ORA_DISK_1: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/0fs5ibde_1_1_ORCL tag=TAG20170530T182130 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:07:37
Finished backup at 30-MAY-17
Starting backup at 30-MAY-17
current log archived
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=8 STAMP=945368952
channel ORA_DISK_1: starting piece 1 at 30-MAY-17
channel ORA_DISK_1: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/0js5ibrs_1_1_ORCL tag=TAG20170530T182916 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=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_05_30/o1_mf_1_2_dltlcr44_.arc RECID=8 STAMP=945368952
Finished backup at 30-MAY-17
Starting Control File and SPFILE Autobackup at 30-MAY-17
piece handle=/usr/oracle/app/flash_recovery_area/ORCL/autobackup/2017_05_30/o1_mf_s_945368958_dltlcyvy_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 30-MAY-17
以上備份信息得出兩個結(jié)論:數(shù)據(jù)文件備份到了RMAN 配置參數(shù)?configure channel device type disk format '/home/oracle/oradata/backup/%U_%d' 配置的路勁下,
控制文件,歸檔日志文件備份到了參數(shù)db_recovery_file_dest 對應(yīng)的閃回區(qū)/usr/oracle/app/flash_recovery_area/ORCL下。
使用更細(xì)節(jié)的配置命令,將數(shù)據(jù)文件,控制文件,歸檔日志備份到同一指定的目錄下:
run
{
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup database format '/home/oracle/oradata/backup/Data_%d_%M_%U'
plus archivelog format '/home/oracle/oradata/backup/log_%d_%M_%U';
release channel ch1;
release channel ch2;
}
allocated channel: ch1
channel ch1: SID=39 device type=DISK
allocated channel: ch2
channel ch2: SID=40 device type=DISK
Starting backup at 30-MAY-17
current log archived
channel ch1: starting archived log backup set
channel ch1: specifying archived log(s) in backup set
input archived log thread=1 sequence=3 RECID=9 STAMP=945378795
input archived log thread=1 sequence=4 RECID=10 STAMP=945381016
input archived log thread=1 sequence=5 RECID=11 STAMP=945381246
channel ch1: starting piece 1 at 30-MAY-17
channel ch2: starting archived log backup set
channel ch2: specifying archived log(s) in backup set
input archived log thread=1 sequence=6 RECID=12 STAMP=945382431
channel ch2: starting piece 1 at 30-MAY-17
channel ch1: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/log_ORCL_05_12s5ir4g_1_1 tag=TAG20170530T224952 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:08
channel ch1: starting archived log backup set
channel ch1: specifying archived log(s) in backup set
input archived log thread=1 sequence=7 RECID=13 STAMP=945384591
channel ch1: starting piece 1 at 30-MAY-17
channel ch2: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/log_ORCL_05_13s5ir4g_1_1 tag=TAG20170530T224952 comment=NONE
channel ch2: backup set complete, elapsed time: 00:00:07
channel ch1: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/log_ORCL_05_14s5ir4o_1_1 tag=TAG20170530T224952 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:01
Finished backup at 30-MAY-17
Starting backup at 30-MAY-17
channel ch1: starting full datafile backup set
channel ch1: specifying datafile(s) in backup set
input datafile file number=00005 name=/usr/oracle/app/oradata/orcl/CTRR_DATA.dbf
input datafile file number=00007 name=/home/oracle/data/CTRR_DATA_1.dbf
channel ch1: starting piece 1 at 30-MAY-17
channel ch2: starting full datafile backup set
channel ch2: specifying datafile(s) in backup set
input datafile file number=00009 name=/home/oracle/data/rman_ts1.dbf
input datafile file number=00006 name=/usr/oracle/app/oradata/orcl/APSALU3_DATA.dbf
channel ch2: starting piece 1 at 30-MAY-17
channel ch2: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/data_ORCL_05_16s5ir4q_1_1 tag=TAG20170530T225001 comment=NONE
channel ch2: backup set complete, elapsed time: 00:00:07
channel ch2: starting full datafile backup set
channel ch2: specifying datafile(s) in backup set
input datafile file number=00001 name=/usr/oracle/app/oradata/orcl/system01.dbf
input datafile file number=00004 name=/usr/oracle/app/oradata/orcl/users01.dbf
input datafile file number=00008 name=/home/oracle/data/default_tablespace.dbf
input datafile file number=00003 name=/usr/oracle/app/oradata/orcl/undotbs01.dbf
input datafile file number=00002 name=/usr/oracle/app/oradata/orcl/sysaux01.dbf
channel ch2: starting piece 1 at 30-MAY-17
channel ch2: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/data_ORCL_05_17s5ir51_1_1 tag=TAG20170530T225001 comment=NONE
channel ch2: backup set complete, elapsed time: 00:05:19
channel ch1: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/data_ORCL_05_15s5ir4q_1_1 tag=TAG20170530T225001 comment=NONE
channel ch1: backup set complete, elapsed time: 00:05:56
Finished backup at 30-MAY-17
Starting backup at 30-MAY-17
current log archived
channel ch1: starting archived log backup set
channel ch1: specifying archived log(s) in backup set
input archived log thread=1 sequence=8 RECID=14 STAMP=945384958
channel ch1: starting piece 1 at 30-MAY-17
channel ch1: finished piece 1 at 30-MAY-17
piece handle=/home/oracle/oradata/backup/log_ORCL_05_18s5irg0_1_1 tag=TAG20170530T225600 comment=NONE
channel ch1: backup set complete, elapsed time: 00:00:01
Finished backup at 30-MAY-17
Starting Control File and SPFILE Autobackup at 30-MAY-17
piece handle=/home/oracle/oradata/backup/ctl_ORCL_05_c-1452257309-20170530-04 comment=NONE
Finished Control File and SPFILE Autobackup at 30-MAY-17
released channel: ch1
released channel: ch2
至此聯(lián)機備份整個數(shù)據(jù)庫完成,我們可以看一下備份文件目錄下是否有備份信息顯示的文件
[oracle@oracledb ~]$ cd /home/oracle/oradata/backup
[oracle@oracledb backup]$ ls -l
total 2837192
-rw-r----- 1 oracle oinstall 9830400 May 30 22:56 ctl_ORCL_05_c-1452257309-20170530-04
-rw-r----- 1 oracle oinstall 1678073856 May 30 22:55 data_ORCL_05_15s5ir4q_1_1
-rw-r----- 1 oracle oinstall 6529024 May 30 22:50 data_ORCL_05_16s5ir4q_1_1
-rw-r----- 1 oracle oinstall 1169031168 May 30 22:55 data_ORCL_05_17s5ir51_1_1
-rw-r----- 1 oracle oinstall 13558784 May 30 22:49 log_ORCL_05_12s5ir4g_1_1
-rw-r----- 1 oracle oinstall 25548800 May 30 22:49 log_ORCL_05_13s5ir4g_1_1
-rw-r----- 1 oracle oinstall 2192384 May 30 22:50 log_ORCL_05_14s5ir4o_1_1
-rw-r----- 1 oracle oinstall 503808 May 30 22:56 log_ORCL_05_18s5irg0_1_1
? 3.2 ?非系統(tǒng)表空間數(shù)據(jù)文件損壞恢復(fù)
(1) 數(shù)據(jù)庫運行在歸檔模式下,表空間users的數(shù)據(jù)文件損壞,有完整的備份,當(dāng)前以及歸檔的日志完好。
先做當(dāng)前數(shù)據(jù)的變化測試,使用scott用戶給測試表添加數(shù)據(jù)。
insert into t_test1(id, name)
select 2,'latiny2' from dual;
commit;
關(guān)閉數(shù)據(jù)庫,刪除users01.dbf 數(shù)據(jù)文件,重啟再數(shù)據(jù)庫
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 450953216 bytes
Fixed Size 2214256 bytes
Variable Size 343934608 bytes
Database Buffers 100663296 bytes
Redo Buffers 4141056 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/usr/oracle/app/oradata/orcl/users01.dbf'
數(shù)據(jù)庫啟動失敗,因為users01.dbf 文件已損壞(手動刪除),為了啟動成功將損壞的數(shù)據(jù)文件先offline 再打開,此時嘗試訪問scott.t_test1顯示對應(yīng)的數(shù)據(jù)文件
無法訪問。
SQL> alter database datafile 4 offline;
Database altered.
SQL> alter database open;
Database altered.
(2) 恢復(fù)數(shù)據(jù)文件
在rman 模式下恢復(fù)損壞的數(shù)據(jù)文件
RMAN> restore datafile 4;
Starting restore at 06-JUN-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=32 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=26 device type=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=40 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00004 to /usr/oracle/app/oradata/orcl/users01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/oradata/backup/data_ORCL_05_17s5ir51_1_1
channel ORA_DISK_1: piece handle=/home/oracle/oradata/backup/data_ORCL_05_17s5ir51_1_1 tag=TAG20170530T225001
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
Finished restore at 06-JUN-17
RMAN> recover datafile 4;
Starting recover at 06-JUN-17
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
starting media recovery
archived log for thread 1 with sequence 8 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_05_30/o1_mf_1_8_dlv1zyxk_.arc
archived log for thread 1 with sequence 9 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_9_dm23lqhh_.arc
archived log for thread 1 with sequence 10 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_10_dm23nl59_.arc
archived log for thread 1 with sequence 11 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_06/o1_mf_1_11_dmd9d6b5_.arc
archived log for thread 1 with sequence 12 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_06/o1_mf_1_12_dmd9gtql_.arc
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_05_30/o1_mf_1_8_dlv1zyxk_.arc thread=1 sequence=8
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_9_dm23lqhh_.arc thread=1 sequence=9
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_10_dm23nl59_.arc thread=1 sequence=10
media recovery complete, elapsed time: 00:00:02
Finished recover at 06-JUN-17
數(shù)據(jù)文件恢復(fù)成功,將數(shù)據(jù)文件online
SQL> alter database datafile 4 online;
Database altered.
此時可以訪問scott.t_test1,之前新增的數(shù)據(jù)也在其中。
3.3 系統(tǒng)表空間損壞恢復(fù)
系統(tǒng)表空間損壞,但是控制文件與日志文件完好
(1)刪除系統(tǒng)表空間,實驗表空間損壞,關(guān)閉數(shù)據(jù)庫刪除文件之后重啟數(shù)據(jù)庫報錯
SQL> shutdown immdiate;
SP2-0717: illegal SHUTDOWN option
SQL> shutdown immediate;
\Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
SP2-0042: unknown command "\startup" - rest of line ignored.
SQL> startup
ORACLE instance started.
Total System Global Area 450953216 bytes
Fixed Size 2214256 bytes
Variable Size 348128912 bytes
Database Buffers 96468992 bytes
Redo Buffers 4141056 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/usr/oracle/app/oradata/orcl/system01.dbf'
(2) 將數(shù)據(jù)文件offline 然后rman模式下恢復(fù)數(shù)據(jù)文件
SQL> alter database datafile 1 offline;
Database altered.
RMAN> restore datafile 1;
Starting restore at 06-JUN-17
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /usr/oracle/app/oradata/orcl/system01.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/oradata/backup/data_ORCL_05_17s5ir51_1_1
channel ORA_DISK_1: piece handle=/home/oracle/oradata/backup/data_ORCL_05_17s5ir51_1_1 tag=TAG20170530T225001
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:15
Finished restore at 06-JUN-17
RMAN> recover datafile 1;
Starting recover at 06-JUN-17
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
starting media recovery
archived log for thread 1 with sequence 8 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_05_30/o1_mf_1_8_dlv1zyxk_.arc
archived log for thread 1 with sequence 9 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_9_dm23lqhh_.arc
archived log for thread 1 with sequence 10 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_10_dm23nl59_.arc
archived log for thread 1 with sequence 11 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_06/o1_mf_1_11_dmd9d6b5_.arc
archived log for thread 1 with sequence 12 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_06/o1_mf_1_12_dmd9gtql_.arc
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_05_30/o1_mf_1_8_dlv1zyxk_.arc thread=1 sequence=8
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_9_dm23lqhh_.arc thread=1 sequence=9
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_02/o1_mf_1_10_dm23nl59_.arc thread=1 sequence=10
media recovery complete, elapsed time: 00:00:05
Finished recover at 06-JUN-17
SQL> alter database datafile 1 online;
Database altered.
數(shù)據(jù)庫啟動成功
SQL> alter database open;
Database altered.
SQL>
3.4 全部數(shù)據(jù)文件丟失
關(guān)閉數(shù)據(jù)庫刪除全部文件,重啟數(shù)據(jù)庫。
[oracle@oracledb orcl]$ ls -l
total 4877952
-rw-r----- 1 oracle oinstall 524296192 Jun 15 14:54 APSALU3_DATA.dbf
-rw-r----- 1 oracle oinstall 10010624 Jun 15 14:54 control01.ctl
-rw-r----- 1 oracle oinstall 2147491840 Jun 15 14:54 CTRR_DATA.dbf
-rw-r----- 1 oracle oinstall 52429312 Jun 15 14:54 redo01.log
-rw-r----- 1 oracle oinstall 52429312 Jun 15 13:54 redo02.log
-rw-r----- 1 oracle oinstall 52429312 Jun 15 13:55 redo03.log
-rw-r----- 1 oracle oinstall 660611072 Jun 15 14:54 sysaux01.dbf
-rw-r----- 1 oracle oinstall 765468672 Jun 15 14:54 system01.dbf
-rw-r----- 1 oracle oinstall 20979712 Jun 12 21:53 temp01.dbf
-rw-r----- 1 oracle oinstall 723525632 Jun 15 14:54 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 Jun 15 14:54 users01.dbf
[oracle@oracledb orcl]$ rm *;
[oracle@oracledb orcl]$ ls -l
total 0
[oracle@oracledb orcl]$
?數(shù)據(jù)庫只能啟動到nomount狀態(tài)下,啟動到mount下報錯,因為沒有控制文件
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 450953216 bytes
Fixed Size 2214256 bytes
Variable Size 360711824 bytes
Database Buffers 83886080 bytes
Redo Buffers 4141056 bytes
SQL> alter database mount;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying control file, check alert log for more info
SQL>
先退出RMAN然后重新登錄,登錄之后恢復(fù)控制文件
[oracle@oracledb ~]$ rman target/
Recovery Manager: Release 11.2.0.1.0 - Production on Thu Jun 15 15:01:13 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (not mounted)
RMAN> restore controlfile from '/home/oracle/oradata/backup/control/ctl_ORCL_06_15_c-1452257309-20170615-05';
Starting restore at 15-JUN-17
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:16
output file name=/usr/oracle/app/oradata/orcl/control01.ctl
output file name=/usr/oracle/app/flash_recovery_area/orcl/control02.ctl
Finished restore at 15-JUN-17
RMAN>
控制文件恢復(fù)成功之后,啟動數(shù)據(jù)庫到mount狀態(tài)下
SQL> alter database mount;
Database altered.
SQL>
RMAN下恢復(fù)數(shù)據(jù)庫, restore databse;
RMAN> restore database;
Starting restore at 15-JUN-17
released channel: ORA_DISK_1
Starting implicit crosscheck backup at 15-JUN-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=20 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=21 device type=DISK
Crosschecked 22 objects
Crosschecked 20 objects
Finished implicit crosscheck backup at 15-JUN-17
Starting implicit crosscheck copy at 15-JUN-17
using channel ORA_DISK_1
using channel ORA_DISK_2
Finished implicit crosscheck copy at 15-JUN-17
searching for all files in the recovery area
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_5_dn4cr5pm_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_6_dn4cr5qn_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_3_dn4cr5m9_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_2_dn4cr7kx_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_9_dn4crbvg_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_1_dn4cr7l6_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_7_dn4cr5mj_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_8_dn4cr8qp_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_4_dn4cr5vc_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_12/o1_mf_1_4_dmwg5bjo_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_12/o1_mf_1_2_dmw48n0t_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_12/o1_mf_1_1_dmw454w6_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_12/o1_mf_1_3_dmwfk7mt_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_12/o1_mf_1_4_dmxdm4cm_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_12/o1_mf_1_3_dmxcfz0q_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_5_dn43mxcl_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_1_dn3zoqo8_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_7_dn4857f0_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_4_dn42j321_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_6_dn43t9pc_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_2_dn3zqofd_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_8_dn489j4x_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_3_dn4265mf_.arc
File Name: /usr/oracle/app/flash_recovery_area/ORCL/archivelog_backup/2017_06_15/o1_mf_1_9_dn48c07s_.arc
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00006 to /usr/oracle/app/oradata/orcl/APSALU3_DATA.dbf
channel ORA_DISK_1: restoring datafile 00009 to /home/oracle/data/rman_ts1.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/oradata/backup/data/data2_ORCL_06_39s6rt41_1_1
channel ORA_DISK_2: starting datafile backup set restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
channel ORA_DISK_2: restoring datafile 00001 to /usr/oracle/app/oradata/orcl/system01.dbf
channel ORA_DISK_2: restoring datafile 00002 to /usr/oracle/app/oradata/orcl/sysaux01.dbf
channel ORA_DISK_2: restoring datafile 00003 to /usr/oracle/app/oradata/orcl/undotbs01.dbf
channel ORA_DISK_2: restoring datafile 00004 to /usr/oracle/app/oradata/orcl/users01.dbf
channel ORA_DISK_2: restoring datafile 00008 to /home/oracle/data/default_tablespace.dbf
channel ORA_DISK_2: reading from backup piece /home/oracle/oradata/backup/data/data2_ORCL_06_3as6rt44_1_1
channel ORA_DISK_1: piece handle=/home/oracle/oradata/backup/data/data2_ORCL_06_39s6rt41_1_1 tag=TAG20170615T123512
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:05:50
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /usr/oracle/app/oradata/orcl/CTRR_DATA.dbf
channel ORA_DISK_1: restoring datafile 00007 to /home/oracle/data/CTRR_DATA_1.dbf
channel ORA_DISK_1: reading from backup piece /home/oracle/oradata/backup/data/data1_ORCL_06_38s6rt40_1_1
channel ORA_DISK_2: piece handle=/home/oracle/oradata/backup/data/data2_ORCL_06_3as6rt44_1_1 tag=TAG20170615T123512
channel ORA_DISK_2: restored backup piece 1
channel ORA_DISK_2: restore complete, elapsed time: 00:07:15
channel ORA_DISK_1: piece handle=/home/oracle/oradata/backup/data/data1_ORCL_06_38s6rt40_1_1 tag=TAG20170615T123512
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:03:36
Finished restore at 15-JUN-17
將放在其他目錄下的重做日志復(fù)制到默認(rèn)的目錄下,然后查看,如果只有一份重做日志且丟失,那么此步驟可省略,但是會造成服務(wù)器宕機之后的部分?jǐn)?shù)據(jù)丟失,丟失量取決于未歸檔的重做日志存儲的數(shù)據(jù)量
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/usr/oracle/app/oradata/orcl/redo03.log
/usr/oracle/app/oradata/orcl/redo02.log
/usr/oracle/app/oradata/orcl/redo01.log
/home/oracle/data/redo01_a.log
recover database?
RMAN> recover database;
Starting recover at 15-JUN-17
using channel ORA_DISK_1
using channel ORA_DISK_2
starting media recovery
archived log for thread 1 with sequence 6 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_6_dn4cr5qn_.arc
archived log for thread 1 with sequence 7 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_7_dn4cr5mj_.arc
archived log for thread 1 with sequence 8 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_8_dn4cr8qp_.arc
archived log for thread 1 with sequence 9 is already on disk as file /usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_9_dn4crbvg_.arc
archived log for thread 1 with sequence 10 is already on disk as file /home/oracle/data/redo01_a.log
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_6_dn4cr5qn_.arc thread=1 sequence=6
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_7_dn4cr5mj_.arc thread=1 sequence=7
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_8_dn4cr8qp_.arc thread=1 sequence=8
archived log file name=/usr/oracle/app/flash_recovery_area/ORCL/archivelog/2017_06_15/o1_mf_1_9_dn4crbvg_.arc thread=1 sequence=9
archived log file name=/home/oracle/data/redo01_a.log thread=1 sequence=10
media recovery complete, elapsed time: 00:00:21
Finished recover at 15-JUN-17
SQL> alter database open resetlogs;
Database altered.
至此數(shù)據(jù)庫恢復(fù)完成,注意如果重做日志與數(shù)據(jù)文件,控制文件等一起丟失,沒有備份,在其他磁盤上也沒有做多個重組日志機制,只用備份的歸檔日志恢復(fù)的話,服務(wù)器宕機之后未歸檔的數(shù)據(jù)很可能會丟失,做不到100%的恢復(fù)。
Oracle推薦的數(shù)據(jù)庫備份和恢復(fù)工具是RMAN(恢復(fù)管理器,Recovery Manager)。不是必須要使用RMAN,Oracle支持通過使用操作系統(tǒng)實用程序來創(chuàng)建備份和執(zhí)行恢復(fù),但RMAN有著其它產(chǎn)品無法比擬的功能,以下列舉幾條采用RMAN備份的優(yōu)點:
1、恢復(fù)過程是智能的,不需要考慮用哪些備份文件來恢復(fù),系統(tǒng)自動選擇和管理;
2、支持增量備份,只備份更改的數(shù)據(jù)塊,而不用每次都去做完整備份,可以顯著減少備份花費的時間和空間;
3、支持加密備份,保證備份數(shù)據(jù)的安全性,這對于存儲在可移動設(shè)備上的數(shù)據(jù)備份很有必要;
4、支持靈活選擇的表空間備份、數(shù)據(jù)文件備份、控制文件備份及歸檔日志文件備份等;
5、強大的管理命令和報表功能可以方便的查詢和管理備份;
6、RMAN的備份恢復(fù)操作與OS無關(guān),是跨平臺的。
一、RMAN備份的概念和術(shù)語
用操作系統(tǒng)命令執(zhí)行的備份被稱為用戶管理的備份,而使用RMAN執(zhí)行的備份則被稱為服務(wù)器管理的備份。在執(zhí)行服務(wù)器管理的備份前,總體上需要考慮以下三種備份策略:
關(guān)閉狀態(tài)還是打開狀態(tài)?
全部備份還是局部備份?
完整備份還是增量備份?
關(guān)閉狀態(tài)的備份在數(shù)據(jù)庫關(guān)閉期間執(zhí)行,也稱為冷備份、一致備份、脫機備份,打開狀態(tài)的備份在數(shù)據(jù)庫使用期間執(zhí)行,也稱為熱備份、非一致備份、聯(lián)機備份。打開狀態(tài)的備份只能在數(shù)據(jù)庫處于歸檔日志模式下執(zhí)行。如果數(shù)據(jù)庫處于非歸檔日志模式,則只能進(jìn)行關(guān)閉狀態(tài)的備份。在大部分情況下,局部備份也必須在數(shù)據(jù)庫處于歸檔日志模式下才能進(jìn)行。增量備份可以是累積增量備份(包括自上一次完整備份以來更改的所有塊)或差異增量備份(包括自上一次增量備份以來更改的所有塊)。
RMAN可備份的文件類型為:
數(shù)據(jù)文件
控制文件
服務(wù)器初始化參數(shù)文件spfile
歸檔重做日志文件
備份集片
RMAN不能備份的文件包括:
臨時文件
聯(lián)機重做日志文件
口令文件
靜態(tài)參數(shù)文件pfile
Oracle Net配置文件
RMAN可生成三類備份:
備份集(backup set):備份文件的專用格式,一個備份集文件可包含多個數(shù)據(jù)庫文件的備份;
壓縮備份集(compressed backup set):與備份集內(nèi)容相同,但RMAN在寫出到備份集時將應(yīng)用壓縮算法;
映像副本(image copy):是與輸入文件相同的備份文件,映像副本可與源內(nèi)容立即交換,與備份集文件相比,還原時不需要從備份集中提取文件。
RMAN備份和還原操作由被稱為通道(channel)的服務(wù)器進(jìn)程執(zhí)行。通道可分為磁盤類型(可訪問磁盤上的備份)或SBT_TAPE類型(可訪問磁帶上的備份)。
RMAN存儲庫(repository)是有關(guān)備份的元數(shù)據(jù),存儲庫一般保存在目標(biāo)數(shù)據(jù)庫的控制文件中,也可以保存在被稱為目錄數(shù)據(jù)庫中的一組表中。當(dāng)進(jìn)行多個不同數(shù)據(jù)庫的備份時,可單獨構(gòu)建一個目錄數(shù)據(jù)庫來存儲RMAN備份的元數(shù)據(jù)。
RMAN操作由RMAN可執(zhí)行程序啟動、監(jiān)視和控制,可有三種連接數(shù)據(jù)庫的方式:
目標(biāo)數(shù)據(jù)庫(target):需要備份、還原和恢復(fù)的數(shù)據(jù)庫;
目錄數(shù)據(jù)庫(catalog):用于備份多個目標(biāo)數(shù)據(jù)庫;
輔助數(shù)據(jù)庫(auxiliary):通過目標(biāo)數(shù)據(jù)庫的備份創(chuàng)建的數(shù)據(jù)庫。
二、服務(wù)器管理的脫機備份
服務(wù)器管理的脫機備份是在數(shù)據(jù)庫關(guān)閉后執(zhí)行的備份,也稱為冷備份、一致備份。對于非歸檔日志模式的數(shù)據(jù)庫,備份時只能采用此模式。
只有數(shù)據(jù)庫處于加載模式時才能執(zhí)行RMAN一致備份。其原因在于,RMAN需要讀取控制文件,以便查找數(shù)據(jù)文件。如果在加載模式下嘗試執(zhí)行用戶管理的操作系統(tǒng)備份,則將無效,因為在加載模式中,當(dāng)復(fù)制控制文件時可能已對控制文件執(zhí)行了寫操作,這樣一來副本就變的不一致了,因而失去了作用。RMAN通過獲取控制文件的讀一致性快照并對其進(jìn)行備份,避免此問題的發(fā)生。
有三種使用RMAN的技術(shù):
交互界面:用于執(zhí)行即席任務(wù);
腳本接口:通過操作系統(tǒng)的調(diào)度程序運行作業(yè);
Enterprise Manager界面:用于生成腳本,定義由Enterprise Manager調(diào)度的作業(yè)。
典型的脫機-全部-完整備份的腳本如下
run {
shutdown immediate;
startup mount;
allocate channel d1 type disk;
backup as compressed backupset database format 'd:\rman_bak\mes\%d_%u_%c_%T';
alter database open;
}
%d:數(shù)據(jù)庫ID;
%u:產(chǎn)生唯一的文件名稱;
%c:第幾份備份;
%T:備份時間。
該腳本首先關(guān)閉數(shù)據(jù)庫實例并重啟到加載模式,之后分配一個磁盤備份的通道(disk表示是磁盤通道,另外還有一種備份通道是磁帶sbt_tape),然后啟動壓縮備份命令完成全庫備份(包括數(shù)據(jù)文件、控制文件和spfile文件的備份),并指定了備份文件的目標(biāo)位置和文件名格式,備份完畢后打開數(shù)據(jù)庫。
如將其保存為腳本文件offline_full_whole.rman,則可調(diào)度如下操作系統(tǒng)命令運行該腳本
rman target sys/hznj2010@mes @offline_full_whole.rman
注意,命令格式中,腳本文件名前面要加上@符號,target表示是連接到目標(biāo)數(shù)據(jù)庫。
也可以分兩步,先用RMAN連接到目標(biāo)數(shù)據(jù)庫,再執(zhí)行腳本文件
C:\Users\Administrator>rman target /
RMAN> @d:\offline_full_whole.rman
在目標(biāo)位置將生成了兩個備份集文件,備份集中包含了所有數(shù)據(jù)文件、控制文件和spfile文件的內(nèi)容。
三、服務(wù)器管理的聯(lián)機備份
在進(jìn)行打開狀態(tài)的備份時,RMAN可能會在DBWn進(jìn)程寫入塊時嘗試復(fù)制文件塊,這將導(dǎo)致斷裂塊。斷裂塊在備份中可能是無用的,因為在其更新時復(fù)制它會導(dǎo)致副本內(nèi)部不一致。RMAN會檢測出現(xiàn)的斷裂塊,并重試塊復(fù)制,直至獲得一致的版本為止。為獲取控制文件的讀一致性版本,RMAN創(chuàng)建控制文件的讀一致性快照副本,這是實際備份的內(nèi)容。
在創(chuàng)建備份集時,RMAN不會備份未使用的塊,這會節(jié)省大量的空間。
典型的聯(lián)機-全部-完整備份的腳本如下
run {
allocate channel d1 type disk;
backup as compressed backupset database format 'd:\rman_bak\mes\%d_%u_%c_%T';
backup as compressed backupset archivelog all delete all input format 'd:\rman_bak\mes\%d_%u_%c_%T';
}
該腳本命令首先分配一個磁盤寫入的通道進(jìn)程,之后第一個backup命令備份整個數(shù)據(jù)庫(數(shù)據(jù)文件?、控制文件及spfile文件),第二個backup命令備份所有的歸檔日志文件,并在備份后將其從磁盤中刪除,進(jìn)而可以釋放磁盤空間。結(jié)果將生成三個備份集文件,備份集中包含了所有數(shù)據(jù)文件、控制文件、spfile文件和歸檔日志文件的內(nèi)容,并且備份完成后自動刪除不必再保留的歸檔日志文件。
RMAN的有些命令可以是即席的,即可以直接在RMAN命令提示符下執(zhí)行,而有些命令則只能在RUN腳本塊中執(zhí)行,如allocate channel命令需要放入腳本塊中執(zhí)行。
備份也可以只針對部分內(nèi)容進(jìn)行,如一個表空間、一個單獨的文件等。
備份一個表空間
RMAN> backup as backupset format 'd:\rman_bak\mes\%d_%u_%c_%T' tablespace cmes;
備份一個數(shù)據(jù)文件,可以指定文件號或文件名
RMAN> backup as backupset format 'd:\rman_bak\mes\%d_%u_%c_%T' datafile 4;
備份一批歸檔日志文件,可以使用通配符%
RMAN> backup as backupset format 'd:\rman_bak\mes\%d_%u_%c_%T' archivelog like 'D:\oradata\mes\archivelog\ARC_752D1AF3_1_882311480_1%';
備份控制文件
RMAN> backup current controlfile format 'e:\rman_bak\mes\control_bak\c_%d_%u_%c_%T';
四、增量備份
增量備份分為差異增量備份和累積增量備份。增量備份依賴于包含所有塊的起點時稱之為增量級別(incremental level)0備份,之后差異增量級別1備份將提取自上一個級別1備份以來更改的所有塊,如果沒有介于其間的級別1備份,則提取自上一個級別0備份以來更改的所有塊。而累積增量備份則始終提取自上一個級別0備份以來更改的所有塊,不考慮其間是否存在任何級別1備份。
執(zhí)行增量級別0備份的RMAN命令如下,備份集將包含所有使用過的塊
RMAN> backup as backupset incremental level 0 database;
以下命令執(zhí)行差異增量級別1備份,該命令提取自上一個級別1備份以來更改的所有塊,如果沒有運行過級別0備份,則第一次執(zhí)行級別1的增量備份實際是執(zhí)行級別0備份
RMAN> backup as backupset incremental level 1 database;
以下命令執(zhí)行累積增量級別1備份,該命令提取自級別0備份以來更改的所有塊
RMAN> backup as backupset incremental level 1 cumulative database;
可以指定大于1的增量級別,但它們沒有效果,支持它們只是為了與老版本的RMAN兼容,因此現(xiàn)在可以不必再使用。
在很多情況下,可能希望增量備份能快一些,這可以通過啟用塊改變跟蹤(block change tracking)來實現(xiàn)。
塊改變跟蹤依賴于啟動一個額外的后臺進(jìn)程:CTWR(Change Tracking Writer,改變跟蹤寫入器)。這個進(jìn)程在改變跟蹤文件中記錄每個已更改的塊的地址。如果啟用了塊改變跟蹤,RMAN將在執(zhí)行增量備份時讀取改變跟蹤文件以確定哪些塊需要備份。這比掃描整個數(shù)據(jù)文件要快的多。
改變跟蹤文件默認(rèn)位置可在初始化參數(shù)db_create_file_dest中指定。它的初始大小為10MB,并以10MB的增量增長。改變跟蹤文件是位圖格式,每位包含32個數(shù)據(jù)塊。啟用塊改變跟蹤會有一個最低的性能開銷,經(jīng)驗表明這并不重要。要啟用塊改變跟蹤并指定跟蹤文件的名稱和位置,可使用以下命令
alter database enable block change tracking using file 'd:\oradata\mes\change_tracking.dbf';
要監(jiān)視塊變更跟蹤的有效性,可查詢視圖v$backup_datafile
col name for a50
col read_radio for a10
select t1.file#, t2.name, t1.datafile_blocks, t1.blocks_read, to_char(round(t1.blocks_read / t1.datafile_blocks, 2) * 100) || '%' read_radio, t1.completion_time
? from v$backup_datafile t1 join v$datafile t2 on (t1.file# = t2.file#) and t1.used_change_tracking = 'YES' and t1.incremental_level > 0 order by file#, completion_time;
???? FILE# NAME?????????????????????????????????????????????? DATAFILE_BLOCKS BLOCKS_READ READ_RADIO COMPLETION_TIME
---------- -------------------------------------------------- --------------- ----------- ---------- -------------------
???????? 1 D:\ORADATA\MES\SYSTEM01.DBF????????????????????????????????? 65280??????? 1895 3%???????? 2016-12-04 14:58:49
???????? 1 D:\ORADATA\MES\SYSTEM01.DBF????????????????????????????????? 65280??????? 1135 2%???????? 2016-12-04 20:58:03
???????? 2 D:\ORADATA\MES\UNDOTBS01.DBF???????????????????????????????? 10880??????? 1983 18%??????? 2016-12-04 14:58:49
???????? 2 D:\ORADATA\MES\UNDOTBS01.DBF???????????????????????????????? 10880???????? 679 6%???????? 2016-12-04 20:58:03
???????? 3 D:\ORADATA\MES\SYSAUX01.DBF????????????????????????????????? 38400??????? 5815 15%??????? 2016-12-04 14:58:49
???????? 3 D:\ORADATA\MES\SYSAUX01.DBF????????????????????????????????? 38400??????? 3467 9%???????? 2016-12-04 20:58:03
???????? 4 D:\ORADATA\MES\USERS01.DBF???????????????????????????????????? 640?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 4 D:\ORADATA\MES\USERS01.DBF???????????????????????????????????? 640???????? 255 40%??????? 2016-12-04 20:58:03
???????? 5 D:\ORADATA\MES\CMES01.DBF??????????????????????????????????? 12800?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 5 D:\ORADATA\MES\CMES01.DBF??????????????????????????????????? 12800?????????? 1 0%???????? 2016-12-04 20:58:03
???????? 6 D:\ORADATA\MES\RMES01.DBF?????????????????????????????????? 131072?????????? 9 0%???????? 2016-12-04 14:58:48
???????? 6 D:\ORADATA\MES\RMES01.DBF?????????????????????????????????? 131072????????? 13 0%???????? 2016-12-04 20:58:03
???????? 7 D:\ORADATA\MES\INDX01.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 7 D:\ORADATA\MES\INDX01.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 20:58:03
???????? 8 D:\ORADATA\MES\HMES01.DBF??????????????????????????????????? 64000?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 8 D:\ORADATA\MES\HMES01.DBF??????????????????????????????????? 64000?????????? 1 0%???????? 2016-12-04 20:58:03
???????? 9 D:\ORADATA\MES\RMES02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 9 D:\ORADATA\MES\RMES02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 20:58:03
??????? 10 D:\ORADATA\MES\INDX02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 14:58:48
??????? 10 D:\ORADATA\MES\INDX02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 20:58:03
其中DATAFILE_BLOCKS反映的是數(shù)據(jù)文件的大小,BLOCKS_READ和READ_RADIO則顯示了每次增量備份讀取的塊數(shù)和讀塊比率,如果每次備份這個比率在持續(xù)增加,則應(yīng)考慮更頻繁的執(zhí)行增量備份。
要查看是否啟用了塊改變跟蹤,并檢查跟蹤文件的位置和大小,可查詢視圖v$block_change_tracking
col filename for a50
select * from v$block_change_tracking;
STATUS???? FILENAME??????????????????????????????????????? BYTES
---------- ----------------------------------------------- ----------
ENABLED??? D:\ORADATA\MES\BLOCK_CHANGE_TRACKING.DBF??????? 11599872
確認(rèn)是否啟用了CTWR服務(wù)器進(jìn)程(改變跟蹤寫入器),可查詢視圖v$process
select program from v$process where program like '%CTWR%';
PROGRAM
----------------------------------------------------------------
ORACLE.EXE (CTWR)
如果要取消塊改變跟蹤,則命令為
alter database disable block change tracking;
五、其它備份方式
1、映像副本
文件的映像副本是與數(shù)據(jù)文件、控制文件或歸檔日志文件完全相同的副本。結(jié)果就好像文件是用操作系統(tǒng)程序復(fù)制的,但機制是不同的,RMAN讀寫Oracle塊,而不是操作系統(tǒng)塊。映像副本備份方式的優(yōu)點是還原非常快速,因為不需要從備份集中提取文件。
映像副本可由數(shù)據(jù)文件、控制文件或歸檔日志文件組成,但不能由spfile文件組成。
映像副本的備份命令使用關(guān)鍵字copy,如使用以下命令備份整個數(shù)據(jù)庫,在沒有更改默認(rèn)配置的情況下,將啟動一個磁盤通道,將所有數(shù)據(jù)文件和控制文件復(fù)制到閃回恢復(fù)區(qū)(同時還會自動生成一個spfile文件的備份集)
RMAN> backup as copy database;
如要將所有歸檔日志移入閃回恢復(fù)區(qū),則命令為
RMAN> backup as copy archivelog all delete all input;
利用視圖v$backup_files可以查詢備份情況
SQL> select backup_type, file_type, status, fname, tag, df_tablespace, df_file# from v$backup_files;
BACKUP_TYPE?? FILE_TYPE?????? STATUS?????? FNAME???????????????????????????????????????? TAG?????????????????? DF_TABLESPACE DF_FILE#
------------- --------------- ------------ --------------------------------------------- --------------------- ------------- --------
COPY????????? DATAFILE??????? AVAILABLE??? D:\RMAN_BAK\MES\MES_2OQJEQ48_1_20151011?????? TAG20151011T143448??? RMES???????????????? 6
COPY????????? DATAFILE??????? AVAILABLE??? D:\RMAN_BAK\MES\MES_2PQJEQ7I_1_20151011?????? TAG20151011T143448??? RMES???????????????? 7
COPY????????? DATAFILE??????? AVAILABLE??? D:\RMAN_BAK\MES\MES_2QQJEQBP_1_20151011?????? TAG20151011T143448??? SYSTEM?????????????? 1
COPY????????? DATAFILE??????? AVAILABLE??? D:\RMAN_BAK\MES\MES_2RQJEQD7_1_20151011?????? TAG20151011T143448??? SYSAUX?????????????? 2
COPY????????? DATAFILE??????? AVAILABLE??? D:\RMAN_BAK\MES\MES_2SQJEQEA_1_20151011?????? TAG20151011T143448??? CMES???????????????? 5
COPY????????? DATAFILE??????? AVAILABLE??? D:\RMAN_BAK\MES\MES_2TQJEQEI_1_20151011?????? TAG20151011T143448??? UNDOTBS1???????????? 3
COPY????????? CONTROLFILE???? AVAILABLE??? D:\RMAN_BAK\MES\MES_2UQJEQEP_1_20151011?????? TAG20151011T143448???????????????????????? 0
COPY????????? DATAFILE??????? AVAILABLE??? D:\RMAN_BAK\MES\MES_2VQJEQES_1_20151011?????? TAG20151011T143448??? USERS??????????????? 4
BACKUP SET??? SPFILE????????????????????????????????????????????????????????????????????????????????????????????????????????
BACKUP SET??? PIECE?????????? AVAILABLE??? D:\RMAN_BAK\MES\MES_30QJEQEU_1_20151011?????? TAG20151011T143448
2、壓縮備份
RMAN支持壓縮方式的備份,使用compressed關(guān)鍵字,如下命令將完成數(shù)據(jù)庫和歸檔日志的壓縮備份
RMAN> backup as compressed backupset database plus archivelog;
3、保護(hù)備份
RMAN支持多重方式的備份,使用關(guān)鍵字copies,如下命令將在默認(rèn)磁盤目標(biāo)位置生成數(shù)據(jù)庫及歸檔日志的兩套備份集
RMAN>?backup as backupset device type disk copies 2 database plus archivelog;
也可以對備份集進(jìn)行備份,如用以下命令可以將備份集轉(zhuǎn)移備份到其它目標(biāo)設(shè)備上,并將原來位置的備份刪除
RMAN>?backup device type disk format 'd:\shift_bak\%d_%u_%c_%T' backupset all delete all input;
4、加密備份
在有些環(huán)境下可能希望需要加密的備份,因為這些備份可能存儲在DBA幾乎無法控制的可移動設(shè)備上。
加密有透明加密和口令加密兩種方式。
1)透明加密
這是RMAN采用的默認(rèn)方式,基于錢夾(wallet)的使用。這是一個包含用于加密和解密數(shù)據(jù)的密鑰文件,其本身用口令保護(hù)。這種加密方式適合于只在本機上進(jìn)行加密備份和恢復(fù),只需要配置好錢夾證書。證書文件需要妥善保管不可丟失,否則以后無法恢復(fù)。
透明加密備份的操作過程如下:
a)首先在Oracle默認(rèn)的指定位置創(chuàng)建錢夾目錄
%ORACLE_BASE%\admin\<sid>\wallet
b)查看錢夾狀態(tài),默認(rèn)是關(guān)閉的
SQL> select * from v$encryption_wallet;
WRL_TYPE?? WRL_PARAMETER????????????????? STATUS
---------- ------------------------------ ----------
file?????? C:\ORACLE\ADMIN\MES\WALLET???? CLOSED
c)打開錢夾,并給證書設(shè)置口令。系統(tǒng)可能會報ORA-28374錯誤,這是Oracle的Bug,不用理會
SQL>?alter system set encryption key authenticated by "pm1234";
alter system set encryption key authenticated by "pm1234"
*
第 1 行出現(xiàn)錯誤:
ORA-28374: 在 Wallet 中未找到鍵入的主鍵
d)配置RMAN加密備份開啟
RMAN> configure encryption for database on;
舊的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION FOR DATABASE OFF;
新的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION FOR DATABASE ON;
已成功存儲新的 RMAN 配置參數(shù)
e)之后可進(jìn)行正常的備份操作。
f)RMAN恢復(fù)操作前需要用正確的口令打開錢夾
SQL>?alter system set wallet open identified by "pm1234";
系統(tǒng)已更改。
g)之后可進(jìn)行正常的恢復(fù)操作。如果錢夾未打開,則恢復(fù)過程失敗。
h)如果要取消加密備份功能,則可將RMAN的加密配置重置為默認(rèn)值
RMAN> CONFIGURE ENCRYPTION FOR DATABASE clear;
舊的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION FOR DATABASE ON;
RMAN 配置參數(shù)已成功重置為默認(rèn)值
2)口令加密
這是在備份前設(shè)置好算法和密鑰,之后進(jìn)行正常的備份。加密備份的文件在恢復(fù)操作前需要提供正確的密鑰,否則無法恢復(fù)。
通過視圖v$rman_encryption_algorithms可以查看RMAN支持的加密算法,默認(rèn)的加密算法是AES128
SQL> select * from v$rman_encryption_algorithms;
ALGORITHM_ID ALGORITHM_NAME? ALGORITHM_DESCRIPTIO IS_DEFAULT RESTORE_ONLY
------------ --------------- -------------------- ---------- ------------
?????????? 1 AES128????????? AES 128-bit key????? YES??????? NO
?????????? 2 AES192????????? AES 192-bit key????? NO???????? NO
?????????? 3 AES256????????? AES 256-bit key????? NO???????? NO
口令加密備份的操作過程如下:
a)查看RMAN當(dāng)前加密算法,#default表示該項是RMAN的默認(rèn)設(shè)置
RMAN> show encryption algorithm;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
b)若需要更改加密算法,可使用以下命令,如更改為AES256
RMAN> configure encryption algorithm 'aes256';
新的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
已成功存儲新的 RMAN 配置參數(shù)
c)可查看確認(rèn)加密算法是否已更改
RMAN> show encryption algorithm;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
d)如果要恢復(fù)為默認(rèn)的加密算法,可使用關(guān)鍵字clear
RMAN> configure encryption algorithm clear;
舊的 RMAN 配置參數(shù):
CONFIGURE ENCRYPTION ALGORITHM 'aes256';
RMAN 配置參數(shù)已成功重置為默認(rèn)值
e)設(shè)置密鑰并開啟加密
RMAN> set encryption on identified by 'pm1234' only;
正在執(zhí)行命令: SET encryption
f)之后可開始執(zhí)行正常的備份操作。
g)恢復(fù)操作前,需要提供密鑰,否則無法恢復(fù)
RMAN> set decryption identified by 'pm1234';
正在執(zhí)行命令: SET decryption
h)之后便可進(jìn)行正常的恢復(fù)操作。
5、歸檔備份
在Oracle術(shù)語中,歸檔備份指的是希望長時間或永久保存的備份。通常,創(chuàng)建歸檔備份只是為了滿足有關(guān)記錄保留的規(guī)定。歸檔備份不理會RMAN配置的保留策略,也不會由delete obsolete命令自動刪除。
創(chuàng)建歸檔備份的語法如下:
backup … keep { forever | until time 'date_expr' } [ restore point rpname ];
其中forever表示永久保存不過期,until time則指定過期的日期,二者選一。日期表達(dá)式可以是實際的日期或計算式。如下命令將生成數(shù)據(jù)庫的完整歸檔備份,因為是歸檔備份,其中也將包括歸檔日志
RMAN>?backup as compressed backupset database keep until time 'sysdate?+?90' restore point quarterly_bak;
六、并行化備份操作
每次使用RMAN時,都至少會對目標(biāo)數(shù)據(jù)庫啟動兩個會話,被稱為默認(rèn)會話和輪詢會話。默認(rèn)會話是調(diào)用實現(xiàn)RMAN的內(nèi)核PL/SQL的會話,輪詢會話監(jiān)視RMAN操作的進(jìn)展。當(dāng)RMAN讀寫磁盤或磁帶時,它將需要第三個會話:通道。通過啟動多個通道來實現(xiàn)備份工作的并行化,可減少備份花費的時間。
RMAN備份時可達(dá)到的并行度受通道數(shù)和輸入文件數(shù)的限制。考慮下列腳本
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
backup database files per set 8;
}
腳本中啟動了四個命名的通道,RMAN計算數(shù)據(jù)庫中的文件數(shù),并將它們分布到備份集中,每個備份集不超過8個文件。如果數(shù)據(jù)庫由100個數(shù)據(jù)文件外加控制文件構(gòu)成,那將生成13個備份集,前12個備份集每個包含8個文件,第13個備份集包含剩下的5個文件,并行度為4,并行度受通道數(shù)限制。但如果數(shù)據(jù)庫只有20個數(shù)據(jù)文件,那將只生成3個備份集,并行度為3,有一個通道閑置,此時的并行度受輸入文件數(shù)的限制。
默認(rèn)情況下,最大并行度是不會超過輸入文件數(shù)的,因為默認(rèn)同一時間內(nèi),一個通道只能對應(yīng)一個文件的讀取,但采用多段備份功能后,一個文件可以分段同時被多個通道并行訪問。這一應(yīng)用主要是針對那些單個較大文件的備份進(jìn)行的。
多段關(guān)鍵字的運用如下腳本
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
backup as backupset datafile 16 section size 10g;
}
該腳本啟動4個通道,每個通道讀取數(shù)據(jù)文件16的一個10g大小的段,每個通道將生成包含段的備份的片(單獨的物理文件)。假定文件大小為200G,則將生成20個備份片文件,一次并行的生成4個。如果沒有section size關(guān)鍵字,則并行度將為1,只能用一個通道執(zhí)行整個操作,而其它三個通道將閑置。
七、配置RMAN備份的默認(rèn)參數(shù)
RMAN備份的默認(rèn)參數(shù)往往并不適合我們的要求,在備份工作開始前可能需要配置好默認(rèn)的備份參數(shù),一旦這些參數(shù)配置好后,備份命令在未指定目標(biāo)參數(shù)情況下將按設(shè)定的默認(rèn)值來進(jìn)行。
show命令可以查看RMAN當(dāng)前配置的默認(rèn)參數(shù),以下是在未對這些參數(shù)設(shè)置過的情況下系統(tǒng)的默認(rèn)取值,使用show all命令顯示了所有配置參數(shù),每一行配置語句結(jié)尾標(biāo)注的#default表明該參數(shù)值是系統(tǒng)的默認(rèn)取值
RMAN> show all;
使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
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 ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFMES.ORA'; # default
要調(diào)整這些參數(shù)的默認(rèn)值,可使用configure命令,如以下一些設(shè)置:
更改控制文件的備份配置,設(shè)為自動備份,并指定備份的目標(biāo)路徑。這樣在數(shù)據(jù)庫結(jié)構(gòu)發(fā)生改變或做RMAN備份時會自動備份控制文件,也會備份spfile文件,這里%F格式只對自動備份生效,手動備份時指定該參數(shù)是無效的
RMAN> configure?controlfile?autobackup?on;
RMAN> configure?controlfile?autobackup?format?for?device?type?disk?to?'d:\rman_bak\mes\control_bak\%F';
更改數(shù)據(jù)文件備份集的目標(biāo)位置和命名規(guī)則
RMAN> configure?channel?device?type?disk?format?'d:\rman_bak\mes\%d_%u_%c_%T';
更改備份類型由默認(rèn)的backupset改為copy,使得RMAN的任何備份都不產(chǎn)生備份集,而產(chǎn)生映像副本
RMAN> configure device type disk backup type to copy;
更改默認(rèn)的備份設(shè)備類型由磁盤disk改為磁帶sbt
RMAN> configure default device type to sbt;
更改磁盤備份的并行數(shù),以下啟動2個通道
RMAN> configure device type disk parallelism 2;
啟用備份優(yōu)化功能,這允許RMAN如果認(rèn)為有足夠的文件副本,就不備份特定文件。優(yōu)化與保留策略有關(guān)。默認(rèn)的保留策略為1,意味著RMAN將試圖至少保存一個副本。備份優(yōu)化只適用于歸檔日志和只讀或脫機表空間的數(shù)據(jù)文件。由于聯(lián)機的可讀寫的數(shù)據(jù)文件總是在變化,RMAN將不會認(rèn)為它有相同的副本
RMAN> configure backup optimization on;
更改備份的保留策略,以下將保留策略的冗余度設(shè)置為3,意味著RMAN將試圖保存3個副本
RMAN> configure retention policy to redundancy 3;
可以設(shè)置兩種保留策略,冗余級別指定應(yīng)保存的文件副本數(shù)。另一種策略是設(shè)置恢復(fù)窗口,以下的備份設(shè)置保證可以通過執(zhí)行時間點恢復(fù)回到過去90天中的任意一個時間
RMAN> configure retention policy to recovery window of 90 days;
要將配置的設(shè)置恢復(fù)為系統(tǒng)默認(rèn)值,可使用clear命令。如下所示,首先用show命令查看相關(guān)配置信息,再用clear命令恢復(fù)到系統(tǒng)默認(rèn)值
RMAN> show device type;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN> configure device type disk clear;
舊的 RMAN 配置參數(shù):
CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;
RMAN 配置參數(shù)已成功重置為默認(rèn)值
RMAN> show device type;
db_unique_name 為 MES 的數(shù)據(jù)庫的 RMAN 配置參數(shù)為:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
實際上,在這些配置參數(shù)中,大多數(shù)的默認(rèn)設(shè)置都不需要調(diào)整,RMAN就能很好的完成我們期望的備份效果。但要特別留意的是默認(rèn)備份的目標(biāo)位置并未體現(xiàn)在這一配置列表中。默認(rèn)情況下,RMAN磁盤備份的目標(biāo)位置是閃回恢復(fù)區(qū)flash_recovery_area,Oracle安裝時它的默認(rèn)選定位置是在Oracle基目錄%ORACLE_BASE%中,在Oracle安裝時建議調(diào)整到其它磁盤位置以提高系統(tǒng)性能。
可以查看初始化參數(shù)db_recovery_file_dest和db_recovery_file_dest_size來查看閃回恢復(fù)區(qū)信息,Oracle 10g中這個區(qū)域大小默認(rèn)是2G,11g中則提升為4G
SQL>?show parameter db_recovery_file_dest;
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest??????????????? string????? c:\oracle\flash_recovery_area
db_recovery_file_dest_size?????????? big integer?2G
如果閃回恢復(fù)區(qū)容量不夠,可以調(diào)整其大小
SQL> alter system set db_recovery_file_dest_size=4G;
采用閃回恢復(fù)區(qū)位置存放備份的好處是RMAN可以自動管理該區(qū)域,如果閃回恢復(fù)區(qū)已滿,RMAN將從中自動刪除過時的備份。
在完成以上的配置后,可以用以下一條命令完成數(shù)據(jù)庫的聯(lián)機備份
backup as compressed backupset incremental level 1 database plus archivelog delete all input;
八、管理和監(jiān)視RMAN備份
一旦生成了一些備份,就需要對這些備份進(jìn)行管理,如報告已經(jīng)創(chuàng)建了哪些備份,這些備份包含的內(nèi)容和狀態(tài)怎樣,哪些還需要備份,哪些備份已經(jīng)無效或多余可以刪除,如何刪除之前的備份等。
1、list、validate、restore...validate、restore...preview、report、delete和crosscheck命令
list命令列出已創(chuàng)建的備份。
列出備份匯總信息
RMAN> list backup summary;
列出所有備份集
RMAN> list backupset;
以上也可以使用命令
RMAN> list backup;
查看單個備份集
RMAN> list backupset 5;
列出所有映像副本
RMAN> list copy;
列出所有數(shù)據(jù)庫文件備份集(不包含控制文件、服務(wù)器初始化參數(shù)文件和歸檔日志文件)
RMAN> list backup of database;
列出包含控制文件的備份集
RMAN> list backup of controlfile;
列出包含服務(wù)器初始化參數(shù)文件的備份集
RMAN> list backup of spfile;
列出所有歸檔日志文件備份集
RMAN> list backup of archivelog all;
列出包含日志切換系列號為1000~1050的歸檔日志的備份集
RMAN> list backup of archivelog from sequence 1000 until sequence 1050;
列出包含數(shù)據(jù)文件1的備份集
RMAN> list backup of datafile 1;
列出包含USERS表空間的備份集
RMAN> list backup of tablespace users;
列出所有歸檔日志文件列表
RMAN> list archivelog all;
要改變list輸出信息中的日期時間格式,可在啟動RMAN前設(shè)置操作系統(tǒng)的環(huán)境變量nls_date_format,如在Windows下執(zhí)行命令
C:\> set nls_date_format=yyyy-mm-dd hh24:mi:ss
validate、restore...validate、restore...preview用于驗證備份集的可用性以及驗證和查看需要的恢復(fù)內(nèi)容是否在備份集中。
驗證備份集的可用性
RMAN> validate backupset 20;
驗證表空間是否在備份集中
RMAN> restore tablespace users validate;
驗證數(shù)據(jù)文件是否在備份集中
RMAN> restore datafile 'd:\oradata\mes\system01.dbf' validate;
以上命令也可以使用文件號來表示
RMAN>?restore datafile 1 validate;
查看恢復(fù)整個數(shù)據(jù)庫的備份是否存在
RMAN> restore database preview;
查看恢復(fù)某個表空間所需的備份是否存在
RMAN> restore tablespace users preview;
查看恢復(fù)某個數(shù)據(jù)文件所需的備份是否存在
RMAN> restore datafile 5 preview;
report命令按照設(shè)定的保留策略,通過詢問目標(biāo)數(shù)據(jù)庫確定哪些需要備份。
列出構(gòu)成數(shù)據(jù)庫的數(shù)據(jù)文件
RMAN> report schema;
應(yīng)用保留策略,列出至少需要一個備份來滿足策略的所有數(shù)據(jù)文件
RMAN> report need backup;
列出一周未備份的所有對象,使用這一命令將忽略配置的保留策略
RMAN> report need backup days 7;
列出備份數(shù)不足2份的數(shù)據(jù)文件
RMAN> report need backup redundancy 2;
按照保留策略的冗余度,列出所有多余的不再需要而可以刪除的備份
RMAN> report obsolete;
該命令之后可以使用delete命令將多余的備份刪除
RMAN> delete obsolete;
列出以7天為恢復(fù)窗口策略的過期備份
RMAN> report obsolete recovery window of 7 days;
該命令之后可以使用delete命令將多余的備份刪除
RMAN> delete obsolete recovery window of 7 days;
列出以冗余度2為冗余策略的過期備份
RMAN> report obsolete redundancy 2;
該命令之后可以使用delete命令將多余的備份刪除
RMAN> delete obsolete redundancy 2;
delete命令也可以一次性刪除所有的備份或有選擇性的刪除備份。
刪除所有的備份
RMAN> delete backup;
刪除所有的映像副本
RMAN> delete copy;
刪除所有的數(shù)據(jù)庫文件備份(不包括控制文件、服務(wù)器初始化參數(shù)文件和歸檔日志文件)
RMAN> delete backup of database;
刪除控制文件備份
RMAN> delete backup of controlfile;
刪除初始化參數(shù)文件備份
RMAN> delete backup of spfile;
刪除所有歸檔日志文件備份
RMAN> delete backup of archivelog all;
刪除指定編號的備份集
RMAN> delete backupset 36;
刪除指定標(biāo)記的備份集
RMAN> delete backupset tag TAG20151006T145256;
刪除所有歸檔日志文件
RMAN> delete archivelog all;
list和report命令讀取的是RMAN存儲庫中的信息,即存儲在目標(biāo)數(shù)據(jù)庫控制文件中的數(shù)據(jù)。它并不能說明備份文件物理上實際還是否真的存在。要確認(rèn)備份是否確實存在,需要使用交叉檢查crosscheck命令。
交叉檢查所有備份是否存在
RMAN> crosscheck backup;
交叉檢查數(shù)據(jù)庫文件的備份是否存在
RMAN> crosscheck backup of database;
交叉檢查控制文件的備份是否存在
RMAN> crosscheck backup of controlfile;
交叉檢查初始化參數(shù)文件的備份是否存在
RMAN> crosscheck backup of spfile;
交叉檢查所有歸檔日志文件是否存在
RMAN> crosscheck archivelog all;
交叉檢查所有歸檔日志文件的備份是否存在
RMAN> crosscheck backup of archivelog all;
對于檢查結(jié)果為不存在的備份,在存儲庫中將被標(biāo)記為過期失效的expired,而真實存在的備份則被標(biāo)記為可用的available。標(biāo)記為expired的備份信息可以通過delete expired命令將它從RMAN存儲庫中刪除,之后將不再會被顯示在list命令結(jié)果中。它與delete obsolete命令不同,delete obsolete命令會實際刪除文件并更新存儲庫信息,而delete expired命令僅更新存儲庫信息,不會從磁盤上真正刪除文件。
刪除存儲庫中過期的所有備份信息
RMAN> delete expired backup;
有時因為我們手工刪除了歸檔日志,導(dǎo)致RMAN發(fā)現(xiàn)歸檔缺失而無法執(zhí)行備份。此時可以應(yīng)用交叉檢查命令首先檢查歸檔日志文件的缺失情況
RMAN> crosscheck archivelog all;
然后從RMAN存儲庫中刪除過期的歸檔日志記錄
RMAN>?delete expired archivelog all;
之后便可以執(zhí)行正常的備份了。
2、關(guān)于RMAN備份的動態(tài)性能視圖
如果要更靈活的查詢RMAN備份的信息,開發(fā)自己的報告,而不是依賴于RMAN的list命令,可以借助以下一些視圖
v$backup_files:
備份文件信息(包括數(shù)據(jù)文件、控制文件、SPFILE、歸檔日志文件),未經(jīng)備份的歸檔日志也會記錄其中,它們沒有備份集編號。
col backup_type for a20
col file_type for a20
col fname for a100
col tag for a30
col df_tablespace for a20
select?bs_key,?backup_type, file_type, status, fname, tag, obsolete, bytes, bs_completion_time, df_tablespace, df_file#, rl_sequence# from v$backup_files;
??? BS_KEY BACKUP_TYPE????????? FILE_TYPE??????????? STATUS?????????? FNAME??????????????????????????????????????????????????????????????????????????????????????????????? TAG??????????????????????????? OBSOLETE????? BYTES BS_COMPLETION_TIME DF_TABLESPACE????????? DF_FILE# RL_SEQUENCE#
---------- -------------------- -------------------- ---------------- ---------------------------------------------------------------------------------------------------- ------------------------------ -------- ---------- ------------------ -------------------- ---------- ------------
???????? 1 BACKUP SET?????????? ARCHIVED LOG????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? YES??????? 11453440 2016/12/3 23:01:40????????????????????????????????????????? 157
???????? 1 BACKUP SET?????????? ARCHIVED LOG????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? YES???????? 2435072 2016/12/3 23:01:40????????????????????????????????????????? 158
???????? 1 BACKUP SET?????????? PIECE??????????????? AVAILABLE??????? D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP???????? TAG20161203T230138???????????? YES???????? 5046272 2016/12/3 23:01:40????????????????????????????????
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\INDX01.DBF?????????????????????????????????????????????????????????????????????????????????????????????????????????? NO??????? 657506304 2016/12/3 23:03:03 INDX????????????????????????? 7
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\RMES01.DBF?????????????????????????????????????????????????????????????????????????????????????????????????????????? NO??????? 772112384 2016/12/3 23:03:03 RMES????????????????????????? 6
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\RMES02.DBF?????????????????????????????????????????????????????????????????????????????????????????????????????????? NO??????? 741302272 2016/12/3 23:03:03 RMES????????????????????????? 9
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\SYSTEM01.DBF???????????????????????????????????????????????????????????????????????????????????????????????????????? NO??????? 410411008 2016/12/3 23:03:03 SYSTEM??????????????????????? 1
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\HMES01.DBF?????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????????? 188416 2016/12/3 23:03:03 HMES????????????????????????? 8
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\SYSAUX01.DBF???????????????????????????????????????????????????????????????????????????????????????????????????????? NO??????? 216842240 2016/12/3 23:03:03 SYSAUX??????????????????????? 3
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\CMES01.DBF?????????????????????????????????????????????????????????????????????????????????????????????????????????? NO???????? 15392768 2016/12/3 23:03:03 CMES????????????????????????? 5
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\UNDOTBS01.DBF??????????????????????????????????????????????????????????????????????????????????????????????????????? NO???????? 88473600 2016/12/3 23:03:03 UNDOTBS1????????????????????? 2
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\USERS01.DBF????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????????? 614400 2016/12/3 23:03:03 USERS???????????????????????? 4
???????? 2 BACKUP SET?????????? DATAFILE????????????????????????????? D:\ORADATA\MES\INDX02.DBF?????????????????????????????????????????????????????????????????????????????????????????????????????????? NO??????? 581894144 2016/12/3 23:03:03 INDX???????????????????????? 10
???????? 2 BACKUP SET?????????? PIECE??????????????? AVAILABLE??????? D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP???????? TAG20161203T230141???????????? NO??????? 596959232 2016/12/3 23:03:03????????????????????????????????
???????? 3 BACKUP SET?????????? ARCHIVED LOG????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????????? 609280 2016/12/3 23:03:09????????????????????????????????????????? 159
???????? 3 BACKUP SET?????????? PIECE??????????????? AVAILABLE??????? D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP???????? TAG20161203T230308???????????? NO?????????? 610816 2016/12/3 23:03:09????????????????????????????????
?????????? COPY???????????????? ARCHIVED LOG???????? AVAILABLE??????? D:\FLASH_RECOVERY_AREA\MES\ARCHIVELOG\2016_12_04\O1_MF_1_160_D46WLOPT_.ARC????????????????????????????????????????????????????????? NO????????? 1951232???????????????????????????????????????????????????????????? 160
???????? 4 BACKUP SET?????????? SPFILE??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO??????????????? 2 2016/12/3 23:03:10????????????????????????????????
???????? 4 BACKUP SET?????????? CONTROLFILE?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO????????? 7045120 2016/12/3 23:03:10?????????????????????????????? 0
???????? 4 BACKUP SET?????????? PIECE??????????????? AVAILABLE??????? D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP???????????????????? TAG20161203T230310???????????? NO????????? 7127040 2016/12/3 23:03:10????????????????????????????????
查看映像副本備份
select backup_type, file_type, status, fname, tag, obsolete, bytes, df_tablespace, df_file# from v$backup_files where backup_type = 'COPY';
BACKUP_TYPE????????? FILE_TYPE??????????? STATUS?????????? FNAME??????????????????????????????????????????????????????????????????????????????????????????????????????????TAG??????????????????????????? OBS????? BYTES DF_TABLESPACE????????? DF_FILE#
-------------------- -------------------- ---------------- ---------------------------------------------------------------------------------------------------- ------------------------------ --- ---------- -------------------- ----------
COPY???????????????? DATAFILE???????????? AVAILABLE??????? E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_06RMUTNJ_1_20161208???????????????????????????????????????? INC_COPY?????????????????????? NO?? 503316480 SYSTEM??????????????????????? 1
COPY???????????????? DATAFILE???????????? AVAILABLE??????? E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_07RMUTOD_1_20161208???????????????????????????????????????? INC_COPY?????????????????????? NO?? 283115520 SYSAUX??????????????????????? 3
COPY???????????????? DATAFILE???????????? AVAILABLE??????? E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_08RMUTOS_1_20161208???????????????????????????????????????? INC_COPY?????????????????????? NO??? 26214400 UNDOTBS1????????????????????? 2
COPY???????????????? DATAFILE???????????? AVAILABLE??????? E:\FLASH_RECOVERY_AREA\MES\BACKUPSET\MES_09RMUTOV_1_20161208???????????????????????????????????????? INC_COPY?????????????????????? NO???? 5242880 USERS???????????????????????? 4
查詢尚未備份的歸檔日志
col fname for a100
select rl_sequence#, fname, status, completion_time, obsolete from v$backup_files where backup_type = 'COPY' and file_type = 'ARCHIVED LOG';
RL_SEQUENCE# FNAME??????????????????????????????????????????????????????????????????????????????????????????????? STATUS?????????? COMPLETION_TIME OBSOLETE
------------ ---------------------------------------------------------------------------------------------------- ---------------- --------------- --------
???????? 160 D:\FLASH_RECOVERY_AREA\MES\ARCHIVELOG\2016_12_04\O1_MF_1_160_D46WLOPT_.ARC?????????????????????????? AVAILABLE??????? 2016/12/4 9:33: NO
根據(jù)備份文件名查詢其包含的備份信息
col backup_type for a15
col file_type for a15
col fname for a100
col bs_incr_type for a15
col df_tablespace for a15
select backup_type, file_type, fname, tag, completion_time, compressed, obsolete, bs_incr_type, df_file#, df_tablespace from v$backup_files where stamp = (select stamp from v$backup_files where fname like '%O1_MF_NNND1_TAG20161204T145847_D47HO8HL_%');
BACKUP_TYPE???? FILE_TYPE?????? FNAME??????????????????????????????????????????????????????????????????????????????????????????????? TAG????????????????????????????? COMPLETION_TIME COMPRESSED OBSOLETE BS_INCR_TYPE????? DF_FILE# DF_TABLESPACE
--------------- --------------- ---------------------------------------------------------------------------------------------------- -------------------------------- --------------- ---------- -------- --------------- ---------- ---------------
BACKUP SET????? DATAFILE??????? D:\ORADATA\MES\INDX01.DBF??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????? INCR1??????????????????? 7 INDX
BACKUP SET????? DATAFILE??????? D:\ORADATA\MES\USERS01.DBF?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????? INCR1??????????????????? 4 USERS
BACKUP SET????? DATAFILE??????? D:\ORADATA\MES\RMES01.DBF??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????? INCR1??????????????????? 6 RMES
BACKUP SET????? DATAFILE??????? D:\ORADATA\MES\RMES02.DBF??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????? INCR1??????????????????? 9 RMES
BACKUP SET????? DATAFILE??????? D:\ORADATA\MES\INDX02.DBF??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????? INCR1?????????????????? 10 INDX
BACKUP SET????? DATAFILE??????? D:\ORADATA\MES\HMES01.DBF??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????? INCR1??????????????????? 8 HMES
BACKUP SET????? DATAFILE??????? D:\ORADATA\MES\CMES01.DBF??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO?????? INCR1??????????????????? 5 CMES
BACKUP SET????? PIECE?????????? D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_04\O1_MF_NNND1_TAG20161204T145847_D47HO8HL_.BKP???????? TAG20161204T145847?????????????? 2016/12/4 14:58 YES??????? NO?????? INCR1?????????????????????
查詢按照保留策略屬于已經(jīng)廢棄的備份
col fname for a100
select fname, tag from v$backup_files where file_type='PIECE' and obsolete='YES';
FNAME??????????????????????????????????????????????????????????????????????????????????????????????? TAG
---------------------------------------------------------------------------------------------------- ------------------------------
D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP???????? TAG20161203T230138
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP???????????????????? TAG20161203T230310
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929717936_D47HOJO1_.BKP???????????????????? TAG20161204T145856
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929739489_D484Q18P_.BKP???????????????????? TAG20161204T205809
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929743942_D48926C1_.BKP???????????????????? TAG20161204T221222
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929743973_D489355M_.BKP???????????????????? TAG20161204T221253
D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_04\O1_MF_S_929743988_D4893NW7_.BKP???????????????????? TAG20161204T221308
v$backup_set:
每個備份集一行信息,可與視圖v$backup_files聯(lián)合查詢。
col 備份類型 for a10
col?文件名?for a100
col 標(biāo)記 for a20
col 文件類型 for a20
col 備份內(nèi)容 for a20
col 增量類型 for a10
select bf.bs_key?????????????? 關(guān)鍵字,
?????? bf.backup_type????????? 備份類型,
?????? bf.fname??????????????? 文件名,
?????? bf.tag????????????????? 標(biāo)記,
?????? bf.bytes??????????????? 文件大小,
?????? bf.status?????????????? 狀態(tài),
?????? bf.bs_type????????????? 備份內(nèi)容,
?????? bf.bs_incr_type???????? 增量類型,
?????? bs.controlfile_included 控制文件,
?????? bf.compressed?????????? 壓縮備份,
?????? bf.obsolete???????????? 多余備份,
?????? --bs.multi_section??????? 多段備份,
?????? bf.keep???????????????? 歸檔備份,
?????? bf.keep_options???????? 歸檔選項,
?????? bf.keep_until?????????? 過期時間,
?????? bs.start_time?????????? 開始時間,
?????? bs.completion_time????? 完成時間,
?????? bs.elapsed_seconds????? 花費時間
? from v$backup_files bf, v$backup_set bs
?where bf.bs_key = bs.recid
?? and bf.file_type = 'PIECE';
關(guān)鍵字?????????備份類型?? 文件名????????????????????????????????????????????????????????????????????????????????????????????????標(biāo)記???????????????? 文件大小?????狀態(tài)??????????????備份內(nèi)容???????????? 增量類型?? 控制文件 壓縮備份 多余備份 歸檔備份 歸檔選項????? 過期時間??? 開始時間??? 完成時間??? 花費時間
---------- ---------- ---------------------------------------------------------------------------------------------------- -------------------- ---------- ---------------- -------------------- ---------- -------- -------- -------- -------- ------------- ----------- ----------- ----------- ----------
???????? 1 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP???????? TAG20161203T230138????? 5046272 AVAILABLE??????? ARCHIVED LOG???????? FULL?????? NO?????? YES????? YES????? NO???????????????????????????????? 2016/12/3 2 2016/12/3 2????????? 1
???????? 2 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP???????? TAG20161203T230141??? 596959232 AVAILABLE??????? DATAFILE???????????? INCR1????? NO?????? YES????? NO?????? NO???????????????????????????????? 2016/12/3 2 2016/12/3 2???????? 82
???????? 3 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP???????? TAG20161203T230308?????? 610816 AVAILABLE??????? ARCHIVED LOG???????? FULL?????? NO?????? YES????? NO?????? NO???????????????????????????????? 2016/12/3 2 2016/12/3 2????????? 1
???????? 4 BACKUP SET D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP???????????????????? TAG20161203T230310????? 7127040 AVAILABLE??????? DATAFILE???????????? FULL?????? YES????? NO?????? NO?????? NO???????????????????????????????? 2016/12/3 2 2016/12/3 2????????? 0
v$backup_piece:
每個備份片一行信息,這里面也包含了已刪除的備份。
col handle for a100
select recid,?handle,?tag,?status,?start_time,?completion_time,?elapsed_seconds,?deleted,?bytes,?is_recovery_dest_file,?compressed from v$backup_piece;
???? RECID HANDLE?????????????????????????????????????????????????????????????????????????????????????????????? TAG????????????????????????????? STATUS START_TIME? COMPLETION_TIME ELAPSED_SECONDS DELETED????? BYTES IS_RECOVERY_DEST_FILE COMPRESSED
---------- ---------------------------------------------------------------------------------------------------- -------------------------------- ------ ----------- --------------- --------------- ------- ---------- --------------------- ----------
???????? 1 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP???????? TAG20161203T230138?????????????? A????? 2016/12/3 2 2016/12/3 23:01?????????????? 0 NO???????? 5046272 YES?????????????????? YES
???????? 2 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP???????? TAG20161203T230141?????????????? A????? 2016/12/3 2 2016/12/3 23:03????????????? 82 NO?????? 596959232 YES?????????????????? YES
???????? 3 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP???????? TAG20161203T230308?????????????? A????? 2016/12/3 2 2016/12/3 23:03?????????????? 0 NO????????? 610816 YES?????????????????? YES
???????? 4 D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP???????????????????? TAG20161203T230310?????????????? A????? 2016/12/3 2 2016/12/3 23:03?????????????? 0 NO???????? 7127040 YES?????????????????? NO
v$backup_piece_details:
備份片詳細(xì)信息,可以結(jié)合v$backup_piece查詢。
col handle for a100
col size_bytes_display for?a10
select t1.recid,
?????? t1.handle,
?????? t1.tag,
?????? t1.status,
?????? t1.start_time,
?????? t1.completion_time,
?????? t1.elapsed_seconds,
?????? t1.deleted,
?????? t1.bytes,
?????? t1.is_recovery_dest_file,
?????? t1.compressed,
?????? t2.size_bytes_display
? from v$backup_piece t1 join v$backup_piece_details t2 on (t1.recid = t2.recid);
???? RECID HANDLE?????????????????????????????????????????????????????????????????????????????????????????????? TAG????????????????????????????? STATUS START_TIME? COMPLETION_TIME ELAPSED_SECONDS DELETED????? BYTES IS_RECOVERY_DEST_FILE COMPRESSED SIZE_BYTES
---------- ---------------------------------------------------------------------------------------------------- -------------------------------- ------ ----------- --------------- --------------- ------- ---------- --------------------- ---------- ----------
???????? 4 D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP???????????????????? TAG20161203T230310?????????????? A????? 2016/12/3 2 2016/12/3 23:03?????????????? 0 NO???????? 7127040 YES?????????????????? NO???????????? 6.80M
???????? 1 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230138_D45QLN48_.BKP???????? TAG20161203T230138?????????????? A????? 2016/12/3 2 2016/12/3 23:01?????????????? 0 NO???????? 5046272 YES?????????????????? YES??????????? 4.81M
???????? 2 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_NNND1_TAG20161203T230141_D45QLOYK_.BKP???????? TAG20161203T230141?????????????? A????? 2016/12/3 2 2016/12/3 23:03????????????? 82 NO?????? 596959232 YES?????????????????? YES????????? 569.30M
???????? 3 D:\FLASH_RECOVERY_AREA\MES\BACKUPSET\2016_12_03\O1_MF_ANNNN_TAG20161203T230308_D45QOFDJ_.BKP???????? TAG20161203T230308?????????????? A????? 2016/12/3 2 2016/12/3 23:03?????????????? 0 NO????????? 610816 YES?????????????????? YES????????? 596.50K
v$backup_redolog:
歸檔日志備份信息,可與視圖v$backup_files聯(lián)合查詢。
col bs_tag for a20
select t1.sequence#,
?????? t2.bs_tag,
?????? t1.resetlogs_change#,
?????? t1.resetlogs_time,
?????? t1.first_change#,
?????? t1.first_time,
?????? t1.next_change#,
?????? t1.next_time,
?????? t2.keep,
?????? t2.obsolete,
?????? t2.bs_status,
?????? t2.bs_bytes,
?????? t2.bs_compressed
? from v$backup_redolog t1
? join v$backup_files t2?on (t1.sequence# = t2.rl_sequence#);
?SEQUENCE# BS_TAG?????????????? RESETLOGS_CHANGE# RESETLOGS_TIME FIRST_CHANGE# FIRST_TIME? NEXT_CHANGE# NEXT_TIME?? KEEP OBSOLETE BS_STATUS????????? BS_BYTES BS_COMPRESSED
---------- -------------------- ----------------- -------------- ------------- ----------- ------------ ----------- ---- -------- ---------------- ---------- -------------
?????? 157 TAG20161203T230138????????????? 602121 2016/10/31 22:?????? 3949968 2016/12/3 1????? 3980863 2016/12/3 2 NO?? YES????? AVAILABLE?????????? 5046272 YES
?????? 158 TAG20161203T230138????????????? 602121 2016/10/31 22:?????? 3980863 2016/12/3 2????? 3982037 2016/12/3 2 NO?? YES????? AVAILABLE?????????? 5046272 YES
?????? 159 TAG20161203T230308????????????? 602121 2016/10/31 22:?????? 3982037 2016/12/3 2????? 3982215 2016/12/3 2 NO?? NO?????? AVAILABLE??????????? 610816 YES
v$backup_spfile:
已備份的spfile及controlfile信息。
col fname for a100
select t.backup_type, t.file_type, t.status, t.fname, t.tag, t.completion_time, t.obsolete, t.bs_bytes from v$backup_files t where t.stamp?in?(select stamp from v$backup_spfile);
BACKUP_TYPE????????? FILE_TYPE??????????? STATUS?????????? FNAME??????????????????????????????????????????????????????????????????????????????????????????????? TAG??????????????????????????? COMPLETION_TIME OBSOLETE?? BS_BYTES
-------------------- -------------------- ---------------- ---------------------------------------------------------------------------------------------------- ------------------------------ --------------- -------- ----------
BACKUP SET?????????? SPFILE??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO????????? 7127040
BACKUP SET?????????? CONTROLFILE?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? NO????????? 7127040
BACKUP SET?????????? PIECE??????????????? AVAILABLE??????? D:\FLASH_RECOVERY_AREA\MES\AUTOBACKUP\2016_12_03\O1_MF_S_929660590_D45QOGRN_.BKP???????????????????? TAG20161203T230310???????????? 2016/12/3 23:03 NO????????? 7127040
v$backup_datafile:
每個由數(shù)據(jù)文件備份構(gòu)成的一行信息。
col name for a50
col read_radio for a10
select t1.file#, t2.name, t1.datafile_blocks, t1.blocks_read, to_char(round(t1.blocks_read / t1.datafile_blocks, 2) * 100) || '%' read_radio, t1.completion_time
? from v$backup_datafile t1 join v$datafile t2 on (t1.file# = t2.file#) order by file#, completion_time;
???? FILE# NAME?????????????????????????????????????????????? DATAFILE_BLOCKS BLOCKS_READ READ_RADIO COMPLETION_TIME
---------- -------------------------------------------------- --------------- ----------- ---------- -------------------
???????? 1 D:\ORADATA\MES\SYSTEM01.DBF????????????????????????????????? 65280?????? 65280 100%?????? 2016-12-03 23:02:39
???????? 1 D:\ORADATA\MES\SYSTEM01.DBF????????????????????????????????? 65280??????? 1895 3%???????? 2016-12-04 14:58:49
???????? 1 D:\ORADATA\MES\SYSTEM01.DBF????????????????????????????????? 65280??????? 1135 2%???????? 2016-12-04 20:58:03
???????? 2 D:\ORADATA\MES\UNDOTBS01.DBF???????????????????????????????? 10880?????? 10880 100%?????? 2016-12-03 23:02:03
???????? 2 D:\ORADATA\MES\UNDOTBS01.DBF???????????????????????????????? 10880??????? 1983 18%??????? 2016-12-04 14:58:49
???????? 2 D:\ORADATA\MES\UNDOTBS01.DBF???????????????????????????????? 10880???????? 679 6%???????? 2016-12-04 20:58:03
???????? 3 D:\ORADATA\MES\SYSAUX01.DBF????????????????????????????????? 38400?????? 38400 100%?????? 2016-12-03 23:02:16
???????? 3 D:\ORADATA\MES\SYSAUX01.DBF????????????????????????????????? 38400??????? 5815 15%??????? 2016-12-04 14:58:49
???????? 3 D:\ORADATA\MES\SYSAUX01.DBF????????????????????????????????? 38400??????? 3467 9%???????? 2016-12-04 20:58:03
???????? 4 D:\ORADATA\MES\USERS01.DBF???????????????????????????????????? 640???????? 640 100%?????? 2016-12-03 23:02:03
???????? 4 D:\ORADATA\MES\USERS01.DBF???????????????????????????????????? 640?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 4 D:\ORADATA\MES\USERS01.DBF???????????????????????????????????? 640???????? 255 40%??????? 2016-12-04 20:58:03
???????? 5 D:\ORADATA\MES\CMES01.DBF??????????????????????????????????? 12800?????? 12800 100%?????? 2016-12-03 23:01:52
???????? 5 D:\ORADATA\MES\CMES01.DBF??????????????????????????????????? 12800?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 5 D:\ORADATA\MES\CMES01.DBF??????????????????????????????????? 12800?????????? 1 0%???????? 2016-12-04 20:58:03
???????? 6 D:\ORADATA\MES\RMES01.DBF?????????????????????????????????? 131072????? 131072 100%?????? 2016-12-03 23:03:03
???????? 6 D:\ORADATA\MES\RMES01.DBF?????????????????????????????????? 131072?????????? 9 0%???????? 2016-12-04 14:58:48
???????? 6 D:\ORADATA\MES\RMES01.DBF?????????????????????????????????? 131072????????? 13 0%???????? 2016-12-04 20:58:03
???????? 7 D:\ORADATA\MES\INDX01.DBF?????????????????????????????????? 131072????? 131072 100%?????? 2016-12-03 23:03:03
???????? 7 D:\ORADATA\MES\INDX01.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 7 D:\ORADATA\MES\INDX01.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 20:58:03
???????? 8 D:\ORADATA\MES\HMES01.DBF??????????????????????????????????? 64000?????? 64000 100%?????? 2016-12-03 23:02:38
???????? 8 D:\ORADATA\MES\HMES01.DBF??????????????????????????????????? 64000?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 8 D:\ORADATA\MES\HMES01.DBF??????????????????????????????????? 64000?????????? 1 0%???????? 2016-12-04 20:58:03
???????? 9 D:\ORADATA\MES\RMES02.DBF?????????????????????????????????? 131072????? 131072 100%?????? 2016-12-03 23:03:03
???????? 9 D:\ORADATA\MES\RMES02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 14:58:48
???????? 9 D:\ORADATA\MES\RMES02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 20:58:03
??????? 10 D:\ORADATA\MES\INDX02.DBF?????????????????????????????????? 131072????? 131072 100%?????? 2016-12-03 23:03:03
??????? 10 D:\ORADATA\MES\INDX02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 14:58:48
??????? 10 D:\ORADATA\MES\INDX02.DBF?????????????????????????????????? 131072?????????? 1 0%???????? 2016-12-04 20:58:03
v$backup_device:
用于磁帶備份,顯示已連接到RMAN的SBT設(shè)備的名稱。
select * from v$backup_device;
DEVICE_TYPE?????? DEVICE_NAME
----------------- -----------------------------------
SBT_TAPE
v$rman_configuration:
RMAN非默認(rèn)的備份配置信息。
col name for a50
col value for a80
select * from v$rman_configuration;
???? CONF# NAME?????????????????????????????????????????????? VALUE
---------- -------------------------------------------------- --------------------------------------------------------------------------------
???????? 1 CONTROLFILE AUTOBACKUP???????????????????????????? ON
???????? 2 CHANNEL??????????????????????????????????????????? DEVICE TYPE DISK FORMAT?? 'd:\flash_recovery_area\mes\backupset\%d_%u_%c_%T'
???????? 3 CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE????? DISK TO 'd:\flash_recovery_area\mes\autobackup\%F'
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/28974745/viewspace-2151715/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任。
轉(zhuǎn)載于:http://blog.itpub.net/28974745/viewspace-2151715/
總結(jié)
以上是生活随笔為你收集整理的Oracle RMAN备份与还原的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python dll注入监听_DLL注入
- 下一篇: 微服务相关面试题