11g sqlplus报错ORA-28002: the password will expire within 3 days 的解决方法

11g 增加了登录时间的限制,在DEFAULT Profile里能查到,如下所示:
SQL> select * from dba_profiles where profile='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD 180

LIMIT字段显示180天。
看一下 10g 的值:
SQL> select * from dba_profiles where profile='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD UNLIMITED

解决方法:
1、将LIMIT值改为UNLIMITED即可,修改马上生效,不需要重启 数据库
SQL> alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;

Profile altered.

SQL> select * from dba_profiles where profile='DEFAULT' AND RESOURCE_NAME='PASSWORD_LIFE_TIME';

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD UNLIMITED

2、已经报错的用户则必须修改一次密码,密码可以不变。
SQL> alter user user1 identified by user1;  

User altered.

转载自:http://space.itpub.net/12355989/viewspace-709860

<think>好的,我需要帮助用户解决在Linux环境下使用sqlplus连接Oracle数据库时遇到的ORA-12547错误。首先,我应该回顾一下用户提供的引用内容,看看有没有相关的线索。引用中提到这个错误可能与权限问题有关,例如libaio库的问题或者Oracle可执行文件的权限设置。 首先,我需要确认用户的环境。用户提到的是Linux Mint安装Oracle 12cR2时出现这个问题,以及DBCA报同样的错误。这说明问题可能出现在安装或配置过程中,而不仅仅是运行时的连接问题。不过用户现在的问题是在使用sqlplus连接时出现的,所以需要从连接的角度入手。 根据引用中的信息,权限问题是一个常见的因素。比如,Oracle的可执行文件(如sqlplusoracle)需要有正确的执行权限,并且所属用户和组正确。例如,引用[1]提到通过strace定位到权限问题,并修改了$ORACLE_HOME/bin/oracle文件的权限为6751,解决了问题。这可能涉及到setuid和setgid的权限设置,确保Oracle进程能够正确运行。 其次,libaio库的问题也被提到。在引用[2]中,用户怀疑libaio有问题,但可能没有正确安装或配置。需要确认libaio是否已安装,并且是32位还是64位版本,这取决于Oracle的安装版本。 另外,环境变量是否正确设置也是一个关键点。比如ORACLE_HOME、PATH、LD_LIBRARY_PATH等是否指向正确的路径,避免路径错误导致程序无法找到必要的库或文件。 接下来,可能的解决方案步骤应该包括: 1. 检查Oracle相关文件的权限,特别是$ORACLE_HOME/bin/oracle文件,确保其权限设置为6751,所属用户和组正确。 2. 确认libaio库已正确安装,并且是适合系统架构的版本(如64位系统需要libaio1的64位版本)。 3. 检查环境变量是否正确配置,确保sqlplus能够找到所需的库和可执行文件。 4. 检查SELinux或AppArmor等安全模块是否阻止了Oracle进程的运行,必要时暂时禁用或配置策略。 5. 查看日志文件,如$ORACLE_HOME/install/make.log或alert日志,寻找更详细的错误信息。 此外,用户可能需要重新运行Oracle的安装脚本,如root.sh,以确保所有权限和配置正确应用。同时,如果问题出现在安装过程中,可能需要重新安装Oracle,并严格按照文档步骤操作,确保没有遗漏的依赖项或配置步骤。 在生成相关问题的时候,需要考虑用户可能进一步遇到的困难,比如如何检查文件权限,如何安装libaio,如何设置环境变量,或者如何处理SELinux的问题。因此,相关问题应该围绕这些可能的扩展点展开,帮助用户更全面地理解和解决问题。</think>### Linux环境下解决sqlplus ORA-12547错误的步骤 #### 1. **检查Oracle可执行文件权限** 确保`$ORACLE_HOME/bin/oracle`文件的权限正确,通常需设置为`6751`(包含`setuid`和`setgid`权限): ```bash chmod 6751 $ORACLE_HOME/bin/oracle ``` 同时确认文件所属用户和组为`oracle:oinstall`: ```bash chown oracle:oinstall $ORACLE_HOME/bin/oracle ``` 权限问题是最常见的ORA-12547原因[^1][^4]。 #### 2. **验证libaio库安装** Oracle依赖`libaio`库进行异步I/O操作,未安装或版本不匹配会导致此错误。 - 对于Ubuntu/Debian系统: ```bash sudo apt-get install libaio1 ``` - 对于CentOS/RHEL系统: ```bash sudo yum install libaio ``` 确保安装与系统架构一致的版本(如64位系统需`libaio1:amd64`)[^2]。 #### 3. **检查环境变量配置** 确认`ORACLE_HOME`、`PATH`和`LD_LIBRARY_PATH`已正确设置: ```bash export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH ``` 可通过`echo $ORACLE_HOME`验证路径是否正确。 #### 4. **禁用SELinux/AppArmor** Linux安全模块可能阻止Oracle进程运行,临时禁用以排查问题: - **SELinux**: ```bash sudo setenforce 0 ``` - **AppArmor**: ```bash sudo systemctl stop apparmor ``` 若问题解决,需配置策略允许Oracle相关进程[^3]。 #### 5. **检查日志定位具体错误** - **安装日志**:查看`$ORACLE_HOME/install/make.log`中的编译错误。 - **数据库日志**:检查`$ORACLE_BASE/diag/rdbms/*/*/trace/alert_*.log`中的详细错误信息。 #### 6. **重新运行Oracle配置脚本** 以root用户执行`root.sh`修复权限问题: ```bash sudo $ORACLE_HOME/root.sh ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值