EXPDP&IMPDP搬移表空間-筆記

1、準備待搬移的表空間TEST

(以下操作SID=ORCL10庫上執行)源庫

創建表空間TEST
SQL> create tablespace test
  2  datafile 'D:\oracle\product\10.1.0\oradata\orcl10\test01.dbf' size 50m;
Tablespace created
創建用戶zy
SQL> create user zy          //記住此用戶,後面導入impdp要用到
  2  identified by zouyang
  3  default tablespace test;
User created
爲用戶賦權:
SQL> grant dba to zy;
Grant succeeded
以新建用戶登錄,創建數據表:
SQL> conn zy/zouyang@orcl10
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as zy

 

SQL> create table tt
  2  as
  3  select * from dba_tables;
Table created

 

2、確定自包含表空間集合

(以下操作SID=ORCL10庫上執行)源庫

SQL> execute sys.dbms_tts.transport_set_check('test',true)
PL/SQL procedure successfully completed
經分析沒有返回任何信息,說明該表空間test是自包含的:
SQL> select * from sys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------

 

3、生成要搬移的表空間集合(轉儲文件)

(以下操作SID=ORCL10庫上執行)源庫

慰勞生成要搬移的表空間集合,必須首先將所有要搬移的表空間轉變爲只讀狀態:
SQL> alter tablespace test read only;
Tablespace altered
當使用EXPDP工具時,轉儲文件只能被存放在DIRECTORY對象所對應的OS目錄中,必須首先建立DIRECTORY對象:
SQL> conn system/e2000jl@orcl10
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as system

 

SQL> create directory dump_dir as 'D:\dump';
Directory created

 

SQL> grant read,write on directory dump_dir to zy;
Grant succeeded
生成要搬移的表空間集合:
C:\Documents and Settings\Administrator>expdp zy/zouyang@orcl10 directory=dump_d

ir dumpfile=transport.dmp transport_tablespaces=test

 

Export: Release 10.1.0.2.0 - Production on 星期三, 25 11, 2009 11:17
Copyright (c) 2003, Oracle.  All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Produc
tion
With the Partitioning, OLAP and Data Mining options
ORA-31626: job does not exist
ORA-31633: unable to create master table "ZY.SYS_EXPORT_TRANSPORTABLE_01"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 701
ORA-01647: tablespace 'TEST' is read only, cannot allocate space in it
報錯!

原因:搬移表空間testzy用戶的缺省表空間,所以不能以zy用戶登錄執行expdp

 

C:\Documents and Settings\Administrator>expdp system/e2000jl@orcl10 directory=du

mp_dir dumpfile=transport.dmp transport_tablespaces=test

 

Export: Release 10.1.0.2.0 - Production on 星期三, 25 11, 2009 11:21
Copyright (c) 2003, Oracle.  All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Produc
tion
With the Partitioning, OLAP and Data Mining options
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/********@orcl10 directo
ry=dump_dir dumpfile=transport.dmp transport_tablespaces=test
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded

 

******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
  D:\DUMP\TRANSPORT.DMP
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 11:22

 

4、傳送轉儲文件和數據文件到目標數據庫

(以下操作SID=ORCL庫上執行)目標庫

U盤拷貝文件 TRANSPORT.DMP(轉儲文件,存放到:D:\dump\TRANSPORT.DMP)、TEST01.DBF(數據文件,存放到:E:\oracle\product\10.1.0\oradata\orcl\TEST01.DBF

 

5、 插入表空間到目標數據庫

確定源數據庫與目標數據庫數據塊尺寸一致:
Sid=orcl10

SQL> show parameter db_block_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192
Sid=orcl

SQL> show parameter db_block_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192

 

(以下操作SID=ORCL庫上執行)目標庫

創建接收用戶:
SQL> create user zouy
  2  identified by zouyang;
User created
當使用IMPDP工具時,轉儲文件只能被存放在DIRECTORY對象所對應的OS目錄中,必須首先建立DIRECTORY對象:
SQL> conn system/e2000jl@orcl10
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as system

 

SQL> create directory dump_dir as 'D:\dump';
Directory created

 

SQL> grant read,write on directory dump_dir to zouy;
Grant succeeded
插入表空間到目標數據庫:
C:\Documents and Settings\zouyang>impdp system/system@orcl directory=dump_dir du

mpfile=TRANSPORT.DMP transport_datafiles=E:\oracle\product\10.1.0\oradata\orcl\T

EST01.DBF remap_schema=zy:zouy
Import: Release 10.1.0.2.0 - Production on 星期三, 25 11, 2009 13:50
Copyright (c) 2003, Oracle.  All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Produc
tion
With the Partitioning, OLAP and Data Mining options
Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/********@orcl directory
=dump_dir dumpfile=TRANSPORT.DMP transport_datafiles=E:\oracle\product\10.1.0\or
adata\orcl\TEST01.DBF remap_schema=zy:zouy
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at 13:50

 

6、將新導入的表空間回覆讀寫狀態

SQL> select TABLESPACE_NAME,status from dba_tablespaces;
TABLESPACE_NAME                STATUS
----------------------------------------------- ----------------
SYSTEM                         ONLINE
UNDOTBS1                       ONLINE
SYSAUX                         ONLINE
TEMP                            ONLINE
USERS                           ONLINE
TEST                           READ ONLY    ——已成功插入,不過還是隻讀狀態

6 rows selected

 

SQL> conn zouy/zouyang@orcl
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as zouy

 

SQL> select count(*) from tt;   ——test表空間的數據也一起成功插入

  COUNT(*)
----------
      3093
回覆遷移的表空間致讀寫狀態:
SQL> alter tablespace test read write;
Tablespace altered
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章