我将数据库的逻辑备份作为SYS用户,并将其作为系统用户还原到其他计算机上的数据库。
在目标服务器上,几个表的结构与源服务器上的结构不同。源数据库中的几个表中有一些额外的列。当我尝试将转储文件导入目标数据库时,它没有正确导入。表结构仍然是旧结构,并且任何表中都没有数据/旧数据。当我删除这些表并尝试再次导入相同的转储文件时,它成功导入 - 新表结构以及新数据存在。
我无法弄清楚我错在哪里(因为我是新手)。我是否总是需要删除已更改的表并导入数据库?或者有没有办法用新结构覆盖表的旧结构?
我正在使用Oracle 11g。
这是我用来备份的导出命令
exp lsone/lsone file=newbkp.dmp log=newlog.log owner=lsone
此命令是导入转储文件的命令
imp system/manager file=newbkp.dmp log=import.log fromuser=lsone touser=dev
非常感谢您的回复!!
答案 0 :(得分:0)
我是否总是需要删除已更改的表并导入数据库?
是的,这是可取的,特别是如果您知道结构已更改。
如果结构相同,您可以使用参数exp
运行ignore=yes
命令,但是您仍然需要删除表中的所有行 - 这几乎与努力放弃所有表格。
或者有没有办法用新结构覆盖表的旧结构?
没有