中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle 12c如何使用RMAN備份對Non-CDB中的表按時間點進行恢復

發布時間:2021-11-10 09:35:14 來源:億速云 閱讀:139 作者:小新 欄目:關系型數據庫

小編給大家分享一下Oracle 12c如何使用RMAN備份對Non-CDB中的表按時間點進行恢復,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

RMAN使用recover命令來將表或表分區恢復到指定的時間點。為了從RMAN備份中恢復表與表分區,你必須提供以下信息:
.要被恢復的表或表分區
.表或表分區要被恢復到的特定時間點
.被恢復的表或表分區是否要被導入到目標數據庫中

RMAN使用這些信息來自動對表或表分區執行恢復操作。作為恢復處理的一部分,RMAN會創建一個輔助數據庫用來將表或表分區恢復到指定的時間點。如果被恢復的表或表分區需要被重命名,映射到新表空間或映射到新方案中,那么必須指定新的表名,表空間名或方案名。

當從RMAN備份中自動處理表或表分區的恢復操作時RMAN將會執行以下步驟:
1.基于指定的恢復時間點來判斷包含被恢復表或表分區的是那個備份文件。

2.判斷在目標主機上是否有足夠的空間用來創建輔助實例來執行對表或表分區的恢復操作,如果沒有足夠空間,那么RMAN將會顯示錯誤信息并且退出恢復操作。

3.在目標主機上創建一個輔助數據庫并且在輔助數據庫中將指定的表或表分區恢復到指定的時間點。可以在目標主機上指定存儲輔助數據庫相關恢復數據文件的目錄。

4.創建對恢復的表或表分區使用Data Pump進行導出。可以指定用來存儲被恢復表或表分區元數據的dump文件的文件名與存儲目錄。

5.可選操作,將步驟4導出的表或表分區導入到目標數據庫中。可以選擇不將包含被恢復表或表分區導出dump文件導入到目標數據庫中。如果選擇不將導出dump文件導入目標數據庫作為恢復操作的一部分,那么之后必須使用Data Pump導入工具進行導入操作。

6.可選操作,在目標數據庫中重命名被恢復的表或表分區。也可以將被恢復的對象導入與它原始表空間或方案不同的表空間或方案中。

RMAN表恢復操作時輔助數據庫文件的存儲目錄
為了恢復指定的表或表分區,RMAN會創建一個輔助數據庫在恢復操作時使用。使用以下一種方法來在目標主機上指定用來存儲輔助數據庫文件的目錄:
.在recover命令中指定auxiliary destination子句。
.使用set newname命令。在run塊中使用recover命令并且使用set newname命令來重命名數據文件。

建議通過使用auxiliary destination子句來為輔助數據庫的數據文件指定存儲目錄。當使用set newname命令時,即使是只對恢復操作所請求的一個數據文件沒有執行set newname命令,那么就不能對表或表分區執行恢復操作。

RMAN恢復表與表分區操作中所使用的Data Pump導出dump文件
當在輔助數據庫中將表或表分區恢復到指定的時間點之后,RMAN會創建包含被恢復對象的Data Pump導出dump文件。可以指定dump文件的文件名與位置或者允許RMAN使用缺省的文件名與位置。在recover命令中使用datapump destination子句來指定創建Data Pump導出dump文件的存儲目錄。這個目錄通常是操作系統目錄路徑來存儲dump文件。如果忽略這個子句,dump文件會被存儲在由auxiliary destination參數所指定的目錄中。如果不指定輔助目錄,那么dump文件會被存儲在缺省操作系統特定的目錄中。在Linux操作系統中,缺省目錄為$ORACLE_HOME/dbs。在Windows操作系統中,缺省目錄為%ORACLE_HOME\database。在recover命令中使用dump file子句來指定創建Data Pump導出dump文件的存儲目錄。如果忽略這個子句,RMAN使用缺省操作系統特定的dump文件名。在Linux與Windows操作系統中,缺省的dump文件名為tspitr_SID-of-clone_n.dmp,SID-of-clone是RMAN在執行恢復操作時所創建的輔助數據庫的Oracle SID,其中n是任意隨機生成的數字。如果由dump file所指定的文件名在目錄中已經存在,那么恢復操作將會失敗。

將被恢復的表與表分區導入到目標數據庫
缺省情況下,RMAN會將存儲在dump文件中的被恢復表或表分區導入到目標數據庫中。然而,可以選擇在recover命令中使用notableimport子句來避免將被恢復的表或表分區導入到目標數據庫中。當notableimport子句被使用時,RMAN會將表或表分區恢復到指定的時間點,然后創建導出dump文件。然而,這個dump文件不會被導入到目標數據庫中。當需要時可以通過手動使用Data Pump導入工具將dump文件導入到目標數據庫。如果在導入操作時出現了錯誤,RMAN在表恢復操作結束時不會刪除導出dump文件。這可以讓你手動導入dump文件。

