甲:快快快上来看下数据库重启起不来了!
我:大哥,大白天的重启数据库!
甲:不是说导数据嘛, 权限不足,按 上的步骤改了权限,然后重启数据库
我:啥权限?!!命令是?
甲:chown -R oracle:oinstall /oracle
我:(心中一万只羊驼狂奔而来,淡定的说),没事你们RAC另一个节点不动就行。
甲:另一个节点也改了,还没重启
我:……(生无可恋)
干运维这行,虽说擦屁股救火是家常便饭,但还是最怕查询问题找百度的「神」队友。
大家知道众多数据库软件中,Oracle权限相对复杂,安装完目录下上千个文件,用户有oracle、grid、root之分,组也有oinstall、dba、oper、asmadmin,当集群和数据库软件意外都被chown -R误操作时,由于权限问题将导致集群和数据库都无法启动,遇到此类问题如果人肉比对修改,估计没个一天下不来。
有没有更简便高效的方法呢?
别慌张!下面,就让小编给大家介绍几种快速恢复的方法:
软件权限恢复
关闭问题节点集群和数据库
方法一、使用Oracle官方方法
正确安装完集群软件后,在$GRID_HOME/crs/utl目录下会生成两个文件crsconfig_dirs、crsconfig_fileperms记录了核心文件及文件夹的权限,恢复也很方便。
root用户执行:
方法二、使用操作系统权限设置命令getfacl、setfacl
找一套运行正常的环境进入/oracle目录,使用getfacl收集当前目录下所有文件权限。
替换backup.txt中的主机名、ASM名和数据库名。
快速替换小技巧::1,$s/rac1/rac2/g (替换文中rac1为rac2)
拷贝至当前需要恢复的环境/oracle目录下执行恢复
getfacl、setfacl简单使用方法介绍,这里不做展开有兴趣的小伙伴可以自行查询官方使用详解。
上述两种方法都能实现恢复,小编更推荐第二种,第一种限制及bug较多成功率不高。当然还有方法三,结合操作系统命令find -uid和chown,先卖个关子有兴趣的小伙伴可以先思考,有思路了随时与小编交流。
此时软件权限已经基本修复完成集群可以正常启动,但启动数据库还是 错。
这个 错经常打补丁的小伙伴一定不陌生,对于存在asmadmin组,在打补丁过程中oracle执行文件权限发生了改变与ASM磁盘组权限不一致。此案例需要考虑的关键两个文件。
处理方法:
此时整个恢复就完成了,数据库可以正常打开。
参考文档:
? Database Will Not Mount: ORA-15025, ORA-27041, ‘Permission denied’, ORA-15081 (Doc ID 1378747.1)
? How to check and fix file permissions on Grid Infrastructure environment (Doc ID 1931142.1)
最后,给各位亲的一点温馨提醒:
1、有问题少用百度(这个大家懂的),无法判断命令危险性的时候不要在生产环境操作,有条件可以咨询专业人员。
2、规范自己操作,操作生产库和操作测试库的窗口尽量不要同时开启,避免误切(不要抱有侥幸,常在河边走,就算老司机也有失误的时候)。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!