使用sql Developer版本18.1.0.095版本Build 095.1630

时间:2018-09-04 08:47:40

标签: oracle oracle11g oracle-sqldeveloper

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

2 个答案:

答案 0 :(得分:4)

关于SYS,这很有趣,它不能使用SERIALIZABLE事务。这也适用于以SYSDBA连接的用户。 Find out more

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

您可以看到为什么这对于导出很重要。整个导出表集必须一致,以确保后续导入的关系完整性。我们不希望导出带有记录的子表,该记录取决于导出后添加到父表中的记录。 (旧的Export实用程序允许我们设置consistency=N-的确是默认设置!-但Data Pump可以保护我们免受自身侵害。)

这就是为什么我们不能以SYS或SYSDBA用户身份运行导出。幸运的是,有一个简单的解决方案:从您的用户撤消SYSDBA并授予其DATAPUMP_EXP_FULL_DATABASEDATAPUMP_IMP_FULL_DATABASE角色。 [Find out more][2]

答案 1 :(得分:1)

我找到了我的问题的答案: -登录时,我们选择“角色默认设置”

enter image description here

  • 我们需要向用户授予dba权限 例如:

    将dba授予vinhhc_vsc;