微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS RDS 上的 dbms_datapump:ORA-28031:超过了最多 150 个启用的角色

如何解决AWS RDS 上的 dbms_datapump:ORA-28031:超过了最多 150 个启用的角色

场景

AWS RDS Oracle 数据库实例主用户使用 dbms_datapump 运行导出完整数据库

复制所有数据后出现此错误

ORA-28031: maximum of 150 enabled roles exceeded

回溯

ORA-39126: Worker unexpected Fatal error in KUPW$WORKER.UNLOAD_DATA [TABLE_DATA:"DBAMASTER"."EXP_FULL_PROD_J1_00020_BJWA"]
ORA-28031: maximum of 150 enabled roles exceeded
ORA-06512: at "SYS.DBMS_SYS_ERROR",line 95
ORA-06512: at "SYS.KUPW$WORKER",line 12372
ORA-06512: at "SYS.DBMS_SYS_ERROR",line 95
ORA-06512: at "SYS.DBMS_STATS",line 39159
ORA-06512: at "SYS.DBMS_STATS",line 38447
ORA-06512: at "SYS.DBMS_STATS",line 37327
ORA-06512: at "SYS.DBMS_STATS",line 35519
ORA-06512: at "SYS.DBMS_STATS",line 33434
ORA-06512: at "SYS.DBMS_sqlTUNE_INTERNAL",line 161
ORA-06512: at "SYS.DBMS_sqlTUNE_INTERNAL",line 14309
ORA-06512: at "SYS.DBMS_STATS_INTERNAL",line 11124
ORA-06512: at "SYS.DBMS_STATS_INTERNAL",line 11189
ORA-06512: at "SYS.DBMS_STATS",line 33400
ORA-06512: at "SYS.DBMS_STATS",line 35083
ORA-06512: at "SYS.DBMS_STATS",line 37161
ORA-06512: at "SYS.DBMS_STATS",line 38151
ORA-06512: at "SYS.DBMS_STATS",line 38595
ORA-06512: at "SYS.DBMS_STATS",line 39141
ORA-06512: at "SYS.KUPW$WORKER",line 4200
----- PL/sql Call Stack -----
  object      line  object
  handle    number  name
0xc2394428     32870  package body SYS.KUPW$WORKER.WRITE_ERROR_informatION
0xc2394428     12400  package body SYS.KUPW$WORKER.DETERmine_FATAL_ERROR
0xc2394428      4617  package body SYS.KUPW$WORKER.UNLOAD_DATA
0xc2394428     13474  package body SYS.KUPW$WORKER.disPATCH_WORK_ITEMS
0xc2394428      2410  package body SYS.KUPW$WORKER.MAIN
0x9d3502f0         2  anonymous block
KUPW: Method: 1
KUPW: Parallel: 1
KUPW: Creation level: 0
KUPW: Sequence number: 0
BULK COLLECT
BULK COLLECT
KUPW: In procedure BUILD_OBJECT_STRINGS - non-base info
KUPW: In PROCESS_TABLE_DATA_METRICS
DBMS_STATS.GATHER_TABLE_STATS

解决方法

原因

AWS 主用户拥有大量已启用的角色。

解决方案

创建一个只有 datapump_exp_full_database 角色的新用户。 使用该用户运行 dbms_datapump。

create user dbaexp
identified by
kfFY4mBu
account unlock;

grant datapump_exp_full_database to dbaexp;
grant read,write on directory DATA_PUMP_DIR to dbaexp;
grant read,write on directory DATA_PUMP_LOGS to dbaexp;
grant read on directory BDUMP to dbaexp;

评论授予的目录访问权限

使用 dbms_datapump.add_file,您可以为转储文件和数据泵日志指定目录。使用 rdsadmin.rdsadmin_s3_tasks,您可以将导出转储文件复制到 s3。您的 rdsadmin 任务日志位于 BDUMP 中。您可以使用 rdsadmin.rds_file_util 来读取您的任务日志。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?