使用XTTS+增量遷移數據庫

-- 參考文檔,xtts使用到的腳本可以從以下MOS下載。
11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文檔 ID 1389592.1)
12c – 使用跨平臺增量備份來減少傳輸表空間的停機時間 (文檔 ID 2102859.1)

12C - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文檔 ID 2005729.1)

-- db info
源端 : rdbms 11.2.0.4  192.168.2.52  , 實例名testogg
目標端:rdbms 12.2.0.1  192.168.2.74  , 實例名test  

-- 在源端開啓塊跟蹤

alter database enable block change tracking using file '/home/oracle/block_change_tracking.f';

-- 在源端創建測試用表空間, 創建用戶和測試數據

create tablespace xtts datafile '/u01/app/oracle/oradata/testogg/xtts01.dbf' size 100M autoextend on;
create user u_xtts identified by oracle;
grant connect,resource to u_xtts;
grant dba to u_xtts;
alter user u_xtts default tablespace xtts;
conn u_xtts/oracle
create table t_xtts as select * from dba_objects;

--在源端安裝rman_xttconvert_v3.zip ,編輯xtt.properties文件

tablespaces=xtts 
platformid=13
dfcopydir=/backup/xtts/full     -- 源端datafile convert 保存路徑,產生的是datafile copy 。
backupformat=/backup/xtts/inc    -- 源端備份保存路徑(含增量備份) .源庫上備份放置的地方,這個目錄必須有足夠的空閒磁盤空間來放置0級備份及所有之後產生的增量備份
stageondest=/backup/xtts/full    --目標端備份文件存放路徑 .目標系統上用來放置從源庫上傳輸過來的備份的位置
storageondest=/u01/app/oracle/oradata/testogg   -- 目標端的數據文件保存位置
backupondest=/backup/xtts/inc     --目標端增量備份集存放路徑

-- export下環境變量TMPDIR,指向腳本所在的目錄。否則會報錯,報錯看提示或者FAILED文件。然後Make sure srcdir dstdir srclink is not defined with prepare

export TMPDIR=/home/oracle

-- 對庫進行全備 。在/backup/xtts/full下生成了備份文件

/u01/app/oracle/product/11.2.0/dbhome_1/perl/bin/perl xttdriver.pl -p

-- 將備份和相關文件copy到目標庫對應的位置。源端的backupformat目錄中的備份要傳送到目標端stageondest目錄。

cd /backup/xtts/full
scp * 192.168.2.74:/backup/xtts/full/

cd /home/oracle/
scp rmanconvert.cmd 192.168.2.74:/home/oracle/

-- 在目標端恢復全備(恢復出數據文件),數據文件會被恢復到storageondest定義的目錄中。

export TMPDIR=/home/oracle
cd /home/oracle
/u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl xttdriver.pl -c

-- 源端製造增量數據

 

conn u_xtts/oracle
insert into  t_xtts select * from dba_objects;
commit;

-- 源端執行增量備份 ,生成增量備份文件和txt文件

/u01/app/oracle/product/11.2.0/dbhome_1/perl/bin/perl xttdriver.pl -i

[oracle@oggtest ~]$ ll *.txt
-rw-r--r--. 1 oracle oinstall 150181 Apr 28 09:06 awrrpt_1_28_29.txt
-rw-r--r--  1 oracle oinstall     30 Jun  1 13:53 incrbackups.txt
-rw-r--r--  1 oracle oinstall     25 Jun  1 13:53 tsbkupmap.txt
-rw-r--r--  1 oracle oinstall     52 Jun  1 13:28 xttnewdatafiles.txt
-rw-r--r--  1 oracle oinstall     18 Jun  1 13:28 xttplan.txt
[oracle@oggtest ~]$ 

--將生成的增量備份文件(在incrbackups.txt中有記錄)和相關TXT文件copy到目標庫對應的文件夾下.(xttplan.txt, tsbkupmap.txt, incrbackups.txt)在每次增量備份中仍然需要拷貝。因爲這些文件在每次執行增量備份後會發生改變。

