zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    sort函数的运用
    数据库设计三大范式
    LeetCode 64. 求1+2+…+n
    LeetCode 876. 链表的中间结点
    单链表的创建和基本操作 C语言
    LeetCode 365. 水壶问题
    LeetCode 1160. 拼写单词
    LeetCode 409. 最长回文串
    LeetCode 836. 矩形重叠
    LeetCode 7. 整数反转
  • 原文地址:https://www.cnblogs.com/sucretan2010/p/11406568.html
Copyright © 2011-2022 走看看