同步和复制oracle db schema的最简单方法是什么?

时间:2008-12-20 01:08:19

标签: oracle

我发现很难从TOAD生成dbscripts。我在执行脚本时遇到错误,例如循环同义词链或某些语句不能超越等等。

是否有任何无缝方式可以说连接远程oracle架构并只复制到我的本地环境?

并且还在沿途做同步吗?

3 个答案:

答案 0 :(得分:2)

使用exp和imp:

可以很容易地完成整个模式,数据和所有模式的同步
$ exp username/password@source-sid CONSISTENT=Y DIRECT=Y OWNER=schema FILE=schema.exp
$ ⋮ # some command(s) to nuke objects, see below
$ imp username/password@dest-sid FROMUSER=schema FILE=schema.exp

如果需要,可以在imp命令中使用TOUSER导入到其他模式。

如果在运行imp之前已经存在所有对象,则需要删除它们。您可以编写一个快速脚本来删除它们(查看user_objects视图),或者只是通过级联删除用户并重新创建用户。

可能有更好的方法可以做到这一点,但这很快就可以实现并且有效。

答案 1 :(得分:2)

如果您正在进行一次性复制exp / imp(或者在较新版本中使用expdp / impdp),那么最好。 如果您正在进行从开发到测试再到prod的更改,那么您应该使用正式的源代码控制,使用SQL或SQL * Plus脚本。

答案 2 :(得分:0)

Schema Compare for Oracle应该能够实现这一目标,因为它是专门用于解决此任务的工具。

如果您希望它在后台发生,可以使用命令行来实现此目的。