• 【oracle案例】ORA-01722


    1.1.   ORA-01722

    日期:2014-06-05 14:09

    环境:測试环境

     

    【情景描写叙述】

    在数据库的升级过程中,运行SQL> @?/rdbms/admin/catupgrd.sql脚本的时候遇到报错退出。

     

    【报错信息】

    DOC>#######################################################################

    DOC>    The following statement will cause an "ORA-01722: invalidnumber"

    DOC>    error if the Oracle Database Vault option is TRUE.  Upgrades cannot

    DOC>    be run with the Oracle Database Vault option set to TRUE since

    DOC>    AS SYSDBA connections are restricted.

    DOC>

    DOC>    Perform "ALTER SYSTEM CHECKPOINT" prior to "SHUTDOWNABORT", relink

    DOC>    the server without the Database Vault option, and restart the server

    DOC>    using UPGRADE mode.

    DOC>

    DOC>

    DOC>#######################################################################

    DOC>#######################################################################

    DOC>#

    SELECT TO_NUMBER('DATA_VAULT_OPTION_ON')FROM v$option

                     *

    ERROR at line 1:

    ORA-01722: invalid number

     

    【报错原因】

    该数据库实例配置了Oracle Database Vault功能。

     

    【解决方法】

    关闭Oracle Database Vault功能后,又一次运行升级操作。

     

    关闭Oracle Database Vault功能:

    # 查看是否开启了OracleDatabase Vault功能:

    SQL> col parameter for a30

    SQL> col value for a20

    SQL> SELECT * FROM V$OPTION WHEREPARAMETER = 'Oracle Database Vault';

     

    PARAMETER                      VALUE

    --------------------------------------------------

    Oracle Database Vault          TRUE

    # 关闭数据库实例

    SQL> shutdown immediate

    SQL> exit

    $ emctl stop dbconsole

    $ lsnrctl stop

    # 编译ins_rdbms.mk

    [oracle@oracle ~]$ cd $ORACLE_HOME/rdbms/lib/

    [oracle@oracle lib]$ make -f ins_rdbms.mkdv_off

    /usr/bin/ar d/U01/app/oracle/product/11.2.3/db_1/rdbms/lib/libknlopt.a kzvidv.o

    /usr/bin/ar cr/U01/app/oracle/product/11.2.3/db_1/rdbms/lib/libknlopt.a/U01/app/oracle/product/11.2.3/db_1/rdbms/lib/kzvndv.o

    [oracle@oracle lib]$

    # 运行relink

    [oracle@oracle lib]$ cd $ORACLE_HOME/bin

    [oracle@oracle bin]$ relink all

    writing relink log to:/U01/app/oracle/product/11.2.3/db_1/install/relink.log

    [oracle@oracle bin]$

    # 启动数据库实例

    $ sqlplus / as sysdba

    SQL> startup

    # 检查 Oracle DatabaseVault状态

    SQL> SELECT * FROM V$OPTION WHERE PARAMETER= 'Oracle Database Vault';

    PARAMETER                      VALUE

    ------------------------------ ----------

    Oracle Database Vault          FALSE

    SQL>

     

     

    【參考资料】

    关闭/开启Oracle Database Vault:

    http://docs.oracle.com/cd/B28359_01/server.111/b31222/dvdisabl.htm#DVADM70984

    安装Oracle Database Vault:

    http://www.stanford.edu/dept/itss/docs/oracle/10gR2/install.102/b32496/upgrd.htm

    什么是Oralce Database Vault:

             OracleDatabase Vault 可帮助用户解决现有的极为棘手的安全问题,即防止内部的威胁,满足合规性要求以及实现职责划分。

    Oracle Database Vault 能防止 DBA 查看应用程序数据,攻克了必须保护涉及合作伙伴、员工和顾客的敏感业务信息或隐私数据的客户最为操心的问题。Oracle Database Vault 可防止高权限的应用程序 DBA 訪问其它的应用程序、运行其权限之外的任务。Oracle Database Vault 能够轻松快捷地保护现有应用程序。且不影响应用程序的功能。

     


  • 相关阅读:
    k8s管理
    Docker
    容器技术学习系列(一)-Docker基础知识学习
    Linux系统下DHCP服务安装部署和使用详解
    Linux下配置yum源为阿里云或网易的详解
    一道算法题目(1)
    SS命令和Netstat命令比较
    centos配置redis的主从复制(2)
    centos配置redis的主从复制(1)
    散列表(22)
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10574779.html
  • 一二三 - 开发者的网上家园