您好,登錄后才能下訂單哦!
本文介紹了將v4跨平臺可傳輸表空間(xtts)與rman增量備份結合使用所需的步驟,
以最少的應用程序停機時間遷移數據。
#################################################
希望本文能對您有所幫助,如需腳本,請留言,謝謝您的關住和支持
#################################################
首先是將完整備份從源復制到目標。
然后,通過使用一系列增量備份(每個備份都小于最后一個備份),
在需要任何停機時間之前,可以將目標系統中的數據幾乎與源系統同步。
此過程僅在最終增量備份和元數據導出/導入期間需要停機時間。
本文檔描述了可與11.2.0.4及更高版本一起使用的跨平臺增量備份v4過程。
這個新過程是先前XTTS版本的簡化版本。
此版本有以下區別:
I.此過程使用簡化的命令。一個命令(--backup)用于源,一個命令(--restore)用于目標。
//原來要-p,-c,-i,-r,-s等一系列華麗的操作,現在只要2個參數
II.此過程只需要在源和目標的$tmpdir(res.txt)之間復制一個文件。
III.此過程將自動解析添加的數據文件,無需額外干預。
IV.此過程允許在不運行恢復的情況下從源中取出多個增量備份。在此之后,將立即恢復目標中的所有增量備份。
1-初始設置
執行以下步驟配置環境以使用跨平臺增量備份:
1.1-安裝目標數據庫軟件并創建目標數據庫
在將運行目標數據庫的目標系統上安裝所需的Oracle數據庫軟件。
在目標系統上標識(或創建)一個數據庫,以便將表空間傳輸到其中,
并創建表空間傳輸所需的模式用戶。 即,在所傳輸的表空間中擁有對象的用戶。
1.2-標識要傳輸的表空間
標識要傳輸的源數據庫中的表空間。
表空間ts1和ts2將在本文檔的示例中使用。
如上所述,必須遵循可傳輸表空間的限制和注意事項。
1.3-在源系統上安裝XttConvert腳本
在源系統上,作為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-創建必要的目錄
源端:
由xtt.properties文件中的src_scratch_location參數定義的備份位置。
目標端:
由xtt.properties文件中的dest_scratch_location參數定義的備份位置。
目標上數據文件的位置,由xtt.properties文件中的dest_datafile_location參數定義。
1.5-在源系統上配置xtt.properties
使用特定于站點的配置編輯源系統上的xtt.properties文件。
有關xtt.properties文件中參數的詳細信息,
請參閱下面附錄中配置文件xtt.properties部分中的參數說明。
對于此過程,只有以下參數是必需的。其他可供選擇和/或使用。
tablespaces
platformid
src_scratch_location
dest_scratch_location
dest_datafile_location
(12c特殊添加) -- usermantransport=1
1.6-將xttconvert腳本和xtt.properties復制到目標系統
[oracle@kingsql]$ scp -r /home/oracle/xttv4 oracle@destsql:/home/oracle/xttv4
1.7-設置TMPDIR環境變量
[oracle@kingsql]$ export TMPDIR=/home/oracle/xttv4
[oracle@destsql]$ export TMPDIR=/home/oracle/xttv4
2.-準備階段
在準備階段,將要傳輸的表空間的數據文件備份到源上,
備份傳輸到目標系統,并由xttdriver.pl腳本還原。
2.1-在源系統上運行備份
在源系統上,以Oracle用戶身份登錄,環境(ORACLE_HOME和ORACLE_SID環境變量)指向源數據庫,
按如下方式運行備份:
[oracle@kingsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
2.2-將以下文件傳輸到目標系統:
從源“src-scratch-location”到目標目標“scratch-location”創建的備份
從源$tmpdir到目標$tmpdir的res.txt文件:
[oracle@kingsql]$ scp /src_scratch/* oracle@destsql:/dest_scratch
[oracle@kingsql]$ scp res.txt oracle@destsql:/home/oracle/xttv4
2.3-還原目標系統上的數據文件
在目標系統上,以Oracle用戶身份登錄,環境(ORACLE_HOME和ORACLE_SID環境變量)指向目標數據庫,
按如下方式運行還原:
[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore
3-前滾階段
在此階段,將從源數據庫創建增量備份,傳輸到目標系統,轉換為目標系統endian格式,
然后將其應用到轉換后的目標數據文件副本以進行前滾。 此階段可以運行多次。
每一次連續的增量備份所需的時間應少于先前的增量備份所需的時間,
并將使目標數據文件副本在源數據庫中更為新。
在這個階段,正在傳輸的數據(源)是完全可訪問的。
3.1-為源系統上正在傳輸的表空間創建增量備份
在源系統上,以Oracle用戶身份登錄,環境(ORACLE_HOME和ORACLE_SID環境變量)指向源數據庫,
運行如下創建增量步驟:
[oracle@kingsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
此步驟將為xtt.properties中列出的所有表空間創建增量備份。
3.2-將增量備份和res.txt傳輸到目標系統
將增量備份(在src-scratch-location和dest-scratch-location之間)和res.txt(在$tmpdirs之間)
從源傳輸到目標。當前備份的增量備份文件列表可以是在源系統的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-對目標系統上的數據文件副本應用增量備份
在目標系統上,以Oracle用戶身份登錄,環境(ORACLE_HOME和ORACLE_SID環境變量)指向目標數據庫,
按如下所示運行前滾數據文件步驟:
[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore
前滾步驟連接到目標數據庫,并為所傳輸的每個表空間在表空間的數據文件上應用增量備份。
盡管可以對源執行多個備份而不在目標上應用,但是必須在上次備份之后和在目標上執行“--restore”之前復制res.txt。
3.4-重復前滾第3階段(3.1-3.3)或繼續第4階段,最終增量備份
此時有兩種選擇:
如果需要使目標數據庫中的文件與生產系統更接近同步,則從步驟3.1開始,重復前滾階段。
如果目標數據庫中的文件與源數據庫的距離盡可能接近,則繼續到傳輸階段。
4-最終增量備份
在此階段,通過創建和應用最終增量備份,將源數據設為只讀,并使目標數據文件與源數據庫保持一致。
在目標數據文件保持一致之后,將執行常規的可傳輸表空間步驟,
從源數據庫導出對象元數據并將其導入目標數據庫。
在本階段結束之前,只能以只讀模式訪問正在傳輸的數據。
4.1-將源數據庫中的源表空間更改為只讀
在源系統上,以Oracle用戶身份登錄,環境(ORACLE_HOME和ORACLE_SID環境變量)指向源數據庫,
將要傳輸的表空間更改為只讀。
SQL> alter tablespace TS1 read only;
SQL> alter tablespace TS2 read only;
4.2-創建正在源系統上傳輸的表空間的最終增量備份:
在源系統上,以Oracle用戶身份登錄,環境 (ORACLE_HOME和ORACLE_SID環境變量) 指向源數據庫,
按如下方式運行備份:
[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傳輸到目標系統
[oracle@kingsql]$ scp 'cat incrbackups.txt' oracle@destsql:/dest_scratch_location
[oracle@kingsql]$ scp res.txt oracle@destsql:/home/oracle/xttv4
4.4-將上次增量備份應用于目標數據文件
最終增量備份必須應用于目標數據文件,此步驟將對目標上的數據文件應用最后一次增量備份。
[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl --restore
5-傳輸階段:將對象元數據導入目標數據庫
在這個階段,您需要從源中導出表空間的元數據,并將表空間插入到目標中。
5.1-目標庫創建目錄對象
SQL> create directory hzh as '/home/oracle/destination/convert';
SQL> GRANT READ, WRITE ON DIRECTORY hzh TO system;
5.2-導入生成新的xttplugin.txt
在目標系統上,以Oracle用戶身份登錄,環境(ORACLE_HOME和ORACLE_SID環境變量)指向目標數據庫,
運行generate data pump tts命令步驟,如下所示:
[oracle@destsql]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -e
這將在xttplugin.txt文件中生成一個示例命令,
并正確設置transportable tablespaces參數“transport_tablespaces”和“transport_datafiles”。
此外,還將創建一個數據泵導出文件。
5.3-在目標數據庫上創建數據庫鏈接
連接到目標數據庫,創建連接到源數據庫的數據庫鏈接
SQL> create public database link ttslink connect to system identified by hongzhuohui using 'kingsql';
驗證數據庫鏈接是否可以正確訪問源系統
SQL> select name from v$database@ttslink;
5.4-修改并執行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 -驗證數據
6.1-檢查表空間
在此步驟中,傳輸的數據在目標數據庫中是只讀的。執行特定于應用程序的驗證以驗證傳輸的數據。
RMAN> validate tablespace TS1, TS2 check logical;
6.2-更改目標數據庫中的表空間讀寫
最后一步是使目標表空間在目標數據庫中讀寫。
SQL> alter tablespace TS1 read write;
SQL> alter tablespace TS2 read write;
7 - 清理環境
源端:src_scratch
目標端:dest_scratch
源端和目標端
$TMPDIR
轉載請注明出處
hongzhuohui@qq.com
本來好幾年沒有更新博客了,最近我的學生們都在勤勞的寫博客,所以帶動了我。。
--------------------------------------------------------------------------------------------------------------
我曾發現有寫網站直接拷貝粘貼,連圖片都能復制,請把作者也加上謝謝O(∩_∩)O
--------------------------------------------------------------------------------------------------------------
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。