溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

【kingsql分享】Oracle跨版本遷移之XTTS_V4版本的實(shí)施

發(fā)布時(shí)間:2020-08-11 06:49:35 來(lái)源:ITPUB博客 閱讀:576 作者:kingsql 欄目:關(guān)系型數(shù)據(jù)庫(kù)

本文介紹了將v4跨平臺(tái)可傳輸表空間(xtts)與rman增量備份結(jié)合使用所需的步驟,

以最少的應(yīng)用程序停機(jī)時(shí)間遷移數(shù)據(jù)。

【kingsql分享】Oracle跨版本遷移之XTTS_V4版本的實(shí)施

#################################################

希望本文能對(duì)您有所幫助,如需腳本,請(qǐng)留言,謝謝您的關(guān)住和支持

#################################################


首先是將完整備份從源復(fù)制到目標(biāo)。

然后,通過(guò)使用一系列增量備份(每個(gè)備份都小于最后一個(gè)備份),

在需要任何停機(jī)時(shí)間之前,可以將目標(biāo)系統(tǒng)中的數(shù)據(jù)幾乎與源系統(tǒng)同步。

此過(guò)程僅在最終增量備份和元數(shù)據(jù)導(dǎo)出/導(dǎo)入期間需要停機(jī)時(shí)間。


本文檔描述了可與11.2.0.4及更高版本一起使用的跨平臺(tái)增量備份v4過(guò)程。

這個(gè)新過(guò)程是先前XTTS版本的簡(jiǎn)化版本。

此版本有以下區(qū)別:

I.此過(guò)程使用簡(jiǎn)化的命令。一個(gè)命令(--backup)用于源,一個(gè)命令(--restore)用于目標(biāo)。

//原來(lái)要-p,-c,-i,-r,-s等一系列華麗的操作,現(xiàn)在只要2個(gè)參數(shù)

II.此過(guò)程只需要在源和目標(biāo)的$tmpdir(res.txt)之間復(fù)制一個(gè)文件。

III.此過(guò)程將自動(dòng)解析添加的數(shù)據(jù)文件,無(wú)需額外干預(yù)。

IV.此過(guò)程允許在不運(yùn)行恢復(fù)的情況下從源中取出多個(gè)增量備份。在此之后,將立即恢復(fù)目標(biāo)中的所有增量備份。


1-初始設(shè)置

執(zhí)行以下步驟配置環(huán)境以使用跨平臺(tái)增量備份:

1.1-安裝目標(biāo)數(shù)據(jù)庫(kù)軟件并創(chuàng)建目標(biāo)數(shù)據(jù)庫(kù)

在將運(yùn)行目標(biāo)數(shù)據(jù)庫(kù)的目標(biāo)系統(tǒng)上安裝所需的Oracle數(shù)據(jù)庫(kù)軟件。

在目標(biāo)系統(tǒng)上標(biāo)識(shí)(或創(chuàng)建)一個(gè)數(shù)據(jù)庫(kù),以便將表空間傳輸?shù)狡渲校?

并創(chuàng)建表空間傳輸所需的模式用戶。 即,在所傳輸?shù)谋砜臻g中擁有對(duì)象的用戶。


1.2-標(biāo)識(shí)要傳輸?shù)谋砜臻g

標(biāo)識(shí)要傳輸?shù)脑磾?shù)據(jù)庫(kù)中的表空間。

表空間ts1和ts2將在本文檔的示例中使用。

如上所述,必須遵循可傳輸表空間的限制和注意事項(xiàng)。

1.3-在源系統(tǒng)上安裝XttConvert腳本

在源系統(tǒng)上,作為Oracle軟件的所有者,

下載并提取作為rman-xttconvert-ver4.zip附加到本文檔的支持腳本。

[oracle@kingsql]$ pwd

/home/oracle/xttv4


[oracle@kingsql]$ unzip rman_xttconvert_VER4.zip

inflating: xtt.properties

inflating: xttcnvrtbkupdest.sql

inflating: xttdbopen.sql

inflating: xttdriver.pl

inflating: xttprep.tmpl

extracting: xttstartupnomount.sql


1.4-創(chuàng)建必要的目錄

源端:

由xtt.properties文件中的src_scratch_location參數(shù)定義的備份位置。