對被恢復的表與表分區進行重命名
當你恢復表或表分區時,可以在它們被導入到目標數據庫后進行重命名。remap table子句可以用來對目標數據庫中被恢復的表或表分區進行重命名。為了將被恢復的表或表分區導入與原始對象所存儲的不同表空間,可以在recover命令中使用remap tablespace子句。只有被恢復的表或表分區會被重新映射,已有的對象不會發生改變。如果目標數據庫中有與被恢復對象同名的對象,RMAN會顯示錯誤信息指示需要使用remap table子句來重命名被恢復的表。當恢復表分區時,每個表分區被恢復成一個單獨的表。使用remap table子句來指定每個被恢復的分區在導入時所使用的表名。如果沒有顯式地指定表名,RMAN會通過組合被恢復的表與分區名來生成表名。生成的表名格式為tablename_partitionname。如果表名在目標數據庫中已經存在了,那么RMAN會在表名后加上_1。如果這個表名也存在了,那么就在表名后加上_2依此類推。當使用remap選項時,任何命名約束與索引不會被導入。這可以避免與現有表發生沖突。

將表與分區恢復到新用戶方案中
將表或表分區恢復到不同的用戶方案中可以避免與原用戶方案中已經存在的約束,索引或觸發器名字發生命名沖突。從Oracle 12.2開始,可以將表或表分區恢復到與原用戶方案不同的用戶方案中。當將對象恢復到不同用戶方案中時,可以保留它們的原始名字或重新命名。在單個恢復操作中可以重命名表與重新映射用戶方案。例如,可以將hr.employees表恢復成new_hr.employees表,hr.new_employees表或new_hr.new_employees表。remap table子句能讓你重命名對象并且將它們恢復到不同的用戶方案中。在執行表恢復操作時,對recover table命令使用remap table子句來將原用戶方案映射成新用戶方案。在執行恢復操作之前新用戶方案必須先在目標數據庫中存在。表恢復在物理備庫中不支持。對于邏輯備庫,在主庫中執行的對象恢復也會被同步到邏輯備庫。

使用RMAN備份來恢復表與表分區的限制
當使用recover命令與RMAN備份來恢復表或表分區時存在以下限制:
.sys用戶方案中的表與表分區不能被恢復。
.system與sysaux表空間中的表與表分區不能被恢復。
.備庫中的表與表分區不能被恢復。
.有not null約束的表在使用remap選項時不能被恢復。

恢復表與表分區所需要的準備工作
使用RMAN備份來恢復表或表分區所需要的準備工作如下:
.驗證恢復表或表分區所需要的條件是否滿足。
.判斷表或表分區需要被恢復到的時間點。
.決定是否要將被恢復的表或表分區導入到目標數據庫中。缺省情況下,RMAN會將被恢復的表或表分區導入到目標數據庫中。然而可以指定RMAN不志入被恢復的對象。
.決定是否要對被恢復的表或表分區進行重命名,映射到新表空間或映射到新用戶方案。

使用RMAN備份恢復表與表分區的先決條件
.目標數據庫必須處于讀寫狀態。
.目標數據庫必須處于歸檔模式。
.對于這些對象所恢復的時間點來說被恢復的表或表分區必須有RMAN備份。
.為了恢復單個表分區,目標數據庫的compatible參數必須被設置為11.1.0或更高版本。

判斷表與表分區所要被恢復到的時間點
判斷表或表分區所要被恢復到的時間點是非常重要的。RMAN可以使用以下一種方法來指定恢復時間點:
.SCN,將表或表分區恢復到由SCN所指定的時間點。
.Time(時間),將表或表分區恢復到指定的時間點。所使用的日期格式是由NLS_LANG與NLS_DATE_FORMAT環境變量所組成的。也可以使用數據常量比如SYSDATE來指定時間,例如SYSDATE-30。
.Sequence number(日志序列號),將表或表分區恢復到由日志序列號與日志線程號所指定的時間點。

恢復表與表分區
下面將描述對Non-CDB中的表或表分區恢復到指定時間點的操作步驟。
1.執行恢復表與表分區所需要的準備工作
.驗證恢復表或表分區所需要的條件是否滿足。
.判斷表或表分區需要被恢復到的時間點。
.決定是否要將被恢復的表或表分區導入到目標數據庫中。缺省情況下,RMAN會將被恢復的表或表分區導入到目標數據庫中。然而可以指定RMAN不志入被恢復的對象。
.決定是否要對被恢復的表或表分區進行重命名,映射到新表空間或映射到新用戶方案。

