expdp/impdp 遷移表空間
cmsdb 的拆庫已經完成,但是應為是在standby 的基礎上拆的庫,導致sid一致,無法再同一臺機器上多一套standby
我們嘗試了建立不同例項的standby 庫,都告失敗,只剩下2個方法可行了,一個是nid 修改資料庫名字,一個是建新庫,然後把資料庫轉到新庫裡面。
nid 我們在生產庫上還沒有實施過的經驗,雖然 oracle 很早就提供了這個工具,但還是有其不確定性。
建新庫,轉資料,用expdp/impdp 導資料就太慢了,總共要處理40g左右的資料,停機時間還是比較長。於是測試了表空間遷移的方法
測試證明可行性還是很高的。
下面是測試步驟
1。 首先要檢查要遷移的表空間是否支援表空間遷移
限制主要包括: 表空間物件的自包含性, 表空間中,不能有system,sys等使用者的物件。
首先表空間設只讀:
alter tablespace pchouse_test read only ;
執行檢查指令碼:
系統表 TRANSPORT_SET_VIOLATIONS 沒有資料說明該表空間是支援遷移的。如果有資料,則要在遷移前把這些物件的處理好,
2 。 匯出meta資料
3. 把匯出metadata檔案以及表空間對應的資料檔案copy到目標機器相應的資料目錄下,資料目錄不要求一致。
4. 到目標機上匯入meta data資料
首先要要在目標機器上指定一個使用者,新建一個使用者或者指定一個已有的使用者
我們新建了一個
metadata資料匯入:
5檢查下
檢查資料時 ok 的
6 。 在目標庫上把表空間設為讀寫狀態 源庫上的也要這麼做
如果採用表空間傳輸的方式來遷移資料,那麼主要的費時間的地方,就取決於資料檔案的scp的速度了。
over !!!
我們嘗試了建立不同例項的standby 庫,都告失敗,只剩下2個方法可行了,一個是nid 修改資料庫名字,一個是建新庫,然後把資料庫轉到新庫裡面。
nid 我們在生產庫上還沒有實施過的經驗,雖然 oracle 很早就提供了這個工具,但還是有其不確定性。
建新庫,轉資料,用expdp/impdp 導資料就太慢了,總共要處理40g左右的資料,停機時間還是比較長。於是測試了表空間遷移的方法
測試證明可行性還是很高的。
下面是測試步驟
1。 首先要檢查要遷移的表空間是否支援表空間遷移
限制主要包括: 表空間物件的自包含性, 表空間中,不能有system,sys等使用者的物件。
首先表空間設只讀:
alter tablespace pchouse_test read only ;
執行檢查指令碼:
1 | SYS AS SYSDBA at test745 > EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('PCHOUSE_TEST', TRUE,TRUE); |
2 |
3 | PL/SQL procedure successfully completed. |
4 |
5 | SYS AS SYSDBA at test745 > |
6 | SYS AS SYSDBA at test745 > SELECT * FROM TRANSPORT_SET_VIOLATIONS; |
7 |
8 | no rows selected |
2 。 匯出meta資料
01 | [oracle@test740_5 oracle]$ expdp lsliang/lsliang directory=dmp_dir dumpfile=p.dat TRANSPORT_TABLESPACES=pchouse_test TRANSPORT_FULL_CHECK=Y |
02 |
03 | Export: Release 10.2.0.4.0 - 64bit Production on D??úò?, 21 6??, 2010 11:50:22 |
04 |
05 | Copyright (c) 2003, 2007, Oracle. All rights reserved. |
06 |
07 | Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production |
08 | With the Partitioning, OLAP, Data Mining and Real Application Testing options |
09 | Starting "LSLIANG"."SYS_EXPORT_TRANSPORTABLE_01": lsliang/******** directory=dmp_dir dumpfile=p.dat TRANSPORT_TABLESPACES=pchouse_test TRANSPORT_FULL_CHECK=Y |
10 | Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK |
11 | Processing object type TRANSPORTABLE_EXPORT/TABLE |
12 | Processing object type TRANSPORTABLE_EXPORT/INDEX |
13 | Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT |
14 | Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS |
15 | Processing object type TRANSPORTABLE_EXPORT/COMMENT |
16 | Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT |
17 | Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK |
18 | Master table "LSLIANG"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded |
19 | ****************************************************************************** |
20 | Dump file set for LSLIANG.SYS_EXPORT_TRANSPORTABLE_01 is: |
21 | /data1/oracle/p.dat |
22 | Job "LSLIANG"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 11:50:38 |
1 | [oracle@test740_5 oracle]$ scp p.dat /data/oracle/oradata/test745/PCHOUSE_TEST.dbf oracle@192.168.74.6:/data/oracle/oradata/test746 |
2 | oracle@192.168.74.6's password: |
3 | p.dat 100% 2104KB 2.1MB/s 00:00 |
4 | PCHOUSE_TEST.dbf 100% 300MB 42.9MB/s 00:07 |
5 | [oracle@test740_5 oracle]$ |
首先要要在目標機器上指定一個使用者,新建一個使用者或者指定一個已有的使用者
我們新建了一個
01 | SQL> create user pchouse_app identified by pchouse_app |
02 | 2 default tablespace pchouse_test; |
03 | create user pchouse_app identified by pchouse_app |
04 | * |
05 | ERROR at line 1: |
06 | ORA-00959: tablespace 'PCHOUSE_TEST' does not exist |
07 |
08 |
09 | SQL> create user pchouse_app identified by pchouse_app; |
10 |
11 | User created. |
12 |
13 | SQL> grant dba to pchouse_app; |
14 |
15 | Grant succeeded. |
16 |
17 | SQL> exit |
01 | [oracle@test740_6 oracle]$ impdp system/system directory=dmp_dir dumpfile=p.dat transport_datafiles=/data/oracle/oradata/test746/PCHOUSE_TEST.dbf remap_schema=pchouse_app:pchouse_app |
02 |
03 | Import: Release 10.2.0.4.0 - 64bit Production on D??úò?, 21 6??, 2010 11:50:38 |
04 |
05 | Copyright (c) 2003, 2007, Oracle. All rights reserved. |
06 |
07 | Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production |
08 | With the Partitioning, OLAP, Data Mining and Real Application Testing options |
09 | Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded |
10 | Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01": system/******** directory=dmp_dir dumpfile=p.dat transport_datafiles=/data/oracle/oradata/test746/PCHOUSE_TEST.dbf remap_schema=pchouse_app:pchouse_app |
11 | Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK |
12 | Processing object type TRANSPORTABLE_EXPORT/TABLE |
13 | Processing object type TRANSPORTABLE_EXPORT/INDEX |
14 | Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT |
15 | Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS |
16 | Processing object type TRANSPORTABLE_EXPORT/COMMENT |
17 | Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT |
18 | Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK |
19 | Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 11:50:50 |
20 |
21 | [oracle@test740_6 oracle]$ |
01 | SQL> select table_name from dba_tables where wner='PCHOUSE_APP'; |
02 |
03 | TABLE_NAME |
04 | ------------------------------ |
05 | OPERATION |
06 | TBLAPPROVE |
07 | TBLAPPUPFILE |
08 | TBLARTICLE |
09 | TBLARTICLEAUTO |
10 | TBLARTICLEBRIEF |
11 | TBLBACKUPLOG |
12 | TBLBACKUPTEMPLATE |
13 | TBLARTICLECOPY |
14 | TBLARTICLEPRODUCT |
15 | TBLARTICLE_ARCH |
16 |
17 | TABLE_NAME |
18 | ------------------------------ |
19 | ................. |
20 | ... 此處省略n行 |
21 |
22 | SQL> |
23 | SQL> select count(*) from pchouse_app.tbltext ; |
24 |
25 | COUNT(*) |
26 | ---------- |
27 | 14739 |
6 。 在目標庫上把表空間設為讀寫狀態 源庫上的也要這麼做
1 | SQL> alter tablespace pchouse_test read write ; |
2 |
3 | Tablespace altered. |
4 |
5 | SQL> |
over !!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-731990/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- 10g跨小版本的expdp/impdp表空間遷移(一)
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- 表空間遷移
- 遷移表空間
- 一次expdp/impdp遷移案例
- 使用expdp、impdp遷移資料庫資料庫
- 【遷移】表空間transport
- RMAN遷移表空間
- expdp,impdp的多使用者遷移
- ORACLE表批量遷移表空間Oracle
- 遷移SYSTEM表空間為本地管理表空間
- 跨平臺表空間遷移(傳輸表空間)
- 遷移表到新的表空間
- table/index/LOBINDEX遷移表空間Index
- lob欄位表空間遷移
- 基於可傳輸表空間的表空間遷移
- oracle expdp、impdp匯入從原表空間更換到其他表空間 ----匯入到另個表空間測試Oracle
- Oracle使用資料泵 (expdp/impdp)實施遷移Oracle
- expdp/impdp使用sysdba許可權遷移資料
- Oracle 不同平臺間表空間遷移Oracle
- MySQL 遷移表空間,備份單表MySql
- 表、索引遷移表空間alter table move索引
- Oracle11g中用exp不能匯出空表,異構平臺遷移可以使用expdp、impdpOracle
- 空間遷移
- Oracle中表空間、表、索引的遷移Oracle索引
- 表空間遷移辦法補充
- 使用RMAN簡單遷移表空間
- 資料庫物件遷移表空間資料庫物件
- 【資料遷移】使用傳輸表空間遷移資料
- 使用資料泵(expdp、impdp)遷移資料庫流程資料庫
- expdp/impdp跨版本升級遷移問題總結
- expdp/impdp 使用version引數跨版本資料遷移
- oracle小知識點11--傳輸表空間通過impdp/expdpOracle
- 線上遷移表空間資料檔案
- 不同使用者,不同表空間遷移
- Oracle 表空間資料檔案遷移Oracle