|
问题描述
项目实施过程中,无论是服务器还是在自己的虚拟机中,经常会碰到连接数据库错误,实际上,凡是错误号为“515XXX”的都和数据库有关联,尤其以“515175”最为常见。无法连接到数据库的原因是多方面的,例如:数据库服务器宕机,数据库服务停止,网络问题,TC_DB_CONNECT 环境变量错误等。
解决方法
1.使用TC 的install 工具进行检查
下面探讨处理这类问题的一般方法。除了用户通过界面登录TC 系统,可以知道是不是可以连到数据库以外,最简单的方法是使用TC 的工具。启动一个带有TC 环境的命令窗口运行:install –ayt
如果可以连通,系统将提示“Site is already installed”

如果无法连通,系统将提示“(check_db) Failed to connect”

2. 数据库服务器宕机
可以通过启动一个命令提示窗口,然后运行ping 命令
Ping <数据库服务器的IP地址>
Ping <数据库服务器的名称>
如果两个都无法Ping通的话,需要检查服务器和网络交换机是否正常,如果是IP 地址通,而服务器名称不通的话,需要检查域名解析问题。
3.数据库服务停止
确保oracle 的监听服务和实例服务已经启动了。如果没有启动的话,启动相关的服务并检查相关的进程。
通过运行Oracle listener 来检查服务的状态lsnrctl status。

4.检查数据库实例参数
启动一个命令窗口,设置 oracle_SID 环境变量
Sqlplus /nolog
SQL> connect
请输入用户名: infodba
输入口令:
如果提示已连接的话,说明oracle 数据库实例已经启动了。如果提示密码错误的话,需要找找出正确的密码,通过检查TC_DB_CONNECT 提到的方法进行相关修改。如果出现下面的提示“ERROR: ORA-28002: the password will expire within X days”,TC系统将认为是无法连接,会提示515175错误。
5.修改oracle 账号的密码的方法和密码周期
根据密码管理的要求,选择下面的一种方法进行修改:
A)修改oracle infodba 账号的密码
按照检查TC_DB_CONNECT 的方法进行相关修改,修改oracle 账号密码的方法如下:把infodba 的密码修改为testdbf
启动一个命令窗口,设置 oracle_SID 环境变量
Sqlplus /nolog
Connect / as sysdba
alter user infodba identified by testdbf;
commit;
exit;
B)把密码设置为没有时间限制的
启动一个命令窗口,设置 oracle_SID 环境变量
Sqlplus /nolog
Connect / as sysdba
alter profile default limit password_life_time unlimited;
如果用户已经被锁定,则执行下面的语句解锁,否则不用执行下面的语句。
alter user 用户 identified by 密码account unlock;
commit;
exit;
建议重新启动oracle 的实例。
6.检查TC_DB_CONNECT
请检查一下最近是不是修改过数据库中的infodba账号的密码。如果修改过的话,进行下面的操作:
启动一个带有TC 环境的命令窗口
设置环境变量IMAN_DB_CONNECT=infodba:<infodba>@<oracle_SID>
设置环境变量TC_DB_CONNECT=infodba:<infodba>@<oracle_SID>
install –encrypt
系统将根据当前的设置重新生成与数据库连接的字符串,用这个新生成的字符串替换%TC_DATA%TC_PROFILEVARS.bat 里面相应的值,以 Windows 平台为例,假设oracle_SID 为tc,infodba 账号的密码为testdbf;
Set IMAN_DB_CONNECT=infodba:testdbf@tc
Set TC_DB_CONNECT=infodba:testdbf@tc
install –encrypt
infodba:TLNnx29kw8K@tc
重新设置环境变量IMAN_DB_CONNECT 和TC_DB_CONNECT:
Set IMAN_DB_CONNECT=infodba:TLNnx29kw8K@tc
Set TC_DB_CONNECT=infodba:TLNnx29kw8K@tc
运行install -ayt 的运行结果应该是Site is already installed。
根据install –encrypt 的运行结果,修改%TC_DATA%TC_PROFILEVARS.bat 中的IMAN_DB_CONNECT 和TC_DB_CONNECT 为正确的值。例如原来的设置为:
set IMAN_DB_CONNECT=infodba:j98MMlrOJbI@tc
set TC_DB_CONNECT=infodba:j98MMlrOJbI@tc
需要替换为:
Set IMAN_DB_CONNECT=infodba:TLNnx29kw8K@tc
Set TC_DB_CONNECT=infodba:TLNnx29kw8K@tc
经过在项目实践上发现的此类问题,均按照此方法进行了排查,问题能够解决。
TranSemic原创稿件
欢迎转载
转载须注明原文出处及原文链接
违者必究