2.啟動RMAN并使用有sysbacup或sysdba權限的用戶連接到目標數據庫。

3.通過使用recover table命令將要被恢復的表或表分區恢復到指定的時間點。必須使用auxiliary destination子句與以下子句中的一個用來指定恢復時間點:until time,until scn或until sequence。在recover命令中還

可以使用以下子句:
.dump file與datapump destination,指定包含被恢復表或表分區的導出dump文件的文件名與存儲位置。

.notableimport,指示被恢復的表或表分區不用導入到目標數據庫。

.remap table,在目標數據庫中將被恢復的表或表分區進行重命名。這個子句也可用來將原用戶方案中的表或表分區恢復到新用戶方案中。

.remap tablespace,將表與表分區恢復到與原始表空間不同的表空間中。

下面的例子使用RMAN備份對表t_emp進行按時間點恢復
1.對整個Non-CDB(orcl)生成RMAN備份

RMAN> backup as compressed backupset database format '+data/backup/%d_%I_%U_%t' plus archivelog format 'arc_%d_%T_%U';

Starting backup at 10-JAN-18
current log archived
using channel ORA_DISK_1
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=13 RECID=1 STAMP=964995986
input archived log thread=1 sequence=14 RECID=2 STAMP=965007422
input archived log thread=1 sequence=15 RECID=3 STAMP=965007493
input archived log thread=1 sequence=16 RECID=4 STAMP=965007542
input archived log thread=1 sequence=17 RECID=5 STAMP=965011311
input archived log thread=1 sequence=18 RECID=6 STAMP=965011687
channel ORA_DISK_1: starting piece 1 at 10-JAN-18
channel ORA_DISK_1: finished piece 1 at 10-JAN-18
piece handle=/u01/app/oracle/product/12.2.0/db/dbs/arc_ORCL_20180110_21so9q78_1_1 tag=TAG20180110T024807 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
Finished backup at 10-JAN-18

Starting backup at 10-JAN-18
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=00004 name=+DATA/orcl/datafile/users01.dbf
input datafile file number=00001 name=+DATA/orcl/datafile/system01.dbf
input datafile file number=00002 name=+DATA/orcl/datafile/sysaux01.dbf
input datafile file number=00003 name=+DATA/orcl/datafile/undotbs01.dbf
input datafile file number=00005 name=+DATA/orcl/datafile/usertbs01.dbf
channel ORA_DISK_1: starting piece 1 at 10-JAN-18
channel ORA_DISK_1: finished piece 1 at 10-JAN-18
piece handle=+DATA/backup/orcl_1492772871_22so9q7p_1_1_965011705 tag=TAG20180110T024824 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
Finished backup at 10-JAN-18

Starting backup at 10-JAN-18
current log archived
using channel ORA_DISK_1
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=19 RECID=7 STAMP=965011751
channel ORA_DISK_1: starting piece 1 at 10-JAN-18
channel ORA_DISK_1: finished piece 1 at 10-JAN-18
piece handle=/u01/app/oracle/product/12.2.0/db/dbs/arc_ORCL_20180110_23so9q98_1_1 tag=TAG20180110T024912 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 10-JAN-18

Starting Control File and SPFILE Autobackup at 10-JAN-18
piece handle=+DATA/backup/c-1492772871-20180110-01 comment=NONE
Finished Control File and SPFILE Autobackup at 10-JAN-18

2.在刪除表t_emp中記錄之前記錄當前scn與時間,在執行恢復時它們被用來指定恢復時間點

SQL> select count(*) from t_emp;

  COUNT(*)
----------
       107

1 row selected.

SQL> select sysdate from dual;

SYSDATE
-------------------
2018-01-10 02:50:10

1 row selected.

SQL> select current_scn   from v$database;

CURRENT_SCN
-----------
     399411

1 row selected.

SQL> delete from t_emp;

107 rows deleted.

SQL> commit;

Commit complete.

SQL> select count(*) from t_emp;

  COUNT(*)
----------
         0

1 row selected.

3.啟動RMAN并使用有sysbacup或sysdba權限的用戶連接到目標數據庫。

[oracle@jytest3 ~]$ rman target/

Recovery Manager: Release 12.2.0.1.0 - Production on Wed Jan 10 02:22:13 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1492772871)

4.通過使用recover table命令將要被恢復的表或表分區恢復到指定的時間點。 使用auxiliary destination子句(/ora_xtts/recover輔助數據文件存儲目錄)與until scn來指定恢復時間點,并且在recover命令中使用子句dump file與datapump destination,指定包含被恢復表或表分區的導出dump文件的文件名(t_emp.dmp)與存儲位置(/ora_xtts/dump)。使用notableimport子句指示被恢復的表或表分區不用導入到目標數據庫。

