OGG维护优化脚本(二十二)-部署准备篇--脚本部署准备
很抱歉,脚本部署准备放在后面来讲
以下内容必须彻底配置完毕前面讲的所有脚本才会成功生效
1.环境包安装
因为脚本通过shell以及perl实现。系统必须支持bshell才能满足运行环境
部分AIX服务器因为缺乏bshell需要专门安装rpm包
所以需要安装以下两个安装包
gettext-0.17-8.aix6.1.ppc.rpm
bash-4.2-9.aix6.1.ppc.rpm
而上传脚本是通过expect来实现交互式访问功能,因此部分linux和aix服务器
必须安装上expect的软件包。
2.调整OGG运维账户环境
Aix系统中部分账户默认调用ksh而非bsh 必须调整/etc/passwd文件以让其调用bshell
例
/etc/passwd
ggs2:!:507:301::/oracle/test1/ggs2:/usr/bin/bashggs1:!:204:301::/oracle/test1/ggs1:/usr/bin/bash
修改末尾值为 /user/bin/bash
3.修改系统配置文件 profile
因为部分脚本指令是通过alias别名调用,所以需要修改OGG系统账户的.profile文件或者.bash_profile文件
增加以下指令
alias edit='/bin/bash$HOME/ggscript/ggedit'#调用选择脚本 ggeditalias view='cd$HOME/ggserver&&(echo info all;echo exit)|./ggsci|grep -E"EXTRACT|MANAGER|REPLICAT"&&cd $HOME'#通过view指令获取所有进程状态alias add='/bin/bash$HOME/ggscript/ggadd/add.sh'#通过add指令执行快速加表脚本alias pcsinfo='/bin/bash $HOME/ggscript/ggupload/processinfo.sh'#通过pcsinfo指令调用详细进程信息查询脚本alias repeat='/bin/bash$HOME/ggscript/ggrepeat/repeat.sh'#通过repeat指令调用重复表查询脚本alias area='/bin/bash$HOME/ggscript/ggarea/area.sh'#通过area指令获取 区域查询脚本alias note='/bin/bash$HOME/ggscript/ggnote/note.sh'#通过note指令调用快速注释脚本alias start='/bin/bash$HOME/ggscript/ggoperat/start.sh'#通过start指令调用进程开启脚本alias stop='/bin/bash$HOME/ggscript/ggoperat/stop.sh'#通过stop指令调用进程停止脚本alias info='/bin/bash$HOME/ggscript/ggoperat/info.sh'#通过info指令调用进程状态查看脚本
4.进程命名以及部署规范
所有EXTRACT进程,必须以E开头
所有的发送进程,必须以P开头命名
所有的写入replicat进程,必须以R开头命名
便于脚本通过开头字符区分进程种类
所有机器的OGG程序必须部署于 $HOME/ggserver 路径下
脚本必须放置在$home/ggscript路径下
5.区域信息注释规范
因为OGG的所有进程配置文件都是存在 dirprm中,实际上我所编写的脚本,是对prm文件之直接操作
根据我实际的OGG数据同步配置情况,我们在进程中已经配置的表
是通过地市或者省份来进行分类区分,的以便于今后的维护分类
因此为了让 批量加表等脚本能够准确定位到表名,必须对所有prm表名进行注释
注释范例
--HeBei-Begin
TABLE FMTMP.MANTMP;
TABLE FMTMP.ADDRTMP_ALL;
TABLE FMTMP.TMP;
…………
…………
TABLE FMTMP.TMPPORT;
--HeBei-Insert
--HeBei-End
在每个区域类表前,以区域拼音(开头大写)-Begin开头
在结尾分别以同样的区域拼音-Insert和地市区域拼音(开头大写)-End结尾
脚本会获取 Begin和End之间配置的所有表与需配置的表进行重复值匹配
而增加的表,会插入Insert和End之间(AIX系统对sed版本的限制导致)
6 .进程信息注释
部分查询信息脚本需要通过进程信息注释来准确定位信息。
目前已知EXTRACT,PUMP,REPLICATE三类进程中,将内容分为参数(PARAMETER)和表(TABLE)两部分
注释配置,需要增加info类,用于标注该进程的相关信息
同时将参数和表内容用注释区分,便于今后其他脚本对信息资源的查询汇总,以及批量修改
注释配置规则
EXTRACT进程
EXTRACT XXXX
--[INFO#]
--source: --源端HOSTNAME
--sourceIP: 源端IP
--[#INFO]
--[PARAMETER#]
USERID ggs@…………
…………
--[#PARAMETER]
--[TABLE#]
TABLE XX.XXXXXX;
TABLE XX.XXXXXX;
--[#TABLE]
投递进程
EXTRACT XXXX
--[INFO#]
--source:源端主机名
--sourceIP:源端IP
--target:目标端主机名
--targetIP:目标端IP
--defsfile: dirdef下的定义文件
--defprm:dirprm下的定义配置文件
--[#INFO]
--[PARAMETER#]
RMTHOST…………
…………
--[#PARAMETER]
--[TABLE#]
TABLE XX.XXXXXX;
TABLE XX.XXXXXX;
--[#TABLE]
REPLIAT进程
REPLICAT XXXXXX
--[INFO#]
--source:源端主机名
--sourceIP:源端IP
--target:目标端主机名
--targetIP:目标端IP
--defsfile: dirdef下的定义文件
--[#INFO]
--[PARAMETER#]
USERID ggs@.......
………………
--[#PARAMETER]
--[TABLE#]
MAP XXXX.XXXXX, TARGET XXXXX.XXXXX
--[#TABLE]
7.定义文件信息注释
定义文件自动上传脚本,需要获取发送定义文件的目标端IP,以及路径账户等信息,才能正常的自动生成和发送。
而这类信息需要准确配置dirprm内的定义配置文件中
配置范例
--[INFO#]
--RELEASE:10.4 GG定义文件版本
--TARGET:defzlzxsz 对应系统信息文件内配置的主机名,该信息需要统一协调
--[#INFO]
DEFSFILE ./dirdef/xxxxx 所有的定义文件配置路径必须修改为./dirdef/xxxxx,同时后端不要加其他参数。
USERID…..
--[TABLE#]
TABLE XXXXX
TABLE XXXXX
--[#TABLE]
8.计划任务配置
定义文件自动下发和系统进程信息上传需要通过计划任务自动执行
23 * * * * /bin/bash $HOME/ggscript/ggdef/resend.shdefzlzxdg.prm > $HOME/gglog/ggdef/resend.log
该段根据具体定义配置文件名自行修改
30 * * * * /bin/bash$HOME/ggscript/ggupload/pcsinfoupload.sh >$HOME/gglog/ggupload/pcsinfoupload.log
9.备份文件夹创建
在$HOME/ggserver/dirprm和 $HOME/ggserver/dirdef下创建bak文件夹用于存放进程修改类脚本每次操作自动生成的备份文件