Oracle 10g (2) 在Win平台进行表空间传输
第一步:在源数据库中创建目录
SQL> conn sys/sys@oracledb as sysdba
已连接。
SQL> create directory pdata as 'e:directory';
目录已创建。
第二步:修改源数据库中表空间的状态
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
WYJ
已选择6行。
SQL> alter tablespace wyj read only;
表空间已更改。
第三步:进行EXPDP 操作
Export: Release 10.2.0.1.0 - Production on 星期五, 15 6月, 2007 13:30:59
Copyright (c) 2003, 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
启动 "WYJ"."SYS_EXPORT_TRANSPORTABLE_01": 'wyj/********@oracledb' DIRECTORY=pdata dumpfile=expdata.dmp transport_tablespaces=wyj
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功加载/卸载了主表 "WYJ"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
WYJ.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
E:DIRECTORYEXPDATA.DMP
作业 "WYJ"."SYS_EXPORT_TRANSPORTABLE_01" 已于 13:31:34 成功完成
第四步:在目标数据库中创建目录
SQL> conn sys/sys@tjcvs as sysdba
已连接。
SQL> create directory pdata as 'e:directory';
目录已创建。
第五步:进行IMPDP操作
C:Documents and Settingsadmin>impdp 'wyj/wyj@tjcvs' directory=pdata dumpfile=e
xpdata.dmp transport_datafiles='D:oracleproduct10.2.0oradata jcvswyj01.dbf'
Import: Release 10.2.0.1.0 - Production on 星期五, 15 6月, 2007 13:54:20
Copyright (c) 2003, 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
已成功加载/卸载了主表 "WYJ"."SYS_IMPORT_TRANSPORTABLE_01"
启动 "WYJ"."SYS_IMPORT_TRANSPORTABLE_01": 'wyj/********@tjcvs' directory=pdata
dumpfile=expdata.dmp transport_datafiles='D:oracleproduct10.2.0oradata jcvs
wyj01.dbf'
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业 "WYJ"."SYS_IMPORT_TRANSPORTABLE_01" 已于 13:54:28 成功完成
SQL> dba_users
SP2-0042: 未知命令 "dba_users" - 其余行忽略。
SQL> desc dba_users
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(30)
USER_ID NOT NULL NUMBER
PASSWORD VARCHAR2(30)
ACCOUNT_STATUS NOT NULL VARCHAR2(32)
LOCK_DATE DATE
EXPIRY_DATE DATE
DEFAULT_TABLESPACE NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE NOT NULL VARCHAR2(30)
CREATED NOT NULL DATE
PROFILE NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP VARCHAR2(30)
EXTERNAL_NAME VARCHAR2(4000)
SQL> select username from dba_users;
USERNAME
------------------------------
MGMT_VIEW
SYS
SYSTEM
DBSNMP
SYSMAN
TEST
WYJ
OUTLN
MDSYS
ORDSYS
CTXSYS
USERNAME
------------------------------
ANONYMOUS
EXFSYS
DMSYS
WMSYS
XDB
ORDPLUGINS
SI_INFORMTN_SCHEMA
OLAPSYS
MDDATA
DIP
SCOTT
USERNAME
------------------------------
TSMSYS
已选择23行。
第五步:复制数据文件
将源数据库中相关的数据文件复制到目标数据库中
第六步:验证
SQL> conn test/test@tjcvs
已连接。
SQL> select * from a;
OBJECT_NAME
--------------------------------------------------------------------------------
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
------------------------------ ---------- -------------- -------------------
CREATED LAST_DDL_TIME TIMESTAMP STATUS T G S
-------------- -------------- ------------------- ------- - - -
A
51358 51358 TABLE
15-6月 -07 15-6月 -07 2007-06-15:11:05:04 VALID N N N
第七步:修改源,目标数据库中表空间的状态
SQL> conn sys/sys@tjcvs as sysdba
已连接。
SQL>alter tablespace wyj read write;
表空间已更改。
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
WYJ ONLINE
已选择6行。
SQL> conn sys/sys@oracledb as sysdba
已连接。
SQL>alter tablespace wyj read write;
表空间已更改。
SQL> spool off
总结:传送表空间必须是自主的,其中对象不能有与其它表空间存在关联。这一点是很重要的。在确定其是否可传输前必须要确定此点。具体方法可参考本人博客文章:‘oracle9i中进行表空间传输’
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/526592/viewspace-236714/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/526592/viewspace-236714/