网站 mysql 备份,mysql网站程序以及数据库实时备份方案

d631f254e6b1137139338392034ceaba.png

Mysql1和mysql2都配置lamp环境,这边就不在叙述,网站默认路径 /var/www/html/

一:在mysql1上的安装配置(网站程序在mysql1)

1.首先下载并且安装inotify,rsync

Inotify的安装

[root@mysql1 ~]# tar zxvf inotify-tools-3.14.tar.gz

[root@mysql1 ~]# cd inotify-tools-3.14

[root@mysql1 inotify-tools-3.14]# ./configure

[root@mysql1 inotify-tools-3.14]# make

[root@mysql1 inotify-tools-3.14]# make install Rsync的安装

[root@mysql1 ~]# tar zxvf rsync-3.0.8.tar.gz

[root@mysql1 ~]# cd rsync-3.0.8

[root@mysql1 rsync-3.0.8]# ./configure

[root@mysql1 rsync-3.0.8]# make

[root@mysql1 rsync-3.0.8]# make install 2.配置ssh认证,目的是为了实时同步的时候不需要输入密码,在服务器端执行ssh-kengen命令生成公钥

d631f254e6b1137139338392034ceaba.png

然后在mysql2(192.168.2.3)上建立.ssh目录

[root@mysql2 ~]# mkdir /root/.ssh 并回到mysql1(192.168.2.2)上拷贝公钥到客户端并重命名为authorized_keys

d631f254e6b1137139338392034ceaba.png

配置实时同步的脚本,我的脚本路径放到了网站根目录下,为了以后备份方便

[root@mysql1 html]# vi rsync.sh

#!/bin/sh

src=/var/www/html/

des=/var/www/html/

ip=192.168.2.3

inotifywait -mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -e modify,delete,create,attrib ${src} | while read

file

do

for i in $ip

do

/usr/local/bin/rsync   -aP   --delete  $src root@$ip:$des

done

done

[root@mysql1 html]# chmod 755 rsync.sh 在服务端修改,创建文件,相当于一个动作会触发inotify,如果没有动作,默认是不同步。

测试,在后台运行rsync.sh

[root@mysql1 html]# ./rsync.sh &

[1] 8868 然后创建一个文件

[root@mysql1 html]# mkdir ceshi 可以看到网站目录以及新创建的ceshi目录全部开始同步

ae9394dcee860d4eb679f167a4753eb6.png

现在我们在192.168.2.3上验证

ae9394dcee860d4eb679f167a4753eb6.png

然后在192.168.2.2上删除ceshi这个目录

ae9394dcee860d4eb679f167a4753eb6.png

192.168.2.3上则同步成功

ba0fd330b693b4208b19ff79d542acbe.png

二.配置mysql主从

mysql1为主配置如下

修改mysql配置文件添加

[root@mysql1 html]# vi /etc/my.cnf

server-id=1

log-bin=mysql-bin 然后重启mysql服务让修改的配置生效

[root@mysql1 html]# service mysqld restart 登录mysql,在mysql中添加一个backup的账号,并授权给从服务器

[root@mysql1 html]# mysql -uroot -p

Enter password:

mysql> grant replication slave on *.* to 'backup'@'192.168.2.3' identified by 'backup';

Query OK, 0 rows affected (0.02 sec) 3)、查询主数据库状态,并记住FILE及Position的值,

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      106 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec) 在从服务器的配置(192.168.2.3)

[root@mysql2 html]# vi /etc/my.cnf

server-id=2

log-bin=mysql-bin 然后重启mysql服务让修改的配置生效

[root@mysql2 html]# service mysqld restart

[root@mysql2 html]# mysql -uroot -p

Enter password:

mysql>slave stop;

mysql>change master to

master_host='192.168.2.2',master_user='backup',master_password='backup',master_log_file='mysql

bin.000001',master_log_pos=106;

mysql>slave start; 检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常

mysql> show slave status\G

ba0fd330b693b4208b19ff79d542acbe.png

验证配置是否正常,mysql主从能否正常复制

在主数据库上新建一个linuxpub_phpbb库,并且在库中导入数据库文件

[root@mysql1 html]# mysql -uroot -p

mysql> create database linuxpub_phpbb;

Query OK, 1 row affected (0.05 sec)

mysql> use linuxpub_phpbb;

Database changed

mysql> source /root/1.sql

Query OK, 0 rows affected (0.03 sec) 查看数据库是否存在

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxpub_phpbb     |

| mysql              |

| test               |

+--------------------+

4 rows in set (0.00 sec)

在从数据库上验证

[root@mysql2 html]# mysql -uroot -p

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| linuxpub_phpbb     |

| mysql              |

| test               |

+--------------------+

4 rows in set (0.10 sec) 数据库同步成功

这时配置完成,如果mysql1服务器挂掉,只需要把域名解析到mysql2上即可。然后我们就有时间来恢复mysql1了并不

误网站的运行。同步数据使用内网ip既节省了托管带宽费用又提高了数据安全性和传输速率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值