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. iOS实现从服务器请求json数据并转化成NSDictionary

    NSURL *url = [NSURL URLWithString:URL]; NSURLRequest *request = [NSURLRequest requestWithURL:url cac ...

  2. Qt Create or VS 2015 使用 Opencv330 相机静态库链接错误如何解决?

    查看链接库,添加 vfw32.lib 即可.

  3. Java并发编程笔记1-竞争条件&初识原子类&可重入锁

    我们知道,在多线程访问一个共享变量的时候会发生安全问题. 首先看下面例子: public class Counter { private int count; public void add(){ t ...

  4. 关于instrinsicContentSize, ContentHuggingPriority, ContentcompressionResistancePriority的理解

    ios 关于intrinsic理解 最近由于项目的需要想给MBProgressHUD添加一个自定义的view, 结果花费了一两个小时也没添加上去,添加上去的view没有实际的大小,即使你给他设置了一个 ...

  5. python基础 数据类型 判断语句

    python 类unix系统默认已经安装或使用源码包./confighuremakemake install python运行方法 通过交互式解释器 [root@room1pc01 ~]# pytho ...

  6. linux ftp及C/S服务架构

    乱码转换工具使用convmv软件:windows中文字符编码为GB2312 linux中文字符编码为utf-8选项:-f:源文件中中文字符编码-t:转换成字符编码-r:代表递归--notest:不测试 ...

  7. Ubuntu 11.04安装arm-linux-gcc-4.4.3/arm-none-linux-gnueabi-gcc安装包

    准备工具和系统 arm-linux-gcc-4.4.3.tar.gz arm-linux-gcc-4.4.3下载地址: 下载在Linux公社的1号FTP服务器里,下载地址: FTP地址:ftp://w ...

  8. SAS︱数据索引、数据集常用操作(set、where、merge、append)

    代码部分大多来源于姚志勇老师的<SAS编程与数据挖掘商业案例>. 每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ ------------ ...

  9. 关于用wubi安装Ubuntu,总是提示“没有定义根文件系统”的问题

    用diskgenius测试一下分区问题,就发现一些错误,所以怀疑可能就是因为这个分区参数错误导致WUBI安装不成功,费了大力气转移数据后,重新对硬盘分区,这里称赞一下diskgenius,的确不错,当 ...

  10. 【mysql】mysql基本操作

    mysql基本操作 1.mysql表复制 mysql 表结构的复制 create table t2 like t2 mysql 表数据的复制 insert into t2 select * from ...