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>

什么是Oralce Database Vault:

OracleDatabase Vault 可帮助用户解决现有的极为棘手的安全问题,即防止内部的威胁,满足合规性要求以及实现职责划分。Oracle Database Vault 能防止 DBA 查看应用程序数据,解决了必须保护涉及合作伙伴、员工和顾客的敏感业务信息或隐私数据的客户最为担心的问题。Oracle Database Vault 可防止高权限的应用程序 DBA 访问其他的应用程序、执行其权限之外的任务。Oracle Database Vault 可以轻松快捷地保护现有应用程序,且不影响应用程序的功能。

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2024-09-26 14:02:24

ORA-01722错误详解的相关文章

ORA-01555错误详解

ORA-01555错误详解   ORA-01555(快照过旧)问题让很多人感到十分头痛.最近我们的生产系统上也报出了ORA-01555错误.就结合这次案例将ORA-1555问题作个案例分析,并浅析产生原因和各种解决办法. 如果要了解1555错误产生的原因,就需要知道ORACLE的两个特性:一致性读(Consistent Get)和延迟块清除(Delayed Block Cleanout).此外,还要知道关于回滚段的一些配置参数. 相关参数 先看下Oracle中关于UNDO有哪些配置参数: SQL

ORA-19573错误详解

1.1.1. ORA-19573 日期:2014-05-21 17:25 环境:测试环境 [情景描述] 数据库实例处于OPEN状态(READ WRITE),这时在RMAN中执行数据库还原.恢复操作遇到报错. [报错信息] RMAN> run { 2> allocate channel ch1 type disk; 3> allocate channel ch2 type disk; 4> set until scn 1520939; 5> restore database;

ORA-19502及ORA-27072错误详解

1.1.1. ORA-19502,ORA-27072 日期:2014-05-12 00:12 环境:测试机 [错误号] $ oerr ora 19502 19502, 00000, "write error on file\"%s\", block number %s (block size=%s)" // *Cause: write error on output file // *Action: check the file $ oerr ora 27072 2

ORA-4031错误详解

报ORA-4031错误时,我们通常可以根据Oracle无法分配多少字节的内存,来判断共享池碎片的严重程度,以下是4031错误官方的解释: [oracle@guoyj ~]$ oerr ORA 4031 04031, 00000, "unable to allocate %s bytes of shared memory (\"%s\",\"%s\",\"%s\",\"%s\")" // *Cause:  M

Linux标准输入及输出错误详解

输出包含两种类型: 一种是程序的运行结果(标准输出), 一种是状态和错误信息(标准错误). 标准输出(standard output)和 标准错误(standard error), 默认是连接至屏幕; 标准输入(standard input) 默认是连接至键盘; 可以使用IO重定向(redirection), 改变输入, 输出的发送位置; 1. 标准输出 标准输出重定向, 使用重定向操作符(">"), 把程序输出至文件, 默认是从文件头部重写写入; 可以使用">

Linux标准输入输出错误详解

输出包含两种类型: 一种是程序的运行结果(标准输出), 一种是状态和错误信息(标准错误). 标准输出(standard output)和 标准错误(standard error), 默认是连接至屏幕; 标准输入(standard input) 默认是连接至键盘; 可以使用IO重定向(redirection), 改变输入, 输出的发送位置; 1. 标准输出 标准输出重定向, 使用重定向操作符(">"), 把程序输出至文件, 默认是从文件头部重写写入; 可以使用">

LAMP架构的编译安装及错误详解

本次试验用的是新安装的系统,以此保证纯净,站在第一次编译安装lamp的角度,分析各种错误,从错误开始入手. 至于lamp是干什么用的,我就不赘述了,直接开始. 本文中的软件我都已经下好了,并且打包好了,如果有需要的朋友,可以自己下载我的软件包 首先交代一下系统的版本 [root@localhost libevent-2.0.18-stable]# lsb_release -a LSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-

Oracle ORA-4031错误详解

oracle  ORA-4031错误产生的原因 首先这个错误发生时的表现如下: ORA-04031: unable to allocate XXXX bytes of shared memory ("shared pool,"unknown object","sga heap(1,0)","obj stat memor") 就是最基本的查询简单的动态性能视图都无法完成: 下面来细细的分析一下原因: 这就需要从shared pool 的内

MDK常见错误详解集合

错误代码及错误信息 错误释义 error 1: Out of memory 内存溢出 error 2: Identifier expected 缺标识符 error 3: Unknown identifier 未定义的标识符 error 4: Duplicate identifier 重复定义的标识符 error 5: Syntax error 语法错误 error 6: Error in real constant 实型常量错误 error 7: Error in integer consta

结构体指针之 段错误 详解(精典!!!)

一个网友问了我一个问题,一个C程序运行出现了段错误,这个问题非常好,很多初学者都容易犯这个错误,具体代码如下: 这个编译没有问题,但是运行是段错误    Segmentation fault 因为你定义了一个结构体指针p,用来指向此类结构体,但是你却没有给他赋值,此时p的值为NULL,你并没有在内存中为p分配任何空间,所以p->a=1这句就会出段错误. 修改方法1:可以给p分配一段内存空间,并使其指向此空间: p=(struct abc *)malloc(sizeof(struct abc));