emmmm,这是一个不做死就不会的过程!!!

今天在导出数据库时,遇到了报错信息,其实开发说这个报错没关系了,但作死如楼主,一定要把这个错给解决了,然后就有了下面的作死过程。

错误关键字是:package body"XDB.DBMS_XDBZ0" has error 。如下截图:

经历过一番百度后,查到了下面的sql语句,查询XDB组件的是否可用,即状态是 valid 还是invalid,sql和查询截图如下:

select owner, object_name, object_type, status
from dba_objects
where status = 'INVALID' and object_name = 'DBMS_XDBZ0';

网上百度了很多资料,操作如下:

执行了 @$ORACLE_HOME/rdbms/admin/utlrp.sql ,没有任何用,不过我查询数据库里的 invalid 状态的数据变少了很多,但是报错的这个组件没有变化!

alter package XDB.DBMS_XDBZ0  COMPILE BODY; 执行了这个,也没有用。

最后最后,询问了实施,给楼主提供了一种解决办法的思路,给了我一个链接:

 http://blog.sina.com.cn/s/blog_aa84cfe40101l4ye.html
 
然后楼主按照这个思路开始百度XDB组件的重新安装,综合参考了很多文章,主要是下面三篇:

http://blog.csdn.net/whb234174124/article/details/52980275

http://blog.csdn.net/sszxhzd/article/details/78626715

http://blog.csdn.net/fidelhl/article/details/2753384

其中一篇是英文,我找的谷歌翻译,其他两篇讲的都不够详细。

我安装了2次,第一次安装的时候没先创建XDB用户和表空间,安装的日志有报错,所以楼主又给卸载了,卸载的时候没先重启数据库,然后这个卸载又弄了很久,反正就是坑。

创建XDB组件首先要先卸载XDB组件(没有的就不用了)

卸载步骤:

1.我第一次卸载是没重启数据库的,也卸载成功了,但是第一次没安装成功后,再次卸载没重启,就卸载了n久,最后重启数据库后才卸载成功

shutdown immediate

sqlplus / as sysdba  

startup

卸载XDB:

@$ORACLE_HOME/rdbms/admin/catnoqm.sql

drop trigger sys.xdb_installation_trigger;
drop trigger sys.dropped_xdb_instll_trigger;
drop table dropped_xdb_instll_tab;

至此就卸载成功了!

现在来安装XDB组件

首先创建 XDB 表空间 和XDB 用户名,并赋予权限

创建表空间 XDB

CREATE TABLESPACE XDB DATAFILE
'/data/app/oracle/oradata/hundsun/XDB.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO;

ps :/data/app/oracle/oradata/hundsun/ 这段路径可以使用这段sql查询:select name from v$datafile;

创建 XDB 用户

create user XDB identified by XDB default tablespace XDB;

给XDB用户赋权限

GRANT SELECT ANY TABLE TO XDB;

执行XDB创建的脚本

@$ORACLE_HOME/rdbms/admin/catqm.sql XDB XDB XDB

ps:后面 三个XDB 分别指 XDB用户密码,XDB默认表空间,XDB临时表空间,一定一定要在执行脚本时就带上,我第一次就没填入,回车后让输入一些不知道怎么填入的值。

在这里执行脚本的时候可以添加执行日志,顺序如下:

set echo on

spool  /home/oracle/xdb.log

@$ORACLE_HOME/rdbms/admin/catqm.sql XDB XDB XDB

spool off;

alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=hund【填入数据库的SID】)";

最后就是检测是否安装成功了:

select count(*) from dba_objects
where owner='XDB' and status='INVALID';

select owner, object_name, object_type, status
from dba_objects
where status = 'INVALID'
and owner in ('sys' ,'XDB');

select comp_name, status, version
from DBA_REGISTRY
where comp_name= 'Oracle XML Database';

最后如果你查看这个组件下的package 还有一些状态是invalid,那就再执行一下下面这个脚本:

@$ORACLE_HOME/rdbms/admin/utlrp.sql

不过我执行了之后数据库还有一个PACKAGE BODY 是invalid的。

重新再尝试导出的时候已经不报原来的错了。不过剩下的这个invalid 我已经不打算再继续深究了,毕竟公司的测试库,搞砸了我可能就要滚蛋了。

