如何解决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 举报,一经查实,本站将立刻删除。