RMAN使用recover命令來將表或表分區(qū)恢復(fù)到指定的時間點。為了從RMAN備份中恢復(fù)表與表分區(qū),你必須提供以下信息:
.要被恢復(fù)的表或表分區(qū)
.表或表分區(qū)要被恢復(fù)到的特定時間點
.被恢復(fù)的表或表分區(qū)是否要被導(dǎo)入到目標(biāo)數(shù)據(jù)庫中
為泉州等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及泉州網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、泉州網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
RMAN使用這些信息來自動對表或表分區(qū)執(zhí)行恢復(fù)操作。作為恢復(fù)處理的一部分,RMAN會創(chuàng)建一個輔助數(shù)據(jù)庫用來將表或表分區(qū)恢復(fù)到指定的時間點。如果被恢復(fù)的表或表分區(qū)需要被重命名,映射到新表空間或映射到新方案中,那么必須指定新的表名,表空間名或方案名。
當(dāng)從RMAN備份中自動處理表或表分區(qū)的恢復(fù)操作時RMAN將會執(zhí)行以下步驟:
1.基于指定的恢復(fù)時間點來判斷包含被恢復(fù)表或表分區(qū)的是那個備份文件。
2.判斷在目標(biāo)主機上是否有足夠的空間用來創(chuàng)建輔助實例來執(zhí)行對表或表分區(qū)的恢復(fù)操作,如果沒有足夠空間,那么RMAN將會顯示錯誤信息并且退出恢復(fù)操作。
3.在目標(biāo)主機上創(chuàng)建一個輔助數(shù)據(jù)庫并且在輔助數(shù)據(jù)庫中將指定的表或表分區(qū)恢復(fù)到指定的時間點??梢栽谀繕?biāo)主機上指定存儲輔助數(shù)據(jù)庫相關(guān)恢復(fù)數(shù)據(jù)文件的目錄。
4.創(chuàng)建對恢復(fù)的表或表分區(qū)使用Data Pump進(jìn)行導(dǎo)出??梢灾付ㄓ脕泶鎯Ρ换謴?fù)表或表分區(qū)元數(shù)據(jù)的dump文件的文件名與存儲目錄。
5.可選操作,將步驟4導(dǎo)出的表或表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中??梢赃x擇不將包含被恢復(fù)表或表分區(qū)導(dǎo)出dump文件導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。如果選擇不將導(dǎo)出dump文件導(dǎo)入目標(biāo)數(shù)據(jù)庫作為恢復(fù)操作的一部分,那么之后必須使用Data Pump導(dǎo)入工具進(jìn)行導(dǎo)入操作。
6.可選操作,在目標(biāo)數(shù)據(jù)庫中重命名被恢復(fù)的表或表分區(qū)。也可以將被恢復(fù)的對象導(dǎo)入與它原始表空間或方案不同的表空間或方案中。
RMAN表恢復(fù)操作時輔助數(shù)據(jù)庫文件的存儲目錄
為了恢復(fù)指定的表或表分區(qū),RMAN會創(chuàng)建一個輔助數(shù)據(jù)庫在恢復(fù)操作時使用。使用以下一種方法來在目標(biāo)主機上指定用來存儲輔助數(shù)據(jù)庫文件的目錄:
.在recover命令中指定auxiliary destination子句。
.使用set newname命令。在run塊中使用recover命令并且使用set newname命令來重命名數(shù)據(jù)文件。
建議通過使用auxiliary destination子句來為輔助數(shù)據(jù)庫的數(shù)據(jù)文件指定存儲目錄。當(dāng)使用set newname命令時,即使是只對恢復(fù)操作所請求的一個數(shù)據(jù)文件沒有執(zhí)行set newname命令,那么就不能對表或表分區(qū)執(zhí)行恢復(fù)操作。
RMAN恢復(fù)表與表分區(qū)操作中所使用的Data Pump導(dǎo)出dump文件
當(dāng)在輔助數(shù)據(jù)庫中將表或表分區(qū)恢復(fù)到指定的時間點之后,RMAN會創(chuàng)建包含被恢復(fù)對象的Data Pump導(dǎo)出dump文件??梢灾付╠ump文件的文件名與位置或者允許RMAN使用缺省的文件名與位置。在recover命令中使用datapump destination子句來指定創(chuàng)建Data Pump導(dǎo)出dump文件的存儲目錄。這個目錄通常是操作系統(tǒng)目錄路徑來存儲dump文件。如果忽略這個子句,dump文件會被存儲在由auxiliary destination參數(shù)所指定的目錄中。如果不指定輔助目錄,那么dump文件會被存儲在缺省操作系統(tǒng)特定的目錄中。在Linux操作系統(tǒng)中,缺省目錄為$ORACLE_HOME/dbs。在Windows操作系統(tǒng)中,缺省目錄為%ORACLE_HOME\database。在recover命令中使用dump file子句來指定創(chuàng)建Data Pump導(dǎo)出dump文件的存儲目錄。如果忽略這個子句,RMAN使用缺省操作系統(tǒng)特定的dump文件名。在Linux與Windows操作系統(tǒng)中,缺省的dump文件名為tspitr_SID-of-clone_n.dmp,SID-of-clone是RMAN在執(zhí)行恢復(fù)操作時所創(chuàng)建的輔助數(shù)據(jù)庫的Oracle SID,其中n是任意隨機生成的數(shù)字。如果由dump file所指定的文件名在目錄中已經(jīng)存在,那么恢復(fù)操作將會失敗。
將被恢復(fù)的表與表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫
缺省情況下,RMAN會將存儲在dump文件中的被恢復(fù)表或表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。然而,可以選擇在recover命令中使用notableimport子句來避免將被恢復(fù)的表或表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。當(dāng)notableimport子句被使用時,RMAN會將表或表分區(qū)恢復(fù)到指定的時間點,然后創(chuàng)建導(dǎo)出dump文件。然而,這個dump文件不會被導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。當(dāng)需要時可以通過手動使用Data Pump導(dǎo)入工具將dump文件導(dǎo)入到目標(biāo)數(shù)據(jù)庫。如果在導(dǎo)入操作時出現(xiàn)了錯誤,RMAN在表恢復(fù)操作結(jié)束時不會刪除導(dǎo)出dump文件。這可以讓你手動導(dǎo)入dump文件。
對被恢復(fù)的表與表分區(qū)進(jìn)行重命名
當(dāng)你恢復(fù)表或表分區(qū)時,可以在它們被導(dǎo)入到目標(biāo)數(shù)據(jù)庫后進(jìn)行重命名。remap table子句可以用來對目標(biāo)數(shù)據(jù)庫中被恢復(fù)的表或表分區(qū)進(jìn)行重命名。為了將被恢復(fù)的表或表分區(qū)導(dǎo)入與原始對象所存儲的不同表空間,可以在recover命令中使用remap tablespace子句。只有被恢復(fù)的表或表分區(qū)會被重新映射,已有的對象不會發(fā)生改變。如果目標(biāo)數(shù)據(jù)庫中有與被恢復(fù)對象同名的對象,RMAN會顯示錯誤信息指示需要使用remap table子句來重命名被恢復(fù)的表。當(dāng)恢復(fù)表分區(qū)時,每個表分區(qū)被恢復(fù)成一個單獨的表。使用remap table子句來指定每個被恢復(fù)的分區(qū)在導(dǎo)入時所使用的表名。如果沒有顯式地指定表名,RMAN會通過組合被恢復(fù)的表與分區(qū)名來生成表名。生成的表名格式為tablename_partitionname。如果表名在目標(biāo)數(shù)據(jù)庫中已經(jīng)存在了,那么RMAN會在表名后加上_1。如果這個表名也存在了,那么就在表名后加上_2依此類推。當(dāng)使用remap選項時,任何命名約束與索引不會被導(dǎo)入。這可以避免與現(xiàn)有表發(fā)生沖突。
將表與分區(qū)恢復(fù)到新用戶方案中
將表或表分區(qū)恢復(fù)到不同的用戶方案中可以避免與原用戶方案中已經(jīng)存在的約束,索引或觸發(fā)器名字發(fā)生命名沖突。從Oracle 12.2開始,可以將表或表分區(qū)恢復(fù)到與原用戶方案不同的用戶方案中。當(dāng)將對象恢復(fù)到不同用戶方案中時,可以保留它們的原始名字或重新命名。在單個恢復(fù)操作中可以重命名表與重新映射用戶方案。例如,可以將hr.employees表恢復(fù)成new_hr.employees表,hr.new_employees表或new_hr.new_employees表。remap table子句能讓你重命名對象并且將它們恢復(fù)到不同的用戶方案中。在執(zhí)行表恢復(fù)操作時,對recover table命令使用remap table子句來將原用戶方案映射成新用戶方案。在執(zhí)行恢復(fù)操作之前新用戶方案必須先在目標(biāo)數(shù)據(jù)庫中存在。表恢復(fù)在物理備庫中不支持。對于邏輯備庫,在主庫中執(zhí)行的對象恢復(fù)也會被同步到邏輯備庫。
使用RMAN備份來恢復(fù)表與表分區(qū)的限制
當(dāng)使用recover命令與RMAN備份來恢復(fù)表或表分區(qū)時存在以下限制:
.sys用戶方案中的表與表分區(qū)不能被恢復(fù)。
.system與sysaux表空間中的表與表分區(qū)不能被恢復(fù)。
.備庫中的表與表分區(qū)不能被恢復(fù)。
.有not null約束的表在使用remap選項時不能被恢復(fù)。
恢復(fù)表與表分區(qū)所需要的準(zhǔn)備工作
使用RMAN備份來恢復(fù)表或表分區(qū)所需要的準(zhǔn)備工作如下:
.驗證恢復(fù)表或表分區(qū)所需要的條件是否滿足。
.判斷表或表分區(qū)需要被恢復(fù)到的時間點。
.決定是否要將被恢復(fù)的表或表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。缺省情況下,RMAN會將被恢復(fù)的表或表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。然而可以指定RMAN不志入被恢復(fù)的對象。
.決定是否要對被恢復(fù)的表或表分區(qū)進(jìn)行重命名,映射到新表空間或映射到新用戶方案。
使用RMAN備份恢復(fù)表與表分區(qū)的先決條件
.目標(biāo)數(shù)據(jù)庫必須處于讀寫狀態(tài)。
.目標(biāo)數(shù)據(jù)庫必須處于歸檔模式。
.對于這些對象所恢復(fù)的時間點來說被恢復(fù)的表或表分區(qū)必須有RMAN備份。
.為了恢復(fù)單個表分區(qū),目標(biāo)數(shù)據(jù)庫的compatible參數(shù)必須被設(shè)置為11.1.0或更高版本。
判斷表與表分區(qū)所要被恢復(fù)到的時間點
判斷表或表分區(qū)所要被恢復(fù)到的時間點是非常重要的。RMAN可以使用以下一種方法來指定恢復(fù)時間點:
.SCN,將表或表分區(qū)恢復(fù)到由SCN所指定的時間點。
.Time(時間),將表或表分區(qū)恢復(fù)到指定的時間點。所使用的日期格式是由NLS_LANG與NLS_DATE_FORMAT環(huán)境變量所組成的。也可以使用數(shù)據(jù)常量比如SYSDATE來指定時間,例如SYSDATE-30。
.Sequence number(日志序列號),將表或表分區(qū)恢復(fù)到由日志序列號與日志線程號所指定的時間點。
恢復(fù)表與表分區(qū)
下面將描述對Non-CDB中的表或表分區(qū)恢復(fù)到指定時間點的操作步驟。
1.執(zhí)行恢復(fù)表與表分區(qū)所需要的準(zhǔn)備工作
.驗證恢復(fù)表或表分區(qū)所需要的條件是否滿足。
.判斷表或表分區(qū)需要被恢復(fù)到的時間點。
.決定是否要將被恢復(fù)的表或表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。缺省情況下,RMAN會將被恢復(fù)的表或表分區(qū)導(dǎo)入到目標(biāo)數(shù)據(jù)庫中。然而可以指定RMAN不志入被恢復(fù)的對象。
.決定是否要對被恢復(fù)的表或表分區(qū)進(jìn)行重命名,映射到新表空間或映射到新用戶方案。
2.啟動RMAN并使用有sysbacup或sysdba權(quán)限的用戶連接到目標(biāo)數(shù)據(jù)庫。
3.通過使用recover table命令將要被恢復(fù)的表或表分區(qū)恢復(fù)到指定的時間點。必須使用auxiliary destination子句與以下子句中的一個用來指定恢復(fù)時間點:until time,until scn或until sequence。在recover命令中還
可以使用以下子句:
.dump file與datapump destination,指定包含被恢復(fù)表或表分區(qū)的導(dǎo)出dump文件的文件名與存儲位置。
.notableimport,指示被恢復(fù)的表或表分區(qū)不用導(dǎo)入到目標(biāo)數(shù)據(jù)庫。
.remap table,在目標(biāo)數(shù)據(jù)庫中將被恢復(fù)的表或表分區(qū)進(jìn)行重命名。這個子句也可用來將原用戶方案中的表或表分區(qū)恢復(fù)到新用戶方案中。
.remap tablespace,將表與表分區(qū)恢復(fù)到與原始表空間不同的表空間中。
下面的例子使用RMAN備份對表t_emp進(jìn)行按時間點恢復(fù)
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中記錄之前記錄當(dāng)前scn與時間,在執(zhí)行恢復(fù)時它們被用來指定恢復(fù)時間點
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權(quán)限的用戶連接到目標(biāo)數(shù)據(jù)庫。
[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命令將要被恢復(fù)的表或表分區(qū)恢復(fù)到指定的時間點。 使用auxiliary destination子句(/ora_xtts/recover輔助數(shù)據(jù)文件存儲目錄)與until scn來指定恢復(fù)時間點,并且在recover命令中使用子句dump file與datapump destination,指定包含被恢復(fù)表或表分區(qū)的導(dǎo)出dump文件的文件名(t_emp.dmp)與存儲位置(/ora_xtts/dump)。使用notableimport子句指示被恢復(fù)的表或表分區(qū)不用導(dǎo)入到目標(biāo)數(shù)據(jù)庫。
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恢復(fù)成jy.t_emp_recvr。使用remap tablespace子句將表t_emp從hr用戶方案恢復(fù)到j(luò)y用戶方案中。那么可以執(zhí)行下面的命令來進(jìn)行恢復(fù)就不需要執(zhí)行步驟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中的數(shù)據(jù)導(dǎo)入
[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已經(jīng)存在,impdp的缺省操作就是跳過對這張表進(jìn)行導(dǎo)入操作,所以需要使用選項table_exists_action=truncate來進(jìn)行導(dǎo)入。
[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中的記錄,可以看到已經(jīng)成功恢復(fù)到被刪了記錄之前的狀態(tài)。
SQL> select count(*) from t_emp; COUNT(*) ---------- 107
網(wǎng)站標(biāo)題:使用RMAN備份對Non-CDB中的表按時間點進(jìn)行恢復(fù)
轉(zhuǎn)載來于:http://aaarwkj.com/article32/ihhopc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站改版、自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣、ChatGPT、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)