ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle实验记录 (transport tablespace(EXPDP/IMPDP))

oracle实验记录 (transport tablespace(EXPDP/IMPDP))

原创 Linux操作系统 作者:fufuh2o 时间:2009-09-23 14:53:51 0 删除 编辑

使用EXPDP/IMPDP(EXP/IMP)方式
oracle 10g 允许在不同平台 transport tablespace
SQL> desc v$transportable_platform;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 PLATFORM_ID                                        NUMBER
 PLATFORM_NAME                                      VARCHAR2(101)
 ENDIAN_FORMAT                                      VARCHAR2(14)

SQL> select platform_name from v$transportable_platform;

PLATFORM_NAME
--------------------------------------------------------------------------------
Solaris[tm] OE (32-bit)
Solaris[tm] OE (64-bit)
Microsoft Windows IA (32-bit)
Linux IA (32-bit)
AIX-Based Systems (64-bit)
HP-UX (64-bit)
HP Tru64 UNIX
HP-UX IA (64-bit)
Linux IA (64-bit)
HP Open VMS
Microsoft Windows IA (64-bit)

PLATFORM_NAME
--------------------------------------------------------------------------------
IBM zSeries Based Linux
Linux 64-bit for AMD
Apple Mac OS
Microsoft Windows 64-bit for AMD
Solaris Operating System (x86)
IBM Power Based Linux

已选择17行
以上是oracle所支持的平台


有些限制条件
1.source db 与target DB 有相同的字符集,nls_database_parameters 中NLS_CHARACTERSET,NLS_NCHAR_CHARACTERSET必须一样
2.不能有同名tablespace,不过 10G 可用alter tablespace rename解决
3.SYSTEM TABLESPACE 不能transport,sys对象在的tablespace不能transport
4.是不是自包含的(用TRANSPORT_FULL_CHECK可以解决 )不过导出INDEX TABLESPACE 没导出依赖的表tablespace还是会报错,分区表没全部包含,表lob列所在tablespace没包含 都会报错
C:\>expdp  system/a831115@xh directory=expdpt dumpfile=e.dmp transport_tablespaces=
system

Export: Release 10.2.0.1.0 - Production on 星期三, 23 9月, 2009 12:12:14

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
ORA-39001: 参数值无效
ORA-39134: 不能包含作为可传输表空间的 "SYSTEM" 表空间~~~~~~~~~~~~SYSTEM 不行

SQL> conn / as sysdba
已连接。
SQL> create table t6 (a int) tablespace testxh;

表已创建。


SQL> alter tablespace testxh read only(使用RMAN TRANSPORT TABLESPACE 不用read only)
  2  ;

表空间已更改。
C:\>expdp  system/a831115@xh directory=expdpt dumpfile=e.dmp transport_tablespaces=
testxh

Export: Release 10.2.0.1.0 - Production on 星期三, 23 9月, 2009 12:13:39

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
启动 "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/********@xh directory=expdpt d
umpfile=e.dmp transport_tablespaces=testxh
ORA-39123: 数据泵可传输的表空间作业中止
ORA-29341: 可传送集不是自包含的~~~~~~~~~~~~~~~~~~~中含有SYS对象不行

 

表已删除。

SQL> conn / as sysdba
已连接。
SQL> execute dbms_tts.transport_set_check('testxh',true);检查下时候可以transport

SQL> select * from transport_set_violations;

VIOLATIONS
--------------------------------------------------------------------------------
Sys owned object  T6 in tablespace TESTXH not allowed in pluggable set

有内容就是有错误,解决相关问题
SQL> alter table t6 move tablespace users;

表已更改。


SQL> execute dbms_tts.transport_set_check('testxh',true);

PL/SQL 过程已成功完成。

SQL> select * from transport_set_violations;

未选定行~~~~~~~~~~~~~可以transport 该tablespace了

另外对于
dbms_tts.transport_set_check 有以下参数
参数名称                       类型                    输入/输出默认值?
------------------------------ ----------------------- ------ --------
 TS_LIST                        CLOB                    IN
 INCL_CONSTRAINTS               BOOLEAN                 IN     DEFAULT
 FULL_CHECK                     BOOLEAN                 IN     DEFAULT