RMAN> run
2> {
3> recover table hr.t_emp
4> until scn 399411
5> auxiliary destination '/ora_xtts/recover'
6> datapump destination '/ora_xtts/dump'
7> dump file 't_emp.dmp'
8> notableimport;
9> }

Starting recover at 10-JAN-18
using channel ORA_DISK_1
RMAN-05026: warning: presuming following set of tablespaces applies to specified point-in-time

List of tablespaces expected to have UNDO segments
Tablespace SYSTEM
Tablespace UNDOTBS1

Creating automatic instance, with SID='fcsj'

initialization parameters used for automatic instance:
db_name=ORCL
db_unique_name=fcsj_pitr_ORCL
compatible=12.2.0
db_block_size=8192
db_files=200
diagnostic_dest=/u01/app/oracle
_system_trig_enabled=FALSE
sga_target=1024M
processes=120
db_create_file_dest=/ora_xtts/recover
log_archive_dest_1='location=/ora_xtts/recover'
#No auxiliary parameter file used


starting up automatic instance ORCL

Oracle instance started

Total System Global Area    1073741824 bytes

Fixed Size                     8628936 bytes
Variable Size                293602616 bytes
Database Buffers             763363328 bytes
Redo Buffers                   8146944 bytes
Automatic instance created

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# restore the controlfile
restore clone controlfile;
 
# mount the controlfile
sql clone 'alter database mount clone database';
 
# archive current online log 
sql 'alter system archive log current';
}
executing Memory Script

executing command: SET until clause

Starting restore at 10-JAN-18
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=6 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: reading from backup piece +DATA/backup/c-1492772871-20180110-01
channel ORA_AUX_DISK_1: piece handle=+DATA/backup/c-1492772871-20180110-01 tag=TAG20180110T024913
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:05
output file name=/ora_xtts/recover/ORCL/controlfile/o1_mf_f5b4xmpo_.ctl
Finished restore at 10-JAN-18

sql statement: alter database mount clone database

sql statement: alter system archive log current

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# set destinations for recovery set and auxiliary set datafiles
set newname for clone datafile  1 to new;
set newname for clone datafile  3 to new;
set newname for clone datafile  2 to new;
set newname for clone tempfile  1 to new;
# switch all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set and the auxiliary set
restore clone datafile  1, 3, 2;
 
switch clone datafile all;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /ora_xtts/recover/ORCL/datafile/o1_mf_tempts1_%u_.tmp in control file

Starting restore at 10-JAN-18
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /ora_xtts/recover/ORCL/datafile/o1_mf_system_%u_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00003 to /ora_xtts/recover/ORCL/datafile/o1_mf_undotbs1_%u_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00002 to /ora_xtts/recover/ORCL/datafile/o1_mf_sysaux_%u_.dbf
channel ORA_AUX_DISK_1: reading from backup piece +DATA/backup/orcl_1492772871_22so9q7p_1_1_965011705
channel ORA_AUX_DISK_1: piece handle=+DATA/backup/orcl_1492772871_22so9q7p_1_1_965011705 tag=TAG20180110T024824
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 10-JAN-18

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=965013098 file name=/ora_xtts/recover/ORCL/datafile/o1_mf_system_f5b4xwvo_.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=965013098 file name=/ora_xtts/recover/ORCL/datafile/o1_mf_undotbs1_f5b4xwx2_.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=6 STAMP=965013098 file name=/ora_xtts/recover/ORCL/datafile/o1_mf_sysaux_f5b4xwwj_.dbf

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# online the datafiles restored or switched
sql clone "alter database datafile  1 online";
sql clone "alter database datafile  3 online";
sql clone "alter database datafile  2 online";
# recover and open database read only
recover clone database tablespace  "SYSTEM", "UNDOTBS1", "SYSAUX";
sql clone 'alter database open read only';
}
executing Memory Script

executing command: SET until clause

sql statement: alter database datafile  1 online

sql statement: alter database datafile  3 online

sql statement: alter database datafile  2 online

Starting recover at 10-JAN-18
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 19 is already on disk as file +DATA/arch/orcl/1_19_964992135.dbf
archived log for thread 1 with sequence 20 is already on disk as file +DATA/arch/orcl/1_20_964992135.dbf
archived log file name=+DATA/arch/orcl/1_19_964992135.dbf thread=1 sequence=19
archived log file name=+DATA/arch/orcl/1_20_964992135.dbf thread=1 sequence=20
media recovery complete, elapsed time: 00:00:00
Finished recover at 10-JAN-18

sql statement: alter database open read only

contents of Memory Script:
{
   sql clone "create spfile from memory";
   shutdown clone immediate;
   startup clone nomount;
   sql clone "alter system set  control_files = 
  ''/ora_xtts/recover/ORCL/controlfile/o1_mf_f5b4xmpo_.ctl'' comment=
 ''RMAN set'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
# mount database
sql clone 'alter database mount clone database';
}
executing Memory Script

