首页 > 数据库 > Oracle > 【WARING】chown可以载舟亦能覆舟
怎么说呢,至少一个工作几年的DBA不应该犯这样的低级错误,毛手毛脚更是大忌。希望所经历的每一次教训都能铭记,成为成长路上的基石,我知道有太多东西都显得那么业余、我知道有许多事情还没去做,但我在尝试,也许不够努力,却每天前行,不管脚步的快慢,一直在路上。好了,下面说一下这个失误吧。
为了便于管理,我们搭建了一套OEM12C,下午没事打算给一套HPUX系统(RAC)配置OEM监控,在执行远程监测的时候,报安装权限不对,通过OEM用户登录,在其安装目录尝试读写,都没问题,由于空间限制,打算在/USR目录下安装,所以就创建了一个目录,此时在node1节点执行
|
# mkdir -p /usr/oem |
接着赋予权限
|
# chown -R oem:oinstall /usr /usr/lbin/uucp/ADMIN: No such file or directory /usr/lbin/uucp/L-vtdevices: No such file or directory /usr/lbin/uucp/L.X25: No such file or directory /usr/lbin/uucp/SQFILE: No such file or directory /usr/lbin/spell/spellhist: No such file or directory /usr/lib/dialit: No such file or directory |
路径没写完全(脑子短路),直接把权限赋予/usr 而且加参数 –R,可想而知,usr目录下sbin、bin、lib、newconfig等目录及文件权限变更,造成系统部分命令、文件无法正常访问、执行,通过ssh工具无法与操作系统建立新的连接,还好,这个会话一直存在。当时真有点束手无策,咋整,好吧,先整再说,又来了一条
|
chown bin:bin /usr |
这个命令还好,只对该目录属组更改,但发现还是无法正常使用命令,
|
# su – oracle setgroups: Not owner setgroups: Not owner su: Unable to initialize group access list Dec 19 14:46:52 nbpsc1 su: USERDB: Unable to read from /var/adm/userdb/99. Run userdbck. |
在查看node2节点的/usr目录后,对比权限,在/usr目录下执行如下命令(注意:递归权限修改请慎用)
|
# chown -R bin:bin newconfig share lbin sbin lib bin lbin/uucp/ADMIN: No such file or directory lbin/uucp/L-vtdevices: No such file or directory lbin/uucp/L.X25: No such file or directory lbin/uucp/SQFILE: No such file or directory lbin/spell/spellhist: No such file or directory lib/dialit: No such file or directory |
无济于事,此时接到电话,node1节点监听异常,通过node2节点查看集群服务,如下
|
Name Type Target State Host ------------------------------------------------------------ ora....dc1.srv application ONLINE OFFLINE ora....dc2.srv application ONLINE ONLINE node2 ora....CRAC.cs application ONLINE ONLINE node1 ora....c1.inst application ONLINE ONLINE node1 ora....c2.inst application ONLINE ONLINE node2 ora.bpscdc.db application ONLINE ONLINE node1 ora....dc1.srv application ONLINE OFFLINE ora....dc2.srv application ONLINE ONLINE node2 ora....yyjc.cs application ONLINE ONLINE node1 ora....C1.lsnr application ONLINE OFFLINE ora.node1.gsd application ONLINE ONLINE node1 ora.node1.ons application ONLINE ONLINE node1 ora.node1.vip application ONLINE ONLINE node2 ora....C2.lsnr application ONLINE ONLINE node2 ora.node2.gsd application ONLINE ONLINE node2 ora.node2.ons application ONLINE ONLINE node2 ora.node2.vip application ONLINE ONLINE node2 |
监听、service服务停止,node1节点无法正常切换至oracle用户,通过node2节点oracle用户启动监听,如下错误(vip已切换至node2)
|
$ crs_start ora.node1.LISTENER_node1.lsnr node1 : CRS-1018: Resource ora.node1.vip (application) is already running on node2 node2 : CRS-1019: Resource ora.node1.LISTENER_node1.lsnr (application) cannot run on node2
CRS-0223: Resource 'ora.node1.LISTENER_node1.lsnr' has placement error |
当时真有点慌了,还好业务访问正常,没办法,权限问题,只能根据node2节点对比,修改node1节点,当时ls –lrt * 就凌乱了,这么多,怎么看啊,后来发现,许多root属组的文件或目录现在被递归修改为bin了,那就一个目录一个目录的查看,如下所示
|
# ls -lrt | grep root | wc –l --通过该命令对比两个节点同目录下权限数量 30 # ls -lrt | grep bin | wc -l 334 --如果使用ls –lrt * | grep root 会递归目录,不易修改(不太会使用awk,只能笨方法) |
发现node2中root属组多,再执行,列出文件,通过UE列编辑,整理出chown语句,在node1执行。
|
# ls -lrt | grep root drwxrwxr-x 2 root other 96 Mar 2 2012 diag drwxrwxrwt 2 root root 96 Mar 2 2012 streams -rw------- 1 root other 0 Mar 2 2012 btmp drwx------ 2 root sys 8192 Mar 2 2012 userdb -r--r--r-- 1 root sys 55 Mar 2 2012 new._PROD_DFLT_ACL -r--r--r-- 1 root sys 15 Mar 2 2012 new.secrets -r--r--r-- 1 root sys 55 Mar 2 2012 new._SOC_DFLT_ACL -r--r--r-- 1 root sys 40 Mar 2 2012 new._ACL -r--r--r-- 1 root sys 62 Mar 2 2012 new._OWNER drwxr-xr-x 2 root root 96 Aug 23 2012 crash -rw-r--r-- 1 root root 0 Aug 23 2012 automount.log -rw-r--r-- 1 root sys 637524 Aug 23 2012 kc.cache -r--r--r-- 1 root sys 0 Aug 23 2012 sbtab.old lrwxr-xr-x 1 root sys 17 Aug 23 2012 icod.log -> /var/adm/icap.log -r--r--r-- 1 root sys 0 Aug 23 2012 sbtab -rw------- 1 root root 358 Aug 23 2012 .sfd |
经过目录权限、属组对比,并赋权后,终于可以切换oracle用户,将vip切换至node1,启动监听、service服务。现在才稍微放松了一下
|
$ crs_stat –t Name Type Target State Host ------------------------------------------------------------ ora....dc1.srv application ONLINE ONLINE node1 ora....dc2.srv application ONLINE ONLINE node2 ora....CRAC.cs application ONLINE ONLINE node1 ora....c1.inst application ONLINE ONLINE node1 ora....c2.inst application ONLINE ONLINE node2 ora.bpscdc.db application ONLINE ONLINE node1 ora....dc1.srv application ONLINE ONLINE node1 ora....dc2.srv application ONLINE ONLINE node2 ora....yyjc.cs application ONLINE ONLINE node1 ora....C1.lsnr application ONLINE ONLINE node1 ora.node1.gsd application ONLINE ONLINE node1 ora.node1.ons application ONLINE ONLINE node1 ora.node1.vip application ONLINE ONLINE node1 ora....C2.lsnr application ONLINE ONLINE node2 ora.node2.gsd application ONLINE ONLINE node2 ora.node2.ons application ONLINE ONLINE node2 ora.node2.vip application ONLINE ONLINE node2 |
这个方法有点土、也有点笨,值得欣慰的是还好没有用肉眼在那看(当时着急啊),其实这篇文档没什么技术含量,只是想提醒大家,操作时多多注意,或者在文本里编辑一下,看一遍再执行,像rm中的-r和chmod(chown)中的-R参数以及其他类似参数,请慎用,人为的误操作(尤其低级,大多也是低级)真是坑人,男人,可以战死沙场,但别没到战场就先把自己给坑死了。
如果遇到这样的失误,你会怎么处理,或者根据本文失误,你有什么更好的方法,欢迎大家交流。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29487349/viewspace-1086005/ ,如需转载,请注明出处,否则将追究法律责任。