$ scp `cat incrbackups.txt` oracle@dest:/stageondest  -- 和下面語句一樣

[oracle@oggtest inc]$ pwd
/backup/xtts/full
[oracle@oggtest inc]$ scp 02v1lmv6_1_1 192.168.2.74:/backup/xtts/full/    

cd /home/oracle
scp xttplan.txt 192.168.2.74:/home/oracle/
scp tsbkupmap.txt 192.168.2.74:/home/oracle/
scp incrbackups.txt 192.168.2.74:/home/oracle/

-- 目標端進行增量恢復。(每次這個步驟在執行中,都需要拷貝 xttplan.txt 和 tsbkupmap.txt,因爲它們的內容在每次執行時都會發生改變。)

/u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl xttdriver.pl -r

##爲下次增量備份確定 from_scn (本次測試沒有使用該命令。但是xttplan.txt中每次增量備份,該文件中記錄的值都會變化)

[oracle@source]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -s

-- 再次製造增量數據,完畢後,將表空間做read only 。進行最後的傳輸,將備份的增量文件和txt文件傳送到目標端。

conn u_xtts/oracle
insert into  t_xtts select * from dba_objects;
commit;

alter tablespace xtts read only;

/u01/app/oracle/product/11.2.0/dbhome_1/perl/bin/perl xttdriver.pl -i
 
##scp `cat incrbackups.txt` oracle@dest:/stageondest
scp `cat incrbackups.txt` 192.168.2.74:/home/oracle/
scp xttplan.txt.new 192.168.2.74:/home/oracle/
scp tsbkupmap.txt 192.168.2.74:/home/oracle/   -- 裏面包含第二次增量備份的文件 
scp incrbackups.txt 192.168.2.74:/home/oracle/

-- 最後一次應用增量,這樣,源端和目標端的數據就一致了。

/u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl xttdriver.pl -r

-- 源端導出元數據

expdp "'/ as sysdba'" dumpfile = xtts.dmp directory = DUMP transport_tablespaces=xtts logfile=xtts.log

##或者使用perl命令生成導入元數據的命令(通過dblink導入) 

/u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl xttdriver.pl -e     -- 生成 /home/oracle/xttplugin.txt

[oracle@wls10306-01 ~]$ more /home/oracle/xttplugin.txt
impdp directory=<DATA_PUMP_DIR> logfile=<tts_imp.log> \
network_link=<ttslink> transport_full_check=no \
transport_tablespaces=XTTS \
transport_datafiles='/u01/app/oracle/oradata/testogg/XTTS_9.dbf'
[oracle@wls10306-01 ~]$ 


##-- 執行導入 ,在目標端創建連接到源端的dblink 。(沒有用這種方法。)
## 
##create database link to_test connect to system identified by oracle using 'TEST';
## 
##impdp system/oracle directory=DUMP logfile=tts_imp.log network_link=to_test transport_full_check=no transport_tablespaces=XTTS transport_datafiles='/u01/app/oracle/oradata/testogg/XTTS_9.dbf'
## 

-- 導入元數據,先創建用戶

U_XTTS
create user u_xtts identified by oracle;
grant connect,resource to u_xtts;
grant dba to u_xtts;
alter user u_xtts default tablespace xtts;
 

impdp system/oracle directory=DUMP logfile=tts_imp.log  dumpfile=xtts.dmp  transport_datafiles='/u01/app/oracle/oradata/testogg/XTTS_9.dbf'

-- 驗證是否存在邏輯或物理損壞

RMAN>validate tablespce xtts;

-- 將目標端的表空間xtts 更改爲讀寫模式 

alter tablespace xtts read write;

--對比數據

[oracle@oggtest admin]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 1 15:20:00 2020

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

@>conn / as sysdba
Connected.
SYS@testogg>select count(*) from u_xtts.t_xtts;

  COUNT(*)
----------
    261273