sql statement: create spfile from memory

database closed
database dismounted
Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1073741824 bytes

Fixed Size                     8628936 bytes
Variable Size                293602616 bytes
Database Buffers             763363328 bytes
Redo Buffers                   8146944 bytes

sql statement: alter system set  control_files =   ''/ora_xtts/recover/ORCL/controlfile/o1_mf_f5b4xmpo_.ctl'' comment= ''RMAN set'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1073741824 bytes

Fixed Size                     8628936 bytes
Variable Size                293602616 bytes
Database Buffers             763363328 bytes
Redo Buffers                   8146944 bytes

sql statement: alter database mount clone database

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# set destinations for recovery set and auxiliary set datafiles
set newname for datafile  4 to new;
# restore the tablespaces in the recovery set and the auxiliary set
restore clone datafile  4;
 
switch clone datafile all;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

Starting restore at 10-JAN-18
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=7 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /ora_xtts/recover/FCSJ_PITR_ORCL/datafile/o1_mf_users_%u_.dbf
channel ORA_AUX_DISK_1: reading from backup piece +DATA/backup/orcl_1492772871_22so9q7p_1_1_965011705
channel ORA_AUX_DISK_1: piece handle=+DATA/backup/orcl_1492772871_22so9q7p_1_1_965011705 tag=TAG20180110T024824
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:15
Finished restore at 10-JAN-18

datafile 4 switched to datafile copy
input datafile copy RECID=8 STAMP=965013242 file name=/ora_xtts/recover/FCSJ_PITR_ORCL/datafile/o1_mf_users_f5b51h8p_.dbf

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# online the datafiles restored or switched
sql clone "alter database datafile  4 online";
# recover and open resetlogs
recover clone database tablespace  "USERS", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;
alter clone database open resetlogs;
}
executing Memory Script

executing command: SET until clause

sql statement: alter database datafile  4 online

Starting recover at 10-JAN-18
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 19 is already on disk as file +DATA/arch/orcl/1_19_964992135.dbf
archived log for thread 1 with sequence 20 is already on disk as file +DATA/arch/orcl/1_20_964992135.dbf
archived log file name=+DATA/arch/orcl/1_19_964992135.dbf thread=1 sequence=19
archived log file name=+DATA/arch/orcl/1_20_964992135.dbf thread=1 sequence=20
media recovery complete, elapsed time: 00:00:01
Finished recover at 10-JAN-18

database opened

contents of Memory Script:
{
# create directory for datapump import
sql "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/ora_xtts/dump''";
# create directory for datapump export
sql clone "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/ora_xtts/dump''";
}
executing Memory Script

sql statement: create or replace directory TSPITR_DIROBJ_DPDIR as ''/ora_xtts/dump''

sql statement: create or replace directory TSPITR_DIROBJ_DPDIR as ''/ora_xtts/dump''

Performing export of tables...
   EXPDP> Starting "SYS"."TSPITR_EXP_fcsj_pkfh":  
   EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
   EXPDP> Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
   EXPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
   EXPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
   EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE
   EXPDP> Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
   EXPDP> . . exported "HR"."T_EMP"                                17.08 KB     107 rows
   EXPDP> Master table "SYS"."TSPITR_EXP_fcsj_pkfh" successfully loaded/unloaded
   EXPDP> ******************************************************************************
   EXPDP> Dump file set for SYS.TSPITR_EXP_fcsj_pkfh is:
   EXPDP>   /ora_xtts/dump/t_emp.dmp
   EXPDP> Job "SYS"."TSPITR_EXP_fcsj_pkfh" successfully completed at Wed Jan 10 03:15:08 2018 elapsed 0 00:00:32
Export completed

Not performing table import after point-in-time recovery

Removing automatic instance
shutting down automatic instance 
Oracle instance shut down
Automatic instance removed
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_tempts1_f5b4zhf9_.tmp deleted
auxiliary instance file /ora_xtts/recover/FCSJ_PITR_ORCL/onlinelog/o1_mf_3_f5b53yp4_.log deleted
auxiliary instance file /ora_xtts/recover/FCSJ_PITR_ORCL/onlinelog/o1_mf_2_f5b53yol_.log deleted
auxiliary instance file /ora_xtts/recover/FCSJ_PITR_ORCL/onlinelog/o1_mf_1_f5b53ynw_.log deleted
auxiliary instance file /ora_xtts/recover/FCSJ_PITR_ORCL/datafile/o1_mf_users_f5b51h8p_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_sysaux_f5b4xwwj_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_undotbs1_f5b4xwx2_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_system_f5b4xwvo_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/controlfile/o1_mf_f5b4xmpo_.ctl deleted
Finished recover at 10-JAN-18

