技术开发 频道

利用龙芯迷你服务器对多个mysql 服务器进行实时备份

  1.远程mysql服务器的设置

  1.1 开复制备份的远程mysql帐号

  可以使用phpadmin建立备份帐号,注意要指定帐号的ip地址,

  复制还需要用到 REPLICATION SLAVE, REPLICATION CLIENT权限,要加上

  1.2 设置openvpn加密通道

  可以参照一般的openvpn的设置方法,主从服务器式,或者点对点的方式都可以,

  这里不做详细介绍,可以参阅网上文档。

  1.3 调整mysql服务器设置,生成binlog

  在my.cnf中添加如下设置:

  [mysqld]

  slave-skip-errors = all

  log-slave-updates #在本服务器的binlog中也存放其他的服务器的修改日志,否则,之存放本服务器的修改日志,

  server-id = 1 #根据需要修改,不能跟参与复制的其他的mysql服务器相同

  log_bin = /home/mysql/mysql-bin.log #binlog文件名,实际是mysql-bin.000xxx

  #这2个设置是为了防止2台互相复制的服务器产生关键字段的冲突用的,

  #如果他们用不同的偏移, 就可以实现一台服务器按照1,3,5,7..增加,

  #另一台服务器按照个2,4,6,8..增加

  #如果服务器的复制是单向的,就不需要这个2个设置项

  auto_increment_increment = 2 #自动增加的字段每次步进是2

  auto_increment_offset = 1 #自动增加的字段的偏移是1 ,

  #保留100天的binlog ,

  #如果binlog的数据量大, 并且不用保留这么多天,那么可以缩短

  expire_logs_days = 100

  max_binlog_size = 100M #单个binlog的大小

  binlog_do_db = net #需要记录binlog的库明

  binlog_do_db = news #需要记录的库名都列在这里.

  binlog_do_db = wikidb

  执行重启命令

  /etc/init.d/mysql restart

  1.4 关闭应用程序到mysql服务器的连接,并使用mysqldump导出每个库的完整的数据,并记录当前binlog的文件名和当前的文件偏移位置。

  /etc/init.d/apache2 stop #关闭应用程序

  mysqldump --host=127.0.0.1 -P3306 --add-drop-table -c \

  --default-character-set=utf8 --allow-keywords --force \

  --password=*** --user=root vpopmail |gzip>/tmp/vpopmail.sql.gz

  显示binlog的文件名和偏移: ls /home/mysql/mysql-binlog* -l

  -rw-rw---- 1 mysql mysql 12301207 2009-03-04 18:18 /home/mysql/mysql-bin.001943

  binlog当前日志文件名为mysql-bin.001943 偏移为12301207

0
相关文章