本篇內容主要講解“怎么從AIX將數據庫遷移到Linux Oracle中”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么從AIX將數據庫遷移到Linux Oracle中”吧!
從AIX將數據庫遷移到Linux Oracle為11.2.0.4
下面操作可以用來創建一個名叫xtt的增量轉換實例,增量轉換home為/u01/app/oracle/product/11.2.0/db/dbs:
[oracle@jyrac1 dbs]$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db/ [oracle@jyrac1 dbs]$ export ORACLE_SID=xtt [oracle@jyrac1 dbs]$ cat < < EOF > $ORACLE_HOME/dbs/init$ORACLE_SID.ora > db_name=xtt > compatible=11.2.0.4.0 > EOF [oracle@jyrac1 dbs]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Fri Aug 18 10:15:02 2017 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to an idle instance. SQL> startup nomount ORACLE instance started. Total System Global Area 296493056 bytes Fixed Size 2252584 bytes Variable Size 239075544 bytes Database Buffers 50331648 bytes Redo Buffers 4833280 bytes
源數據庫目錄對象引用源數據庫中當前存放數據文件的目錄。例如,下面創建目錄對象指向,數據文件存放目錄/oracle11/oradata/jycs/jycs/,連接到源數據庫房執行以下命令:
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 Connected as ldjc@129_2 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /oracle11/oradata/jycs/jycs/system01.dbf /oracle11/oradata/jycs/jycs/sysaux01.dbf /oracle11/oradata/jycs/jycs/undotbs01.dbf /oracle11/oradata/jycs/jycs/users01.dbf /oracle11/oradata/jycs/jycs/example01.dbf /oracle11/oradata/jycs/jycs/cdzj01 /oracle11/oradata/jycs/jycs/ldjc01 7 rows selected SQL> create directory sourcedir as '/oracle11/oradata/jycs/jycs'; Directory created SQL> select platform_id from v$database; PLATFORM_ID ----------- 6
目標數據庫目錄對象引用目標數據庫中將要存儲數據文件的目錄。這個目錄是最終目標數據庫將要存放數據文件的目錄+DATADG/jyrac/datafile/,連接到目標數據庫執行以下命令
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 Connected as sys@jyrac AS SYSDBA SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATADG/jyrac/datafile/system.259.930413057 +DATADG/jyrac/datafile/sysaux.258.930413055 +DATADG/jyrac/datafile/undotbs1.262.930413057 +DATADG/jyrac/datafile/users.263.930413057 +DATADG/jyrac/datafile/example.260.930413057 +DATADG/jyrac/datafile/undotbs2.261.930413057 +DATADG/jyrac/datafile/test01.dbf +DATADG/jyrac/datafile/sales_test_01.dbf +DATADG/jyrac/datafile/emp_test_01.dbf +DATADG/jyrac/datafile/orders_test_01.dbf 10 rows selected SQL> create directory destdir as '+DATADG/jyrac/datafile'; Directory created
在目標數據庫中創建一個dblink連接到源數據庫。例如創建一個名叫ttslink的dblink,執行以下命令:
SQL> create public database link ttslink 2 connect to system identified by "xxzx7817600" 3 using '(DESCRIPTION = 4 (ADDRESS_LIST = 5 (ADDRESS = (PROTOCOL = TCP)(HOST =10.138.129.2)(PORT = 1521)) 6 ) 7 (CONNECT_DATA = 8 (SERVER = DEDICATED) 9 (SERVICE_NAME =jycs) 10 ) 11 )'; Database link created.
創建dblink后驗證是否可以能過dblink訪問源數據庫
SQL> select * from dual@ttslink; D - X
在源系統與目標系統中創建預備目錄,它們將被設置為xtt.properties文件中的backupformat(源系統中存放增量備份文件的目錄),backupondest(目標系統中存放轉換后的增量備份文件的目錄)參數的值。如果使用RMAN備份方法,在源系統與目標系統中還需要為xtt.properties文件中的dfcopydir(源系統中存放數據文件副本的目錄,只有使用rman備份才使用),stageondest(目標系統中存放從源系統傳輸過來的數據文件副本與增量備份的目錄,只有使用rman備份才使用)。
在源系統中執行下面的命令分別創建backupformat目錄(/oracle11/backup),dfcopydir目錄(/oracle11/dfcopydir)
IBMP740-2:/oracle11$mkdir backup IBMP740-2:/oracle11$mkdir dfcopydir
在目標系統中執行下面的命令分別創建backupondest目錄(+DATADG/backup),stagenodest目錄(/u01/xtts)
ASMCMD [+datadg] > mkdir backup
如果ASM被用于存儲xtt.properties文件中的參數backupondest,那么實例的compatible參數的值必須等于或大于ASM磁盤組所使用的rdbms.compatible的值。
[grid@jyrac1 ~]$ asmcmd lsattr -G DATADG -l Name Value access_control.enabled false access_control.umask 026 au_size 1048576 cell.smart_scan_capable FALSE compatible.asm 11.2.0.0.0 compatible.rdbms 11.2.0.0.0 disk_repair_time 4.5 H sector_size 512 [root@jyrac1 u01]# mkdir xtts [root@jyrac1 u01]# chown -R oracle:oinstall xtts [root@jyrac1 u01]# chmod 777 xtts
在源系統中安裝xttconver腳本
在源系統中,使用Oracle軟件用戶,下裁與解壓腳本
IBMP740-2:/oracle11/xtts_script$unzip rman_xttconvert_v3.zip Archive: rman_xttconvert_v3.zip inflating: xtt.properties inflating: xttcnvrtbkupdest.sql inflating: xttdbopen.sql inflating: xttdriver.pl inflating: xttprep.tmpl extracting: xttstartupnomount.sql IBMP740-2:/oracle11/xtts_script$ls -lrt total 416 -rw-r--r-- 1 oracle11 oinstall 1390 May 24 16:57 xttcnvrtbkupdest.sql -rw-r--r-- 1 oracle11 oinstall 52 May 24 16:57 xttstartupnomount.sql -rw-r--r-- 1 oracle11 oinstall 11710 May 24 16:57 xttprep.tmpl -rw-r--r-- 1 oracle11 oinstall 139331 May 24 16:57 xttdriver.pl -rw-r--r-- 1 oracle11 oinstall 71 May 24 16:57 xttdbopen.sql -rw-r--r-- 1 oracle11 oinstall 7969 Jun 05 08:47 xtt.properties -rw-r----- 1 oracle11 oinstall 33949 Aug 18 09:26 rman_xttconvert_v3.zip
在源系統中配置xtt.properties文件
IBMP740-2:/oracle11/xtts_script$vi xtt.properties tablespaces=CDZJ,LDJC platformid=6 srcdir=SOURCEDIR dstdir=DESTDIR srclink=ttslink #dfcopydir=/oracle11/dfcopydir backupformat=/oracle11/backup stageondest=/u01/xtts backupondest=+DATADG/backup #storageondest=+DATADG/jyrac/datafile/ cnvinst_home=/oracle11/app/oracle/product/11.2.0/db cnvinst_sid=xtt asm_home=/u01/app/product/11.2.0/crs asm_sid=+ASM1
將源系統中的轉換腳本與xtt.properties文件復制到目標系統中
[oracle@jyrac1 xtts_script]$ ftp 10.138.129.2 Connected to 10.138.129.2. 220 IBMP740-2 FTP server (Version 4.2 Mon Nov 28 14:12:02 CST 2011) ready. 502 authentication type cannot be set to GSSAPI 502 authentication type cannot be set to KERBEROS_V4 KERBEROS_V4 rejected as an authentication type Name (10.138.129.2:oracle): oracle 331 Password required for oracle. Password: 230-Last unsuccessful login: Wed Dec 3 10:20:09 BEIST 2014 on /dev/pts/0 from 10.138.130.31 230-Last login: Mon Aug 14 08:39:17 BEIST 2017 on /dev/pts/0 from 10.138.130.242 230 User oracle logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /oracle11/xtts_script 250 CWD command successful. ftp> ls -lrt 227 Entering Passive Mode (10,138,129,2,37,50) 150 Opening data connection for /bin/ls. total 424 -rw-r--r-- 1 oracle11 oinstall 1390 May 24 16:57 xttcnvrtbkupdest.sql -rw-r--r-- 1 oracle11 oinstall 52 May 24 16:57 xttstartupnomount.sql -rw-r--r-- 1 oracle11 oinstall 11710 May 24 16:57 xttprep.tmpl -rw-r--r-- 1 oracle11 oinstall 139331 May 24 16:57 xttdriver.pl -rw-r--r-- 1 oracle11 oinstall 71 May 24 16:57 xttdbopen.sql -rw-r--r-- 1 oracle11 oinstall 7969 Jun 05 08:47 xtt.properties.jy -rw-r----- 1 oracle11 oinstall 33949 Aug 18 09:26 rman_xttconvert_v3.zip -rw-r--r-- 1 oracle11 oinstall 352 Aug 18 10:15 xtt.properties 226 Transfer complete. ftp> lcd /u01/xtts_script Local directory now /u01/xtts_script ftp> bin 200 Type set to I. ftp> get xttcnvrtbkupdest.sql local: xttcnvrtbkupdest.sql remote: xttcnvrtbkupdest.sql 227 Entering Passive Mode (10,138,129,2,37,63) 150 Opening data connection for xttcnvrtbkupdest.sql (1390 bytes). 226 Transfer complete. 1390 bytes received in 4.8e-05 seconds (2.8e+04 Kbytes/s) ftp> get xttstartupnomount.sql local: xttstartupnomount.sql remote: xttstartupnomount.sql 227 Entering Passive Mode (10,138,129,2,37,66) 150 Opening data connection for xttstartupnomount.sql (52 bytes). 226 Transfer complete. 52 bytes received in 3.7e-05 seconds (1.4e+03 Kbytes/s) ftp> get xttprep.tmpl local: xttprep.tmpl remote: xttprep.tmpl 227 Entering Passive Mode (10,138,129,2,37,69) 150 Opening data connection for xttprep.tmpl (11710 bytes). 226 Transfer complete. 11710 bytes received in 0.00065 seconds (1.7e+04 Kbytes/s) ftp> get xttdriver.pl local: xttdriver.pl remote: xttdriver.pl 227 Entering Passive Mode (10,138,129,2,37,72) 150 Opening data connection for xttdriver.pl (139331 bytes). 226 Transfer complete. 139331 bytes received in 0.0026 seconds (5.3e+04 Kbytes/s) ftp> get xttdbopen.sql local: xttdbopen.sql remote: xttdbopen.sql 227 Entering Passive Mode (10,138,129,2,37,77) 150 Opening data connection for xttdbopen.sql (71 bytes). 226 Transfer complete. 71 bytes received in 3.9e-05 seconds (1.8e+03 Kbytes/s) ftp> get xtt.properties local: xtt.properties remote: xtt.properties 227 Entering Passive Mode (10,138,129,2,37,84) 150 Opening data connection for xtt.properties (352 bytes). 226 Transfer complete. 352 bytes received in 4.2e-05 seconds (8.2e+03 Kbytes/s) [oracle@jyrac1 xtts_script]$ ls -lrt total 172 -rw-r--r-- 1 oracle oinstall 1390 Aug 18 10:38 xttcnvrtbkupdest.sql -rw-r--r-- 1 oracle oinstall 52 Aug 18 10:38 xttstartupnomount.sql -rw-r--r-- 1 oracle oinstall 11710 Aug 18 10:38 xttprep.tmpl -rw-r--r-- 1 oracle oinstall 139331 Aug 18 10:38 xttdriver.pl -rw-r--r-- 1 oracle oinstall 71 Aug 18 10:38 xttdbopen.sql -rw-r--r-- 1 oracle oinstall 352 Aug 18 10:38 xtt.properties
在源系統與目標系統中設置環境變TMPDIR,它指向轉換腳本所在的目錄。為了執行Perl腳本xttdriver.pl設置如下。如果TMPDIR沒有設置,那么腳本生成的輸出文件將會存放在/tmp目錄中。
IBMP740-2:/oracle11$export TMPDIR=/oracle11/xtts_script [oracle@jyrac1 xtts_script]$ export TMPDIR=/u01/xtts_script
2.準備階段
在準備階段,被傳輸表空間的數據文件會被傳輸到目標系統并且通過執行xttdriver.pl腳本進行轉換。有以下兩種方法可以使用:
1. dbms_file_transfer方法
2. RMAN備份方法
對于大量數據文件使用dbms_file_transfer方法要比傳輸數據文件到目標系統更快。
2a.使用dbms_file_transfer方法
2a.1在源系統中執行準備操作
在源系統中,使用Oracle軟件用戶登錄并設置相關環境變量(ORACLE_HOME與ORACLE_SID)來指向源數據庫,執行以下命令:
IBMP740-2:/oracle11/xtts_script$export ORACLE_HOME=/oracle11/app/oracle/product/11.2.0/db IBMP740-2:/oracle11/xtts_script$export ORACLE_SID=jycs IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -S ============================================================ trace file is /oracle11/xtts_script/setupgetfile_Aug18_Fri_10_21_17_169//Aug18_Fri_10_21_17_169_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Starting prepare phase -------------------------------------------------------------------- Prepare source for Tablespaces: 'CDZJ' /u01/xtts xttpreparesrc.sql for 'CDZJ' started at Fri Aug 18 10:21:17 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:21:18 2017 Prepare source for Tablespaces: 'LDJC' /u01/xtts xttpreparesrc.sql for 'LDJC' started at Fri Aug 18 10:21:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:21:18 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 10:21:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:21:18 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 10:21:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:21:18 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 10:21:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:21:18 2017 -------------------------------------------------------------------- Done with prepare phase --------------------------------------------------------------------
準備操作將在源系統中執行以下操作
.驗證表空間是否online,read write且不包含脫機數據文件
.將創建后面所要使用的以下文件:
xttnewdatafiles.txt
getfile.sql
IBMP740-2:/oracle11/xtts_script$cat xttnewdatafiles.txt ::CDZJ 6,DESTDIR:/cdzj01 ::LDJC 7,DESTDIR:/ldjc01 IBMP740-2:/oracle11/xtts_script$cat getfile.sql 0,SOURCEDIR,cdzj01,DESTDIR,cdzj01 1,SOURCEDIR,ldjc01,DESTDIR,ldjc01
要被傳輸的一組表空間必須是online,read write狀態且不包含脫機數據文件。如果在源數據庫中被傳輸表空間的一個或多個數據文件是脫機狀態或read only就會觸發錯誤。如果表空間在整個表空間傳輸過程中都保持read only狀態,那么就使用傳統的跨平臺傳輸表空間,不要使用跨平臺增量備份傳輸表空間。
2a.2 傳輸數據文件到目標系統中
在目標系統中,使用Oracle軟件用戶登錄并設置相關環境變量(ORACLE_HOME與ORACLE_SID)來指向目標數據庫,并復制上一步生成的xttnewdatafiles.txt與getfile.sql文件到目標系統并執行操作來獲取數據文件
[oracle@jyrac1 xtts_script]$ ftp 10.138.129.2 Connected to 10.138.129.2. 220 IBMP740-2 FTP server (Version 4.2 Mon Nov 28 14:12:02 CST 2011) ready. 502 authentication type cannot be set to GSSAPI 502 authentication type cannot be set to KERBEROS_V4 KERBEROS_V4 rejected as an authentication type Name (10.138.129.2:oracle): oracle 331 Password required for oracle. Password: 230-Last unsuccessful login: Wed Dec 3 10:20:09 BEIST 2014 on /dev/pts/0 from 10.138.130.31 230-Last login: Fri Aug 18 10:16:01 BEIST 2017 on ftp from ::ffff:10.138.130.151 230 User oracle logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /oracle11/xtts_script 250 CWD command successful. ftp> ls -lrt 227 Entering Passive Mode (10,138,129,2,38,79) 150 Opening data connection for /bin/ls. total 456 -rw-r--r-- 1 oracle11 oinstall 1390 May 24 16:57 xttcnvrtbkupdest.sql -rw-r--r-- 1 oracle11 oinstall 52 May 24 16:57 xttstartupnomount.sql -rw-r--r-- 1 oracle11 oinstall 11710 May 24 16:57 xttprep.tmpl -rw-r--r-- 1 oracle11 oinstall 139331 May 24 16:57 xttdriver.pl -rw-r--r-- 1 oracle11 oinstall 71 May 24 16:57 xttdbopen.sql -rw-r--r-- 1 oracle11 oinstall 7969 Jun 05 08:47 xtt.properties.jy -rw-r----- 1 oracle11 oinstall 33949 Aug 18 09:26 rman_xttconvert_v3.zip -rw-r--r-- 1 oracle11 oinstall 352 Aug 18 10:15 xtt.properties -rw-r--r-- 1 oracle11 oinstall 50 Aug 18 10:21 xttplan.txt -rw-r--r-- 1 oracle11 oinstall 106 Aug 18 10:21 xttnewdatafiles.txt_temp -rw-r--r-- 1 oracle11 oinstall 50 Aug 18 10:21 xttnewdatafiles.txt drwxr-xr-x 2 oracle11 oinstall 256 Aug 18 10:21 setupgetfile_Aug18_Fri_10_21_17_169 -rw-r--r-- 1 oracle11 oinstall 68 Aug 18 10:21 getfile.sql 226 Transfer complete. ftp> lcd /u01/xtts_script Local directory now /u01/xtts_script ftp> bin 200 Type set to I. ftp> get xttnewdatafiles.txt local: xttnewdatafiles.txt remote: xttnewdatafiles.txt 227 Entering Passive Mode (10,138,129,2,38,112) 150 Opening data connection for xttnewdatafiles.txt (50 bytes). 226 Transfer complete. 50 bytes received in 6.2e-05 seconds (7.9e+02 Kbytes/s) ftp> get getfile.sql local: getfile.sql remote: getfile.sql 227 Entering Passive Mode (10,138,129,2,38,115) 150 Opening data connection for getfile.sql (68 bytes). 226 Transfer complete. 68 bytes received in 4.9e-05 seconds (1.4e+03 Kbytes/s) # MUST set environment to destination database [oracle@jyrac1 xtts_script]$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db [oracle@jyrac1 xtts_script]$ export ORACLE_SID=jyrac1 [oracle@jyrac1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -G ============================================================ trace file is /u01/xtts_script/getfile_Aug18_Fri_11_03_48_564//Aug18_Fri_11_03_48_564_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Getting datafiles from source -------------------------------------------------------------------- -------------------------------------------------------------------- Executing getfile for /u01/xtts_script/getfile_Aug18_Fri_11_03_48_564//getfile_sourcedir_cdzj01_0.sql -------------------------------------------------------------------- -------------------------------------------------------------------- Executing getfile for /u01/xtts_script/getfile_Aug18_Fri_11_03_48_564//getfile_sourcedir_ldjc01_1.sql -------------------------------------------------------------------- -------------------------------------------------------------------- Completed getting datafiles from source -------------------------------------------------------------------- ASMCMD [+datadg/jyrac/datafile] > ls -lt Type Redund Striped Time Sys Name N ldjc01 => +DATADG/JYRAC/DATAFILE/FILE_TRANSFER.271.952340629 N cdzj01 => +DATADG/JYRAC/DATAFILE/FILE_TRANSFER.272.952340629 DATAFILE MIRROR COARSE AUG 18 11:00:00 Y FILE_TRANSFER.272.952340629 DATAFILE MIRROR COARSE AUG 18 11:00:00 Y FILE_TRANSFER.271.952340629
當這步操作完成后,要被傳輸的數據文件會存放在目標系統最終存放數據文件的目錄中。轉換操作會自動執行。下面就要執行前滾階段的操作了。
3.前滾階段
下面在源數據庫中創建增量數據
SQL> insert into ldjc.jy_test values(7); 1 row inserted SQL> insert into cdzj.jy_test values(7); 1 row inserted SQL> commit; Commit complete SQL> select * from ldjc.jy_test; USER_ID --------------------- 7 1 2 3 4 5 6 7 rows selected SQL> select * from cdzj.jy_test; USER_ID --------------------- 7 1 2 3 4 5 6 7 rows selected
在這個階段,會在源系統中對源數據庫創建增量備份,然后將生成的增量備份傳輸到目標系統中,并將增量備份轉換為目標系統所使用的字節序,然后將轉換后的增量備份應用到轉換后的數據文件進行前滾操作。這個階段的操作可以執行多次,每一次成功的增量備份應該比之前的增量備份花費更少的時間,并且讓目標系統中的數據文件的內容更加接近源數據庫的內容。在這個階段源數據庫中被傳輸的數據完全可以被訪問。
3.1 在源系統中對被傳輸的表空間LDJC,CDZJ創建增量備份
在源系統中,以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向源數據庫,并執行以下命令來創建增量備份:
IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -i ============================================================ trace file is /oracle11/xtts_script/incremental_Aug18_Fri_10_56_44_606//Aug18_Fri_10_56_44_606_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Backup incremental -------------------------------------------------------------------- Prepare source for Tablespaces: 'CDZJ' /u01/xtts xttpreparesrc.sql for 'CDZJ' started at Fri Aug 18 10:56:44 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:56:44 2017 Prepare source for Tablespaces: 'LDJC' /u01/xtts xttpreparesrc.sql for 'LDJC' started at Fri Aug 18 10:56:44 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:56:44 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 10:56:44 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:56:44 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 10:56:44 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:56:44 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 10:56:44 2017 xttpreparesrc.sql for ended at Fri Aug 18 10:56:44 2017 ============================================================ No new datafiles added ============================================================= Prepare newscn for Tablespaces: 'CDZJ' Prepare newscn for Tablespaces: 'LDJC' Prepare newscn for Tablespaces: '''''''''''' -------------------------------------------------------------------- Starting incremental backup -------------------------------------------------------------------- -------------------------------------------------------------------- Done backing up incrementals --------------------------------------------------------------------
上面的操作會執行RMAN命令對xtt.properties文件中所指定的所有表空間生成增量備份文件。并且還將創建以下文件供后面的操作使用:
.tsbkupmap.txt
.incrbackups.txt
tsbkupmap.txt的內容如下:
IBMP740-2:/oracle11/xtts_script$cat tsbkupmap.txt LDJC::7:::1=07sc73ng_1_1 CDZJ::6:::1=06sc73nf_1_1
文件中的內容記錄了表空間與增量備份的關聯關系
incrbackups.txt的內容如下:
IBMP740-2:/oracle11/xtts_script$cat incrbackups.txt /oracle11/backup/07sc73ng_1_1 /oracle11/backup/06sc73nf_1_1
文件中的內容顯示了生成的增量備份文件信息
IBMP740-2:/oracle11/backup$ls -lrt total 624 -rw-r----- 1 oracle11 oinstall 65536 Aug 18 10:56 06sc73nf_1_1 -rw-r----- 1 oracle11 oinstall 253952 Aug 18 10:56 07sc73ng_1_1
3.2 將增量備份傳輸到目標系統中
將上一步生成的增量備份傳輸到目標系統中由xtt.properties文件中的stageondest目錄(/u01/xtts)中。
[oracle@jyrac1 xtts]$ ftp 10.138.129.2 Connected to 10.138.129.2. 220 IBMP740-2 FTP server (Version 4.2 Mon Nov 28 14:12:02 CST 2011) ready. 502 authentication type cannot be set to GSSAPI 502 authentication type cannot be set to KERBEROS_V4 KERBEROS_V4 rejected as an authentication type Name (10.138.129.2:oracle): oracle 331 Password required for oracle. Password: 230-Last unsuccessful login: Wed Dec 3 10:20:09 BEIST 2014 on /dev/pts/0 from 10.138.130.31 230-Last login: Fri Aug 18 10:24:32 BEIST 2017 on ftp from ::ffff:10.138.130.151 230 User oracle logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /oracle11/backup 250 CWD command successful. ftp> ls -lrt 227 Entering Passive Mode (10,138,129,2,43,121) 150 Opening data connection for /bin/ls. total 624 -rw-r----- 1 oracle11 oinstall 65536 Aug 18 10:56 06sc73nf_1_1 -rw-r----- 1 oracle11 oinstall 253952 Aug 18 10:56 07sc73ng_1_1 226 Transfer complete. ftp> lcd /u01/xtts Local directory now /u01/xtts ftp> bin 200 Type set to I. ftp> get 06sc73nf_1_1 local: 06sc73nf_1_1 remote: 06sc73nf_1_1 227 Entering Passive Mode (10,138,129,2,43,130) 150 Opening data connection for 06sc73nf_1_1 (65536 bytes). 226 Transfer complete. 65536 bytes received in 0.0018 seconds (3.5e+04 Kbytes/s) ftp> get 07sc73ng_1_1 local: 07sc73ng_1_1 remote: 07sc73ng_1_1 227 Entering Passive Mode (10,138,129,2,43,134) 150 Opening data connection for 07sc73ng_1_1 (253952 bytes). 226 Transfer complete. 253952 bytes received in 0.0038 seconds (6.5e+04 Kbytes/s) [oracle@jyrac1 xtts]$ ls -lrt total 320 -rw-r--r-- 1 oracle oinstall 65536 Aug 18 11:22 06sc73nf_1_1 -rw-r--r-- 1 oracle oinstall 253952 Aug 18 11:22 07sc73ng_1_1
3.3 在目標系統中轉換增量備份并應用到數據文件副本
在目標系統中以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向目標數據庫,并從源系統中將上一步生成的xttplan.txt與tsbkupmap.txt文件。
[oracle@jyrac1 xtts_script]$ ftp 10.138.129.2 Connected to 10.138.129.2. 220 IBMP740-2 FTP server (Version 4.2 Mon Nov 28 14:12:02 CST 2011) ready. 502 authentication type cannot be set to GSSAPI 502 authentication type cannot be set to KERBEROS_V4 KERBEROS_V4 rejected as an authentication type Name (10.138.129.2:oracle): oracle 331 Password required for oracle. Password: 230-Last unsuccessful login: Wed Dec 3 10:20:09 BEIST 2014 on /dev/pts/0 from 10.138.130.31 230-Last login: Fri Aug 18 11:00:11 BEIST 2017 on ftp from ::ffff:10.138.130.151 230 User oracle logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /oracle11/xtts_script 250 CWD command successful. ftp> ls -lrt 227 Entering Passive Mode (10,138,129,2,43,196) 150 Opening data connection for /bin/ls. total 520 -rw-r--r-- 1 oracle11 oinstall 1390 May 24 16:57 xttcnvrtbkupdest.sql -rw-r--r-- 1 oracle11 oinstall 52 May 24 16:57 xttstartupnomount.sql -rw-r--r-- 1 oracle11 oinstall 11710 May 24 16:57 xttprep.tmpl -rw-r--r-- 1 oracle11 oinstall 139331 May 24 16:57 xttdriver.pl -rw-r--r-- 1 oracle11 oinstall 71 May 24 16:57 xttdbopen.sql -rw-r--r-- 1 oracle11 oinstall 7969 Jun 05 08:47 xtt.properties.jy -rw-r----- 1 oracle11 oinstall 33949 Aug 18 09:26 rman_xttconvert_v3.zip -rw-r--r-- 1 oracle11 oinstall 352 Aug 18 10:15 xtt.properties -rw-r--r-- 1 oracle11 oinstall 50 Aug 18 10:21 xttplan.txt -rw-r--r-- 1 oracle11 oinstall 106 Aug 18 10:21 xttnewdatafiles.txt_temp -rw-r--r-- 1 oracle11 oinstall 50 Aug 18 10:21 xttnewdatafiles.txt drwxr-xr-x 2 oracle11 oinstall 256 Aug 18 10:21 setupgetfile_Aug18_Fri_10_21_17_169 -rw-r--r-- 1 oracle11 oinstall 68 Aug 18 10:21 getfile.sql -rw-r--r-- 1 oracle11 oinstall 50 Aug 18 10:56 xttplan.txt_tmp -rw-r--r-- 1 oracle11 oinstall 106 Aug 18 10:56 xttnewdatafiles.txt.added_temp -rw-r--r-- 1 oracle11 oinstall 50 Aug 18 10:56 xttnewdatafiles.txt.added -rw-r--r-- 1 oracle11 oinstall 68 Aug 18 10:56 getfile.sql.added -rw-r--r-- 1 oracle11 oinstall 54 Aug 18 10:56 xttplan.txt.new -rw-r--r-- 1 oracle11 oinstall 50 Aug 18 10:56 tsbkupmap.txt drwxr-xr-x 2 oracle11 oinstall 4096 Aug 18 10:56 incremental_Aug18_Fri_10_56_44_606 -rw-r--r-- 1 oracle11 oinstall 60 Aug 18 10:56 incrbackups.txt 226 Transfer complete. ftp> lcd /u01/xtts_script Local directory now /u01/xtts_script ftp> get tsbkupmap.txt local: tsbkupmap.txt remote: tsbkupmap.txt 227 Entering Passive Mode (10,138,129,2,43,208) 150 Opening data connection for tsbkupmap.txt (50 bytes). 226 Transfer complete. 50 bytes received in 4.1e-05 seconds (1.2e+03 Kbytes/s) ftp> get xttplan.txt local: xttplan.txt remote: xttplan.txt 227 Entering Passive Mode (10,138,129,2,43,213) 150 Opening data connection for xttplan.txt (50 bytes). 226 Transfer complete. 50 bytes received in 4.8e-05 seconds (1e+03 Kbytes/s) [oracle@jyrac1 xtts_script]$ cat tsbkupmap.txt LDJC::7:::1=07sc73ng_1_1 CDZJ::6:::1=06sc73nf_1_1 [oracle@jyrac1 xtts_script]$ cat xttplan.txt CDZJ::::14690270660591 6 LDJC::::14690270660591 7 [oracle@jyrac1 xtts_script]$ export XTTDEBUG=1 [oracle@jyrac1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -r ============================================================ trace file is /u01/xtts_script/rollforward_Aug18_Fri_11_34_08_253//Aug18_Fri_11_34_08_253_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- Key: backupondest Values: +DATADG/backup Key: platformid Values: 6 Key: backupformat Values: /oracle11/backup Key: srclink Values: ttslink Key: asm_sid Values: +ASM1 Key: dstdir Values: DESTDIR Key: cnvinst_home Values: /u01/app/oracle/product/11.2.0/db Key: cnvinst_sid Values: xtt Key: srcdir Values: SOURCEDIR Key: stageondest Values: /u01/xtts Key: tablespaces Values: CDZJ,LDJC Key: asm_home Values: /u01/app/product/11.2.0/crs -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- ARGUMENT tablespaces ARGUMENT platformid ARGUMENT backupformat ARGUMENT stageondest ARGUMENT backupondest -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- ORACLE_SID : jyrac1 ORACLE_HOME : /u01/app/oracle/product/11.2.0/db -------------------------------------------------------------------- Start rollforward -------------------------------------------------------------------- convert instance: /u01/app/oracle/product/11.2.0/db convert instance: xtt ORACLE instance started. Total System Global Area 2505338880 bytes Fixed Size 2255832 bytes Variable Size 687866920 bytes Database Buffers 1795162112 bytes Redo Buffers 20054016 bytes rdfno 6 BEFORE ROLLPLAN datafile number : 6 datafile name : +DATADG/jyrac/datafile/cdzj01 AFTER ROLLPLAN CONVERTED BACKUP PIECE+DATADG/backup/xib_06sc73nf_1_1_6 PL/SQL procedure successfully completed. Entering RollForward After applySetDataFile Done: applyDataFileTo Done: applyDataFileTo Done: RestoreSetPiece Done: RestoreBackupPiece PL/SQL procedure successfully completed. asmcmd rm +DATADG/backup/xib_06sc73nf_1_1_6 /u01/app/product/11.2.0/crs .. +ASM1
--這里顯示的信息是說在前滾后不能刪除增量備份文件,可以忽略這個錯誤
Can't locate strict.pm in @INC (@INC contains: /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/lib /u01/app/product/11.2.0/crs/lib/asmcmd /u01/app/product/11.2.0/crs/rdbms/lib/asmcmd /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl .) at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. BEGIN failed--compilation aborted at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. ASMCMD: rdfno 7 BEFORE ROLLPLAN datafile number : 7 datafile name : +DATADG/jyrac/datafile/ldjc01 AFTER ROLLPLAN CONVERTED BACKUP PIECE+DATADG/backup/xib_07sc73ng_1_1_7 PL/SQL procedure successfully completed. Entering RollForward After applySetDataFile Done: applyDataFileTo Done: applyDataFileTo Done: RestoreSetPiece Done: RestoreBackupPiece PL/SQL procedure successfully completed. asmcmd rm +DATADG/backup/xib_07sc73ng_1_1_7 /u01/app/product/11.2.0/crs .. +ASM1
--這里顯示的信息是說在前滾后不能刪除增量備份文件,可以忽略這個錯誤
Can't locate strict.pm in @INC (@INC contains: /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/lib /u01/app/product/11.2.0/crs/lib/asmcmd /u01/app/product/11.2.0/crs/rdbms/lib/asmcmd /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl .) at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. BEGIN failed--compilation aborted at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. ASMCMD: -------------------------------------------------------------------- End of rollforward phase --------------------------------------------------------------------
這步前滾數據文件的操作,會以sys用戶連接到增量轉換實例,轉換完增量備份后,然后連接到目標數據庫并將增量備份應用到每個表空間注意:對于每一次增量備份都需要將xttplan.txt與tsbkupmap.txt文件復制一次,不要對腳本所生成的xttplan.txt.new文件進行修改,復制或者其它任何改變。執行這步操作時目標實例會進行重啟操作。
3.4 為下一次增量備份判斷from_scn
再次生成增量數據
SQL> insert into ldjc.jy_test values(8); 1 row inserted SQL> insert into cdzj.jy_test values(8); 1 row inserted SQL> commit; Commit complete SQL> select * from ldjc.jy_test; USER_ID --------------------- 7 8 8 1 2 3 4 5 6 9 rows selected SQL> select * from cdzj.jy_test; USER_ID --------------------- 7 8 1 2 3 4 5 6 8 rows selected
在源系統中,以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向源數據庫,執行以下命令來判斷from_scn:
IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -s ============================================================ trace file is /oracle11/xtts_script/determinescn_Aug18_Fri_11_21_56_544//Aug18_Fri_11_21_56_544_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- Prepare newscn for Tablespaces: 'CDZJ' Prepare newscn for Tablespaces: 'LDJC' Prepare newscn for Tablespaces: '''' Prepare newscn for Tablespaces: '''' Prepare newscn for Tablespaces: '''' New /oracle11/xtts_script/xttplan.txt with FROM SCN's generated
這步操作會計算下一個from_scn,并記錄在xttplan.txt文件中,當下次創建增量備份時會使用這個scn
IBMP740-2:/oracle11/xtts_script$cat xttplan.txt CDZJ::::14690270749458 6 LDJC::::14690270749458 7
3.5 再次重復前滾階段或執行傳輸階段
這里有兩種選擇:
1.如果如果將目標數據庫中的數據文件與源數據庫中的數據文件進行最接近的同步,那么就重復執行前滾操作。
2.如果目標數據庫中的數據文件與源數據庫中的數據文件已經達到所期望的接近,那么執行傳輸階段的操作。
注意:如果從上一次增量備份后增加了一個新的表空間或者一個新的表空間名增加到xtt.properties文件中,那么將會出現以下錯誤:
Error: ------ The incremental backup was not taken as a datafile has been added to the tablespace: Please Do the following: -------------------------- 1. Copy fixnewdf.txt from source to destination temp dir 2. Copy backups: from to the in destination 3. On Destination, run $ORACLE_HOME/perl/bin/perl xttdriver.pl --fixnewdf 4. Re-execute the incremental backup in source: $ORACLE_HOME/perl/bin/perl xttdriver.pl --bkpincr NOTE: Before running incremental backup, delete FAILED in source temp dir or run xttdriver.pl with -L option: $ORACLE_HOME/perl/bin/perl xttdriver.pl -L --bkpincr These instructions must be followed exactly as listed. The next incremental backup will include the new datafile.
我這里再次執行前滾操作
在源系統中,以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向源數據庫,并執行以下命令來創建增量備份:
IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -i ============================================================ trace file is /oracle11/xtts_script/incremental_Aug18_Fri_11_23_16_532//Aug18_Fri_11_23_16_532_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Backup incremental -------------------------------------------------------------------- Prepare source for Tablespaces: 'CDZJ' /u01/xtts xttpreparesrc.sql for 'CDZJ' started at Fri Aug 18 11:23:16 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:23:16 2017 Prepare source for Tablespaces: 'LDJC' /u01/xtts xttpreparesrc.sql for 'LDJC' started at Fri Aug 18 11:23:16 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:23:16 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 11:23:16 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:23:17 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 11:23:17 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:23:17 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 11:23:17 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:23:17 2017 ============================================================ No new datafiles added ============================================================= Prepare newscn for Tablespaces: 'CDZJ' Prepare newscn for Tablespaces: 'LDJC' Prepare newscn for Tablespaces: '''''''''''' -------------------------------------------------------------------- Starting incremental backup -------------------------------------------------------------------- -------------------------------------------------------------------- Done backing up incrementals --------------------------------------------------------------------
上面的操作會執行RMAN命令對xtt.properties文件中所指定的所有表空間生成增量備份文件。并且還將創建以下文件供后面的操作使用:
.tsbkupmap.txt
.incrbackups.txt
tsbkupmap.txt的內容如下:
IBMP740-2:/oracle11/xtts_script$cat tsbkupmap.txt
LDJC::7:::1=09sc7598_1_1
CDZJ::6:::1=08sc7597_1_1
文件中的內容記錄了表空間與增量備份的關聯關系
incrbackups.txt的內容如下:
IBMP740-2:/oracle11/xtts_script$cat incrbackups.txt /oracle11/backup/09sc7598_1_1 /oracle11/backup/08sc7597_1_1
文件中的內容顯示了生成的增量備份文件信息
IBMP740-2:/oracle11/backup$ls -lrt -rw-r----- 1 oracle11 oinstall 49152 Aug 18 11:23 08sc7597_1_1 -rw-r----- 1 oracle11 oinstall 204800 Aug 18 11:23 09sc7598_1_1
將增量備份傳輸到目標系統中
將上一步生成的增量備份傳輸到目標系統中由xtt.properties文件中的stageondest目錄(/u01/xtts)中。
[oracle@jyrac1 xtts_script]$ ftp 10.138.129.2 Connected to 10.138.129.2. 220 IBMP740-2 FTP server (Version 4.2 Mon Nov 28 14:12:02 CST 2011) ready. 502 authentication type cannot be set to GSSAPI 502 authentication type cannot be set to KERBEROS_V4 KERBEROS_V4 rejected as an authentication type Name (10.138.129.2:oracle): oracle 331 Password required for oracle. Password: 230-Last unsuccessful login: Wed Dec 3 10:20:09 BEIST 2014 on /dev/pts/0 from 10.138.130.31 230-Last login: Fri Aug 18 11:02:13 BEIST 2017 on ftp from ::ffff:10.138.130.151 230 User oracle logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /oracle11/backup 250 CWD command successful. ftp> ls -lrt 227 Entering Passive Mode (10,138,129,2,46,249) 150 Opening data connection for /bin/ls. total 1120 -rw-r----- 1 oracle11 oinstall 65536 Aug 18 10:56 06sc73nf_1_1 -rw-r----- 1 oracle11 oinstall 253952 Aug 18 10:56 07sc73ng_1_1 -rw-r----- 1 oracle11 oinstall 49152 Aug 18 11:23 08sc7597_1_1 -rw-r----- 1 oracle11 oinstall 204800 Aug 18 11:23 09sc7598_1_1 226 Transfer complete. ftp> lcd /u01/xtts Local directory now /u01/xtts ftp> bin 200 Type set to I. ftp> get 08sc7597_1_1 local: 08sc7597_1_1 remote: 08sc7597_1_1 227 Entering Passive Mode (10,138,129,2,47,4) 150 Opening data connection for 08sc7597_1_1 (49152 bytes). 226 Transfer complete. 49152 bytes received in 0.0013 seconds (3.7e+04 Kbytes/s) ftp> get 09sc7598_1_1 local: 09sc7598_1_1 remote: 09sc7598_1_1 227 Entering Passive Mode (10,138,129,2,47,9) 150 Opening data connection for 09sc7598_1_1 (204800 bytes). 226 Transfer complete. 204800 bytes received in 0.0029 seconds (7e+04 Kbytes/s)
在目標系統中轉換增量備份并應用到數據文件副本
在目標系統中以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向目標數據庫,并從源系統中將上一步生成的xttplan.txt與tsbkupmap.txt文件。
ftp> cd /oracle11/xtts_script 250 CWD command successful. ftp> lcd /u01/xtts_script Local directory now /u01/xtts_script ftp> bin 200 Type set to I. ftp> get xttplan.txt local: xttplan.txt remote: xttplan.txt 227 Entering Passive Mode (10,138,129,2,47,32) 150 Opening data connection for xttplan.txt (54 bytes). 226 Transfer complete. 54 bytes received in 2.7e-05 seconds (2e+03 Kbytes/s) ftp> get tsbkupmap.txt local: tsbkupmap.txt remote: tsbkupmap.txt 227 Entering Passive Mode (10,138,129,2,47,39) 150 Opening data connection for tsbkupmap.txt (50 bytes). 226 Transfer complete. 50 bytes received in 3.2e-05 seconds (1.5e+03 Kbytes/s) [oracle@jyrac1 xtts_script]$ cat xttplan.txt CDZJ::::14690270749458 6 LDJC::::14690270749458 7 [oracle@jyrac1 xtts_script]$ cat tsbkupmap.txt LDJC::7:::1=09sc7598_1_1 CDZJ::6:::1=08sc7597_1_1 [oracle@jyrac1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -r ============================================================ trace file is /u01/xtts_script/rollforward_Aug18_Fri_11_50_48_600//Aug18_Fri_11_50_48_600_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- Key: backupondest Values: +DATADG/backup Key: platformid Values: 6 Key: backupformat Values: /oracle11/backup Key: srclink Values: ttslink Key: asm_sid Values: +ASM1 Key: dstdir Values: DESTDIR Key: cnvinst_home Values: /u01/app/oracle/product/11.2.0/db Key: cnvinst_sid Values: xtt Key: srcdir Values: SOURCEDIR Key: stageondest Values: /u01/xtts Key: tablespaces Values: CDZJ,LDJC Key: asm_home Values: /u01/app/product/11.2.0/crs -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- ARGUMENT tablespaces ARGUMENT platformid ARGUMENT backupformat ARGUMENT stageondest ARGUMENT backupondest -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- ORACLE_SID : jyrac1 ORACLE_HOME : /u01/app/oracle/product/11.2.0/db -------------------------------------------------------------------- Start rollforward -------------------------------------------------------------------- convert instance: /u01/app/oracle/product/11.2.0/db convert instance: xtt ORACLE instance started. Total System Global Area 2505338880 bytes Fixed Size 2255832 bytes Variable Size 687866920 bytes Database Buffers 1795162112 bytes Redo Buffers 20054016 bytes rdfno 6 BEFORE ROLLPLAN datafile number : 6 datafile name : +DATADG/jyrac/datafile/cdzj01 AFTER ROLLPLAN CONVERTED BACKUP PIECE+DATADG/backup/xib_08sc7597_1_1_6 PL/SQL procedure successfully completed. Entering RollForward After applySetDataFile Done: applyDataFileTo Done: applyDataFileTo Done: RestoreSetPiece Done: RestoreBackupPiece PL/SQL procedure successfully completed. asmcmd rm +DATADG/backup/xib_08sc7597_1_1_6 /u01/app/product/11.2.0/crs .. +ASM1 Can't locate strict.pm in @INC (@INC contains: /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/lib /u01/app/product/11.2.0/crs/lib/asmcmd /u01/app/product/11.2.0/crs/rdbms/lib/asmcmd /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl .) at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. BEGIN failed--compilation aborted at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. ASMCMD: rdfno 7 BEFORE ROLLPLAN datafile number : 7 datafile name : +DATADG/jyrac/datafile/ldjc01 AFTER ROLLPLAN CONVERTED BACKUP PIECE+DATADG/backup/xib_09sc7598_1_1_7 PL/SQL procedure successfully completed. Entering RollForward After applySetDataFile Done: applyDataFileTo Done: applyDataFileTo Done: RestoreSetPiece Done: RestoreBackupPiece PL/SQL procedure successfully completed. asmcmd rm +DATADG/backup/xib_09sc7598_1_1_7 /u01/app/product/11.2.0/crs .. +ASM1 Can't locate strict.pm in @INC (@INC contains: /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/lib /u01/app/product/11.2.0/crs/lib/asmcmd /u01/app/product/11.2.0/crs/rdbms/lib/asmcmd /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl .) at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. BEGIN failed--compilation aborted at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. ASMCMD: -------------------------------------------------------------------- End of rollforward phase --------------------------------------------------------------------
這步前滾數據文件的操作,會以sys用戶連接到增量轉換實例,轉換完增量備份后,然后連接到目標數據庫并將增量備份應用到每個表空間注意:對于每一次增量備份都需要將xttplan.txt與tsbkupmap.txt文件復制一次,不要對腳本所生成的xttplan.txt.new文件進行修改,復制或者其它任何改變。執行這步操作時目標實例會進行重啟操作。
為下一次增量備份判斷from_scn
再次生成增量數據
SQL> insert into ldjc.jy_test values(9); 1 row inserted SQL> insert into cdzj.jy_test values(9); 1 row inserted SQL> commit; Commit complete SQL> select * from ldjc.jy_test; USER_ID --------------------- 7 8 8 9 1 2 3 4 5 6 10 rows selected SQL> select * from cdzj.jy_test; USER_ID --------------------- 7 8 9 1 2 3 4 5 6 9 rows selected
在源系統中,以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向源數據庫,執行以下命令來判斷from_scn:
IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -s ============================================================ trace file is /oracle11/xtts_script/determinescn_Aug18_Fri_11_31_22_441//Aug18_Fri_11_31_22_441_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- Prepare newscn for Tablespaces: 'CDZJ' Prepare newscn for Tablespaces: 'LDJC' Prepare newscn for Tablespaces: '''' Prepare newscn for Tablespaces: '''' Prepare newscn for Tablespaces: '''' New /oracle11/xtts_script/xttplan.txt with FROM SCN's generated IBMP740-2:/oracle11/xtts_script$cat xttplan.txt CDZJ::::14690270749827 6 LDJC::::14690270749845
4.傳輸階段
在執行傳輸階段操作時,源數據庫中被傳輸表空間要設置為read only狀態,并且通過創建與應用最后一次的增量備份使用目標數據庫中的數據文件與源數據庫中的數據文件內容保持一致。在目標數據庫數據文件與源數據庫數據文件內容達成一致后,在源系統中執行正常的傳輸表空間操作來導出元數據,然后將元數據導入到目標數據庫中。直到傳輸階段操作完成之前,被傳輸的數據只能以read only模式被訪問。
4.1 將源數據庫中被傳輸表空間設置為read only狀態
在源系統中,以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向源數據庫,并執行以下命令將表空間設置為read only:
SQL> alter tablespace ldjc read only; Tablespace altered SQL> alter tablespace cdzj read only; Tablespace altered SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE EXAMPLE ONLINE CDZJ READ ONLY LDJC READ ONLY 8 rows selected
4.2 最后一次創建增量備份,并傳輸到目標系統且執行轉換并應用到目標數據文件
在源系統中,以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向源數據庫,并執行以下命令來創建增量備份:
IBMP740-2:/oracle11/xtts_script$$ORACLE_HOME/perl/bin/perl xttdriver.pl -i ============================================================ trace file is /oracle11/xtts_script/incremental_Aug18_Fri_11_33_18_477//Aug18_Fri_11_33_18_477_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- -------------------------------------------------------------------- Backup incremental -------------------------------------------------------------------- Prepare source for Tablespaces: 'CDZJ' /u01/xtts xttpreparesrc.sql for 'CDZJ' started at Fri Aug 18 11:33:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:33:18 2017 Prepare source for Tablespaces: 'LDJC' /u01/xtts xttpreparesrc.sql for 'LDJC' started at Fri Aug 18 11:33:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:33:18 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 11:33:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:33:18 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 11:33:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:33:18 2017 Prepare source for Tablespaces: '''' /u01/xtts xttpreparesrc.sql for '''' started at Fri Aug 18 11:33:18 2017 xttpreparesrc.sql for ended at Fri Aug 18 11:33:18 2017 ============================================================ No new datafiles added ============================================================= Prepare newscn for Tablespaces: 'CDZJ' Prepare newscn for Tablespaces: 'LDJC' Prepare newscn for Tablespaces: '''''''''''' -------------------------------------------------------------------- Starting incremental backup -------------------------------------------------------------------- -------------------------------------------------------------------- Done backing up incrementals --------------------------------------------------------------------
上面的操作會執行RMAN命令對xtt.properties文件中所指定的所有表空間生成增量備份文件。并且還將創建以下文件供后面的操作使用:
.tsbkupmap.txt
.incrbackups.txt
tsbkupmap.txt的內容如下:
IBMP740-2:/oracle11/xtts_script$cat tsbkupmap.txt LDJC::7:::1=0bsc75s2_1_1 CDZJ::6:::1=0asc75s0_1_1
文件中的內容記錄了表空間與增量備份的關聯關系
incrbackups.txt的內容如下:
IBMP740-2:/oracle11/xtts_script$cat incrbackups.txt /oracle11/backup/0bsc75s2_1_1 /oracle11/backup/0asc75s0_1_1
將增量備份傳輸到目標系統中
將上一步生成的增量備份傳輸到目標系統中由xtt.properties文件中的stageondest目錄(/u01/xtts)中。
[oracle@jyrac1 xtts_script]$ ftp 10.138.129.2 Connected to 10.138.129.2. 220 IBMP740-2 FTP server (Version 4.2 Mon Nov 28 14:12:02 CST 2011) ready. 502 authentication type cannot be set to GSSAPI 502 authentication type cannot be set to KERBEROS_V4 KERBEROS_V4 rejected as an authentication type Name (10.138.129.2:oracle): oracle 331 Password required for oracle. Password: 230-Last unsuccessful login: Wed Dec 3 10:20:09 BEIST 2014 on /dev/pts/0 from 10.138.130.31 230-Last login: Fri Aug 18 11:26:03 BEIST 2017 on ftp from ::ffff:10.138.130.151 230 User oracle logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /oracle11/backup 250 CWD command successful. ftp> ls -lrt 227 Entering Passive Mode (10,138,129,2,48,62) 150 Opening data connection for /bin/ls. total 1632 -rw-r----- 1 oracle11 oinstall 65536 Aug 18 10:56 06sc73nf_1_1 -rw-r----- 1 oracle11 oinstall 253952 Aug 18 10:56 07sc73ng_1_1 -rw-r----- 1 oracle11 oinstall 49152 Aug 18 11:23 08sc7597_1_1 -rw-r----- 1 oracle11 oinstall 204800 Aug 18 11:23 09sc7598_1_1 -rw-r----- 1 oracle11 oinstall 49152 Aug 18 11:33 0asc75s0_1_1 -rw-r----- 1 oracle11 oinstall 212992 Aug 18 11:33 0bsc75s2_1_1 226 Transfer complete. ftp> lcd /u01/xtts Local directory now /u01/xtts ftp> get 0asc75s0_1_1 local: 0asc75s0_1_1 remote: 0asc75s0_1_1 227 Entering Passive Mode (10,138,129,2,48,73) 150 Opening data connection for 0asc75s0_1_1 (49152 bytes). 226 Transfer complete. 49152 bytes received in 0.0015 seconds (3.3e+04 Kbytes/s) ftp> get 0bsc75s2_1_1 local: 0bsc75s2_1_1 remote: 0bsc75s2_1_1 227 Entering Passive Mode (10,138,129,2,48,76) 150 Opening data connection for 0bsc75s2_1_1 (212992 bytes). 226 Transfer complete. 212992 bytes received in 0.0032 seconds (6.6e+04 Kbytes/s)
在目標系統中轉換增量備份并應用到數據文件副本
在目標系統中以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向目標數據庫,并從源系統中將上一步生成的xttplan.txt與tsbkupmap.txt文件。
ftp> cd /oracle11/xtts_script 250 CWD command successful. ftp> lcd /u01/xtts_script Local directory now /u01/xtts_script ftp> bin 200 Type set to I. ftp> get xttplan.txt local: xttplan.txt remote: xttplan.txt 227 Entering Passive Mode (10,138,129,2,48,100) 150 Opening data connection for xttplan.txt (54 bytes). 226 Transfer complete. 54 bytes received in 3.4e-05 seconds (1.6e+03 Kbytes/s) ftp> get tsbkupmap.txt local: tsbkupmap.txt remote: tsbkupmap.txt 227 Entering Passive Mode (10,138,129,2,48,107) 150 Opening data connection for tsbkupmap.txt (50 bytes). 226 Transfer complete. 50 bytes received in 6.4e-05 seconds (7.6e+02 Kbytes/s) [oracle@jyrac1 xtts_script]$ cat xttplan.txt CDZJ::::14690270749827 6 LDJC::::14690270749845 7 [oracle@jyrac1 xtts_script]$ cat tsbkupmap.txt LDJC::7:::1=0bsc75s2_1_1 CDZJ::6:::1=0asc75s0_1_1 [oracle@jyrac1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -r ============================================================ trace file is /u01/xtts_script/rollforward_Aug18_Fri_12_00_02_120//Aug18_Fri_12_00_02_120_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- Key: backupondest Values: +DATADG/backup Key: platformid Values: 6 Key: backupformat Values: /oracle11/backup Key: srclink Values: ttslink Key: asm_sid Values: +ASM1 Key: dstdir Values: DESTDIR Key: cnvinst_home Values: /u01/app/oracle/product/11.2.0/db Key: cnvinst_sid Values: xtt Key: srcdir Values: SOURCEDIR Key: stageondest Values: /u01/xtts Key: tablespaces Values: CDZJ,LDJC Key: asm_home Values: /u01/app/product/11.2.0/crs -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- ARGUMENT tablespaces ARGUMENT platformid ARGUMENT backupformat ARGUMENT stageondest ARGUMENT backupondest -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- ORACLE_SID : jyrac1 ORACLE_HOME : /u01/app/oracle/product/11.2.0/db -------------------------------------------------------------------- Start rollforward -------------------------------------------------------------------- convert instance: /u01/app/oracle/product/11.2.0/db convert instance: xtt ORACLE instance started. Total System Global Area 2505338880 bytes Fixed Size 2255832 bytes Variable Size 687866920 bytes Database Buffers 1795162112 bytes Redo Buffers 20054016 bytes rdfno 6 BEFORE ROLLPLAN datafile number : 6 datafile name : +DATADG/jyrac/datafile/cdzj01 AFTER ROLLPLAN CONVERTED BACKUP PIECE+DATADG/backup/xib_0asc75s0_1_1_6 PL/SQL procedure successfully completed. Entering RollForward After applySetDataFile Done: applyDataFileTo Done: applyDataFileTo Done: RestoreSetPiece Done: RestoreBackupPiece PL/SQL procedure successfully completed. asmcmd rm +DATADG/backup/xib_0asc75s0_1_1_6 /u01/app/product/11.2.0/crs .. +ASM1 Can't locate strict.pm in @INC (@INC contains: /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/lib /u01/app/product/11.2.0/crs/lib/asmcmd /u01/app/product/11.2.0/crs/rdbms/lib/asmcmd /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl .) at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. BEGIN failed--compilation aborted at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. ASMCMD: rdfno 7 BEFORE ROLLPLAN datafile number : 7 datafile name : +DATADG/jyrac/datafile/ldjc01 AFTER ROLLPLAN CONVERTED BACKUP PIECE+DATADG/backup/xib_0bsc75s2_1_1_7 PL/SQL procedure successfully completed. Entering RollForward After applySetDataFile Done: applyDataFileTo Done: applyDataFileTo Done: RestoreSetPiece Done: RestoreBackupPiece PL/SQL procedure successfully completed. asmcmd rm +DATADG/backup/xib_0bsc75s2_1_1_7 /u01/app/product/11.2.0/crs .. +ASM1 Can't locate strict.pm in @INC (@INC contains: /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/lib /u01/app/product/11.2.0/crs/lib/asmcmd /u01/app/product/11.2.0/crs/rdbms/lib/asmcmd /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/app/product/11.2.0/crs/perl/lib/site_perl/5.10.0 /u01/app/product/11.2.0/crs/perl/lib/site_perl .) at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. BEGIN failed--compilation aborted at /u01/app/product/11.2.0/crs/bin/asmcmdcore line 143. ASMCMD: -------------------------------------------------------------------- End of rollforward phase --------------------------------------------------------------------
4.3 在目標數據庫中導入元數據
在目標系統中以Oracle軟件用戶登錄并設置環境變量(ORACLE_HOME與ORACLE_SID)來指向目標數據庫,執行以下命令來生成Data Pump TTS命令:
[oracle@jyrac1 xtts_script]$ $ORACLE_HOME/perl/bin/perl xttdriver.pl -e ============================================================ trace file is /u01/xtts_script/generate_Aug18_Fri_12_01_00_366//Aug18_Fri_12_01_00_366_.log ============================================================= -------------------------------------------------------------------- Parsing properties -------------------------------------------------------------------- Key: backupondest Values: +DATADG/backup Key: platformid Values: 6 Key: backupformat Values: /oracle11/backup Key: srclink Values: ttslink Key: asm_sid Values: +ASM1 Key: dstdir Values: DESTDIR Key: cnvinst_home Values: /u01/app/oracle/product/11.2.0/db Key: cnvinst_sid Values: xtt Key: srcdir Values: SOURCEDIR Key: stageondest Values: /u01/xtts Key: tablespaces Values: CDZJ,LDJC Key: asm_home Values: /u01/app/product/11.2.0/crs -------------------------------------------------------------------- Done parsing properties -------------------------------------------------------------------- -------------------------------------------------------------------- Checking properties -------------------------------------------------------------------- ARGUMENT tablespaces ARGUMENT platformid ARGUMENT backupformat ARGUMENT stageondest -------------------------------------------------------------------- Done checking properties -------------------------------------------------------------------- ORACLE_SID : jyrac1 ORACLE_HOME : /u01/app/oracle/product/11.2.0/db -------------------------------------------------------------------- Generating plugin -------------------------------------------------------------------- -------------------------------------------------------------------- Done generating plugin file /u01/xtts_script/xttplugin.txt -------------------------------------------------------------------- [oracle@jyrac1 xtts_script]$ cat xttplugin.txt impdp directory= logfile= \ network_link= transport_full_check=no \ transport_tablespaces=CDZJ,LDJC \ transport_datafiles='+DATADG/jyrac/datafile/cdzj01','+DATADG/jyrac/datafile/ldjc01'
上面的命令會生成一個名叫xttplugin.txt的文件,文件創建了一個使用network_link參數執行傳輸表空間導入元數據的命令。命令中的transport_tablespaces與transport_datafiles參數已經設置正確。注意network_link模式指示導入通過使用dblink來完成,就不需要執行導出或使用dump文件。如果選擇執行這個命令來完成表空間的傳輸就需要修改directory,logfile與network_link參數
SQL> create directory dump_dir as '/u01/xtts_script'; Directory created. SQL> grant read,write on directory dump_dir to public; Grant succeeded.
在目標數據庫中創建用戶方案LDJC,CDZJ
SQL> create user ldjc identified by "ldjc"; User created. SQL> grant dba,connect,resource to ldjc; Grant succeeded. SQL> create user cdzj identified by "cdzj"; User created. SQL> grant dba,connect,resource to cdzj; Grant succeeded. [oracle@jyrac1 xtts_script]$ impdp system/abcd directory=dump_dir logfile=tts_imp.log network_link=ttslink transport_full_check=no transport_tablespaces=CDZJ,LDJC transport_datafiles='+DATADG/jyrac/datafile/cdzj01','+DATADG/jyrac/datafile/ldjc01' Import: Release 11.2.0.4.0 - Production on Fri Aug 18 12:05:05 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_03": system/******** directory=dump_dir logfile=tts_imp.log network_link=ttslink transport_full_check=no transport_tablespaces=CDZJ,LDJC transport_datafiles=+DATADG/jyrac/datafile/cdzj01,+DATADG/jyrac/datafile/ldjc01 Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK Processing object type TRANSPORTABLE_EXPORT/TABLE Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS Processing object type TRANSPORTABLE_EXPORT/COMMENT Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_03" successfully completed at Fri Aug 18 12:07:05 2017 elapsed 0 00:01:52 [oracle@jyrac1 xtts_script]$ impdp system/abcd directory=dump_dir logfile=ysj.log schemas=ldjc,cdzj content=metadata_only exclude=table,index network_link=ttslink Import: Release 11.2.0.4.0 - Production on Fri Aug 18 12:09:15 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01": system/******** directory=dump_dir logfile=ysj.log schemas=ldjc,cdzj content=metadata_only exclude=table,index network_link=ttslink Processing object type SCHEMA_EXPORT/USER ORA-31684: Object type USER:"LDJC" already exists ORA-31684: Object type USER:"CDZJ" already exists Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/SYNONYM/SYNONYM Processing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC Processing object type SCHEMA_EXPORT/DB_LINK Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION Processing object type SCHEMA_EXPORT/VIEW/VIEW ORA-39082: Object type VIEW:"LDJC"."TEMP_AAB002" created with compilation warnings Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY ORA-39082: Object type PACKAGE_BODY:"LDJC"."QUEST_SOO_PKG" created with compilation warnings ORA-39082: Object type PACKAGE_BODY:"LDJC"."QUEST_SOO_SQLTRACE" created with compilation warnings Processing object type SCHEMA_EXPORT/JOB Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCOBJ Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 5 error(s) at Fri Aug 18 12:09:46 2017 elapsed 0 00:00:30 SQL> select * from ldjc.jy_test; USER_ID --------------------- 7 8 8 9 1 2 3 4 5 6 10 rows selected SQL> select * from cdzj.jy_test; USER_ID --------------------- 7 8 9 1 2 3 4 5 6 9 rows selected
元數據導入后,可以將源數據庫中的表空間ldjc,cdzj修改為read write狀態
SQL> alter tablespace ldjc read write; Tablespace altered. SQL> alter tablespace cdzj read write; Tablespace altered.
如果不使用network_link執行導入,那么可以執行傳輸表空間模式的data pump導出元數據,然后將元數據復制到目標數據庫,再執行導入。
4.4 將目標數據庫中的表空間ldjc,cdzj修改為read write狀態
SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE EXAMPLE ONLINE CDZJ READ ONLY LDJC READ ONLY 8 rows selected. SQL> alter tablespace ldjc read write; Tablespace altered. SQL> alter tablespace cdzj read write; Tablespace altered. SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE EXAMPLE ONLINE CDZJ ONLINE LDJC ONLINE 8 rows selected.
4.5 驗證傳輸的數據
在這一步,在目標數據庫中被傳輸過來的表空間設置為read only狀態,然后運行應用程序來進行驗證。也可以使用RMAN來檢查物理與邏輯塊損壞的情況。
[oracle@jyrac1 dbs]$ export ORACLE_SID=jyrac1 [oracle@jyrac1 dbs]$ rman target/ Recovery Manager: Release 11.2.0.4.0 - Production on Fri Aug 18 12:13:13 2017 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: JYRAC (DBID=2655496871) RMAN> validate tablespace LDJC,CDZJ check logical; Starting validate at 18-AUG-17 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=139 instance=jyrac1 device type=DISK channel ORA_DISK_1: starting validation of datafile channel ORA_DISK_1: specifying datafile(s) for validation input datafile file number=00012 name=+DATADG/jyrac/datafile/ldjc01 input datafile file number=00011 name=+DATADG/jyrac/datafile/cdzj01 channel ORA_DISK_1: validation complete, elapsed time: 00:01:05 List of Datafiles ================= File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 11 OK 0 255625 262144 14690270752496 File Name: +DATADG/jyrac/datafile/cdzj01 Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 6239 Index 0 0 Other 0 280 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 12 OK 0 3746 655360 14690292001658 File Name: +DATADG/jyrac/datafile/ldjc01 Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 361625 Index 0 286299 Other 0 3690 Finished validate at 18-AUG-17
5.清除階段
如果為了遷移創建了單獨的轉換home與實例,那么在傳輸表空間操作完成之后可以關閉實例并刪除軟件。為了執行跨平臺增量備份傳輸表空間而創建的文件與目錄也可以刪除了,例如:
.源系統中的dfcopydir目錄
.源系統中的backupformat目錄
.目標系統中的stageondest目錄
.目標系統中的backupondest目錄
.源系統與目標系統中的$TMPDIR環境變量
Perl腳本xttdriver.pl選項
-S 準備傳輸源:-S選項只有當使用dbms_file_transfer方法傳輸數據文件時使用。這個準備操作在源系統中只對源數據庫執行一次。這步操作將創建xttnewdatafiles.txt與getfile.sql文件
-G 從源系統獲取數據文件:-G選項只有當使用dbms_file_transfer方法傳輸數據文件時使用。獲取數據文件操作在目標系統中對目標數據庫只執行一次。-S選項必須在它之前執行一次,并將生成的xttnewdatafiles.txt與getfile.sql文件傳輸到目標系統。-G選項會連接到目標數據庫并執行腳本getfile.sql。getfile.sql將調用dbms_file_transfer.get_file()過程通過使用dblink(srclink)來從源數據庫的目錄對象(srcdir)中獲取要被傳輸的數據文件到目標數據庫的目錄對象(dstdir)中。
-p 準備對源數據庫執行備份:-p選項只有當使用RMAN備份方法來生成數據文件副本時才使用。這步操作在源系統中對源數據庫只執行一次。這步操作會連接到源數據庫并對要被傳輸的每個表空間執行一次xttpreparesrc.sql腳本。xttpreparesrc.sql會執行以下操作:
1.驗證表空間是否處于online,read write模式與是否不包含脫機數據文件
2.標識第一次執行增量備份操作時所需要使用的SCN信息并將它們寫入$TMPDIR目錄中的xttplan.txt文件中
3.在源系統中會在xtt.properties文件的dfcopydir參數所指定的目錄中創建初始化數據文件副本。這些數據文件副本必須手動傳輸到目標每張
4.創建RMAN腳本$TMPDIR/rmanconvert.cmd,在目標系統中它將被用來將數據文件副本的字節序轉換為目標系統所使用的字節序
-c 轉換數據文件:-c選項只有當使用RMAN備份創建初始化數據文件副本時才使用。在目標系統中轉換數據文件副本只執行一次。這步操作將使用rmanconvert.cmd文件來將數據文件副本轉換為目標系統所使用的字節序。轉換后的數據文件副本會被存儲到xtt.properties文件的storageondest參數所指定的目錄中,也就是最終目標數據庫存儲數據文件的目錄。
-i 創建增量備份: 創建增量備份可以對源數據庫執行一次或多次。這個步驟會讀取$TMPDIR/xttplan.txt中所記錄的SCN并生成用于前滾目標系統上數據文件副本的增量備份文件。
-r 前滾數據文件:對于創建的每個增量備份都會對目標數據庫的數據文件進行前滾操作。這步操作會連接到cnvinst_home與cnvinst_sid所定義的增量轉換實例,轉換所創建的增量備份,那么連接到目標數據庫對數據文件應用增量備份進行前滾操作。
-s 判斷新的from_scn:對源數據庫判斷新的from_scn可以執行一次或多次。這步操作會計算下次增量備份所需要的from_scn,并將其記錄在xttplan.txt文件中,然后當下一次創建增量備份的就會使用它。
-e 生成Data Pump TTS命令:在目標系統中對目標數據庫只執行一次來生成Data Pump TTS命令。這步操作將創建一個使用dblink來導入元數據的Data Pump Import命令
-d debug:-d選項能以debug模式來執行xttdriver.pl與RMAN命令。要啟用debug模式需要設置環境變量XTTDEBUG=1
xtt.properties文件參數說明
tablespaces:用逗號來分隔從源數據庫要被傳輸到目標數據庫的表空間列表,例如tablespaces=TS1,TS2
platformid:從v$database.platform_id獲得的源數據庫的platform id,例如platformid=13
srcdir:源數據庫中的目錄對象,它指向源數據庫中存儲數據文件的目錄。多個目錄可以使用逗號進行分隔。srcdir與dstdir的映射可以是N:1或N:N。例如可以有多個源目錄且文件存儲到單個目標目錄或者文件來自一個特定源目錄將被存儲到一個特定的目標目錄。這個參數只有使用dbms_file_transfer來傳輸數據文件時才使用,例如srcdir=SOURCEDIR,srcdir=SRC1,SRC2
dstdir:目標數據庫中的目錄對象,它指向目標數據庫中存儲數據文件的目錄。如果使用了多個源目錄(srcdir),那么可以定義多個目標目錄以便將特定源目錄中的文件寫入特定的目標目錄中。這個參數只有使用dbms_file_transfer來傳輸數據文件時才使用,例如dstdir=DESTDIR,dstdir=DST1,DST2
srclink:目標數據庫中連接到源數據庫的dblink。使用dbms_file_transfer傳輸數據文件時會使用這個dblink。這個參數只有使用dbms_file_transfer來傳輸數據文件時才使用,例如srclink=ttslink
dfcopydir:源系統中用來存儲xttdriver.pl -p操作所生成的數據文件副本目錄。這個目錄要有足夠的空間來存儲所有被傳輸表空間的數據文件副本。這個目錄可以是目標系統上通過NFS-mounted文件系統所掛載到源系統中的一個目錄,在這種情況下,目標系統中的stageondest參數也引用這個相同的NFS目錄??梢詤⒖糞ee Note 359515.1 for mount option guidelines。 這個參數只有使用RMAN備份生成數據文件副本時才使用,例如dfcopydir=/stage_source
backupformat:源系統中存儲增量備份文件的目錄。這個目錄必須要有足夠的空間來存儲所有創建的增量備份文件。這個目錄可以是目標系統上通過NFS-mounted文件系統所掛載到源系統中的一個目錄,在這種情況下,目標系統中的stageondest參數也引用這個相同的NFS目錄。例如,backupformat=/stage_source
stageondest:目標系統中存儲從源系統中手動傳輸過來的數據文件副本。這個目錄要有足夠的空間來存儲數據文件副本。這個目錄同時也是用來存儲從源系統傳輸過來的增量備份文件的目錄。在目標系統上執行xttdriver.pl -c轉換數據文件與執行xttdriver.pl -r前滾數據文件時會從這個目錄中讀取數據文件副本與增量備份文件。這個目標也可以是一個DBFS-mounted文件系統。個目錄可以是源系統上通過NFS-mounted文件系統所掛載到目標系統中的一個目錄,在這種情況下,源系統中的backupformat參數與dfcopydir參數就會引用這個相同的NFS目錄??梢詤⒖糞ee Note 359515.1 for mount option guidelines。例如stageondest=/stage_dest
storageondest:目標系統中用來存儲xttdriver.pl -c轉換操作后所生成的數據文件副本的目錄,也就是目標數據庫最終存儲數據文件的目錄。這個目錄要有足夠的空間來永久存儲數據文件。這個參數當使用RMAN備份來生成初始化數據文件副本時才使用,例如
storageondest=+DATA或者storageondest=/oradata/test
backupondest:目錄系統中用來存儲xttdriver.pl -r前滾操作所轉換后的增量備份文件的目錄。這個目錄要有足夠的空間來存儲轉換后的增量備份文件。注意,如果這個參數指向ASM磁盤目錄,那么需要在xtt.properties參數文件中定義asm_home與asm_sid參數。如果這個參數指向文件系統目錄,那么就從xtt.properties參數文件中刪除asm_home與asm_sid參數。例如,backupondest=+RECO
cnvinst_home:如果需要使用一個單獨的增量轉換home目錄時才使用。它是目標系統中運行增量轉換實例的ORACLE_HOME,例如cnvinst_home=/u01/app/oracle/product/11.2.0.4/xtt_home
cnvinst_sid:如果需要使用一個單獨的增量轉換home目錄時才使用。它是目標系統中運行增量轉換實例的ORACLE_SID,例如cnvinst_xtt
asm_home:目標系統中ASM實例的ORACLE_HOME。注意如果backupondest設置為文件系統目錄,那么就要刪除asm_home與asm_sid參數,例如asm_home=/u01/app/11.2.0.4/grid
asm_sid:目標系統中ASM實例的ORACLE_SID。例如asm_sid=+ASM1
parallel:定義rmanconvert.cmd命令文件中rman convert命令的并行度。如果不設置這個參數,那么xttdriver.pl將使用parallel=8的缺省并行度。例如,parallel=3
rollparallel:定義xttdriver.pl -r前滾操作的并行度,例如rollparallel=2
getfileparallel:定義xttdriver.pl -G獲取數據文件副本操作的并行度,缺省值是1,最大值為8,例如getfileparallel=4
到此,相信大家對“怎么從AIX將數據庫遷移到Linux Oracle中”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。