如果會使用remap table子句將hr.t_emp恢復成jy.t_emp_recvr。使用remap tablespace子句將表t_emp從users表空間恢復到usertbs表空間。那么可以執行下面的命令來進行恢復就不需要執行步驟5

RMAN> run
2> {
3> recover table hr.t_emp
4> until scn 399411
5> auxiliary destination '/ora_xtts/recover'
6> datapump destination '/ora_xtts/dump'
7> dump file 't_emp_recvr.dmp'
8> remap table 'HR'.'T_EMP':'JY'.'T_EMP_NEW'
9> remap tablespace 'USERS':'USERTBS';
10> }

Starting recover at 10-JAN-18
current log archived
using channel ORA_DISK_1
RMAN-05026: warning: presuming following set of tablespaces applies to specified point-in-time

List of tablespaces expected to have UNDO segments
Tablespace SYSTEM
Tablespace UNDOTBS1

Creating automatic instance, with SID='jzdF'

initialization parameters used for automatic instance:
db_name=ORCL
db_unique_name=jzdF_pitr_ORCL
compatible=12.2.0
db_block_size=8192
db_files=200
diagnostic_dest=/u01/app/oracle
_system_trig_enabled=FALSE
sga_target=1024M
processes=120
db_create_file_dest=/ora_xtts/recover
log_archive_dest_1='location=/ora_xtts/recover'
#No auxiliary parameter file used


starting up automatic instance ORCL

Oracle instance started

Total System Global Area    1073741824 bytes

Fixed Size                     8628936 bytes
Variable Size                293602616 bytes
Database Buffers             763363328 bytes
Redo Buffers                   8146944 bytes
Automatic instance created

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# restore the controlfile
restore clone controlfile;
 
# mount the controlfile
sql clone 'alter database mount clone database';
 
# archive current online log 
sql 'alter system archive log current';
}
executing Memory Script

executing command: SET until clause

Starting restore at 10-JAN-18
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=6 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: reading from backup piece +DATA/backup/c-1492772871-20180110-02
channel ORA_AUX_DISK_1: piece handle=+DATA/backup/c-1492772871-20180110-02 tag=TAG20180110T200959
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
output file name=/ora_xtts/recover/ORCL/controlfile/o1_mf_f5d2402v_.ctl
Finished restore at 10-JAN-18

sql statement: alter database mount clone database

sql statement: alter system archive log current

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# set destinations for recovery set and auxiliary set datafiles
set newname for clone datafile  1 to new;
set newname for clone datafile  3 to new;
set newname for clone datafile  2 to new;
set newname for clone tempfile  1 to new;
# switch all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set and the auxiliary set
restore clone datafile  1, 3, 2;
 
switch clone datafile all;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to /ora_xtts/recover/ORCL/datafile/o1_mf_tempts1_%u_.tmp in control file

Starting restore at 10-JAN-18
using channel ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /ora_xtts/recover/ORCL/datafile/o1_mf_system_%u_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00003 to /ora_xtts/recover/ORCL/datafile/o1_mf_undotbs1_%u_.dbf
channel ORA_AUX_DISK_1: restoring datafile 00002 to /ora_xtts/recover/ORCL/datafile/o1_mf_sysaux_%u_.dbf
channel ORA_AUX_DISK_1: reading from backup piece +DATA/backup/orcl_1492772871_26sobn77_1_1_965074151
channel ORA_AUX_DISK_1: piece handle=+DATA/backup/orcl_1492772871_26sobn77_1_1_965074151 tag=TAG20180110T200911
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 10-JAN-18

datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=965075765 file name=/ora_xtts/recover/ORCL/datafile/o1_mf_system_f5d248q8_.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=5 STAMP=965075766 file name=/ora_xtts/recover/ORCL/datafile/o1_mf_undotbs1_f5d248r7_.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=6 STAMP=965075766 file name=/ora_xtts/recover/ORCL/datafile/o1_mf_sysaux_f5d248qv_.dbf

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# online the datafiles restored or switched
sql clone "alter database datafile  1 online";
sql clone "alter database datafile  3 online";
sql clone "alter database datafile  2 online";
# recover and open database read only
recover clone database tablespace  "SYSTEM", "UNDOTBS1", "SYSAUX";
sql clone 'alter database open read only';
}
executing Memory Script

executing command: SET until clause

sql statement: alter database datafile  1 online

sql statement: alter database datafile  3 online

sql statement: alter database datafile  2 online

