我发现很难从TOAD生成dbscripts。我在执行脚本时遇到错误,例如循环同义词链或某些语句不能超越等等。
是否有任何无缝方式可以说连接远程oracle架构并只复制到我的本地环境?
并且还在沿途做同步吗?
答案 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应该能够实现这一目标,因为它是专门用于解决此任务的工具。
如果您希望它在后台发生,可以使用命令行来实现此目的。