不指定FULL_CHECK DEFAULT n 不会检查tablespace是否是自包含的
SQL> conn xh/a123
已连接。
SQL> select count(*) from t1;

  COUNT(*)
----------
         1

SQL> alter table t1 move tablespace testxh;

表已更改。

SQL> create index t1_ind on t1(a);

索引已创建。

SQL> select tablespace_name from user_indexes where index_name='T1_IND';

TABLESPACE_NAME
------------------------------
USERS

SQL> select tablespace_name from user_tables where table_name='T1';

TABLESPACE_NAME
------------------------------
TESTXH

上面可以看到index与table不在同一tablespace
SQL> conn / as sysdba
已连接。
SQL> execute dbms_tts.transport_set_check('testxh',true);

PL/SQL 过程已成功完成。

SQL> select * from transport_set_violations;

未选定行~~~~~~~~~~~~~~~~~~~没检查出来INDEX 与table不在同一tablespace

SQL> execute dbms_tts.transport_set_check('testxh',true,true);

PL/SQL 过程已成功完成。

SQL> select * from transport_set_violations;

VIOLATIONS
--------------------------------------------------------------------------------
Index XH.T1_IND in tablespace USERS points to table XH.T1 in tablespace TESTXH
检查出来了 INDEX 与table不在同一tablespace
SQL> conn xh/a123
已连接。


SQL> alter index t1_ind rebuild tablespace testxh; 解决

索引已更改。


SQL> conn / as sysdba
已连接。
SQL> execute dbms_tts.transport_set_check('testxh',true,true);

PL/SQL 过程已成功完成。

SQL> select * from transport_set_violations;

未选定行


SQL> alter tablespace testxh read only;

表空间已更改。

C:\>expdp  system/a831115@xh directory=expdpt dumpfile=e.dmp transport_tablespaces=
testxh

Export: Release 10.2.0.1.0 - Production on 星期三, 23 9月, 2009 13:33:19

 

SQL> host copy d:\xhdatafile\testxh.dbf e:\orcldatafile\testxh.dbf
已复制         1 个文件。

SQL> host copy D:\expdp\e.dmp e:\test\e.dmp
已复制         1 个文件
DMP文件和DATAFILE 都复制过去


SET ORACLE_SID=ORCL
C:\>sqlplus / as sysdba
SQL> create directory dumplist as 'e:\test';

目录已创建。
C:\>impdp  system/a831115 directory=dumplist dumpfile=e.dmp transport_datafiles=e:\
orcldatafile\testxh.dbf remap_schema=xh:system
作业 "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" 已于 13:48:18 成功完成


SQL> select tablespace_name from  dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE
TEST
RMAN_TS
TESTXH~~~~~~~~~~orcl db多了这个  tablespace

已选择9行。
SQL> conn system/a831115
已连接。
SQL> select count(*) from t1; TESTXH TABLESPACE 中对象也给了 ORCL DB  SYSTEM USER

  COUNT(*)
----------
         1

SQL> col tablespace_name format a10
SQL> col file_name format a30


SQL> select tablespace_name,file_name from  dba_data_files;

TABLESPACE FILE_NAME
---------- ------------------------------
SYSTEM     E:\SYSDATAFILE2.DBF
TEST       D:\TEST.DBF
EXAMPLE    E:\ORACLE\PRODUCT\10.2.0\ORADA
           TA\ORCL\EXAMPLE01.DBF

USERS      E:\ORACLE\PRODUCT\10.2.0\ORADA
           TA\ORCL\USERS01.DBF

SYSAUX     E:\ORACLE\PRODUCT\10.2.0\ORADA
           TA\ORCL\SYSAUX01.DBF


TABLESPACE FILE_NAME
---------- ------------------------------
UNDOTBS1   E:\ORACLE\PRODUCT\10.2.0\ORADA
           TA\ORCL\UNDOTBS01.DBF

SYSTEM     E:\ORACLE\PRODUCT\10.2.0\ORADA
           TA\ORCL\SYSTEM01.DBF

RMAN_TS    D:\RMAN_TS.DBF
TESTXH     E:\ORCLDATAFILE\TESTXH.DBF~~~~~~~~~~~~~~~~~~~~~~

已选择9行。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12020513/viewspace-615395/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-26

  • 博文量
    182
  • 访问量
    426851