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
報錯!
原因:搬移表空間test是zy用戶的缺省表空間,所以不能以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