打补丁遇到的常见问题整理
之前打补丁遇到了一些问题,下面对这些问题做一个总结。
1、操作系统参数配置;
linux:
cat /etc/sysctl.conf
aix:
smitty
操作系统参数配置不当会导致很多问题,知识点也很丰富,此篇暂不展开
2、udev配置
cat /etc/udev/rule.d/*permissions.rules
检查是否绑定scis_id,如果scis_id未绑定,需要评估是否能重启系统。
打补丁过程中可能调用udev,索引udev的配置一定要确认没有问题
3、操作系统crontab配置
crontab –l
停机时间定时任务无法运行,需要评估风险
4、listener、tnsnames、sqlnet文件配置
lsnrctl status
cd /grid/app/12.1.0/grid/network/admin/
cat listener.ora
cat sqlnet.ora
cat tnsnames.ora
特别要确认sqlnet配置,各节点是否一致,是否有异常配置(已踩坑)
补丁实施失败
集群异常,无法正常启动
原因就是sqlnet中参数配置极不合理
需要屏蔽sqlnet中的参数:(SQLNET.AUTHENTICATION_SERVICES = (NTS))
5、检查磁盘目录权限(先确认目录位置)
ls -lrt /dev/oraasm-mpath*
另,补丁实施完后需要再次检查磁盘权限是否正确,磁盘权限可能发生变化(已踩坑)
6、检查用户权限
id oracle
id grid
oracle、grid用户需要磁盘的属组(已踩坑)
一般来说oracle的组是没有asmadmin的,但是12c补丁打完后还是会出现permission问题,添加过asmadmin就可以读盘了。
这个问题的比较奇怪,因为以前装了很多11g的都是这种权限(oracle无asmadmin),12c也可以,但是打过补丁就不行了
7、oracle文件
ls –l $ORACLE_HOME/bin/oracle
此文件权限应为oracle:asmadmin 6751,补丁实施完后可能会发生变化。权限不对集群会起不来。
8、ssh认证
oracle,grid的ssh 互联测试
oracle和grid密码都可能过期,导致ssh认证会失效。此问题不会影响rac的运行,但是在打补丁的时候会出现认证失败,无法继续打补丁,需要重新认证或者重新输入密码(已踩坑)。
9、12c
如果是12c opatchauto方式打补丁,可能会遇到bug(如:bug 20669114),12c打补丁最好编写好自动和手动两种方案。(已踩坑)
10、 multipath
查看multipath是否绑定wwid,如下示例:
cat /etc/multipath.conf
blacklist {
wwid 22fd530e000d00000
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
}
defaults {
user_friendly_names yes
polling_interval 10
queue_without_daemon no
flush_on_last_del yes
checker_timeout 120
}
devices {
device {
vendor "MicroSAN"
product "OracleRAC12c"
path_grouping_policy group_by_prio
path_selector "round-robin 0"
no_path_retry 30
prio alua
path_checker tur
hardware_handler "0"
failback 15
prio_callout "/sbin/mpath_prio_alua /dev/%n"
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
}
}
multipaths{
multipath {
wwid 3600b34289ffa531da74dd6f4cd0000dd
alias asm_fra1
}
multipath {
wwid 3600b34282c651fcdf643d954dd0000dd
alias asm_fra2
}
multipath {
wwid 3600b3421f42e676d7144d8f23d0000dd
alias asm_mgmt1
}
绑定了wwid和alias,这样就是最正确的
11、 readme
打补丁之前请仔细研读readme,尽量做好1:1测试。