我想导出转储文件DDL我的数据库(Oralce数据库版本11.2.0.4)。我创建了用户并授予了权限(sysdba)。我使用上面的用户连接到数据库,我选择View -> DBA -->数据泵-->数据泵导出向导-->选择上述->连接->并警告错误"Cant use Data Pump as sys“。

发布于 2018-09-04 09:33:33
我找到了我的问题的答案:-当登录时我们选择角色默认

发布于 2018-09-04 09:23:24
关于SYS,有一点很有趣,它不能使用SERIALIZABLE事务。这也适用于连接为SYSDBA的用户。了解更多信息。
SERIALIZABLE隔离级别意味着事务中的所有语句读取一致。Oracle的默认设置是READ,这适用于语句级别。不同之处在于:如果我们在读提交隔离级别下运行select * from T1,然后运行select * from T2,那么在查询T1时,我们将提交到T2的任何更改。也就是说,T1和T2的结果集都是一致的记录集,但是如果我们以相反的方式运行查询,我们可能会看到不同的结果。而在SERIALIZABLE下,结果集与事务的开始是一致的。不管我们查询表的顺序如何,结果都是稳定的。
您可以理解为什么这对导出很重要。为了保证后续导入的关系完整性,整个导出表必须是一致的。我们不希望导出带有记录的子表,这些记录依赖于导出后添加到父表中的记录。(旧的导出实用程序允许我们设置consistency=N --事实上,这是默认的!--但是数据泵保护我们不受自身影响)。
这就是为什么我们不能以SYS或SYSDBA用户的身份运行导出。幸运的是,有一个简单的解决方案:撤销您的用户的SYSDBA,并授予它DATAPUMP_EXP_FULL_DATABASE和DATAPUMP_IMP_FULL_DATABASE角色。[Find out more][2]。
https://stackoverflow.com/questions/52162336
复制相似问题