oracle 选择性备份吗,oracle sqldeveloper选择性复制备份数据库

有时需要复制的数据库比较大,复制太慢,或容易出错。

数据库小,简单的 就没这么复杂了,直接导出dmp或用工具都可以。这篇是针对比较大,选择性复制,且复制总是失败的情况。

方法如下。

工具 sqldeveloper.

思路:先复制表和数据(选择性复制表数据),再复制视图,触发器序列等。以免触发器序列等对复制数据时造成干扰,导致复制失败。

1.

例:从A复制到B

建立源数据库连接 A

建立目标连接B

2.点击工具:数据库复制。

在此之前可以先在源数据库上查询下数据量比较大的表,

select segment_name, round(bytes/1024/1024/1024,3) g,segment_type

from user_segments

where segment_type = 'TABLE' or  segment_type = 'TABLE PARTITION' order by g desc

,或者自己知道哪些表大,没有必要copy,心中有数就行

3.

选择好A , 和 B 连接,

点击下一步

4.

只选择表,其它全部取消掉。

尤其是触发器和序列不要选,以免后边复制数据的时候 生成新的id(造成跟源数据id不一致)等等。

点击下一步。

5.这一步是复制上一步选择的项,表结构需要传输的数据量很小,可以直接下一步,当然也可以按名称模糊搜索选择性复制。

6.指定数据。根据前边sql查到的结果,结合实际情况可以把一些不想要的数据表排除掉。对象where字句可以指定复制符合where语句的数据。

7.确认一下源和目标数据库有没有选错,然后下 一步。直到复制完成(进度框最好不要点后台运行),中间若出是否继续提示框,一般直接选择是。

8.以上是第一大步。

下边复制剩余的DDL.

重复第一步,将复制数据选项去掉

9.选择除表以外的选项。数据库连接可能会通过触发器等的调用对链接目标数据库有影响,需小心,或复制下来后,处理下。

然后直接下一步直到最后复制完成。

注意事项:

1.源和目标连接不要搞反了。

2.复制数据过程中不要点后台运行,再弹出的进度框里可以查看进度。有的表复制特别慢,或复制不下来,那就要重新复制  在6步的时候 要将其排除除掉或特殊处理下。 (第一步的查询表大小的sql语句,基本可用。但有些表依然复制太慢,具体原因没细究。)

————————————————

版权声明:本文为CSDN博主「aoaa」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/keekaduo/article/details/84671323

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值