Oracle可傳輸表空間測試
備份恢復測試方案
一, 首先先把lnxh_v2的表空間中的業務資料表遷移出另外的表空間metarnet。
二, 可以透過可傳輸的表空間把源資料庫表空間匯入到目標資料庫表空間。
[@more@]備份恢復測試方案
一, 首先先把lnxh_v2的表空間中的業務資料表遷移出另外的表空間metarnet。
二, 可以透過可傳輸的表空間把源資料庫表空間匯入到目標資料庫表空間。
三, 對於業務運營產生的新資料透過expdp匯出主庫metarnet,生成dmp檔案,再透過impdp的追加資料方式把dmp檔案匯入複製庫。
遷移lnxh_v2表空間中的業務資料到metarnet表空間
1,create tablespace metarnet datafile‘Y:oracleoradatametarnet.dbf’ size 1000m;
2, create user lnxh_v2 identified by lnxh_v2 default tablespace metarnet;
3, grant connet,resource to lnxh_v2;
具體遷移指令碼可參考lnxh.sql
一.環境:
1. 兩臺win2003 Enterprise edition:主機名si_vm_w2k3,ip:192.168.2.204;備機名PC2 ip:192.168.2.205
2. 在si_vm_w2k3上和PC2上同時安裝oracle 10.2.0.1.0;
3. ORACLE_HOME=C:oracleproduct10.2.0db_1.ORADATA=C:oracleproduct10.2.0oradatalichao;
對於資料備份可以透過expdp工具匯出主庫metarnet表空間,再透過impdp匯入到複製庫裡面。
首先在源庫建立測試表空間及使用者
SQL>create tablespace ora1 datafile’Y:oracleoradataora1.dbf’ size 1000m;
SQL>Crant user metar identified by metar default tablespace ora1;
SQL>Grant connect,resource to metar;
SQL>Conn metar/metar
建立測試表:
SQL>create table so tablespace ora1 as select*from dba_objets;
SQL>insert into so select*from dba_objects;
SQL>commit;
SQL> select count(*) from so;
COUNT(*)
----------
153795
檢查源資料庫的表空間是否是自包含的。以sys使用者登入資料庫
使用dbms_tts.transport_set_check對待遷移表空間進行檢查,這裡待表空間的名字是ora1
SQL> exec dbms_tts.transport_set_check('ORA1',true);
PL/SQL procedure successfully completed.
透過transport_set_violations檢視檢視是否有違反“自包含”的內容,這裡顯示結果是沒有,所以可以對完成ora1表空間的遷移
SQL> select * from transport_set_violations;
no rows selected
檢視遷移平臺,源庫和目標庫都是windows平臺
SQL> select d.platform_name,endian_format from v$transportable_platform. tp,
2 v$database d where tp.platform_name=d.platform_name;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ---------------------------------------- ---
7 Microsoft Windows IA (32-bit) Little
把ora1表空間置為只讀表空間
Alter tablespace ora1 read only;
匯出源庫表空間:
C:Documents and SettingsAdministrator>exp userid=’sys/admin as sysdba’ file=’Y:tommetar.dmp’ transport_tablespace=y tablespaces=ora1
Export: Release 10.2.0.1.0 - Production on 星期日 1月 23 10:03:15 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 將不匯出表資料 (行)
即將匯出可傳輸的表空間後設資料...
對於表空間 ORA1....
.正在匯出簇定義
.正在匯出表定義
. . 正在匯出表 SO
. 正在匯出引用完整性約束條件
. 正在匯出觸發器
. 結束匯出可傳輸的表空間後設資料
成功終止匯出, 沒有出現警告。
切換到目標庫執行以下命令:
SQL>create user metar identified by metar;
複製源庫的匯出檔案metar.dmp 到目標庫的相應目錄 Y:oracleoradata
複製源庫表空間ora1的資料檔案ora1.dbf到目標庫的相應目錄
Y:oracleoradata
在目標庫上執行匯入:
imp userid=’sys/admin as sysdba’ file=’Y:oracleoradatametar.dmp’ transport_tablespace=y datafiles=’Y:oracleoradataora1.db’
查詢確認:
SQL> select count(*) from so;
COUNT(*)
----------
153795
我們再回到源庫模擬業務資料增加或改變時,再把增加或改變的資料應用到目標庫的表空間上以保持業務資料的安全。
源庫上改變so表的資料進行測試
SQL> insert into so select*from dba_objects;
已建立51266行。
SQL> insert into so select*from dba_objects;
已建立51266行。
SQL> insert into so select*from dba_objects;
已建立51266行。
SQL> insert into so select*from dba_objects;
已建立51266行。
SQL> select count(*) from so;
COUNT(*)
----------
358862
匯出表空間:
C:Documents and SettingsAdministrator>expdp system/admin directory=data_pump_dir dumpfile=ora1.dmp tablespaces=ora1
執行成功:
複製匯出的dmp檔案到目標資料的data_dump_dir目錄。
在複製庫上進行匯入追加資料如下:
impdp system/manager DIRECTORY=data_pump_dir DUMPFILE=ora1.dmp SCHEMAS=metar TABLE_EXISTS_ACTION=append;
結果如下:
在目標庫上以metar使用者登入驗證恢復是否成功.
SQL> select count(*) from so;
COUNT(*)
----------
358862
綜上所述:此方案是可行的,在利用可傳輸的表空間功能將表空間恢復到目標庫上以後,對此表空間(ora1)業務資料的變化,我們只需要來定期的expdp,最好在expdp之前能夠把cache中的資料寫入到資料檔案。在利用impdp追加資料的操作來把資料匯入到目標庫的表空間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25614620/viewspace-1048015/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 10g 傳輸表空間的測試Oracle 10g
- oracle可傳輸表空間TTS小結OracleTTS
- Oracle 表空間傳輸Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(上)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(中)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(下)Oracle
- 傳輸表空間操作-OracleOracle
- Oracle傳輸表空間(TTS)OracleTTS
- Oracle 傳輸表空間-RmanOracle
- 關於oracle可傳輸表空間的總結Oracle
- Oracle 10g的可傳輸表空間操作Oracle 10g
- 基於可傳輸表空間的表空間遷移
- 5.7 mysql的可傳輸表空間MySql
- Oracle傳輸表空間學習Oracle
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- Oracle 傳輸表空間-EXP/IMPOracle
- Oracle表空間傳輸詳解Oracle
- 使用Oracle可傳輸表空間的特性複製資料(7)實戰RMAN備份傳輸表空間Oracle
- Oracle9i傳輸表空間到10g測試過程Oracle
- 用可傳輸表空間實現Oracle跨平臺移植Oracle
- oracle 傳輸表空間一例Oracle
- 使用RMAN實現可傳輸的表空間
- MySQL 傳輸表空間MySql
- MySQL表空間傳輸MySql
- 【XTTS】Oracle傳輸表空間xtts增量方式TTSOracle
- oracle表空間傳輸的限制條件Oracle
- 同位元組序跨平臺表空間傳輸的測試
- Oracle 10g的可傳輸表空間操作(轉並驗證)Oracle 10g
- mysql之 表空間傳輸MySql
- 總結-表空間傳輸
- Oracle TTS ORA-39322: 表空間傳輸OracleTTS
- 跨平臺表空間遷移(傳輸表空間)
- readwrite狀態下實現可傳輸表空間
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- 使用Oracle可傳輸表空間的特性複製資料(3)跨平臺的傳輸實踐Oracle
- 傳輸表空間自包含理解