【Oracle案例】ORA-01722 錯誤解決

來源:互聯網
上載者:User

【Oracle案例】ORA-01722 錯誤解決

1.1.  ORA-01722
 
日期:2014-06-05 14:09
 
環境:測試環境
 
【情景描述】
 
在資料庫的升級過程中,執行SQL> @?/rdbms/admin/catupgrd.sql指令碼的時候遇到報錯退出。

在CentOS 6.4下安裝Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虛擬機器中安裝步驟

Debian 下 安裝 Oracle 11g XE R2
 
 
【報錯資訊】
 
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 可以輕鬆快捷地保護現有應用程式,且不影響應用程式的功能。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.