器量大者,福泽必厚
全部博文(587)
分类: LINUX
2015-11-26 18:38:15
Redis切换到codis:
遇到了3个问题
1:redis无法将数据无缝抽到codis ,解决方法如下:
./redis-port sync -f 127.0.0.1:6379 -t 10.10.x.25:19000 -n 4 -p 32 --sockfile=test.tmp --filesize=32GB 加入蓝色字体部分问题即可解决。
2:由于研发同事没有将配置完全修改,导致一部分数据依然写到原来的redis库中,为什么开始测试的时候是正常的?原因:当时redis-port进程在运行,由于它是个后台进程,可以动态监控redis里面key的变化情况,只要有该进程在,redis key发生了任何变化,就可以将key同步到codis里面去,故就算相关配置不修改,也不会影响网站的运行,后来将redis-port进程给关闭了,导致写入到redis里面的Key(不修改codis配置,数据就写入到redis里面)无法被同步到codis,造成了问题,后来修改为codis配置后,程序即可正常
3:在配置codis时遇到如下的报错:
[error]: dashboard already exists: {"addr": "localhost:18087", "pid": 29496}
需要到zookeeper里面清理这个节点:
[root@yw-0-0 keepalived]# cat deletedashboard.sh
/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181 <
rmr /zk/codis/db_datagroup/dashboard
EOF
官方给出的解决方法如下:##我就是由于自己关机导致dashboard没有被删除,故不得已必须通过脚本自行删除!
无论是proxy还是dashboard,都会在zk上注册自己的节点,同时在程序正常退出的时候会删掉对应的节点,但如果异常退出或试用kill -9 {pid}就会导致zk的节点无法删除,在下一次启动的时候会报“zk: node already exists”的错误。
因此关闭服务的时候直接用kill {pid}不要-9,同时如果无法启动并且确认没有其他运行中的进程占用zk上的节点,可以在zk上手动删除/zk/codis/db_test/dashboard 或/zk/codis/db_test/fence/{host:port}.
创建zk节点的目的: zk节点的目的是防止起两个dashboard