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

问题描述 投票:2回答:2

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

oracle oracle11g oracle-sqldeveloper
2个回答
4
投票

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

SERIALIZABLE隔离级别意味着事务中的所有语句都是一致的。 Oracle的默认值是READ COMMITTED,它适用于语句级别。不同之处在于:如果我们在READ COMMITTED隔离级别下运行select * from T1后跟select * from T2,那么当我们查询T2时,我们将对T1进行任何更改。也就是说,T1T2的结果集都是一致的记录集,但如果我们以相反的方式运行查询,我们可能会看到不同的结果。然而,在SERIALIZABLE下,结果集与事务的开始一致。我们查询表的顺序无关紧要,结果是稳定的。

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

因此,这就是我们无法以SYS或SYSDBA用户身份运行导出的原因。幸运的是有一个简单的解决方案:撤消用户的SYSDBA并授予它DATAPUMP_EXP_FULL_DATABASEDATAPUMP_IMP_FULL_DATABASE角色。 [Find out more][2]


1
投票

我找到了回答我的问题: - 登录时我们选择Role default

  • 我们需要向用户Ex授予dba权限: 将dba授予vinhhc_vsc;
© www.soinside.com 2019 - 2024. All rights reserved.