我所知道的 oracle 提供了 2 个命令行工具导出数据库。一个是 exp ,这个是在客户端执行的,一个是 expdp ,这个是服务端执行的。很明显 expdp 的执行效率要高。
目前使用 exp 发现一个问题,导出的备份文件无法正常导入,
正在导入表
"menus"导入了
IMP-00017:由于 ORACLE 错误 906 ,以下语句失败:
"ALTER TABLE"menus" ADDPRIMARY KEY"
IMP-00003:遇到 ORACLE 错误 906
ORA-00906: 缺失左括号
chatgpt 给出的解答:
在 Oracle19c 数据库中,使用 exp 工具导出表时,可能会导致主键设置失败的原因是因为 exp 工具不支持自动识别和导出 IDENTITY 列。
在上述创建表的 DDL 语句中,"id"列被定义为 IDENTITY 列,这意味着它是一个自增列,由数据库自动分配和管理。但是,exp 工具不会自动识别 IDENTITY 列,并且在导出数据时,不会正确处理 IDENTITY 列的值。
为了解决这个问题,可以使用 expdp 工具来导出表,它是 Oracle 数据库的推荐导出工具。expdp 工具支持导出 IDENTITY 列,并且可以正确处理这些列的值。
按他说的 exp 工具是无法使用了,但实际这个 expdp 导出的文件是在数据库所在的服务器上的,我有数据库的管理员账号,但也没法直接从服务器上下载文件。
所以,有没有别的方案,能在我的电脑上获得数据库的备份文件。假设我不能直接 ssh 到数据库所在服务器。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.