首页 > 数据库 >记录Oracle删除重建企业级数据库(SDE)过程中遇到的问题

记录Oracle删除重建企业级数据库(SDE)过程中遇到的问题

时间:2023-01-03 17:55:43浏览次数:69  
标签:trace 删除 企业级 SDE session Oracle 执行 select

背景说明:同事在删除表的时候不小心删除了SDE下面的所有表,因当时未发现,到发现的时候数据已经无法恢复,导致系统中的空间数据均无法打开,无奈下只能查找备份数据,重建SDE后进行数据恢复。

环境:Windows Server2012   Oracle11.2.0.4   ArcGIS10.5

操作步骤是删除SDE用户以及表空间后,通过Toolbox重新创建企业级数据库(如果不先进行删除,创建时会提示已经存在)。

1、在Oracle中删除SDE用户时,提示ORA-00604 ORA-00942错误。

删除语句如下:

drop user sde cascade;
drop tablespace sde including contents and datafiles ;

执行用户删除时提示错误:

image

网上查找了很多资料,都是根据要求查看日志,找到具体报错信息后具体分析。

通过下面语句可以开启日志(注意这个语句和执行DROP的语句要使用同一个会话窗口),具体命令可以查看alter session set events命令。

alter session set sql_trace=true;
alter session set events'10046 trace name context forever,level 4';

说明:10046是一个Oracle的内部事件(event),通过设置这个事件可以得到Oracle内部执行系统解析、调用、等待、绑定变量等详细的trace信息,即帮助我们解析一条/多条SQL、PL/SQL语句的运行状态。

再次执行DROP语句,执行完成后关闭sql_trace追踪

drop user sde cascade;
alter session set sql_trace=false;

到Oracle安装目录下找到生成的日志文件,查看具体错误信息。

可以通过下面命令找到当前session跟踪文件位置:

select
a.value || '/' || b.instance_name || '_ora_' || c.spid || '.trc' trace_file
from
(select value from v$parameter where name= 'user_dump_dest') a,
(select instance_name from v$instance) b,
(select spid from v$process where addr=(select paddr from v$session where sid=(select distinct sid from v$mystat))) c;

或者

select tracefile from v$process where addr=(select paddr from v$session where sid=(select distinct sid from v$mystat));

我这里的路径为:D:\app\Administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_11584.trc

根据时间以及命令找到相关日志信息:

image

可以看到其实际执行了一系列的Delete操作,在删除SDO_GEOM_METADATA_TABLE时候,找不到该表出错。表SDO_GEOM_METADATA_TABLE是Oracle Spatial用到的表,我们可以通过catmd.sql(路径:D:\app\Administrator\product\11.2.0\dbhome_1\md\admin)脚本重新创建该表即可。

执行方法可以在PLSQL命令框中输入@,回车选择执行文件即可,执行完成后执行DROP命令成功完成删除。

2、创建企业级数据库时,提示Oracle Text package is not installed.

image

看提示内容是渠道号Oracle text包导致,Oracle text为全文检索技术,其为Oracle的一个组件,提供了强大的全文检索功能。

我们安装根据要求安装一下Oracle text即可。

需要在DBA下执行catctx.sql脚本(路径:D:\app\Administrator\product\11.2.0\dbhome_1\ctx\admin),执行方法如下:

@?/ctx/admin/catctx.sql change_on_install SYSAUX TEMP NOLOCK

其中 change_on_install可以换做自己设置的密码。

执行完成后,登录可以通过下面语句查看安装是否成功

select comp_name, status, substr(version,1,10) as version from dba_registry where comp_id = 'CONTEXT';
image

后面可以正常创建企业级数据库。


标签:trace,删除,企业级,SDE,session,Oracle,执行,select
From: https://www.cnblogs.com/Jingkunliu/p/17023012.html

相关文章

  • Oracle普通索引和唯一索引
    文章内容来源于oracle索引普通索引普通索引的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件创建索引。普通索引允许......
  • GeoScene Pro创建SDE(postgresql)
    一、系统环境操作系统:windows10 数据库:postgresql12.4二、安装步骤1、拷贝安装目录下C:\ProgramFiles\GeoScene\Pro\Resources\DatabaseSupport\GeoScenePro_21_ST_G......
  • 在Oracle中,位图索引是什么?在哪些列上适合创建位图索引?
    文章内容来自于位图索引位图索引(BitmapIndexes)是一种使用位图的特殊数据库索引。它针对大量相同值的列而创建,例如:类别、型号等。位图索引块的一个索引行中存储的是键值(以......
  • ORACLE 创建job定时执行带参数的存储过程/无参数的存储过程
    1、创建一张测试表createtableperson( nameVARCHAR2(500));2、创建存储过程(往person表中插入人名)PROCEDUREINSERTPERSON(nameINVARCHAR2)ASBEGIN --TODO:PRO......
  • oracle spool命令
    转:http://blog.itpub.net/14683446/viewspace-670334spool命令示例:以下保存为SQL脚本,在SQLPlus中运行setechooffsettimingoff   --关闭返回执行时间sethead......
  • Oracle设置密码永不过期
    【Oracle密码过期解决办法】1.在CMD下以sqlplus/assysdba登陆数据库2.设置密码永不过期运行语句ALTERPROFILEDEFAULTLIMITPASSWORD_LIFE_TIMEUNLIMITED;3......
  • navicat 连接Oracle报错ORA-12514:TNS:listener does not currently know of service
     首先检查服务名是否正确,排除改原因后,定位原因为OCI环境和Oracle版本不匹配,Oracle官网下载高版本instantclient依赖解压到本地目录后,navicat-工具-选项-环境重新指定下oc......
  • 50.Oracle的索引
    Oracle的索引主要有三种索引:B树索引(B-Treeindex)位图索引(Bitmapindex)全文索引(Textindex)1.B树索引:Oracle数据库中最常见的索引类型是b-tree索引,也就是B-树索......
  • 49.Oracle的分区
    Oracle的分区Oracle在实际业务生产环境中,经常会遇到随着业务量的逐渐增加,表中的数据行数的增多,Oracle对表的管理和性能的影响也随之增大。对表中数据的查询、表的备份......
  • jsdemo01.html
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scripttype="text/javascript">varx;......