存档

文章标签 ‘同步’

阿里云aliyun使用rsync同步不执行的解决方案

2020年4月20日 没有评论

阿里云aliyun使用rsync同步不执行的解决方案:

当我们ubuntu配置rsync实现2台服务器数据同步功能的时候,在阿里云2台服务器之前使用的时候,可能会导致sh脚本无法执行,原因是因为ping不同,经过排查是rsync使用的默认端口873没有在安全组里面添加

所以打开阿里云的每台服务器的安全组,将端口873设置为允许即可(在设置ip的时候,只要填写另外一台的外网ip和内网ip即可)

ubuntu配置rsync实现2台服务器数据同步功能

2018年5月29日 没有评论

先阅读:http://www.zhanghongliang.com/article/1416

源自服务器ip:192.168.1.100
备份服务器ip:192.168.1.101

源服务器需要备份的目录:/www/webroot
备份到备份服务器目录:/www/webroot/backup

============源自服务器配置=============

1.ubuntu 14.04默认已安装rsync,rsync服务默认不是启动的,开启rsync服务

sudo vim /etc/default/rsync
RSYNC_ENABLE=true #false改true

2.修改配置文件(配置文件/etc/rsync.conf默认不存在,需要手动创建;)

sudo cp -r /usr/share/doc/rsync/examples/rsyncd.conf /etc/rsyncd.conf
sudo vim /etc/rsyncd.conf

内容替换成下面内容,并改变相关参数

# sample rsyncd.conf configuration file

# GLOBAL OPTIONS

#motd file=/etc/motd
#log file=/var/log/rsyncd #根据需要是否开启
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
syslog facility=daemon
#socket options=

# MODULE OPTIONS

[my_rsync_bk] #名字可以任意命名,只要和备份服务器中的sh脚本中的rsync命令中的名称一致(请注意:可以复制多个次片段,更改其中的path和host allow,从而实现不同目录不同时间段进行复制,不同时间段由备份服务器sh脚本执行)

comment = public archive
path = /www/webroot #源服务器中要备份的路径(注意,如果这里面有文件是软连接的话是无法同步的)
use chroot = no #是否限定在该目录下,默认为true,当有软连接时,需要改为fasle,如果为true就限定为模块默认目录
# max connections=10 #单次最大连接数
lock file = /var/lock/rsyncd
# the default for read only is yes…
read only = yes #是否只读,源服务器建议设置为yes
list = yes
uid = root #以哪个用户的身份来传输
gid = root #以哪个组的身份来传输
# exclude =
# exclude from =
# include =
# include from =
auth users = user_rsync #rsync连接时的用户名,要和客户端rsync的命令一致
secrets file = /etc/rsyncd.secrets #需要使用的密码文件位置
strict modes = yes
hosts allow = 192.168.1.101 #运行的客户端ip
# hosts deny =
ignore errors = yes
ignore nonreadable = yes
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
timeout = 600 #超时时间,秒
refuse options = checksum dry-run
dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.rar *.gzip

3.创建一个密码文件

sudo vim /etc/rsyncd.secrets
内容:user_rsync:123 #用户名:密码
sudo chmod 0600 /etc/rsyncd.secrets
sudo service rsync restart

============备份服务器配置=============

sudo vim /etc/default/rsync
RSYNC_ENABLE=true #false改true

sudo service rsync restart

配置定时任务:
sudo vim /etc/crontab
*/1 * * * * root /home/qibang/auto_rsync.sh #每分钟执行这个程序

配置密码文件
sudo vim /etc/rsync.pwd
内容:123 #与服务端密码要一致
sudo chmod 0600 /etc/rsync.pwd

auto_rsync.sh内容:

#!/bin/bash
ROOT_UID=0
E_NOTROOT=67
if [ “$UID” -ne “$ROOT_UID” ]
then
echo “Must be root to run this script”
exit $E_NOTROT
fi

rsync -a –password-file=/etc/rsync.pwd user_rsync@192.168.1.100::my_rsync_bk /www/webroot/backup
rsync -a –delete –password-file=/etc/rsync.pwd user_rsync@192.168.1.100::my_rsync_bk /www/webroot/backup

sh权限:
sudo chmod +x auto_rsync.sh

sudo service cron restart

说明:如果需要rsync限速,可以增加参数–bwlimit=1024(1024可以理解为1M/s=8MBit/s,如果我设置为1024*3,那就是传统机房中说的24MBit/s左右)

具体遇到问题可以在实践中调试:文本

分类: ubuntu高手 标签: , ,

mysql设置主从同步【亲测可用】

2014年9月29日 没有评论

假定,自动复制的mysql:

IP为:207.198.xxx.xxx
用户为:master_copy
密码为:master_copy~!@#$~

———————–

主服务配置:

1,配置my.ini 文件
server-id=1
log-bin=mysql-bin
binlog-do-db=test
binlog-do-db=test1(如果有多个数据库,可以再加行)

2,创建新用户
grant replication slave,file on *.* to ‘master_copy’@’%’ identified by ‘master_copy~!@#$~’;

3,重启mysql

———————–

从服务器配置:

1,配置my.ini 文件
server-id=2
slave-skip-errors=all(建议加上,比如主服务器mysql突然死了,再开机,会造成从的同步不了)
binlog-do-db=test
binlog-do-db=test1(如果有多个数据库,可以再加行)
【注意:要写在mysqld的后面,linux】

2,重启mysql

3,mysql命令:
stop slave;

4,设置自动同步用户
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;(表示跳过错误)
change master to master_host=”207.198.xxx.xxx”,master_user=”master_copy”,master_password=”master_copy~!@#$~”;

5,启动
slave start;

6,检测:
show slave status \G;

显示:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
即可

【说明:slave-skip-errors=all和SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1之后,即便辅mysql服务器重启服务,也可以实现同步,所以不用担心了。】

————————– ————————–

另外附上一些有参考价值的命令:

slave-skip-errors
参考:http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#option_mysqld_slave-skip-errors

flush logs;
reset master;
reset slave all;

————————–

另外,如果从服务器报错: Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’

当然,和 slave-skip-errors=all设置有关。

解决方法:

在主mysql那边,执行:
flush logs;
show master status;
记下File, Position。

在从mysql端,执行:
CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000025′,MASTER_LOG_POS=354;
slave start;
show slave status \G;

一切正常。

分类: mysql优化 标签: ,
css.php