gpt4 book ai didi

oracle - 使用 sql developer Version Version 18.1.0.095 Build 095.1630 导出转储文件 oracle 时出错

转载 作者:行者123 更新时间:2023-12-04 15:29:06 27 4
gpt4 key购买 nike

我想导出转储文件 DDL 我的数据库(Oralce 数据库版本 11.2.0.4)。我创建了用户并授予了权限(sysdba)。我使用上面的用户连接到数据库,我选择查看 --> DBA --> 数据泵 --> 数据泵导出向导 --> 选择上面的连接 --> 并警告错误“无法使用数据泵作为系统。”。
enter image description here

最佳答案

这是关于 SYS 的一个有趣的事情,它不能使用 SERIALIZABLE 事务。这也适用于作为 SYSDBA 连接的用户。 Find out more .

SERIALIZABLE 隔离级别意味着事务中的所有语句都是读取一致的。 Oracle 的默认值为 READ COMMITTED,它适用于语句级别。不同之处在于:如果我们运行 select * from T1其次是 select * from T2在 READ COMMITTED 隔离级别下,我们会将任何更改提交到 T2当我们查询时 T1 .即 T1 的结果集和 T2都是一致的记录集,但如果我们反过来运行查询,我们可能会看到不同的结果。而在 SERIALIZABLE 下,结果集与事务的开始一致。无论我们查询表的顺序如何,结果都是稳定的。

您可以看到为什么这对导出很重要。整个导出表集必须一致,以保证后续导入的关系完整性。我们不想导出包含依赖于在导出后添加到父表的记录的记录的子表。 (旧的导出实用程序允许我们设置 consistency=N - 实际上这是默认设置! - 但数据泵保护我们免受自己的伤害)。

所以这就是我们不能以 SYS 或 SYSDBA 用户身份运行导出的原因。幸运的是,有一个简单的解决方案:从您的用户那里撤销 SYSDBA 并授予它 DATAPUMP_EXP_FULL_DATABASEDATAPUMP_IMP_FULL_DATABASE角色代替。 [Find out more][2] .

关于oracle - 使用 sql developer Version Version 18.1.0.095 Build 095.1630 导出转储文件 oracle 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52162336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com