目標(biāo)端:

由xtt.properties文件中的dest_scratch_location參數(shù)定義的備份位置。

目標(biāo)上數(shù)據(jù)文件的位置,由xtt.properties文件中的dest_datafile_location參數(shù)定義。


1.5-在源系統(tǒng)上配置xtt.properties

使用特定于站點(diǎn)的配置編輯源系統(tǒng)上的xtt.properties文件。

有關(guān)xtt.properties文件中參數(shù)的詳細(xì)信息,

請(qǐng)參閱下面附錄中配置文件xtt.properties部分中的參數(shù)說(shuō)明。

對(duì)于此過(guò)程,只有以下參數(shù)是必需的。其他可供選擇和/或使用。

tablespaces

platformid

src_scratch_location

dest_scratch_location

dest_datafile_location

(12c特殊添加) -- usermantransport=1 【kingsql分享】Oracle跨版本遷移之XTTS_V4版本的實(shí)施

1.6-將xttconvert腳本和xtt.properties復(fù)制到目標(biāo)系統(tǒng)

[oracle@kingsql]$ scp -r /home/oracle/xttv4 oracle@destsql:/home/oracle/xttv4


1.7-設(shè)置TMPDIR環(huán)境變量

[oracle@kingsql]$ export TMPDIR=/home/oracle/xttv4

[oracle@destsql]$ export TMPDIR=/home/oracle/xttv4


2.-準(zhǔn)備階段

在準(zhǔn)備階段,將要傳輸?shù)谋砜臻g的數(shù)據(jù)文件備份到源上,

備份傳輸?shù)侥繕?biāo)系統(tǒng),并由xttdriver.pl腳本還原。


2.1-在源系統(tǒng)上運(yùn)行備份

在源系統(tǒng)上,以O(shè)racle用戶身份登錄,環(huán)境(ORACLE_HOME和ORACLE_SID環(huán)境變量)指向源數(shù)據(jù)庫(kù),

按如下方式運(yùn)行備份:

[oracle@kingsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup


2.2-將以下文件傳輸?shù)侥繕?biāo)系統(tǒng):

從源“src-scratch-location”到目標(biāo)目標(biāo)“scratch-location”創(chuàng)建的備份

從源$tmpdir到目標(biāo)$tmpdir的res.txt文件:

