使用exp/imp来移动表空间到另一个数据库中的例子

简介:
exp/imp还有一个TRANSPORT_TABLESPACE的功能,可以传输整个表空间的数据,就是把一个数据库上的数据文件加到另外一个数据库中,而不是把数据导出成Dmp文件。用这个传输还有一定的限制:
关于传输表空间有一些规则,即:
·源数据库和目标数据库必须运行在相同的硬件平台上。
·源数据库与目标数据库必须使用相同的字符集。
·源数据库与目标数据库一定要有相同大小的数据块
·目标数据库不能有与迁移表空间同名的表空间
·SYS的对象不能迁移
·必须传输自包含的对象集
·有一些对象,如物化视图,基于函数的索引等不能被传输

可以用以下的方法来检测一个表空间或一套表空间是否符合传输标准:
exec sys.dbms_tts.transport_set_check('tablespace_name',true);
select * from sys.transport_set_violation;
如果没有行选择,表示该表空间只包含表数据,可以传输。

其步骤:
1. 源数据库表空间设为只读:
alter tablespace hygeia read only;
2. 发出exp命令,用户必须是sysdba:
C:\Documents and Settings\Administrator>exp 'sys/ocp as sysdba' transport_tables
pace=y tablespaces=hygeia file=d:\oracle\hygeia.dmp log=d:\oracle\hygeia.log

3.将导出文件hygeia.dmp和表空间hygeia的数据文件hygeia01.dbf和hygeia02.dbf拷贝到目标机器上
4. 源数据库表空间设为可读写:
alter tablespace hygeia read write;
如果在修改表空间为读写后再复制数据文件和导出的dmp文件到目标数据库那么在执行imp导入时会报
IMP-00003:遇到ORACLE错误19722
ORA-19722:数据文件D:\oracle\hygeia版本错误
ORA-06512:在"SYS.DBMS_PLUGTS", line 2065
ORA-06512:在line 1
IMP-00000:未成功终止导入

5.在目数据库中创建一个hygeia用户不用指定缺省表空间
Create User insur_changde Identified By "changde"
6. 目标数据库imp文件:
C:\Documents and Settings\Administrator>imp 'sys/ocp as sysdba' file=d:\hygeia.d
mp  transport_tablespace=y tablespaces=hygeia datafiles=('D:\oracle\product\10.2
.0\oradata\ocp\HYGEIA01.DBF','D:\oracle\product\10.2.0\oradata\ocp\HYGEIA02.DBF'
)
7.修改目标数据库中insur_changde用户的缺省表空间为hygeia
Alter User insur_changde Default Tablespace hygeia
8. 目标数据库表hygeia空间设为可读写:
alter tablespace users read write;
目录
相关文章
|
数据库
【教程】truncate清空表数据,为什么数据库的空间还是和原来一样并没有释放|数据库释放表空间教程
【教程】truncate清空表数据,为什么数据库的空间还是和原来一样并没有释放|数据库释放表空间教程
|
6月前
|
Oracle 关系型数据库 Java
Oracle数据库导入工具IMP详解与用法
Oracle数据库导入工具IMP详解与用法
|
7月前
|
存储 关系型数据库 MySQL
MySQL数据库——InnoDB引擎-逻辑存储结构(表空间、段、区、页、行)
MySQL数据库——InnoDB引擎-逻辑存储结构(表空间、段、区、页、行)
148 7
|
7月前
|
Oracle 关系型数据库 Java
Oracle数据库导入工具IMP详解与用法
Oracle数据库导入工具IMP详解与用法
|
关系型数据库 数据库 PostgreSQL
管理数据库和表空间
数据库是使用CREATE DATABASE,并且用DROP DATABASE命令删除)。
|
SQL 关系型数据库 数据库
Windows服务器DB2数据库建库过程演示,db2创建表空间、分配权限
Windows服务器DB2数据库建库过程演示,db2创建表空间、分配权限
349 0
|
Oracle 关系型数据库 数据库
Python远程操作Oracle实现一键备份还原数据库演示,利用socket进行imp、exp一键导入导出oracle数据库dmp文件
Python远程操作Oracle实现一键备份还原数据库演示,利用socket进行imp、exp一键导入导出oracle数据库dmp文件
416 0
Python远程操作Oracle实现一键备份还原数据库演示,利用socket进行imp、exp一键导入导出oracle数据库dmp文件
|
Oracle 关系型数据库 数据库
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理
878 0
Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理
|
关系型数据库 分布式数据库 数据库
PolarDB 数据库:使用polardb进行创建数据库、创建用户、授权、创建表空间、创建schema表的常用操作使用演示
PolarDB 数据库:使用polardb进行创建数据库、创建用户、授权、创建表空间、创建schema表的常用操作使用演示
720 0
PolarDB 数据库:使用polardb进行创建数据库、创建用户、授权、创建表空间、创建schema表的常用操作使用演示
|
19天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
45 3