美创科技打造县域医疗灾备新标杆|神木市医院 HIS 系统数据库分钟级切换演练实录
2025-07-02
百万罚单警示!DCAS助力金融机构筑牢数据安全防线,实现监管合规
2025-06-20
2025中国互联网产业年会丨《中国互联网产业绿色算力发展倡议》正式发布
2025-02-07
美创用户专访 | 精细化管理:医疗行业数据分类分级的策略与实践
2025-01-10
容灾演练双月报|美创助力某特大型通信基础设施央企顺利完成多个核心系统异地容灾演练
2025-01-10
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务午饭时间,正在吃饭的我↓↓↓
叮铃铃~!叮铃铃~!
“您好!美创小小罗,请问有什么能帮到您?”
是木子发来紧急求助电话
“数据库连接不上了!连不上了!要试好几次才可以!请求帮助!”
小小罗望着桌上美滋滋的香干肉丝饭,还冒着热气和香气!眼泪差点掉下来!
故障面前,及时响应第一。狠扒一个大口,飞奔回到电脑前。
(客户环境:为操作系统rhel6.3,数据库rac 11.2.0.4)
监听状态正常!
从后台(一节点)为啥登不上数据库了,二节点却可以?数据库两节点open_mode 正常!processes 充足(4000)!直连一节点vip,报错TNS-12537,二节点则正常!
还是监听的问题呀,啊啊啊啊啊啊!
Grid用户:
$ ls -l $ORACLE_HOME/bin/oracle
-rwxr-x--x. 1 oracle oinstall 209914519 Sep 5 15:00 /oracle/grid/crs_1/bin/oracle
What?权限及文件所属用户和所属组都被改了。查看安装目录/oracle里的各个文件权限!
问题找到了!数据库和集群安装目录/oracle权限被修改了,被操作过chown –R oracle:oinstall /oracle
经沟通,原来是误操作了!此命令本应在测试库上运行,由于开的窗口太多,点到了生产库上了!应用连接数据库都是用scan-ip,当应用连接被分配至节点1的时候,由于权限已经被修改,则会报错ORA-12537,被分配至节点2的时候能够正常连接。所以会出现连接报错,但多连接几次就能连接成功的问题。
是的!没错!接下来就是把一节点关掉,对照二节点,把权限改回!一节点实例及集群正常关闭下来之后,应用能够正常连接数据库!
那么问题来了,小小罗怎么把一节点的/oracle目录权限快速恢复呢?有三种方式:
1、$ cluvfy comp software -n all –verbose
For 11.2:
For clustered Grid Infrastructure, as root user
# cd
# ./rootcrs.pl –init
对照二节点的权限一一改回!但这么多文件,宝宝有脾气了!
2、写脚本:
#!/bin/sh
echo -n "please input a directory:"
read dir
for i in $(find $dir)
do
ch=`stat "$i"|grep Uid|cut -c10-13`
echo "chmod $ch $i">>chmod.sh
done
在二节点上运行之后,再回到一节点上运行(但是二节点目录和一节点并不是完全一致,这需自己vi修改下)。
3、getfacl、setfacl命令
a.在节点2上获取文件及目录的权限:
# getfacl -pR /oracle > backup.txt
b.拷贝 backup.txt 至节点1
c.替换backup.txt中的rac2为rac1、ASM2为ASM1、orcl2为orcl1
vi bakcup.txt
:1,$s/rac2/rac1/g 回车 (:n,$s/ rac2/ rac1/g 替换第 n 行开始到最后一行中每一行所有rac2为rac1)
d.在节点1上恢复权限(切到backup.txt目录下)
# setfacl --restore=backup.txt
e. crsctl start crs
f.srvctl start instance -d orcl -i orcl1
g.检查验证。
显然,第三种方式,就两条命令,简便快捷!不管对/oracle 进行chown –R 还是 chmod –R 操作,只要二节点正常,就可以从二节点那边“拷贝”正确权限。
经过一波操作之后,一节点恢复正常!应用正常连接!
(我要去加饭了,我的鱼香肉丝饭!)
在这个过程中,当大量连接至节点2时,报ORA-12518连接错误,存在以下几种原因:
1、数据库层面的processes 达到阈值
2、主机内存资源不足
3、操作系统层面限制用户(oracle)进程数
……
根据具体问题,具体分析哟!
这里,还要给各位亲介绍一下,操作系统层面限制用户进程数的两个文件(就当前操作系统版本rehl 6.3):
/etc/security/limits.conf
/etc/security/limits.d/90-nproc.conf
注:要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。
即,编辑/etc/pam.d/login 添加如下内容:
session required pam_limits.so
然后,编辑/etc/security/limits.conf 添加如下内容(最佳实践):
vi /etc/security/limits.conf
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
限制特定用户的连接数,退出重新登录会话即生效(操作系统层面)!对于数据库,重启监听后即可,无需重启数据库或者主机。
(注:限制特定用户的连接数,/etc/security/limits.conf不受/etc/security/limits.d/90-nproc.conf(默认)中参数的影响)
/etc/security/limits.d/90-nproc.conf默认如下:
* soft nproc 1024 #注:* 表示所用用户
root soft nproc unlimited
所以,此时oracle用户限制的连接数为2047。
如果/etc/security/limits.d/90-nproc.conf中也是限制特定用户的连接数,例如:
/etc/security/limits.d/90-nproc.conf默认如下:
oracle soft nproc 1024
此时oracle用户限制的连接数为1024。
通常在/etc/security/limits.conf文件中增加特定用户的进程数限制,/etc/security/limits.d/90-nproc.conf保持默认即可。
最后,给各位亲的一点温馨提醒:
1、规范自己操作,操作生产库和操作测试库的窗口尽量不要同时开启,避免误切,操作到生产库。
2、对于安装目录的权限,可以用getfacl命令获取并备份,出现目录权限被修改时可以快速恢复。
美创数据库服务团队拥有Oracle ACE 1人、Oracle OCM 10余人、Oracle OCP 40余人。著有《Oracle数据库性能优化方法论和最佳实践》、《Oracle DBA实战攻略》等书籍。目前运维数据库2000余套,精通Oracle、DB2、MYSQL等各项数据库技术,拥有丰富的处理实战经验。