【案例95】“小”问题引发的“大”发现---记一次环境修复

问题现象

顾问在登录NC时发现无法登录到系统内部,报数据库相关错误。故检查了sysconfig数据源联通状态。经过测试报ORA-28000错误。故以为是简单问题,数据库密码过期导致服务异常。顾问希望帮他更改数据库密码并解锁。

本以为是个小问题,10分钟搞定。结果却搞了很久时间。

问题分析

ORA-28000,导致出现改错误的原因是:在oracle database 11g中,默认在default概要文件中设置了"FAILED_LOGIN_ATTEMPTS=10",当输入密码错误次数达到设置值将导致此问题。

确认用户所使用的概要文件
sql 复制代码
select username,profile from dba_users;
查看概要文件中有关登录次数的限制
sql 复制代码
select *
  from dba_profiles
 where profile = 'DEFAULT'
   and resource_name = 'FAILED_LOGIN_ATTEMPTS';

如果尝试登录次数限制为10次,将尝试登录次数的限制修改为不受限
sql 复制代码
alter profile default limit failed_login_attempts unlimited;
修改后不需要重启数据库,修改结果即时生效。

修改后,还没有被提示ORA-28000警告的账户不会再碰到同样的问题,已被锁定用户仍需解锁,方法如下:

复制代码
alter user <user_name> account unlock;

按照上述方法,已经解锁相关数据库用户,并也解锁。直接用sqlplus 连相关用户直接登录相关用户正常。

但是在sysconfig中测试依旧报错,通过PLSQL工具链接也异常。仔细查看了相关sysconfig配置。发现ODBC配置的为orcl,故怀疑是不是有人修改了相关配置。

通过查询相关数据库的实例名发现,现在数据库非orcl。

咨询顾问得知,他们有人动过相关环境,但不知修改了什么。怀疑此处发生变更,故修改sysconfig中相关配置。

以为没问题,重启服务后,再次登录相关环境发现报如下错误。找不到相关表。

于是直接查询相关表中数据发现无此表。结果为空。

查询此库下相关用户的数据发现也是空的。

故怀疑现在启动的实例的库为空库,并无相关数据。通过任务管理器发现启动了2个RDBMS,1个是之前的配置,1个是之后的配置。

故重启数据库,但数据库默认重启的就是无数据的RDBMS。现在就是想办法启动orcl即可解决相关问题。

解决方案

bash 复制代码
set ORACLE_SID=orcl

再次重启数据库,发现orcl启动成功。

sysconfig修改为正确的地址,重启服务后系统恢复正常。

相关推荐
2301_780789665 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
ClickHouseDB5 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
第九序言T5 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
m0_639906945 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
学长毕设6 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
时间售卖铺6 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw6 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
步行cgn6 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川6 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵6 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程