已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
# YUM安装源请自行查找,需要注意,两台主备服务机器配置大体相同,但是个别参数不一样,切记!#安装编译库yum install cpp binutils glibc glibc-common glibc-devel gcc make tcl-devel.x86_64#编译安装REDISwget http:/download.redis.io/releases/redis-2.8.23.tar.gzcd /softtar zxvf redis-2.8.23.tar.gzmv redis-2.8.23 /usr/local/srccd /usr/local/src/redis-2.8.23#修改MAKE文件,修改对应的安装目录PREFIX?=/usr/local/redisvi /usr/local/src/redis-2.8.23/src/Makefilemakemake install#配置REDISmkdir -p /usr/local/redis/bin,conf,logs,data#配置REDIS系统环境变量vi /etc/profile.d/redis.sh# redis PATHexport PATH=/usr/local/redis/bin:$PATHsource /etc/profile.d/redis.sh#配置系统参数vi /etc/sysctl.confnet.core.somaxconn = 1024vm.overcommit_memory = 1sysctl -p#编辑REDIS参数及停止启动脚本vi /usr/local/redis/redis-start.shvi /usr/local/redis/redis-stop.shvi /usr/local/redis/conf/redis.confcd /usr/local/redischmod 700 redis_check.sh redis-start.sh redis-stop.sh#安装keepaliveyum install -y keepalived.x86_64cd /etc/keepalivedmv keepalived.conf keepalived.conf_bakvi keepalived.confvi /etc/sysconfig/keepalived#KEEPALIVED_OPTIONS=-DKEEPALIVED_OPTIONS=-D -d -S 0#配置脚本,生产环境需要注意将所有正常日志关闭vi /usr/local/redis/redis_check.shvi /etc/keepalived/scripts/master.shvi /etc/keepalived/scripts/backup.shvi /etc/keepalived/scripts/stop.shvi /etc/keepalived/scripts/fault.shcd /etc/keepalived/scriptschmod 700 *# Redis启动停止脚本/usr/local/redis/redis-start.sh/usr/local/redis/redis-stop.sh# 启动keepalive/etc/init.d/keepalived restart/usr/local/redis/bin/redis-cli -p 63791 -a Redis2176213$1e# Master服务配置文件 #配置文件内容# ./etc/keepalived/keepalived.conf #! Configuration File for keepalived#global_defs # notification_email # # notification_email_from Alexandre.Cassenfirewall.loc# router_id node3#vrrp_script chk_redis script /usr/local/redis/redis_check.sh#如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少;如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加;其他情况,维持原本prority的优先级。# weight -20 interval 1 #设置脚本执行的频率。3秒一次vrrp_instance VI_1 state BACKUP #state MASTER要设置恢复时不抢占,需要将主,从服务器的此项都设置成BACKUP,nopreempt才会生效。 interface eth0 virtual_router_id 51 priority 100 unicast_src_ip 1 unicast_peer 2 nopreempt #设置不抢占。在priority值比较高的服务器上设置即可。priority值比较低的服务器启动时,发现值高的服务器为master,自动不抢占。 advert_int 1 #advert_int的作用是巡检的次数。keepalived默认是在启动完成后3秒向state:MASTER切换。若此处设置成2,则是2*3=6秒后才开启切换。 authentication auth_type PASS auth_pass redisDb876 virtual_ipaddress 0 track_script chk_redis notify_master /etc/keepalived/scripts/master.sh #当keepalived切换成master时,会触发执行master.sh notify_backup /etc/keepalived/scripts/backup.sh #当keepalived切换成slave时,会触发执行slave.sh notify_fault /etc/keepalived/scripts/fault.sh #当keepalived出错时,会触发执行fault.sh notify_stop /etc/keepalived/scripts/stop.sh #当keepalived停止时,会触发执行stop.sh #配置文件内容# ./etc/keepalived/scripts/backup.sh #!/bin/bashRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=1REMOTEIP=2PORT=63791PASSWD=DQWa24zsPw8752PID=$#当此服务器的keepalived恢复成slave时,即虚拟IP切换到其他服务器时,将本机redis切换成role:slaveecho WARM-keepalived change to slave,change local redis to slave- $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master Being slave state. $LOGFILE 2&1#切换时,等待10秒,让对方同步数据(此时间要根据实际业务需要进行调整)echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master wait 3 sec for data sync from old master $LOGFILEsleep 3echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master data rsync from old mater ok. $LOGFILE#等数据同步完,再切换成role:slaveecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave Run SLAVEOF $REMOTEIP $PORT $LOGFILE$REDISCLI -p $PORT -a $PASSWD SLAVEOF $REMOTEIP $PORT $LOGFILE 2&1echo date +%Y-%m-%d:%H:%M:%S|$PID|state:slave slave connect to $REMOTEIP $PORT ok. $LOGFILEecho -complete!- #配置文件内容# ./etc/keepalived/scripts/fault.sh #!/bin/bashRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=1REMOTEIP=2PORT=63791PASSWD=DQWa24zsPw8752PID=$#当此服务器的keepalived出错时,将本机redis切换成role:slaveecho ERROR-keepalived is fault,change local redis to slave- $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master Being slave state. $LOGFILE 2&1#切换时,等待3秒,让对方同步数据(此时间要根据实际业务需要进行调整)echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master wait 10 sec for data sync from old master $LOGFILEsleep 3echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master data rsync from old mater ok. $LOGFILE#等数据同步完,再切换成role:slaveecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave Run SLAVEOF $REMOTEIP $PORT $LOGFILE$REDISCLI -p $PORT -a $PASSWD $REMOTEIP $PORT $LOGFILE 2&1echo date +%Y-%m-%d:%H:%M:%S|$PID|state:slave slave connect to $REMOTEIP $PORT ok. $LOGFILEecho -complete!- #配置文件内容# ./etc/keepalived/scripts/master.sh #!/bin/bashRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=1REMOTEIP=2PORT=63791PASSWD=DQWa24zsPw8752PID=$#当此服务器的keepalived恢复成master时,即虚拟IP切换到本机时,将本机的redis切换成role:masterecho WARM-keepalived change to master,change local redis to master- $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave $LOGFILE#先切换成role:slaveecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave Run SLAVEOF $REMOTEIP $PORT $LOGFILE$REDISCLI -p $PORT -a $PASSWD SLAVEOF $REMOTEIP $PORT $LOGFILE 2&1#同步数据echo date +%Y-%m-%d:%H:%M:%S|$PID|state:slave wait 10 sec for data sync from old master $LOGFILEsleep 3#等待3秒(此时间要根据实际业务需要进行调整),待数据同步完,再切换成role:masterecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave data rsync from old mater ok. $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master Run slaveof no one,close master/slave $LOGFILE$REDISCLI -p $PORT -a $PASSWD SLAVEOF NO ONE $LOGFILE 2&1echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master wait other slave connect. $LOGFILEecho -complete!- #配置文件内容# ./etc/keepalived/scripts/stop.sh #!/bin/shRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=1REMOTEIP=2PORT=63791PASSWD=DQWa24zsPw8752PID=$#当主服务器的keepalived停止时,将本机redis切换成role:slaveecho ERROR-keepalived stop,change local redis to slave- $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master Being slave state. $LOGFILE 2&1#切换时,等待10秒,让对方同步数据(此时间要根据实际业务需要进行调整)echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master wait 3 sec for data sync from old master $LOGFILEsleep 3echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master data rsync from old mater ok. $LOGFILE#等数据同步完,再切换成role:slaveecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave Run SLAVEOF $REMOTEIP $PORT $LOGFILE$REDISCLI -p $PORT -a $PASSWD SLAVEOF $REMOTEIP $PORT $LOGFILE 2&1echo date +%Y-%m-%d:%H:%M:%S|$PID|state:slave slave connect to $REMOTEIP $PORT ok. $LOGFILEecho -complete!- #配置文件内容# ./usr/local/redis/conf/redis.conf #daemonize yespidfile /usr/local/redis/data/redis.pid#bind 21port 63791requirepass DQWa24zsPw8752tcp-backlog 511timeout 600tcp-keepalive 0loglevel noticelogfile /usr/local/redis/logs/redis.logdatabases 10save 900 1save 300 10save 60 1000# memory # 500Mmaxclients 10000maxmemory 500000000maxmemory-policy volatile-ttlmaxmemory-samples 3stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yes# DB filedir /usr/local/redis/datadbfilename appserver.rdbslave-serve-stale-data yesslave-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noslave-priority 100masterauth DQWa24zsPw8752#Disable runrename-command FLUSHALL sadfgsdfgswe4cxg234srename-command FLUSHDB w354rscgvxzfdgtqwzdvrename-command CONFIG cf732qddfh762321dsar6rename-command EVAL or6xg5fda76jsaegf#rename-command KEYS dasd5asdffdgtqwzdvappendonly noappendfilename appendonly.aofappendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events # hash-max-ziplist-entries dont 1000hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-entries 512list-max-ziplist-value 64set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60# Config Connect . dont 100hz 30aof-rewrite-incremental-fsync yes #配置文件内容# ./usr/local/redis/redis_check.sh #!/bin/bashLOGDATE=date +%Y%m%dRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state_$LOGDATE.logLOCALIP=1REMOTEIP=2PORT=63791PASSWD=DQWa24zsPw8752PID=$ALIVE=$REDISCLI -p $PORT -a $PASSWD PINGif $ALIVE = PONG ; then echo INFOdate +%Y-%m-%d:%H:%M:%S :$LOCALIP local redis is health. $LOGFILE exit 0else echo ERRORdate +%Y-%m-%d:%H:%M:%S :$LOCALIP local redis is not health. $LOGFILE #当发现本地redis无法连接时,等待一秒后再进行一次检查。若恢复,则提示;若仍无法连接,则关闭本地keepalived,将虚拟ip漂移到另外一台服务器上。 sleep 1 ALIVE1=$REDISCLI -p $PORT -a $PASSWD PING if $ALIVE1 = PONG ;then echo NOTICEdate +%Y-%m-%d:%H:%M:%S :$LOCALIP local redis become health. $LOGFILE exit 0 else echo ERRORdate +%Y-%m-%d:%H:%M:%S :$LOCALIP local redis is error. $LOGFILE echo ERRORdate +%Y-%m-%d:%H:%M:%S :$LOCALIP shutdown local keepalived. $LOGFILE /etc/init.d/keepalived stop if $? != 0 ;then echo ERRORdate +%Y-%m-%d:%H:%M:%S :$LOCALIP keepalived shutdown error. $LOGFILE else echo INFOdate +%Y-%m-%d:%H:%M:%S :$LOCALIP keepalived shutdown completed. $LOGFILE fi exit 1 fifi #配置文件内容# ./usr/local/redis/redis-start.sh #!/bin/bashRPATH=/usr/local/redis#KPATH=/usr/local/keepalivedREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=1REMOTEIP=2$RPATH/bin/redis-server $RPATH/conf/redis.confif $? = 0 ;then echo INFOdate +%F/%H:%M:%S :$LOCALIP redis start successful. $LOGFILEelse echo ERRORdate +%F/%H:%M:%S :$LOCALIP redis start error. $LOGFILEfi #配置文件内容# ./usr/local/redis/redis-stop.sh #!/bin/bashRPATH=/usr/local/redis#KPATH=/usr/local/keepalivedLOGFILE=$RPATH/logs/redis-state.logLOCALIP=1REMOTEIP=2kill -9 ps -ef|grep /bin/redis-server|grep -v grep|awk print $2if $? = 0 ;then echo INFOdate +%F/%H:%M:%S :$LOCALIP redis shutdown completed! $LOGFILEelse echo INFOdate +%F/%H:%M:%S :$LOCALIP redis is not started. $LOGFILEfi # Slave服务配置文件 #配置文件内容# ./etc/keepalived/keepalived.conf #! Configuration File for keepalived#global_defs # notification_email # # notification_email_from Alexandre.Cassenfirewall.loc# router_id node3#vrrp_script chk_redis script /usr/local/redis/redis_check.sh#如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少;如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加;其他情况,维持原本prority的优先级。# weight -20 interval 1 #设置脚本执行的频率。1秒一次vrrp_instance VI_1 state BACKUP interface eth0 garp_master_delay 10 virtual_router_id 51 priority 90 unicast_src_ip 2 unicast_peer 1 #nopreempt advert_int 1 #advert_int的作用是巡检的次数。keepalived默认是在启动完成后3秒向state:MASTER切换。若此处设置成2,则是2*3=6秒后才开启切换。 authentication auth_type PASS auth_pass redisDb876 virtual_ipaddress 0 track_script chk_redis notify_master /etc/keepalived/scripts/master.sh #当keepalived切换成master时,会触发执行master.sh notify_backup /etc/keepalived/scripts/backup.sh #当keepalived切换成slave时,会触发执行slave.sh notify_fault /etc/keepalived/scripts/fault.sh #当keepalived出错时,会触发执行fault.sh notify_stop /etc/keepalived/scripts/stop.sh #当keepalived停止时,会触发执行stop.sh #配置文件内容# ./etc/keepalived/scripts/backup.sh #!/bin/bashRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=2REMOTEIP=1PORT=63791PASSWD=DQWa24zsPw8752PID=$#当此服务器的keepalived恢复成slave时,即虚拟IP切换到其他服务器时,将本机redis切换成role:slaveecho WARM-keepalived change to slave,change local redis to slave- $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master Being slave state. $LOGFILE 2&1#切换时,等待10秒,让对方同步数据(此时间要根据实际业务需要进行调整)echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master wait 3 sec for data sync from old master $LOGFILEsleep 3echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master data rsync from old mater ok. $LOGFILE#等数据同步完,再切换成role:slaveecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave Run SLAVEOF $REMOTEIP $PORT $LOGFILE$REDISCLI -p $PORT -a $PASSWD SLAVEOF $REMOTEIP $PORT $LOGFILE 2&1echo date +%Y-%m-%d:%H:%M:%S|$PID|state:slave slave connect to $REMOTEIP $PORT ok. $LOGFILEecho -complete!- #配置文件内容# ./etc/keepalived/scripts/fault.sh #!/bin/bashRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=2REMOTEIP=1PORT=63791PASSWD=DQWa24zsPw8752PID=$#当此服务器的keepalived出错时,将本机redis切换成role:slaveecho ERROR-keepalived is fault,change local redis to slave- $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:master Being slave state. $LOGFILE 2&1#切换时,等待10秒,让对方同步数据(此时间要根据实际业务需要进行调整)echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master wait 3 sec for data sync from old master $LOGFILEsleep 3echo date +%Y-%m-%d:%H:%M:%S|$PID|state:master data rsync from old mater ok. $LOGFILE#等数据同步完,再切换成role:slaveecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave Run SLAVEOF $REMOTEIP $PORT $LOGFILE$REDISCLI -p $PORT -a $PASSWD SLAVEOF $REMOTEIP $PORT $LOGFILE 2&1echo date +%Y-%m-%d:%H:%M:%S|$PID|state:slave slave connect to $REMOTEIP $PORT ok. $LOGFILEecho -complete!- #配置文件内容# ./etc/keepalived/scripts/master.sh #!/bin/bashRPATH=/usr/local/redisREDISCLI=$RPATH/bin/redis-cliLOGFILE=$RPATH/logs/redis-state.logLOCALIP=2REMOTEIP=1PORT=63791PASSWD=DQWa24zsPw8752PID=$#当此服务器的keepalived恢复成master时,即虚拟IP切换到本机时,将本机的redis切换成role:masterecho WARM-keepalived change to master,change local redis to master- $LOGFILEecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave $LOGFILE#先切换成role:slaveecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave Run SLAVEOF $REMOTEIP $PORT $LOGFILE$REDISCLI -p $PORT -a $PASSWD SLAVEOF $REMOTEIP $PORT $LOGFILE 2&1#同步数据echo date +%Y-%m-%d:%H:%M:%S|$PID|state:slave wait 10 sec for data sync from old master $LOGFILEsleep 3#等待3秒(此时间要根据实际业务需要进行调整),待数据同步完,再切换成role:masterecho date +%Y-%m-%d:%H:%M:%S|$PID|state:slave data rsync from old mater
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- java扫雷游戏课程设计
- 2025年兴业银行天津分行校园招聘备考题库含答案详解
- 2025西藏昌都澜沧江投资有限责任公司招聘1人考试核心题库及答案解析
- 2025贵州六枝特区人力资源和社会保障局招聘城镇公益性岗位2人备考核心题库及答案解析
- 2025年西藏革吉县财政局招聘财会监督人员的备考题库参考答案详解
- 2025云南保山隆阳区红十字会招聘公益性岗位人员1人笔试重点题库及答案解析
- 2025年智能仓储物流信息追溯系统在物流行业智能客服技术应用可行性报告
- 2026广西桂林市恭城瑶族自治县兵役登记考试备考题库及答案解析
- 2025年十堰市公安局武当山旅游经济特区分局招聘辅警备考题库参考答案详解
- 2025恒丰银行南京分行社会招聘29人考试重点题库及答案解析
- 电大专科《个人与团队管理》机考网考题库及答案
- 《学前教育学》课程教学大纲
- 2024年广东省深圳市罗湖区高一上学期期末化学试题及答案
- DB11∕T 1678-2019 城市轨道交通广告设施设置规范
- 2024新版(北京版)三年级英语上册单词带音标
- 工程维保及售后服务方案
- 医院科室主任的工作总结
- 附表:医疗美容主诊医师申请表
- 毕节市织金县化起镇污水处理工程环评报告
- 黑布林英语阅读初一年级16《柳林风声》译文和答案
- 河流动力学-同济大学中国大学mooc课后章节答案期末考试题库2023年
评论
0/150
提交评论