网站首页 > 技术文章 正文
甲:快快快上来看下数据库重启起不来了!
我:大哥,大白天的重启数据库!
甲:不是说导数据嘛,报权限不足,按网上的步骤改了权限,然后重启数据库
我:啥权限?!!命令是?
甲: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、规范自己操作,操作生产库和操作测试库的窗口尽量不要同时开启,避免误切(不要抱有侥幸,常在河边走,就算老司机也有失误的时候)。
猜你喜欢
- 2024-11-08 某国企Oracle数据库误truncate table恢复案例
- 2024-11-08 Linux的其他命令-2 linux常见的命令使用
- 2024-11-08 分分钟搭建Oracle环境 oracle adg搭建
- 2024-11-08 2015年度打榜之数据备份硬件 数据备份排名
- 2024-11-08 解决Oracle数据库无法使用上下键的问题!
- 2024-11-08 oracle 11g r2 rac linux下 ntp问题
- 2024-11-08 数据中心最常见的服务器之一,戴尔机架式服务器家族原创图集
你 发表评论:
欢迎- 499℃几个Oracle空值处理函数 oracle处理null值的函数
- 494℃Oracle分析函数之Lag和Lead()使用
- 493℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 481℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 472℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 467℃【数据统计分析】详解Oracle分组函数之CUBE
- 453℃Oracle有哪些常见的函数? oracle中常用的函数
- 448℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
-
- Spring Boot跨域难题终结者:3种方案,从此告别CORS噩梦!
- 京东大佬问我,SpringBoot为什么会出现跨域问题?如何解决?
- 在 Spring Boot3 中轻松解决接口跨域访问问题
- 最常见五种跨域解决方案(常见跨域及其解决方案)
- Java Web开发中优雅应对跨域问题(java跨域问题解决办法)
- Spring Boot解决跨域最全指南:从入门到放弃?不,到根治!
- Spring Boot跨域问题终极解决方案:3种方案彻底告别CORS错误
- Spring Cloud 轻松解决跨域,别再乱用了
- Github 太狠了,居然把 "master" 干掉了
- IntelliJ IDEA 调试 Java 8,实在太香了
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)