利用exp/imp传输表空间
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,传输表空间TABLESPACES、TRANSPORT_TABLESPACE、TTS_FULL_CHECK使用exp/imp将表空间data_tbs从a库传输到b库?下面是准备工作。create tab
千家信息网最后更新 2025年01月22日利用exp/imp传输表空间传输表空间TABLESPACES、TRANSPORT_TABLESPACE、TTS_FULL_CHECK
使用exp/imp将表空间data_tbs从a库传输到b库?下面是准备工作。
create tablespace data_tbs;
create tablespace idx_tbs;
create table t(x varchar2(10))tablespace data_tbs;
create index idx_t on t(x) tablespaceidx_tbs;
insert into t ;
(1)在sys用户下创建的(注:导出是错误的)
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 10:36:38 2011
Copyright (c) 1982, 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
SQL> CREATE TABLESPACE data_tbs
2 DATAFILE 'data_tbs' SIZE 100M AUTOEXTEND ONNEXT 100M MAXSIZE UNLIMITED LOGGING
3 EXTENT MANAGEMENT LOCAL SEGMENT SPACEMANAGEMENT AUTO ;
表空间已创建。
SQL> CREATE TABLESPACE idx_tbs
2 DATAFILE 'idx_tbs' SIZE 10M AUTOEXTEND ONNEXT 10M MAXSIZE UNLIMITED LOGGING
3 EXTENT MANAGEMENT LOCAL SEGMENT SPACEMANAGEMENT AUTO ;
表空间已创建。
SQL> create table t(x varchar2(10)) tablespace data_tbs;
表已创建。
SQL> create index idx_t on t(x) tablespace idx_tbs;
索引已创建。
SQL> insert into t select object_id from dba_objects;
已创建50407行。
SQL> insert into t select * from t;
已创建50407行。
SQL> commit;
SQL> alter tablespace data_tbs read only;
表空间已更改。
SQL> alter tablespace idx_tbs read only;
表空间已更改。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE);
PL/SQL 过程已成功完成。
SQL> SELECT * FROMsys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------
Index SYS.IDX_T in tablespace IDX_TBS points to table SYS.T intablespace DATA_T
BS
Sys owned object T intablespace DATA_TBS not allowed in pluggable set
SQL> delete from sys.transport_set_violations;
已删除2行。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE);
PL/SQL 过程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
-------------------------------------------------------------------------------
Sys owned object IDX_Tin tablespace IDX_TBS not allowed in pluggable set
Sys owned object T intablespace DATA_TBS not allowed in pluggable set
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options 断开
C:\Documents and Settings\Administrator>exp \"sys/ymhas sysdba\" file=d:/tbs.dmp tablespaces=(data_tbs,idx_tbs) transport_Tab
Export: Release 10.2.0.1.0 - Production on 星期五 6月 24 11:16:40 2011
Copyright (c) 1982, 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表数据 (行)
即将导出可传输的表空间元数据...
EXP-00008: 遇到 ORACLE 错误 29341
ORA-29341: 可传送集不是自包含的
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1387
ORA-06512: 在 line 1
EXP-00000: 导出终止失败
C:\Documents and Settings\Administrator>
注:sys用户下有问题,具体看后面的总结
(2)使用scott 用户操作
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:24:34 2011
Copyright (c) 1982, 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
SQL> drop table t;
表已删除。
SQL> alter tablespace data_tbs read write;
表空间已更改。
SQL> alter tablespace idx_tbs read write;
表空间已更改。
SQL> conn scott/tiger
已连接。
SQL> create table t2(x varchar2(10)) tablespace data_tbs;
表已创建。
SQL> create index idx_t on t2(x) tablespace idx_tbs;
索引已创建。
SQL> insert into t2 select object_id from all_objects;
已创建46677行。
SQL> insert into t2 select object_id from all_objects;
已创建46677行。
SQL> commit;
提交完成。
SQL> conn sys/ymh as sysdba;
已连接。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE); ===========>单个表空间自包含检查
PL/SQL 过程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;===========>有一个关联,自包含检查不通过
VIOLATIONS
--------------------------------------------------------------------------------
Index SCOTT.IDX_T in tablespace IDX_TBS points to tableSCOTT.T2 in tablespace DATA_TBS
SQL> delete from sys.transport_set_violations;
已删除 1 行。
SQL> commit;
提交完成。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE); ===========>两个有关联的表空间自包含检查
PL/SQL 过程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;===========>两个一起检查通过
未选定行
SQL> alter tablespace data_tbs read only;
表空间已更改。
SQL> alter tablespace idx_tbs read only;
表空间已更改。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options 断开
C:\Documents and Settings\Administrator>exp \"sys/ymhas sysdba\" file=d:/tbs.dmp tablespaces=(data_tbs,idx_tbs)transport_tablespace=y
tts_full_check=y
=======================>将两个表空间一起导出,不要数据(tablespaces=(data_tbs,idx_tbs):要导出的表空间;transport_tablespace=y:只导出元数据;tts_full_check=y进行完全自包含检查)
Export: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:21:22 2011
Copyright (c) 1982, 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表数据 (行)
即将导出可传输的表空间元数据...
对于表空间 DATA_TBS...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 T2 ===========è没有数据导出
对于表空间 IDX_TBS...
. 正在导出簇定义
. 正在导出表定义
. 正在导出引用完整性约束条件
. 正在导出触发器
. 结束导出可传输的表空间元数据
成功终止导出, 没有出现警告。
(3)复制文件
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:44:37 2011
Copyright (c) 1982, 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
SQL> select name from v$datafile where name like '%_TBS';
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_TBS
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\IDX_TBS
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:\Documents and Settings\Administrator>copyD:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\IDX_TBSD:\oracle\product\10.2.0\oradata\test
已复制 1 个文件。
C:\Documents and Settings\Administrator>copyD:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_TBSD:\oracle\product\10.2.0\oradata\test
已复制 1 个文件。
C:\Documents and Settings\Administrator>cd ../..
C:\>d:
D:\>cd D:\oracle\product\10.2.0\oradata\test
D:\oracle\product\10.2.0\oradata\test>dir *_tbs
驱动器 D 中的卷是安装
卷的序列号是3451-8864
D:\oracle\product\10.2.0\oradata\test 的目录
2011-06-24 13:28 104,865,792 DATA_TBS
2011-06-24 13:28 10,493,952 IDX_TBS
2 个文件 115,359,744 字节
0 个目录40,376,631,296 可用字节
D:\oracle\product\10.2.0\oradata\test>
(4)导入另一个库
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>echo %oracle_sid%
test
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:54:59 2011
Copyright (c) 1982, 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
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -------------------------------------
service_names string test
C:\Documents and Settings\Administrator>imp sys/ymh@test assysdba' file='d:/tbs.dmp' tablespaces=(data_tbs,idx_tbs) transport_tablespace=y
datafiles='D:\oracle\product\10.2.0\oradata\test\DATA_TBS,D:\oracle\product\10.2.0\oradata\test\IDX_TBS
Import: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:45:00 2011
Copyright (c) 1982, 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
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 SYS
. 正在将 SYS 的对象导入到 SYS
. 正在将 SCOTT 的对象导入到 SCOTT
. . 正在导入表 "T2"
. 正在将 SYS 的对象导入到 SYS
成功终止导入, 没有出现警告。
(5)检查数据
C:\Documents and Settings\Administrator>sqlplusscott/tiger@test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:46:07 2011
Copyright (c) 1982, 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
SQL> conn sys/ymh@test as sysdba;
已连接。
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -----------------------------------------
service_names string test
SQL> conn scott/tiger
已连接。
SQL> select count(1) from t2;
COUNT(1)
----------
93354
SQL>
总结错误:(1) ORA-29335: 表空间 'DATA_TBS' 不为只读
导出的表空间必须为只读状态,否则出现如下错误
EXP-00008: 遇到 ORACLE 错误 29335
ORA-29335: 表空间 'DATA_TBS' 不为只读
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 507
ORA-06512: 在 line 1
EXP-00000: 导出终止失败
(2) ORA-29341: 可传送集不是自包含的
"可传送集不是自包含的"的两种处理方法:
1、将所有的依赖表空间一起传,比如该题中,一个表空间会出现自检错误,两个表空间同时自检则不会。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE);
SQL> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------
Index SCOTT.IDX_T in tablespace IDX_TBS points to tableSCOTT.T2 in tablespace DATA_TBS
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE);
SQL> SELECT * FROM sys.transport_set_violations;
未选定行
SQL>
2、讲表空间处理为自包含:比如将索引删除,导到其他数据库后重建索引,或者将索引重建到数据文件的表空间,然后导出一个表空间
注意:当再sys或system用户下创建表时,使用表空间传输也会出现"可传送集不是自包含的",并且无法两个表空间同时传输,所以最好必要导出sys和system建表使用的表空间,不管是不是自带的system还是新建的表空间。
EXP-00008: 遇到 ORACLE 错误 29341
ORA-29341: 可传送集不是自包含的
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1387
ORA-06512: 在 line 1
EXP-00000: 导出终止失败
(3) IMP-00053: 导入模式与导出转储文件不兼容
1、可能是跨平台时存储格式不同导致(未测试)
2、同一平台下,注意导出的参数和导入的参数,因为导出时忘了加transport_tablespace=y ,把数据也改导出,导入时又加入该参数,导致错误:
IMP-00053: 导入模式与导出转储文件不兼容
IMP-00000: 未成功终止导入
(4) ORA-27041: 无法打开文件 O/S-Error: (OS2) 系统找不到指定的文件。
一个普通的导入错误
IMP-00003: 遇到 ORACLE 错误 1565
ORA-01565: 标识文件'D:\oracle\product\10.2.0\oradata\test\DATA_TBS' 时出错
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1801
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
(5) ORA-19722: 数据文件D:\oracle\oradata\DATA_TBS版本错误
表空间设置为只读就是为了保证数据的一致性,因此只有讲表空间的数据文件拷贝完成之后才能在源数据库恢复表空间的可读写状态。
否则,在目标数据库导入的时候就会出现下列错误:
IMP-00003: 遇到 ORACLE 错误 19722
ORA-19722: 数据文件D:\oracle\oradata\DATA_TBS版本错误
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 2065
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
(6) PLS-00201: 必须声明标识符'DBMS_PLUGTS.NEWTABLESPACE'
使用普通用户或system用户导入时如果出现如下错误,可以使用 'sys/ymh as sysdba'来导入,可以加入参数TTS_OWNERS=scott(TTS_OWNERS未详细测试)
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
IMP-00003: 遇到 ORACLE 错误 6550
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'DBMS_PLUGTS.NEWTABLESPACE'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
IMP-00000: 未成功终止导入
(7) OSD-04002: 无法打开文件 O/S-Error: (OS123) 文件名、目录名或卷标语法不正确。
如果有多个数据文件,datafile=XXX,XXX,中间用逗号隔开即可,不要用""号将多个概括,否则出现如下错误
IMP-00003: 遇到 ORACLE 错误 1565
ORA-01565: 标识文件'D:\oracle\oradata\DATA_TBS,D:\oracle\oradata\IDX_TBS' 时出错
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1801
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
使用exp/imp将表空间data_tbs从a库传输到b库?下面是准备工作。
create tablespace data_tbs;
create tablespace idx_tbs;
create table t(x varchar2(10))tablespace data_tbs;
create index idx_t on t(x) tablespaceidx_tbs;
insert into t ;
(1)在sys用户下创建的(注:导出是错误的)
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 10:36:38 2011
Copyright (c) 1982, 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
SQL> CREATE TABLESPACE data_tbs
2 DATAFILE 'data_tbs' SIZE 100M AUTOEXTEND ONNEXT 100M MAXSIZE UNLIMITED LOGGING
3 EXTENT MANAGEMENT LOCAL SEGMENT SPACEMANAGEMENT AUTO ;
表空间已创建。
SQL> CREATE TABLESPACE idx_tbs
2 DATAFILE 'idx_tbs' SIZE 10M AUTOEXTEND ONNEXT 10M MAXSIZE UNLIMITED LOGGING
3 EXTENT MANAGEMENT LOCAL SEGMENT SPACEMANAGEMENT AUTO ;
表空间已创建。
SQL> create table t(x varchar2(10)) tablespace data_tbs;
表已创建。
SQL> create index idx_t on t(x) tablespace idx_tbs;
索引已创建。
SQL> insert into t select object_id from dba_objects;
已创建50407行。
SQL> insert into t select * from t;
已创建50407行。
SQL> commit;
SQL> alter tablespace data_tbs read only;
表空间已更改。
SQL> alter tablespace idx_tbs read only;
表空间已更改。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE);
PL/SQL 过程已成功完成。
SQL> SELECT * FROMsys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------
Index SYS.IDX_T in tablespace IDX_TBS points to table SYS.T intablespace DATA_T
BS
Sys owned object T intablespace DATA_TBS not allowed in pluggable set
SQL> delete from sys.transport_set_violations;
已删除2行。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE);
PL/SQL 过程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
-------------------------------------------------------------------------------
Sys owned object IDX_Tin tablespace IDX_TBS not allowed in pluggable set
Sys owned object T intablespace DATA_TBS not allowed in pluggable set
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options 断开
C:\Documents and Settings\Administrator>exp \"sys/ymhas sysdba\" file=d:/tbs.dmp tablespaces=(data_tbs,idx_tbs) transport_Tab
Export: Release 10.2.0.1.0 - Production on 星期五 6月 24 11:16:40 2011
Copyright (c) 1982, 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表数据 (行)
即将导出可传输的表空间元数据...
EXP-00008: 遇到 ORACLE 错误 29341
ORA-29341: 可传送集不是自包含的
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1387
ORA-06512: 在 line 1
EXP-00000: 导出终止失败
C:\Documents and Settings\Administrator>
注:sys用户下有问题,具体看后面的总结
(2)使用scott 用户操作
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:24:34 2011
Copyright (c) 1982, 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
SQL> drop table t;
表已删除。
SQL> alter tablespace data_tbs read write;
表空间已更改。
SQL> alter tablespace idx_tbs read write;
表空间已更改。
SQL> conn scott/tiger
已连接。
SQL> create table t2(x varchar2(10)) tablespace data_tbs;
表已创建。
SQL> create index idx_t on t2(x) tablespace idx_tbs;
索引已创建。
SQL> insert into t2 select object_id from all_objects;
已创建46677行。
SQL> insert into t2 select object_id from all_objects;
已创建46677行。
SQL> commit;
提交完成。
SQL> conn sys/ymh as sysdba;
已连接。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE); ===========>单个表空间自包含检查
PL/SQL 过程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;===========>有一个关联,自包含检查不通过
VIOLATIONS
--------------------------------------------------------------------------------
Index SCOTT.IDX_T in tablespace IDX_TBS points to tableSCOTT.T2 in tablespace DATA_TBS
SQL> delete from sys.transport_set_violations;
已删除 1 行。
SQL> commit;
提交完成。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE); ===========>两个有关联的表空间自包含检查
PL/SQL 过程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;===========>两个一起检查通过
未选定行
SQL> alter tablespace data_tbs read only;
表空间已更改。
SQL> alter tablespace idx_tbs read only;
表空间已更改。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options 断开
C:\Documents and Settings\Administrator>exp \"sys/ymhas sysdba\" file=d:/tbs.dmp tablespaces=(data_tbs,idx_tbs)transport_tablespace=y
tts_full_check=y
=======================>将两个表空间一起导出,不要数据(tablespaces=(data_tbs,idx_tbs):要导出的表空间;transport_tablespace=y:只导出元数据;tts_full_check=y进行完全自包含检查)
Export: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:21:22 2011
Copyright (c) 1982, 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表数据 (行)
即将导出可传输的表空间元数据...
对于表空间 DATA_TBS...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 T2 ===========è没有数据导出
对于表空间 IDX_TBS...
. 正在导出簇定义
. 正在导出表定义
. 正在导出引用完整性约束条件
. 正在导出触发器
. 结束导出可传输的表空间元数据
成功终止导出, 没有出现警告。
(3)复制文件
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:44:37 2011
Copyright (c) 1982, 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
SQL> select name from v$datafile where name like '%_TBS';
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_TBS
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\IDX_TBS
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:\Documents and Settings\Administrator>copyD:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\IDX_TBSD:\oracle\product\10.2.0\oradata\test
已复制 1 个文件。
C:\Documents and Settings\Administrator>copyD:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_TBSD:\oracle\product\10.2.0\oradata\test
已复制 1 个文件。
C:\Documents and Settings\Administrator>cd ../..
C:\>d:
D:\>cd D:\oracle\product\10.2.0\oradata\test
D:\oracle\product\10.2.0\oradata\test>dir *_tbs
驱动器 D 中的卷是安装
卷的序列号是3451-8864
D:\oracle\product\10.2.0\oradata\test 的目录
2011-06-24 13:28 104,865,792 DATA_TBS
2011-06-24 13:28 10,493,952 IDX_TBS
2 个文件 115,359,744 字节
0 个目录40,376,631,296 可用字节
D:\oracle\product\10.2.0\oradata\test>
(4)导入另一个库
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>echo %oracle_sid%
test
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:54:59 2011
Copyright (c) 1982, 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
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -------------------------------------
service_names string test
C:\Documents and Settings\Administrator>imp sys/ymh@test assysdba' file='d:/tbs.dmp' tablespaces=(data_tbs,idx_tbs) transport_tablespace=y
datafiles='D:\oracle\product\10.2.0\oradata\test\DATA_TBS,D:\oracle\product\10.2.0\oradata\test\IDX_TBS
Import: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:45:00 2011
Copyright (c) 1982, 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
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入可传输的表空间元数据...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 SYS
. 正在将 SYS 的对象导入到 SYS
. 正在将 SCOTT 的对象导入到 SCOTT
. . 正在导入表 "T2"
. 正在将 SYS 的对象导入到 SYS
成功终止导入, 没有出现警告。
(5)检查数据
C:\Documents and Settings\Administrator>sqlplusscott/tiger@test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:46:07 2011
Copyright (c) 1982, 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
SQL> conn sys/ymh@test as sysdba;
已连接。
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -----------------------------------------
service_names string test
SQL> conn scott/tiger
已连接。
SQL> select count(1) from t2;
COUNT(1)
----------
93354
SQL>
总结错误:(1) ORA-29335: 表空间 'DATA_TBS' 不为只读
导出的表空间必须为只读状态,否则出现如下错误
EXP-00008: 遇到 ORACLE 错误 29335
ORA-29335: 表空间 'DATA_TBS' 不为只读
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 507
ORA-06512: 在 line 1
EXP-00000: 导出终止失败
(2) ORA-29341: 可传送集不是自包含的
"可传送集不是自包含的"的两种处理方法:
1、将所有的依赖表空间一起传,比如该题中,一个表空间会出现自检错误,两个表空间同时自检则不会。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE);
SQL> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------
Index SCOTT.IDX_T in tablespace IDX_TBS points to tableSCOTT.T2 in tablespace DATA_TBS
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE);
SQL> SELECT * FROM sys.transport_set_violations;
未选定行
SQL>
2、讲表空间处理为自包含:比如将索引删除,导到其他数据库后重建索引,或者将索引重建到数据文件的表空间,然后导出一个表空间
注意:当再sys或system用户下创建表时,使用表空间传输也会出现"可传送集不是自包含的",并且无法两个表空间同时传输,所以最好必要导出sys和system建表使用的表空间,不管是不是自带的system还是新建的表空间。
EXP-00008: 遇到 ORACLE 错误 29341
ORA-29341: 可传送集不是自包含的
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1387
ORA-06512: 在 line 1
EXP-00000: 导出终止失败
(3) IMP-00053: 导入模式与导出转储文件不兼容
1、可能是跨平台时存储格式不同导致(未测试)
2、同一平台下,注意导出的参数和导入的参数,因为导出时忘了加transport_tablespace=y ,把数据也改导出,导入时又加入该参数,导致错误:
IMP-00053: 导入模式与导出转储文件不兼容
IMP-00000: 未成功终止导入
(4) ORA-27041: 无法打开文件 O/S-Error: (OS2) 系统找不到指定的文件。
一个普通的导入错误
IMP-00003: 遇到 ORACLE 错误 1565
ORA-01565: 标识文件'D:\oracle\product\10.2.0\oradata\test\DATA_TBS' 时出错
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1801
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
(5) ORA-19722: 数据文件D:\oracle\oradata\DATA_TBS版本错误
表空间设置为只读就是为了保证数据的一致性,因此只有讲表空间的数据文件拷贝完成之后才能在源数据库恢复表空间的可读写状态。
否则,在目标数据库导入的时候就会出现下列错误:
IMP-00003: 遇到 ORACLE 错误 19722
ORA-19722: 数据文件D:\oracle\oradata\DATA_TBS版本错误
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 2065
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
(6) PLS-00201: 必须声明标识符'DBMS_PLUGTS.NEWTABLESPACE'
使用普通用户或system用户导入时如果出现如下错误,可以使用 'sys/ymh as sysdba'来导入,可以加入参数TTS_OWNERS=scott(TTS_OWNERS未详细测试)
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
IMP-00003: 遇到 ORACLE 错误 6550
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'DBMS_PLUGTS.NEWTABLESPACE'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
IMP-00000: 未成功终止导入
(7) OSD-04002: 无法打开文件 O/S-Error: (OS123) 文件名、目录名或卷标语法不正确。
如果有多个数据文件,datafile=XXX,XXX,中间用逗号隔开即可,不要用""号将多个概括,否则出现如下错误
IMP-00003: 遇到 ORACLE 错误 1565
ORA-01565: 标识文件'D:\oracle\oradata\DATA_TBS,D:\oracle\oradata\IDX_TBS' 时出错
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 123) 文件名、目录名或卷标语法不正确。
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1801
ORA-06512: 在 line 1
IMP-00000: 未成功终止导入
空间
文件
数据
错误
正在
成功
可传
字符
星期
字符集
用户
检查
两个
索引
传输
参数
对象
标识
目录
过程
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全协同创新产业基地
如何部署游戏到云服务器
龙腾传世手游数据库
access数据库统计分析
国际网络安全标准cc
云服务器 数据库开启
2020年网络安全和信息
国内颜料数据库
网络安全教育黑
服务器不接受htpp连接
数据库在手机哪个文件夹
戴尔服务器怎么导出日志
云顶之弈比赛服是哪个服务器
北京强臣网络技术有限公司
广州纪鱼软件开发公司
服务器是哪种类型
企业网络安全初级认证海盾
学生服务器10元一月
安防医疗类软件开发
网络安全配套设备有哪些
网络安全心得体会200学生
数据库可以分为哪三个类型
国产企业数据库哪个好
网络安全实验指导书
apollo适配pg数据库
迷你玩家我的世界服务器视频
电脑与服务器如何安装
数据库分离后如何找到
软件开发与编程的关系
服务器如何安装软路由