SYS@testogg>


[oracle@wls10306-01 admin]$ sqlplus /nolog

SQL*Plus: Release 12.2.0.1.0 Production on Mon Jun 1 16:59:41 2020

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

@>conn / as sysdba
Connected.
SYS@test>select count(*) from u_xtts.t_xtts;

  COUNT(*)
----------
    261273

SYS@test>

 

 

 

附加:
###################################################備份和恢復的過程

 

-- 源端全庫備份

[oracle@oggtest ~]$ /u01/app/oracle/product/11.2.0/dbhome_1/perl/bin/perl xttdriver.pl -p
============================================================
trace file is /home/oracle/prepare_Jun1_Mon_13_28_36_720//Jun1_Mon_13_28_36_720_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Starting prepare phase
--------------------------------------------------------------------

Prepare source for Tablespaces:
                  'XTTS'  /backup/xtts/full
xttpreparesrc.sql for 'XTTS' started at Mon Jun  1 13:28:36 2020
xttpreparesrc.sql for  ended at Mon Jun  1 13:28:36 2020

--------------------------------------------------------------------
Done with prepare phase
--------------------------------------------------------------------


--------------------------------------------------------------------
Find list of datafiles in system
--------------------------------------------------------------------


--------------------------------------------------------------------
Done finding list of datafiles in system
--------------------------------------------------------------------

[oracle@oggtest ~]$ 

## 生成的文件

[oracle@oggtest ~]$ ls -l /backup/xtts/full
total 102408
-rw-r----- 1 oracle oinstall 104865792 Jun  1 13:28 XTTS_9.tf
[oracle@oggtest ~]$ 

-- 目標端執行全庫恢復,恢復出數據文件

[oracle@wls10306-01 ~]$ /u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl xttdriver.pl -c
============================================================
trace file is /home/oracle/convert_Jun1_Mon_15_28_45_475//Jun1_Mon_15_28_45_475_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Performing convert
--------------------------------------------------------------------


--------------------------------------------------------------------
Converted datafiles listed in: /home/oracle/xttnewdatafiles.txt
--------------------------------------------------------------------

[oracle@wls10306-01 ~]$ 

## 轉換後的文件

[oracle@wls10306-01 ~]$ more /home/oracle/xttnewdatafiles.txt
::XTTS
9,/u01/app/oracle/oradata/testogg/XTTS_9.dbf
[oracle@wls10306-01 ~]$ 

-- 執行增量備份

[oracle@oggtest ~]$ /u01/app/oracle/product/11.2.0/dbhome_1/perl/bin/perl xttdriver.pl -i
============================================================
trace file is /home/oracle/incremental_Jun1_Mon_13_53_39_822//Jun1_Mon_13_53_39_822_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

============================================================
No new datafiles added
=============================================================
Prepare newscn for Tablespaces: 'XTTS'

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

[oracle@oggtest ~]$ 

-- 進行一次增量恢復

[oracle@wls10306-01 ~]$ /u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl xttdriver.pl -r
============================================================
trace file is /home/oracle/rollforward_Jun1_Mon_15_53_01_314//Jun1_Mon_15_53_01_314_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Start rollforward
--------------------------------------------------------------------


--------------------------------------------------------------------
End of rollforward phase
--------------------------------------------------------------------

[oracle@wls10306-01 ~]$ 

-- 最後一次增量備份

[oracle@oggtest ~]$ /u01/app/oracle/product/11.2.0/dbhome_1/perl/bin/perl xttdriver.pl -i
============================================================
trace file is /home/oracle/incremental_Jun1_Mon_14_19_19_347//Jun1_Mon_14_19_19_347_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Backup incremental
--------------------------------------------------------------------

============================================================
No new datafiles added
=============================================================
Prepare newscn for Tablespaces: 'XTTS'

--------------------------------------------------------------------
Starting incremental backup
--------------------------------------------------------------------


--------------------------------------------------------------------
Done backing up incrementals
--------------------------------------------------------------------

