码迷,mamicode.com
首页 > 其他好文 > 详细

OGG维护优化脚本(二十二)-部署准备篇--脚本部署准备

时间:2017-06-19 17:06:54      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:oracle   脚本   shell   数据同步   goldengate   

很抱歉,脚本部署准备放在后面来讲

以下内容必须彻底配置完毕前面讲的所有脚本才会成功生效


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/bash
ggs1:!: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‘
#调用选择脚本 ggedit
alias 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结尾

脚本会获取 BeginEnd之间配置的所有表与需配置的表进行重复值匹配


而增加的表,会插入InsertEnd之间(AIX系统对sed版本的限制导致)


6 .进程信息注释

部分查询信息脚本需要通过进程信息注释来准确定位信息。

 

目前已知EXTRACT,PUMPREPLICATE三类进程中,将内容分为参数(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文件夹用于存放进程修改类脚本每次操作自动生成的备份文件


本文出自 “netsman” 博客,请务必保留此出处http://netsman.blog.51cto.com/5750076/1939848

OGG维护优化脚本(二十二)-部署准备篇--脚本部署准备

标签:oracle   脚本   shell   数据同步   goldengate   

原文地址:http://netsman.blog.51cto.com/5750076/1939848

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!