Starting recover at 10-JAN-18
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 24 is already on disk as file +DATA/arch/orcl/1_24_964992135.dbf
archived log for thread 1 with sequence 25 is already on disk as file +DATA/arch/orcl/1_25_964992135.dbf
archived log file name=+DATA/arch/orcl/1_24_964992135.dbf thread=1 sequence=24
archived log file name=+DATA/arch/orcl/1_25_964992135.dbf thread=1 sequence=25
media recovery complete, elapsed time: 00:00:01
Finished recover at 10-JAN-18

sql statement: alter database open read only

contents of Memory Script:
{
   sql clone "create spfile from memory";
   shutdown clone immediate;
   startup clone nomount;
   sql clone "alter system set  control_files = 
  ''/ora_xtts/recover/ORCL/controlfile/o1_mf_f5d2402v_.ctl'' comment=
 ''RMAN set'' scope=spfile";
   shutdown clone immediate;
   startup clone nomount;
# mount database
sql clone 'alter database mount clone database';
}
executing Memory Script

sql statement: create spfile from memory

database closed
database dismounted
Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1073741824 bytes

Fixed Size                     8628936 bytes
Variable Size                293602616 bytes
Database Buffers             763363328 bytes
Redo Buffers                   8146944 bytes

sql statement: alter system set  control_files =   ''/ora_xtts/recover/ORCL/controlfile/o1_mf_f5d2402v_.ctl'' comment= ''RMAN set'' scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area    1073741824 bytes

Fixed Size                     8628936 bytes
Variable Size                293602616 bytes
Database Buffers             763363328 bytes
Redo Buffers                   8146944 bytes

sql statement: alter database mount clone database

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# set destinations for recovery set and auxiliary set datafiles
set newname for datafile  4 to new;
# restore the tablespaces in the recovery set and the auxiliary set
restore clone datafile  4;
 
switch clone datafile all;
}
executing Memory Script

executing command: SET until clause

executing command: SET NEWNAME

Starting restore at 10-JAN-18
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=7 device type=DISK

channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /ora_xtts/recover/JZDF_PITR_ORCL/datafile/o1_mf_users_%u_.dbf
channel ORA_AUX_DISK_1: reading from backup piece +DATA/backup/orcl_1492772871_26sobn77_1_1_965074151
channel ORA_AUX_DISK_1: piece handle=+DATA/backup/orcl_1492772871_26sobn77_1_1_965074151 tag=TAG20180110T200911
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:55
Finished restore at 10-JAN-18

datafile 4 switched to datafile copy
input datafile copy RECID=8 STAMP=965075892 file name=/ora_xtts/recover/JZDF_PITR_ORCL/datafile/o1_mf_users_f5d27wvd_.dbf

contents of Memory Script:
{
# set requested point in time
set until  scn 399411;
# online the datafiles restored or switched
sql clone "alter database datafile  4 online";
# recover and open resetlogs
recover clone database tablespace  "USERS", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;
alter clone database open resetlogs;
}
executing Memory Script

executing command: SET until clause

sql statement: alter database datafile  4 online

Starting recover at 10-JAN-18
using channel ORA_AUX_DISK_1

starting media recovery

archived log for thread 1 with sequence 24 is already on disk as file +DATA/arch/orcl/1_24_964992135.dbf
archived log for thread 1 with sequence 25 is already on disk as file +DATA/arch/orcl/1_25_964992135.dbf
archived log file name=+DATA/arch/orcl/1_24_964992135.dbf thread=1 sequence=24
archived log file name=+DATA/arch/orcl/1_25_964992135.dbf thread=1 sequence=25
media recovery complete, elapsed time: 00:00:00
Finished recover at 10-JAN-18

database opened

contents of Memory Script:
{
# create directory for datapump import
sql "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/ora_xtts/dump''";
# create directory for datapump export
sql clone "create or replace directory TSPITR_DIROBJ_DPDIR as ''
/ora_xtts/dump''";
}
executing Memory Script

sql statement: create or replace directory TSPITR_DIROBJ_DPDIR as ''/ora_xtts/dump''

sql statement: create or replace directory TSPITR_DIROBJ_DPDIR as ''/ora_xtts/dump''

Performing export of tables...
   EXPDP> Starting "SYS"."TSPITR_EXP_jzdF_fxiC":  
   EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
   EXPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
   EXPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
   EXPDP> Processing object type TABLE_EXPORT/TABLE/TABLE
   EXPDP> . . exported "HR"."T_EMP"                                17.08 KB     107 rows
   EXPDP> Master table "SYS"."TSPITR_EXP_jzdF_fxiC" successfully loaded/unloaded
   EXPDP> ******************************************************************************
   EXPDP> Dump file set for SYS.TSPITR_EXP_jzdF_fxiC is:
   EXPDP>   /ora_xtts/dump/t_emp_recvr.dmp
   EXPDP> Job "SYS"."TSPITR_EXP_jzdF_fxiC" successfully completed at Wed Jan 10 20:39:09 2018 elapsed 0 00:00:32