[oracle@oggtest ~]$ 

-- 最後一次增量恢復

[oracle@wls10306-01 ~]$ /u01/app/oracle/product/12.2.0/dbhome_1/perl/bin/perl xttdriver.pl -r
============================================================
trace file is /home/oracle/rollforward_Jun1_Mon_16_20_55_894//Jun1_Mon_16_20_55_894_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Start rollforward
--------------------------------------------------------------------


--------------------------------------------------------------------
End of rollforward phase
--------------------------------------------------------------------

[oracle@wls10306-01 ~]$ 

-- 導入元數據

[oracle@wls10306-01 dump]$ impdp system/oracle directory=DUMP logfile=tts_imp.log  dumpfile=xtts.dmp  transport_datafiles='/u01/app/oracle/oradata/testogg/XTTS_9.dbf'

Import: Release 12.2.0.1.0 - Production on Mon Jun 1 16:56:07 2020

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 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/******** directory=DUMP logfile=tts_imp.log dumpfile=xtts.dmp transport_datafiles=/u01/app/oracle/oradata/testogg/XTTS_9.dbf 
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Mon Jun 1 16:56:39 2020 elapsed 0 00:00:26

[oracle@wls10306-01 dump]$ 

-- 補充 xttdriver.pl 的用法

[oracle@oggtest ~]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl
============================================================
trace file is /home/oracle//Jun2_Tue_09_51_40_380//Jun2_Tue_09_51_40_380_.log
=============================================================

--------------------------------------------------------------------
Parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done parsing properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Checking properties
--------------------------------------------------------------------


--------------------------------------------------------------------
Done checking properties
--------------------------------------------------------------------


   This program prepares, backsup and rollsforward tablespaces
   for cross-platform transportable tablespaces.

    usage: xttdriver.pl
                  {[--backup|-b] || [--bkpincr|-B] || [--bkpexport/E]
                   [--resincrdmp|M]
                   [--fixnewdf|W]
                   [--convert/-c] || [--generate|-e] || [--incremental|-i] ||
                   [[--prepare|-p] || [--getfile|-G]] ||
                   [--restore|R] || [--recover|X]
                   [--rollforward|-r [--rolltbs|-T <TBS1[,TBS2]>] ||
                   [--determinescn|-s] ||
                   [--orasid/O] || [--orahome|-o]]
                   [--help|-h]}

       Additional options
       ------------------
               [--debug|d] [--clearerrorfile|-C] [--xttdir|Dir <tmpdir>]
               [-F/--propfile] [-I/--propdir]

     -b  : For 12c and above, generate transportable backups
     -B  : For 12c and above, generate level 1 transportable backups
     -c  : conversion of datafiles
     -M  : create the dump file from the generated backup
     -e  : generate impdp script: export over new link
     -i  : incremental backup
     -p  : prepare
     -G  : get datafiles from source database using get_file, should not
           be used together with -p
     -r  : roll forward datafiles
     -s  : new from_scn values into xttplan.txt
     -R  : For 12c restore the datafiles from the backups
     -X  : For 12c recover the datafiles from the backups
     -T  : roll forward specific tablespace(s)
     -h  : this (help) message (Default)
     -d  : provides more debug information, also rman is called with debug
           option so that tracing is better.
     -L  : delete the ERROR FILE and proceed with the execution
     -D  : Instead of defining environement variable, user can pass tmpdir
           through xttdir
     -O  : Use this option to pass ORACLE_SID to override the environment
           variable
     -o  : Use this option to pass ORACLE_HOME to override the environment
           variable
     -I  : Use this option to mention the location from where the script
           will pick the properties file etc
     -F  : Use this option to mention the location from where the script
           will pick the properties file.
     -W  : Will try to reconstruct files on the destination after new 
           datafiles have been added

    example: xttdriver.pl -p
             xttdriver.pl -i
             xttdriver.pl -r
             xttdriver.pl -s

[oracle@oggtest ~]$ 

END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章