oracle11g 导出导入

1.查看用户有多少张表以及表中的数据条数
select t.TABLE_NAME,t.NUM_ROWS from user_tables t;

2.导出表结构与数据及其存储过程等等
exp ckdb_own/ckdb_own@orcl file=d:\back\ckdb_own2020072401.dmp owner=ckdb_own log=d:\back\ckdb_own2020072401.dmp.log;

3.检测导出数据以及条数是否正确
3.1.如果表的张数不全,可能是条数为0的表没有导出,因为11G中有个新特性,当表没有数据的时候,不分配segment,提升导出效率和节省空间
解决:
3.1.1.执行以下sql语句
select ‘alter table ‘||table_name||’ allocate extent;’ from user_tables where num_rows=0 or num_rows is null
3.1.2.在执行后复制结果集,然后再在sql执行区域粘贴你复制的内容,然后执行一遍.(使得空表不再默认缺省)
3.1.3.重新执行2

3.2.条数的对比,执行1对比NUM_ROWS,如果条数不一样,这是因为没有采用analyze分析表的缘故
解决:
3.2.1.重新对表进行分析统计,执行下面第一条sql后复制结果集,再在sql执行区域粘贴你复制的内容,然后执行一遍
重新对表进行分析统计
select ’ analyze table ’ || A.TABLE_NAME ||’ compute statistics;’ from all_tables A where A.OWNER=‘CKDB_OWN’;
索引记录重新分析统计
select ’ analyze table ’ || A.TABLE_NAME ||’ compute statistics for all indexes;’ from all_tables A where A.OWNER=‘CKDB_OWN’;
索引记录清除
select ’ analyze table ’ || A.TABLE_NAME ||’ delete statistics ;’ from all_tables A where A.OWNER=‘CKDB_OWN’;
3.2.2.执行1对比,如果还是不一致,自行百度,谢谢

4.创建用户
CREATE USER ckdbtest IDENTIFIED BY ckdbtest;
GRANT CONNECT,RESOURCE,DBA TO ckdbtest;

5.导入到新的用户,报错自行检查
imp ckdbtest/ckdbtest@orcl fromuser=ckdb_own touser=ckdbtest file=d:\back\ckdb_own2020072401.dmp log=d:\back\ckdb_own2020072401.imp.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值