Export completed


contents of Memory Script:
{
# shutdown clone before import
shutdown clone abort
}
executing Memory Script

Oracle instance shut down

Performing import of tables...
   IMPDP> Master table "SYS"."TSPITR_IMP_jzdF_BDce" successfully loaded/unloaded
   IMPDP> Starting "SYS"."TSPITR_IMP_jzdF_BDce":  
   IMPDP> Processing object type TABLE_EXPORT/TABLE/TABLE
   IMPDP> Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
   IMPDP> . . imported "JY"."T_EMP_NEW"                            17.08 KB     107 rows
   IMPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
   IMPDP> Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
   IMPDP> Job "SYS"."TSPITR_IMP_jzdF_BDce" successfully completed at Wed Jan 10 20:39:47 2018 elapsed 0 00:00:31
Import completed


Removing automatic instance
Automatic instance removed
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_tempts1_f5d25tp8_.tmp deleted
auxiliary instance file /ora_xtts/recover/JZDF_PITR_ORCL/onlinelog/o1_mf_3_f5d29sj0_.log deleted
auxiliary instance file /ora_xtts/recover/JZDF_PITR_ORCL/onlinelog/o1_mf_2_f5d29shf_.log deleted
auxiliary instance file /ora_xtts/recover/JZDF_PITR_ORCL/onlinelog/o1_mf_1_f5d29sgs_.log deleted
auxiliary instance file /ora_xtts/recover/JZDF_PITR_ORCL/datafile/o1_mf_users_f5d27wvd_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_sysaux_f5d248qv_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_undotbs1_f5d248r7_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/datafile/o1_mf_system_f5d248q8_.dbf deleted
auxiliary instance file /ora_xtts/recover/ORCL/controlfile/o1_mf_f5d2402v_.ctl deleted
auxiliary instance file t_emp_recvr.dmp deleted
Finished recover at 10-JAN-18

5.通過t_emp.dmp文件將表t_emp中的數據導入

[oracle@jytest3 dump]$ impdp hr/hr@orcl dumpfile=dump_dir:t_emp.dmp

Import: Release 12.2.0.1.0 - Production on Wed Jan 10 03:23:34 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Master table "HR"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "HR"."SYS_IMPORT_FULL_01":  hr/********@orcl dumpfile=dump_dir:t_emp.dmp 
Processing object type TABLE_EXPORT/TABLE/TABLE
ORA-39151: Table "HR"."T_EMP" exists. All dependent metadata and data will be skipped due to table_exists_action of skip

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "HR"."SYS_IMPORT_FULL_01" completed with 1 error(s) at Wed Jan 10 03:23:51 2018 elapsed 0 00:00:10

報錯是因為表t_emp已經存在,impdp的缺省操作就是跳過對這張表進行導入操作,所以需要使用選項table_exists_action=truncate來進行導入。

[oracle@jytest3 dump]$ impdp hr/hr@orcl dumpfile=dump_dir:t_emp.dmp table_exists_action=truncate

Import: Release 12.2.0.1.0 - Production on Wed Jan 10 03:29:10 2018

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Master table "HR"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "HR"."SYS_IMPORT_FULL_01":  hr/********@orcl dumpfile=dump_dir:t_emp.dmp table_exists_action=truncate 
Processing object type TABLE_EXPORT/TABLE/TABLE
Table "HR"."T_EMP" exists and has been truncated. Data will be loaded but all dependent metadata will be skipped due to table_exists_action of truncate
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "HR"."T_EMP"                                17.08 KB     107 rows
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "HR"."SYS_IMPORT_FULL_01" successfully completed at Wed Jan 10 03:29:30 2018 elapsed 0 00:00:18

6.驗證表t_emp中的記錄,可以看到已經成功恢復到被刪了記錄之前的狀態。

SQL> select count(*) from t_emp;

  COUNT(*)
----------
       107

以上是“Oracle 12c如何使用RMAN備份對Non-CDB中的表按時間點進行恢復”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金堂县| 阿尔山市| 亚东县| 天台县| 宜章县| 铜山县| 濮阳市| 巴彦淖尔市| 平原县| 嫩江县| 栾城县| 邯郸市| 永川市| 浮梁县| 澎湖县| 古丈县| 通榆县| 手机| 金堂县| 乌拉特中旗| 黄陵县| 苍南县| 会泽县| 克什克腾旗| 大同县| 遂川县| 平和县| 卓尼县| 介休市| 东光县| 金秀| 三台县| 广德县| 桐乡市| 葫芦岛市| 大名县| 长垣县| 金山区| 鄂托克旗| 柞水县| 炉霍县|