[oracle@kingsql]$ scp /src_scratch/* oracle@destsql:/dest_scratch

[oracle@kingsql]$ scp res.txt oracle@destsql:/home/oracle/xttv4


2.3-還原目標(biāo)系統(tǒng)上的數(shù)據(jù)文件

在目標(biāo)系統(tǒng)上,以O(shè)racle用戶身份登錄,環(huán)境(ORACLE_HOME和ORACLE_SID環(huán)境變量)指向目標(biāo)數(shù)據(jù)庫(kù),

按如下方式運(yùn)行還原:

[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore


3-前滾階段

在此階段,將從源數(shù)據(jù)庫(kù)創(chuàng)建增量備份,傳輸?shù)侥繕?biāo)系統(tǒng),轉(zhuǎn)換為目標(biāo)系統(tǒng)endian格式,

然后將其應(yīng)用到轉(zhuǎn)換后的目標(biāo)數(shù)據(jù)文件副本以進(jìn)行前滾。 此階段可以運(yùn)行多次。

每一次連續(xù)的增量備份所需的時(shí)間應(yīng)少于先前的增量備份所需的時(shí)間,

并將使目標(biāo)數(shù)據(jù)文件副本在源數(shù)據(jù)庫(kù)中更為新。

在這個(gè)階段,正在傳輸?shù)臄?shù)據(jù)(源)是完全可訪問(wèn)的。

【kingsql分享】Oracle跨版本遷移之XTTS_V4版本的實(shí)施

3.1-為源系統(tǒng)上正在傳輸?shù)谋砜臻g創(chuàng)建增量備份

在源系統(tǒng)上,以O(shè)racle用戶身份登錄,環(huán)境(ORACLE_HOME和ORACLE_SID環(huán)境變量)指向源數(shù)據(jù)庫(kù),

運(yùn)行如下創(chuàng)建增量步驟:

[oracle@kingsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup


此步驟將為xtt.properties中列出的所有表空間創(chuàng)建增量備份。


3.2-將增量備份和res.txt傳輸?shù)侥繕?biāo)系統(tǒng)

將增量備份(在src-scratch-location和dest-scratch-location之間)和res.txt(在$tmpdirs之間)

從源傳輸?shù)侥繕?biāo)。當(dāng)前備份的增量備份文件列表可以是在源系統(tǒng)的incrbacks.txt文件中找到。

[oracle@kingsql]$ scp `cat incrbackups.txt` oracle@destsql:/dest_scratch_location

[oracle@kingsql]$ scp res.txt oracle@destsql:/home/oracle/xttv4


3.3-對(duì)目標(biāo)系統(tǒng)上的數(shù)據(jù)文件副本應(yīng)用增量備份

在目標(biāo)系統(tǒng)上,以O(shè)racle用戶身份登錄,環(huán)境(ORACLE_HOME和ORACLE_SID環(huán)境變量)指向目標(biāo)數(shù)據(jù)庫(kù),

按如下所示運(yùn)行前滾數(shù)據(jù)文件步驟:

[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore


前滾步驟連接到目標(biāo)數(shù)據(jù)庫(kù),并為所傳輸?shù)拿總€(gè)表空間在表空間的數(shù)據(jù)文件上應(yīng)用增量備份。

盡管可以對(duì)源執(zhí)行多個(gè)備份而不在目標(biāo)上應(yīng)用,但是必須在上次備份之后和在目標(biāo)上執(zhí)行“--restore”之前復(fù)制res.txt。


3.4-重復(fù)前滾第3階段(3.1-3.3)或繼續(xù)第4階段,最終增量備份

此時(shí)有兩種選擇:

如果需要使目標(biāo)數(shù)據(jù)庫(kù)中的文件與生產(chǎn)系統(tǒng)更接近同步,則從步驟3.1開始,重復(fù)前滾階段。

如果目標(biāo)數(shù)據(jù)庫(kù)中的文件與源數(shù)據(jù)庫(kù)的距離盡可能接近,則繼續(xù)到傳輸階段。


4-最終增量備份

在此階段,通過(guò)創(chuàng)建和應(yīng)用最終增量備份,將源數(shù)據(jù)設(shè)為只讀,并使目標(biāo)數(shù)據(jù)文件與源數(shù)據(jù)庫(kù)保持一致。

在目標(biāo)數(shù)據(jù)文件保持一致之后,將執(zhí)行常規(guī)的可傳輸表空間步驟,

從源數(shù)據(jù)庫(kù)導(dǎo)出對(duì)象元數(shù)據(jù)并將其導(dǎo)入目標(biāo)數(shù)據(jù)庫(kù)。

在本階段結(jié)束之前,只能以只讀模式訪問(wèn)正在傳輸?shù)臄?shù)據(jù)。


4.1-將源數(shù)據(jù)庫(kù)中的源表空間更改為只讀

在源系統(tǒng)上,以O(shè)racle用戶身份登錄,環(huán)境(ORACLE_HOME和ORACLE_SID環(huán)境變量)指向源數(shù)據(jù)庫(kù),

將要傳輸?shù)谋砜臻g更改為只讀。

SQL> alter tablespace TS1 read only;

SQL> alter tablespace TS2 read only;


4.2-創(chuàng)建正在源系統(tǒng)上傳輸?shù)谋砜臻g的最終增量備份:

在源系統(tǒng)上,以O(shè)racle用戶身份登錄,環(huán)境 (ORACLE_HOME和ORACLE_SID環(huán)境變量) 指向源數(shù)據(jù)庫(kù),

按如下方式運(yùn)行備份:

[oracle@kingsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup


注意:由于表空間處于只讀模式,因此可以忽略收到的以下警告:

####################################################################
Warning:
------
Warnings found in executing /home/oracle/radranly/convert_source/backup_Nov9_Fri_09_08_26_213//xttpreparenextiter.sql
####################################################################
Prepare newscn for Tablespaces: 'T1'
DECLARE*
ERROR at line 1:
ORA-20001: TABLESPACE(S) IS READONLY OR,
OFFLINE JUST CONVERT, COPY
ORA-06512: at line 284  


4.3-將增量備份和res.txt傳輸?shù)侥繕?biāo)系統(tǒng)

[oracle@kingsql]$ scp 'cat incrbackups.txt' oracle@destsql:/dest_scratch_location

[oracle@kingsql]$ scp res.txt oracle@destsql:/home/oracle/xttv4


4.4-將上次增量備份應(yīng)用于目標(biāo)數(shù)據(jù)文件

最終增量備份必須應(yīng)用于目標(biāo)數(shù)據(jù)文件,此步驟將對(duì)目標(biāo)上的數(shù)據(jù)文件應(yīng)用最后一次增量備份。

[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore


5-傳輸階段:將對(duì)象元數(shù)據(jù)導(dǎo)入目標(biāo)數(shù)據(jù)庫(kù)

在這個(gè)階段,您需要從源中導(dǎo)出表空間的元數(shù)據(jù),并將表空間插入到目標(biāo)中。

5.1-目標(biāo)庫(kù)創(chuàng)建目錄對(duì)象

SQL> create directory hzh as '/home/oracle/destination/convert';

SQL> GRANT READ, WRITE ON DIRECTORY hzh TO system;


5.2-導(dǎo)入生成新的xttplugin.txt

在目標(biāo)系統(tǒng)上,以O(shè)racle用戶身份登錄,環(huán)境(ORACLE_HOME和ORACLE_SID環(huán)境變量)指向目標(biāo)數(shù)據(jù)庫(kù),

運(yùn)行g(shù)enerate data pump tts命令步驟,如下所示:

[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -e


這將在xttplugin.txt文件中生成一個(gè)示例命令,

并正確設(shè)置transportable tablespaces參數(shù)“transport_tablespaces”和“transport_datafiles”。

此外,還將創(chuàng)建一個(gè)數(shù)據(jù)泵導(dǎo)出文件。


5.3-在目標(biāo)數(shù)據(jù)庫(kù)上創(chuàng)建數(shù)據(jù)庫(kù)鏈接

連接到目標(biāo)數(shù)據(jù)庫(kù),創(chuàng)建連接到源數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)鏈接

SQL> create public database link ttslink connect to system identified by hongzhuohui using 'kingsql';

驗(yàn)證數(shù)據(jù)庫(kù)鏈接是否可以正確訪問(wèn)源系統(tǒng)

SQL>  select name from v$database@ttslink;


5.4-修改并執(zhí)行IMPDP命令:

[oracle@dest]$ impdp directory=hzh logfile=tts_imp.log network_link=ttslink \ 

transport_full_check=no \ 

transport_tablespaces=TS1,TS2 \ 

transport_datafiles='+DATA/prod/datafile/ts1.285.771686721', \ 

'+DATA/prod/datafile/ts2.286.771686723', \ 

'+DATA/prod/datafile/ts2.287.771686743' 


6 -驗(yàn)證數(shù)據(jù)

6.1-檢查表空間

在此步驟中,傳輸?shù)臄?shù)據(jù)在目標(biāo)數(shù)據(jù)庫(kù)中是只讀的。執(zhí)行特定于應(yīng)用程序的驗(yàn)證以驗(yàn)證傳輸?shù)臄?shù)據(jù)。

RMAN> validate tablespace TS1, TS2 check logical;


6.2-更改目標(biāo)數(shù)據(jù)庫(kù)中的表空間讀寫

最后一步是使目標(biāo)表空間在目標(biāo)數(shù)據(jù)庫(kù)中讀寫。

SQL> alter tablespace TS1 read write; 

SQL> alter tablespace TS2 read write; 


7 - 清理環(huán)境

源端:src_scratch

目標(biāo)端:dest_scratch

源端和目標(biāo)端

$TMPDIR


轉(zhuǎn)載請(qǐng)注明出處

hongzhuohui@qq.com

本來(lái)好幾年沒(méi)有更新博客了,最近我的學(xué)生們都在勤勞的寫博客,所以帶動(dòng)了我。。

--------------------------------------------------------------------------------------------------------------

我曾發(fā)現(xiàn)有寫網(wǎng)站直接拷貝粘貼,連圖片都能復(fù)制,請(qǐng)把作者也加上謝謝O(∩_∩)O

--------------------------------------------------------------------------------------------------------------


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI