免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2745 | 回复: 1
打印 上一主题 下一主题

求救,xdb用户的问题 . [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-14 14:02 |只看该作者 |倒序浏览
drop xdb用户及其对象失败.没有完整删除.现在出现很多编译的过程错误.想彻底删除.可是一直报错.现在drop任何表都报不可以删除.xdb触发器失败.

看了网络上有解释可以使用脚本重建.可是做完后一堆报错.无法编译这些包.

大家有遇到这样的问题吗? 帮帮忙.请赐教!谢谢!

论坛徽章:
0
2 [报告]
发表于 2009-05-14 15:03 |只看该作者
解决方法.由于是触发器错误所致.利用网上资料.
Metalink ID:149948.1

Important Step when Upgrading / Downgrading / Installing / Deinstalling Options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Versions & Platforms Affected
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  o The information here applies to Oracle 8i, Oracle 9i, and Oracle 10g on all platforms.

  o It does NOT apply to Oracle8.0 or Oracle7 databases UNLESS they
    are being upgraded / migrated to an Oracle8i or 9i release or later.

Description
~~~~~~~~~~~
  When performing any of the following actions on an Oracle database:

        o Installing a patch set
        o Upgrading
        o Downgrading
        o Performing any other operation which requires catalog or
          catproc to be run (Except when we create a DB in 8i / 9i)
        o Installing Java (initjvm)
        o Any other action which runs scripts which modify objects owned
          by SYS

  then you should set the hidden init.ora parameter _SYSTEM_TRIG_ENABLED to
  FALSE before starting the instance under Oracle8i (or 9i) to perform the
  respective maintenance operation unless the steps you are following
  advise otherwise.

  Eg: In Oracle8i add the lines below to the init.ora file used to start the
      instance then stop and restart the instance before performing the
      maintenance actions.

        # Disable system triggers for the duration of the maintenance
        # operation.
        _SYSTEM_TRIG_ENABLED=FALSE

  IMPORTANT: This parameter must be commented out and the instance re-started
             once the required maintenance operations have been performed.

Oracle9i and later
~~~~~~~~~~~~~~~~~~
  Most Oracle9i scripts include statements to dynamically set
  _SYSTEM_TRIG_ENABLED to FALSE when required. However it is possible
  that some scripts have omitted this step so it is still advisable
  to set this to FALSE. You can do this in Oracle9i using the command:
    ALTER SYSTEM SET "_system_trig_enabled"=FALSE;

  Once the required steps are complete you can reenable triggers thus:
    ALTER SYSTEM SET "_system_trig_enabled"=TRUE;

  If you are using an init.ora file (rather than an SPFILE) then the
  parameter can also be set there as described above.

Oracle8.0 / Oracle7
~~~~~~~~~~~~~~~~~~~
  The parameter _SYSTEM_TRIG_ENABLED does not exist in Oracle8.0 or earlier
  so should not be present when starting an instance under 8.0 or Oracle7.
  However, if the operation being performed involves some steps under
  Oracle8i/9i and some under 8.0/7.X then set the parameter for the 8i/9i
  steps.

Explanation
~~~~~~~~~~~
What does _SYSTEM_TRIG_ENABLED do ?

  This hidden parameter is described in Note 68636.1. A value of FALSE
  stops system triggers from firing (eg: triggers on various DDL or database
  events are disabled).

Why should it be set to false ?

  The parameter should be set to FALSE for scripts which perform dictionary
  operations as the objects on which the triggers depend may become
  invalid or be dropped, causing the triggers to fail and thus preventing
  the scripts from running successfully. Some examples are given below.


Example Problem Scenarios
~~~~~~~~~~~~~~~~~~~~~~~~~
  There are many potential problem scenarios if you have system triggers
  in place when performing dictionary maintenance operations. Some of the
  more common symptoms are described below. In most cases setting
  _SYSTEM_TRIG_ENABLED=FALSE and re-performing the operation will allow
  you to proceed.

After running "rmjvm"
~~~~~~~~~~~~~~~~~~~~~
  If you have JIS installed and then deinstall Java using the "rmjvm"
  script then any subsequent attempt to DROP a ROLE will error.
  This is described in Bug 1751857 - "rmjvm" does not drop all Java
  related objects. It leaves a database trigger behind which then cannot
  execute:
  eg:
        SVRMGR> drop role a;
        drop role a
        *
        ORA-00604: error occurred at recursive SQL level 1
        ORA-29540: class oracle/aurora/mts/http/security/RdbmsHttpPolicy does nt
        ORA-06512: at "SYS.HTTP_SECURITY_CASCADE", line 0
        ORA-06512: at line 3


Running CATALOG / CATPROC
~~~~~~~~~~~~~~~~~~~~~~~~~
  If you have JIS installed and re-run CATALOG and CATPROC then the same
  trigger can become INVALID. This causes errors on many DROP SYNONYM
  commands as described in the bug entry Bug 1733297.
  eg:
        SVRMGR> drop public synonym dba_segments;
                *
        ORA-4098: trigger 'SYS.JIS$ROLE_TRIGGER$' is invalid and failed re-valin


When upgrading from 8.0 or migrating from 7.3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  If _SYSTEM_TRIG_ENABLED is not set to FALSE then you may encounter
  Bug 1362374 which can cause ORA-604 , ORA-6553 , PLS-213 in package
  STANDARD errors when opening the database under Oracle8i/9i.

  If you are using ODMA (Database Migration Assistant) to upgrade from
  Oracle7 or 8.0 then it is not possible to set the _SYSTEM_TRIG_ENABLED
  before invoking ODMA itself. In this case it is advisable to test if
  the upgrade / migration completes successfully when using ODMA and if
  not revert to using manual upgrade / migration steps so that the
  parameter can be set.
  

Upgrading to Oracle9i
~~~~~~~~~~~~~~~~~~~~~
  Bug 1747065 can give ORA-600 [16201] errors opening a database under
  Oracle9i for the first time when _SYSTEM_TRIG_ENABLED is not set to
  FALSE.



设置为false.重新删除xdb成功.然后使用
如果只是想让这些对象正常编译,,,

可以考虑在sys用户下执行..  @?/rdbms/admin/utlrp.sql
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP