当前位置: 首页 > article >正文

【故障处理】- 11g迁19C数据泵报错: ORA-39083 ORA-06598 导致数据库大量对象导入不进去

【故障处理】- 11g迁19C数据泵报错: ORA-39083 ORA-06598 导致数据库大量对象导入不进去

    • 一、报错信息
    • 二、报错原因
    • 三、解决办法

一、报错信息

使用expdp/impdp从11g迁移到19c时,impdp导入出现大量报错,核心报错为报ORA-39083错误,导致导入后缺失大量对象。

Failing sql is:
ALTER TABLE "SYSMAN"."MGMT_INV_PATCHED_FILE_COMP" ADD CONSTRAINT "CMPTF_COM_FK" FOREIGN KEY ("COMPONENT_GUID") REFERENCES "SYSMAN"."MGMT_INV_COMPONENT" ("COMPONENT_GUID") ON DELETE CASCADE ENABLE
Processing object type DATABASE_EXPORT/SCHEMA/OPERATOR/OPERATOR
Processing object type DATABASE_EXPORT/SCHEMA/OPERATOR/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type DATABASE_EXPORT/SCHEMA/INDEXTYPE/INDEXTYPE
ORA-39083: Object type INDEXTYPE:"SDE"."ST_SPATIAL_INDEX" failed to create with error:
ORA-06598: insufficient INHERIT PRIVILEGES privilege

Failing sql is:
CREATE INDEXTYPE "SDE"."ST_SPATIAL_INDEX" FOR "SDE"."ST_BUFFER_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", NUMBER), "SDE"."ST_CROSSES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"), "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER), "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"), "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER, VARCHAR2), "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2), "SDE"."ST_EQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"), "SDE"."ST_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"), "SDE"."ST_ORDERINGEQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"), "SDE"."ST_OVERLAPS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"), "SDE"."ST_RELATE" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2), "SDE"."ST_TOUCHES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"), "SDE"."ST_WITHIN" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY") USING "SDE"."ST_DOMAIN_METHODS" WITHOUT ARRAY DML WITH LOCAL RANGE PARTITION
Processing object type DATABASE_EXPORT/SCHEMA/INDEXTYPE/GRANT/OWNER_GRANT/OBJECT_GRANT
ORA-39112: Dependent object type OBJECT_GRANT:"SDE" skipped, base object type INDEXTYPE:"SDE"."ST_SPATIAL_INDEX" creation failed
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/INDEX/DOMAIN_INDEX/INDEX
ORA-39083: Object type INDEX:"NRMDB"."A35_IX1" failed to create with error:
ORA-29833: indextype does not exist

Failing sql is:
CREATE INDEX "NRMDB"."A35_IX1" ON "NRMDB"."BOCO_ARCGIS_CELL3G" ("SHAPE") INDEXTYPE IS "SDE"."ST_SPATIAL_INDEX" PARAMETERS ('ST_GRIDS = .129865628646247 ST_SRID = 4326 ST_COMMIT_ROWS = 10000 PCTFREE 0 INITRANS 4')PARALLEL 1
ORA-39083: Object type INDEX:"NRMDB"."A37_IX1" failed to create with error:
ORA-29833: indextype does not exist

二、报错原因

客户数据库为GIS数据库,该系统的数据库客户会通过ESRI ArcGIS的创建企业级地理数据库工具创建一堆东西。 其中关键点为indextype对象。
该对象属于SDE,所以需要优先处理SDE用户后才可以顺利导入其他用户。
(主观猜测:该系统的数据库,通常都有这个东西,而且都是SDE用户,为工具创建所需)

三、解决办法

1、在生产上给SDE用户授予DBA权限,并用SDE用户单独导入导出。

2.导入SDE用户后,确认对象没有缺失,并创建indextype所需的两个对象:从生产GETDDL。如果导入后,该indextype没有导入进去,则需要手动从生产getddl语句到目标端执行,确保该对象存在

3、该 indextype的创建语句:
CREATE OR REPLACE INDEXTYPE "SDE"."ST_SPATIAL_INDEX" FOR

         "SDE"."ST_BUFFER_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", NUMBER), 
         "SDE"."ST_CROSSES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER),
         "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", NUMBER, NUMBER, NUMBER, NUMBER, VARCHAR2),      
         "SDE"."ST_ENVINTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2),     
         "SDE"."ST_EQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_INTERSECTS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_ORDERINGEQUALS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_OVERLAPS" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_RELATE" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY", VARCHAR2),
         "SDE"."ST_TOUCHES" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY"),
         "SDE"."ST_WITHIN" ("SDE"."ST_GEOMETRY", "SDE"."ST_GEOMETRY")
         USING "SDE"."ST_DOMAIN_METHODS"
         WITH LOCAL RANGE PARTITION
   
4、getddl该indextype所需的两个对象,在目标端执行:
ST_DOMAIN_METHODS
ST_DOMAIN_STATS

5、导入SDE用户完毕后,导入其他用户,核对对象

6、目标端对SDE的几个无效对象进行编译
grant execute on dbms_pipe to SDE;
grant execute on dbms_lock to SDE;
grant execute on DBMS_CRYPTO to SDE;
alter package SDE.LOCK_UTIL compile body;
alter type SDE.ST_GEOMETRY compile body;
alter package SDE.PINFO_UTIL compile body;
alter package SDE.VERSION_USER_DDL compile body;

7、回收SDE用户的dba权限

http://www.kler.cn/a/552129.html

相关文章:

  • Linux环境Docker使用代理推拉镜像
  • Postgresql的三种备份方式_postgresql备份
  • ARM中断流程思考。
  • 百度搜索融合 DeepSeek 满血版,开启智能搜索新篇
  • 微信小程序---计划时钟设计与实现
  • 欢乐力扣:旋转图像
  • redis的应用,缓存,分布式锁
  • LeetCodeBug-member access within null pointer of type ‘struct ListNode‘
  • 23种设计模式 - 观察者模式
  • Xshell连接虚拟机ubuntu,报错(port 22): Connection failed.
  • 【AI论文】InfiniteHiP:在单块GPU上将语言模型上下文扩展至300万个令牌
  • CTF-内核pwn入门1: linux内核模块基础原理
  • 常见安全威胁
  • 私有化搭建、本地知识库、可联网查询、具备RAG能力的私人DeepSeek
  • 常用标准库之-std::iota
  • Kafka 在大数据生态系统中的应用:实时数据流的中枢神经
  • stm32rtc实时时钟详解文章
  • ROS-相机话题-获取图像-颜色目标识别与定位-目标跟随-人脸检测
  • 上线了一个微软工具(免费),我独自开发,本篇有源码
  • DeepSeek驱动下的数据仓库范式转移:技术解耦、认知重构与治理演进