iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >利用exp/imp传输表空间
  • 726
分享到

利用exp/imp传输表空间

2024-04-02 19:04:59 726人浏览 安东尼
摘要

传输表空间TABLESPACES、TRANSPORT_TABLESPACE、TTS_FULL_CHECK 使用exp/imp将表空间data_tbs从a库传输到b库?下面是准备工作。 create tabl

传输表空间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: 未成功终止导入
您可能感兴趣的文档:

--结束END--

本文标题: 利用exp/imp传输表空间

本文链接: https://www.lsjlt.com/news/48849.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用exp/imp传输表空间
    传输表空间TABLESPACES、TRANSPORT_TABLESPACE、TTS_FULL_CHECK 使用exp/imp将表空间data_tbs从a库传输到b库?下面是准备工作。 create tabl...
    99+
    2024-04-02
  • 怎么利用rman传输表空间
    这篇文章主要介绍“怎么利用rman传输表空间”,在日常操作中,相信很多人在怎么利用rman传输表空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用rman传输表空间”...
    99+
    2024-04-02
  • mysql表空间传输过程
    本篇内容介绍了“mysql表空间传输过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在MySQL 5.6...
    99+
    2024-04-02
  • mysql的可传输表空间介绍
    这篇文章主要讲解了“mysql的可传输表空间介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql的可传输表空间介绍”吧! ...
    99+
    2024-04-02
  • 如何解析data punp传输表空间
    这篇文章将为大家详细讲解有关如何解析data punp传输表空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1,查看待传输表空间example是否违反了独...
    99+
    2024-04-02
  • MySQL传输表空间的简单使用方法
    1.目标端创建同样的表结构 CREATE TABLE `test` (       `id` int(11) DEFAULT NULL     ) ENGI...
    99+
    2024-04-02
  • MySQL Transportable Tablespace(传输表空间) 使用详解
    将大的InnoDB表从一个实例,移动或者复制到另一个实例,有很多的方法,在5.6之前常用的是通过物理或者逻辑备份来实现。 在5.6.6+的版本中,用到了一种基于表空间迁移的快速方法,即类似Oracle TT...
    99+
    2024-04-02
  • mysql中表空间传输的示例分析
    这篇文章主要介绍了mysql中表空间传输的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明:MySQL(5.6.6及以上),innodb_file_per_tabl...
    99+
    2023-06-06
  • 数据库中如何实现表空间传输
    这篇文章主要为大家展示了“数据库中如何实现表空间传输”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“数据库中如何实现表空间传输”这篇文章吧。 ...
    99+
    2024-04-02
  • oracle sql 表空间利用率
    SELECT nvl(t.name, 'CDB$ROOT') as DB_NAME, D.TABLESPACE_NAME, TOTAL_SPACE, (SPACE...
    99+
    2024-04-02
  • MySQL传输表空间小结(r12笔记第2天)
      在MySQL中如果要迁移一个表导另外一个服务器/环境中,常规的做法就是使用备份工具备份,比如mysqldump,然后拷贝备份到目标服务器或者环境导入。如果某一个表数据量很大,导出dump文...
    99+
    2024-04-02
  • 使用imp导入表和索引至不同表空间的方法是什么
    使用imp导入表和索引至不同表空间的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用expdp/impdp方式将表和索引导入至不同表空间的方法导出:expdp&nb...
    99+
    2023-06-06
  • MOS怎么利用RMAN可传输表空间迁移数据库到不同字节序的平台
    小编给大家分享一下MOS怎么利用RMAN可传输表空间迁移数据库到不同字节序的平台,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • Oraclc 12C如何使用不一致备份执行跨平台传输表空间
    这篇文章将为大家详细讲解有关Oraclc 12C如何使用不一致备份执行跨平台传输表空间,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用不一致备份执行跨平台传输表空间 R...
    99+
    2024-04-02
  • 11g使用增量备份来执行跨平台传输表空间减少停机时间(xtts_rman)
    使用跨平台传输表空间来迁移数据所需要的停机时间与被迁移的数据量成正比。然而,当使用增量备份跨平台迁移可以显著减小迁移数据所需要的停机时间。 传统跨平台传输表空间的主要步骤: 1.将源数据库中所被转...
    99+
    2024-04-02
  • Oracle 12C如何使用备份集执行只读表空间的跨平台传输
    这篇文章主要介绍Oracle 12C如何使用备份集执行只读表空间的跨平台传输,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用带用for transport或to platform子...
    99+
    2024-04-02
  • oracle 表空间,临时表空间使用率查询
    临时表空间: SELECT a.tablespace_name, a.BYTES total, a.bytes - nvl(b.bytes, 0) free      ...
    99+
    2024-04-02
  • XTTS跨平台传输表空间实现数据迁移的方法是什么
    这篇文章主要介绍“XTTS跨平台传输表空间实现数据迁移的方法是什么”,在日常操作中,相信很多人在XTTS跨平台传输表空间实现数据迁移的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • Oracle 查看用户所在的表空间剩余表空间
    SELECT F.TABLESPACE_NAME,(T.TOTAL_SPACE - F.FREE_SPACE) "USED (MB)",F.FREE_SPACE "FR...
    99+
    2024-04-02
  • undo表空间使用率
          undo表空间是Oracle数据库非常重要的表空间,它的使用率也是DBA关注的重点,但是在繁忙的生产系统中,很容易看到undo表空间使用率非常高的情况,甚至达到1...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作