這篇文章主要介紹“XTTS跨平臺(tái)傳輸表空間實(shí)現(xiàn)數(shù)據(jù)遷移的方法是什么”,在日常操作中,相信很多人在XTTS跨平臺(tái)傳輸表空間實(shí)現(xiàn)數(shù)據(jù)遷移的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”XTTS跨平臺(tái)傳輸表空間實(shí)現(xiàn)數(shù)據(jù)遷移的方法是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、章貢ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的章貢網(wǎng)站制作公司
XTTS(Cross-Platform transport tablespace)意為跨平臺(tái)傳輸表空間。XTTS實(shí)際上是TTS的增強(qiáng)功能。TTS意為傳輸表空間,原理是將業(yè)務(wù)表空間從一個(gè)庫傳到另一個(gè)庫,以達(dá)到數(shù)據(jù)遷移的目的。XTTS則可以支持跨平臺(tái)字節(jié)格式、增量進(jìn)行傳輸(跨平臺(tái)傳輸表空間僅支持oracle 11g或以上)。
本文采用xtts v4版本,并且使用RMAN增量備份的方式進(jìn)行兩庫之間遷移表空間,以實(shí)現(xiàn)最少的停機(jī)時(shí)間。
源庫使用RMAN增量xtts遷移表空間tbs1 & tbs2到目標(biāo)庫。整個(gè)操作步驟分為準(zhǔn)備階段、前滾階段、傳輸階段。
在準(zhǔn)備階段中,需要準(zhǔn)備一個(gè)軟件包:rman_xttconvert_VER4.zip。將這個(gè)zip包解壓后,里面會(huì)有一個(gè)xttdriver.pl腳本。腳本功能及參數(shù)如下:
ü 主庫操作系統(tǒng)不支持windows;
ü xtts v4版本僅支持oracle 11.2.0.4或以上
ü 源庫的compatible參數(shù)必須不能比目標(biāo)庫大(向下兼容),因此,XTTS可以用于升級(jí)操作;
ü 源庫必須處于歸檔模式;
ü 源庫RMAN默認(rèn)設(shè)備類型需要配置為DISK,且RMAN的配置不能設(shè)置COMPRESSED,如果設(shè)置了,可能會(huì)報(bào)以下錯(cuò)誤:
ORA-19994:cross-platform backup of compressed backups different endianess;
ü 源庫RMAN配置不能設(shè)置為BACKUP TYPE TO COPY,必須配置為BACKUP TYPE TO BAKCUPSET
ü 源庫RMAN配置不能配置默認(rèn)通道配置為SBT
ü 被傳輸?shù)谋砜臻g必須是online,并且不存在offline數(shù)據(jù)文件。該表空間必須是read write;
ü 如果表空間是read only模式,那就沒必要使用RMAN增量和DFT方式遷移了,可以直接用傳統(tǒng)XTTS方式進(jìn)行遷移。
ü ASM只能被用于目標(biāo)端最終存放路徑,這個(gè)版本xtts不能將備份放在ASM上;
ü 目標(biāo)存放備份的位置,oracle用戶必須有讀寫權(quán)限。
1) 創(chuàng)建表空間0級(jí)備份;
2) 源端傳輸備份文件到目標(biāo)端;
3) 以目標(biāo)端字節(jié)格式,還原數(shù)據(jù)文件到目標(biāo)端;
1) 源庫創(chuàng)建增量備份;
2) 傳輸增量備份和必要文件到目標(biāo)端;
3) 目標(biāo)端轉(zhuǎn)換增量備份,并應(yīng)用備份為目標(biāo)庫數(shù)據(jù)文件;
4) 重復(fù)上述操作,直到準(zhǔn)備進(jìn)行最后的表空間傳輸。
1) 源庫中表空間設(shè)置為read only;
2) 最后一次執(zhí)行前滾階段;
3) 目標(biāo)端使用DataPump導(dǎo)入元數(shù)據(jù)對(duì)象;
4) 目標(biāo)庫設(shè)置表空間為read write。
1) 目標(biāo)端安裝數(shù)據(jù)庫軟件并創(chuàng)建數(shù)據(jù)庫,要求字符集和國家集與源庫保持一致,并且數(shù)據(jù)庫軟件版本不小于源庫。
2) 確認(rèn)目標(biāo)庫創(chuàng)建相應(yīng)的用戶,并賦予權(quán)限
源庫檢查用戶信息
SQL> select 'create user '||username||' identified by '||''''||password||''''||';' from dba_users where default_tablespace in('TBS1','TBS2');
源庫檢查角色權(quán)限
SQL> select 'grant '||GRANTED_ROLE||' to '||grantee||';' from dba_role_privs where grantee in(select username from dba_users where default_tablespace in('TBS1','TBS2'));
目標(biāo)庫根據(jù)上述查詢結(jié)果進(jìn)行創(chuàng)建。
3) 解壓rman_xttconvert_VER4.zip到/home/oracle/xtts目錄
$ cd /home/oracle/xtts
$ unzip rman_xttconvert_VER4.zip
4) 配置xtt.properties文件
tablespaces=tbs1,tbs2
platformid=13
src_scratch_location=/home/oracle/xtts/bak
dest_datafile_location=+DATA/ORCL/datafile
dest_scratch_location=/home/oracle/xtts/bak
asm_home=/u01/app/11.2.0/grid
asm_sid=+ASM1
parallel=2
參數(shù)說明:
源庫、目標(biāo)庫創(chuàng)建目錄:
$ mkdir -p /home/oracle/xtts/bak
5) 源端將/home/oracle/xtts下所有文件傳給目標(biāo)端
$ scp -r /home/oracle/xtts/* 172.16.70.170:/home/oracle/xtts/
6) 源端和目標(biāo)端設(shè)置TMPDIR
(oracle用戶環(huán)境變量)
源庫:$export TMPDIR=/home/oracle/xtts
目標(biāo)庫:$export TMPDIR=/home/oracle/xtts
在這個(gè)階段,源端表空間數(shù)據(jù)文件會(huì)備份,備份會(huì)傳輸?shù)侥繕?biāo)端
1) 源端創(chuàng)建備份
執(zhí)行以下命令
$ perl xttdriver.pl --backup
這個(gè)命令會(huì)執(zhí)行以下動(dòng)作:
- 創(chuàng)建備份,并放置在src_scratch_location目錄中
- 創(chuàng)建res.txt文件,放置在TMPDIR中
2) 將第一步產(chǎn)生的文件傳到目標(biāo)端
$ scp res.txt 172.16.70.170:/home/oracle/xtts/
$ scp /home/oracle/xtts/bak/* 172.16.70.170:/home/oracle/xtts/bak/
注:數(shù)據(jù)文件要傳在目標(biāo)端dest_scratch_location目錄中,res.txt要傳在目標(biāo)端TMPDIR中。
3) 目標(biāo)端還原數(shù)據(jù)文件
執(zhí)行以下命令
$ perl xttdriver.pl --restore
當(dāng)這一步完成,數(shù)據(jù)文件將會(huì)被傳輸?shù)侥繕?biāo)端dest_datafile_location最終位置。
在這個(gè)階段中,源庫會(huì)創(chuàng)建一個(gè)增量備份,傳輸?shù)侥繕?biāo)庫。并且會(huì)轉(zhuǎn)換為目標(biāo)庫字節(jié)格式,并應(yīng)用于目標(biāo)庫。這個(gè)階段可以運(yùn)行多次,每一個(gè)成功的增量備份所花的時(shí)間應(yīng)該比之前的要少,并且使目標(biāo)庫的數(shù)據(jù)與源庫更接近。
1) 源庫創(chuàng)建表空間的增量備份集
源庫執(zhí)行以下命令
$ perl xttdriver.pl --backup
這個(gè)命令會(huì)對(duì)傳輸?shù)谋砜臻g產(chǎn)生一個(gè)增量備份集。備份集位于src_scratch_location目錄中。
并且會(huì)產(chǎn)生兩個(gè)文件:tsbkupmap.txt,incrbackups.txt
2) 傳輸增量備份集到目標(biāo)端
將上一步驟產(chǎn)生的增量備份集傳輸?shù)侥繕?biāo)端dest_scratch_location目錄,res.txt要傳在目標(biāo)端TMPDIR中。
$ scp `cat incrbackups.txt` 172.16.70.170:/home/oracle/xtts/bak/
$ scp res.txt 172.16.70.170:/home/oracle/xtts/
3) 目標(biāo)端執(zhí)行以下命令
$ perl xttdriver.pl --restore
目標(biāo)端給表空間數(shù)據(jù)文件應(yīng)用增量備份。
4) 重復(fù)前滾階段(可選)
如果你需要使目標(biāo)庫更接近源庫,則需要重復(fù)進(jìn)行前滾階段;如果目標(biāo)庫已經(jīng)足夠接近源庫,那就直接進(jìn)行傳輸階段。
在傳輸階段,源庫需要被設(shè)置為read only模式,目標(biāo)庫會(huì)被應(yīng)用最后一次增量備份。在目標(biāo)數(shù)據(jù)文件一致后,將執(zhí)行一次普通的傳輸表空間的步驟,從源庫導(dǎo)出元數(shù)據(jù)對(duì)象并導(dǎo)入目標(biāo)庫。在此階段結(jié)束之前,源庫只能通過read only方式訪問數(shù)據(jù)。
1) 源庫將表空間設(shè)置read only
SQL> alter tablespace tbs1 read only;
SQL> alter tablespace tbs2 read only;
2) 源庫創(chuàng)建最后一次增量備份集
$ perl xttdriver.pl --backup
注;由于表空間設(shè)置為read only,執(zhí)行備份會(huì)警告:
####################################################################
Warning:
------
Warnings found in executing /home/oracle/xtts/backup_Jul28_Tue_14_33_57_440//xttpreparenextiter.sql
####################################################################
Prepare newscn for Tablespaces: 'TBS2'
DECLARE*
ERROR at line 1:
ORA-20001: TABLESPACE(S) IS READONLY OR,
OFFLINE JUST CONVERT, COPY
ORA-06512: at line 284
3) 傳輸至目標(biāo)端
$ scp `cat incrbackups.txt` 172.16.70.170:/home/oracle/xtts/bak/
$ scp res.txt 172.16.70.170:/home/oracle/xtts/
4) 目標(biāo)端最后一次應(yīng)用
$ perl xttdriver.pl --restore
5) 源庫導(dǎo)出元數(shù)據(jù)
SQL> create directory xtts_dir as '/home/oracle/xtts/bak';
$ expdp system/oracle dumpfile=xtts.dmp directory=xtts_dir logfile=expdp_xtts.log transport_tablespaces=tbs1,tbs2 exclude=statistics;
導(dǎo)出其他對(duì)象
$ expdp system/oracle directory=xtts_dir dumpfile=expdp_other_mets.dmp logfile=expdp_other_meta.log content=metadata_only schemas=tbs1,tbs2
6) 將導(dǎo)出的dmp文件傳輸?shù)侥繕?biāo)端同目錄
$ scp *.dmp 172.16.70.170:/home/oracle/xtts/bak/
7) 目標(biāo)庫導(dǎo)入元數(shù)據(jù)
SQL> create directory xtts_dir as '/home/oracle/xtts/bak';
$ impdp system/oracle dumpfile=xtts.dmp directory=xtts_dir transport_tablespace=y datafiles='+DATA/orcl/datafile/tbs1_5.dbf','+DATA/orcl/datafile/tbs2_6.dbf';
導(dǎo)入其他對(duì)象元數(shù)據(jù)
$ impdp system/oracle dumpfile=expdp_other_mets.dmp directory=xtts_dir;
8) 目標(biāo)庫設(shè)置表空間read write;
SQL> select tablespace_name,file_name from dba_data_files;
SQL> alter tablespace tbs1 read write;
SQL> alter tablespace tbs2 read write;
9) 目標(biāo)庫統(tǒng)計(jì)信息手工收集
SQL> exec dbms_stats.gather_schema_stats(ownname => 'tbs1',options => 'GATHER AUTO');
SQL> exec dbms_stats.gather_schema_stats(ownname => 'tbs2',options => 'GATHER AUTO');
10) 檢查物理和邏輯塊損壞,并驗(yàn)證數(shù)據(jù)
RMAN> validate tablespace tbs1,tbs2 check logical;
驗(yàn)證數(shù)據(jù)略
到此,關(guān)于“XTTS跨平臺(tái)傳輸表空間實(shí)現(xiàn)數(shù)據(jù)遷移的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!