plsql 数据迁移——导出表结构,表数据,表序号

场景:项目开发完之后要部署在不同的环境进行测试,这时候就需要将数据库中的表结构,序号,数据进行迁移,这时候就需要能够熟练的使用plsql。

问题:

  • 导出的表结构,在另一个数据库中无法导入
  • 部分表的数据过大,导致长时间无响应,其实数据仍然在迁移,这个时候就需要找出关键的数据表,对于不需要的数据直接丢弃即可

1 导出表和序列结构

1.1 实践方法

导出表结构: Tools(工具)-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件
ps:这里记得要全选

 

 导出表数据: Tools(工具)-->Export Tables(导出表)-->选择表,选择SQL Inserts(SQL 插入)-->.sql文件

 

 导入表结构: 执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys
 导入表数据: 执行刚刚导出的sql文件

1.2 其它总结

导出步骤:

1 tools ->export user object 选择选项,导出.sql文件

2 tools ->export tables-> Oracle Export 选择选项导出.dmp文件

 

导入之前先把原来用户下的Tables,Sequences都右键Drop掉,再禁用所有约束即Constraintes下右键Disable(看解释2)

 

导入步骤:

1 tools->import tables->SQL Inserts 导入.sql文件

2 tools->import talbes->Oracle Import然后再导入dmp文件

数据库的导入导出成功

 

=======================解释1=============================

Tools->Export User Objects导出的是建表语句(包括存储结构)

Tools->Export Tables里面包含三种导出方式:

三种方式都能导出表结构以及数据,网上说三种方法有区别,如下:

Oracle Export,Sql Insert,pl/sql developer 
第一种是导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广 
第二种是导出为.sql文件的,可用文本编辑器查看,通用性比较好,但效率不如第一种,适合小数据量导入导出。尤其注意的是表中不能有大字段(blob,clob,long),如果有,会提示不能导出(提示如下: 
table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead),可以用第一种和第三种方式导出。 第三种是导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出;不能用编辑器查看。

2 操作细节

在导出数据时候排除大文件数据表,查看所有表大小

select segment_name, bytes from user_segments where segment_type = 'TABLE' order by bytes desc;

 这里可以在导出数据时候去除不需要导出的数据,这样操作起来就会快很多

这样,就可以在导出数据时候,剔除掉大文件的数据表

 

 

 

 
posted @ 2017-01-20 20:00  CS408  阅读(4486)  评论(0编辑  收藏  举报