oracle 10g数据库下的 XDB组件的重新安装的更多相关文章

  1. oracle 数据恢复,只有oradata文件夹里的文件,没有备份文件的数据库恢复,重装系统后,oracle 10g数据库恢复

    格式化重装系统后,才想起来oracle 10g 数据库没有做备份,开始以为很麻烦,没想到数据库恢复的还挺顺利的 恢复方法: 1,把原来的数据库文件备份,(D:\oracle\product\10.2. ...

  2. Oracle 10g数据库概述

    一.Oracle 10g简介 1.Oracle 10g数据库是首个为网咯计算而设计的数据库(甲骨文公司的一款关系数据库管理系统). 2.分为以下几个版本: a.Oracle 10g数据库标准版 1 b ...

  3. Oracle 10g数据库备份与恢复操作手册

    Oracle 10g数据库备份与恢复操作手册 目录 Oracle 10g数据库备份与恢复操作手册... 前言... 文档目的... 文档范围... 目标读者... 其他说明... 冷备份... 热备份 ...

  4. oracle 10g 数据库与客户端冲突导致实例创建无监听问题

    同事在oracle 10g上创建一个实例,快结束时弹出一个错误,提示监听失败之类.查看服务,并无生成监听服务.于是删除重来,一连试了好几次,都是如此. 这真是令人心烦意乱.提示里面有说到端口1521, ...

  5. Oracle 10g 数据库手动创建步骤

    Oracle 数据库手动创建步骤 编写初始化参数文件 设置操作系统环境变量 创建实例 以管理员身份连接数据库 启动实例 create database 创建数据库 运行数据字典脚本 Oracle的网络 ...

  6. ORACLE 10g 数据库体系结构图

    ORACLE 10g 的数据库体系结构图(ORACLE 10g(Release 2)ARCHITECTURE),非常的全面.系统.高屋建瓴的整体介绍了ORACLE 10g 的数据库体系结构.如果能全面 ...

  7. Oracle 10g 数据库的备份和还原

    一.备份数据库 1.在图形工具中,如sqldeveloper,pl/sqldeveloper用以下这句查找空表 select 'alter table '||table_name||' allocat ...

  8. AIX 6.1 Oracle 10G 数据库GoldenGate实施

    安装环境说明: 源端:AIX 6.1 10.190.1.215 目标端:Linux 10.191.1.10 1:源端创建goldengate 表空间. 表空间的要求:最小500m,大点3-5G,设置自 ...

  9. oracle 10g 数据库字符集更改

    1.更改数据库字符集为GBK SHUTDOWN IMMEDIATE; STARTUP MOUNT EXCLUSIVE; ALTER SYSTEM ENABLE RESTRICTED SESSION;A ...

随机推荐

  1. properties基本用法

    package control; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io. ...

  2. 10分钟入门spark

    Spark是硅谷各大公司都在使用的当红炸子鸡,而且有愈来愈热的趋势,所以大家很有必要了解学习这门技术.本文其实是笔者深入浅出hadoop系列的第三篇,标题里把hadoop去掉了因为spark可以不依赖 ...

  3. 一文解决python模块导入

    python 模块导入 原理 查找是按照 sys.path 中的路径挨个扫描.若都不存在则提示error. sys.path路径第一个是当前运行脚本所在的目录,其后是PYTHONPATH(一般若步专门 ...

  4. ubuntu自动登录tty1(shell,text)配置

    1.写脚本autologin 代码: #!/bin/bash/bin/login -f #你的用户名 移动到/usr/bin/下,并且用chmod +x autologin设置可执行权限 2.修改/e ...

  5. l【linux】linux rpm包命名规范

    RPM包的一般格式为:name-version-arch.rpmname-version-arch.src.rpm name:软件包名称.version:带有主.次和修订的软件包版本.arch:硬件平 ...

  6. 【html5】html5本地简单存储

    html5本地简单存储 HTML5 提供了四种在客户端存储数据的新方法,即 localStorage .sessionStorage.globalStorage.Web Sql Database. 前 ...

  7. zTree实现更新根节点中第i个节点的名称

    zTree实现更新根节点中第i个节点的名称 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树 ...

  8. directX根据设备类GUID查询所属的filter

    hr = m_pSysDevEnum->CreateClassEnumerator(*clsid, &pEnumCat, 0);    ASSERT(SUCCEEDED(hr));    ...

  9. VS2005、vs2008+WinXPDDK+DDKWizard配置驱动开发环境

    所需软件下载地址如下(均为有效资源链接,速度都比较可以): vs2005:    http://221.224.22.210/downloadsawyer/VS.Net2005简体中文版.rar wi ...

  10. 使用 pprof 和 Flame-Graph 调试 Golang 应用

    前言 最近用 Golang 实现了一个日志搜集上报程序(内部称 logger 项目),线上灰度测试过程发现 logger 占用 CPU 非常高(80% - 100%).而此项目之前就在线上使用,用于消 ...