安装配置:
两台都安装上lighttpd,mysql,php(fastcgi),heartbeat,rsync(具体安装过程就不详细写出了)我都是通过yum安装的rpm包。
1 配置mysql主从备份
配置数据库互为同步(node1<->node2)
在node1中有数据库如下:
CREATE DATABASE backup_db;
USE backup_db;
CREATE TABLE `backup_table` (
`id` int(11) NOT NULLauto_increment,
`name` varchar(20) character setutf8 NOT NULL,
`sex` varchar(2) character set utf8NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Mysql主配置文件/etc/my.cf设置如下:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format forcompatibility with mysql 3.x
# clients (those using the mysqlclient10compatibility package).
old_passwords=1
relay-log=mysql-relay-bin
#服务器ID号
server-id=1
log-bin
##需要备份的数据库
binlog-do-db=backup_db
replicate-same-server-id
#指定主服务器IP
master-host=10.0.0.57
#指定在主服务器上可以同步的账号
master-user=ym
#指定账号对应的密码
master-password=111111
master-port=3306
#断点重试间隔时间
master-connect-retry=60
replicate-do-db=backup_db
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
完成以上配置后,将node1的mysql数据库的连接权限给node2,即为node2创建一个用户
GRANT REPLICATION SLAVE,REPLICATIONCLIENT,RELOAD,SUPER ON *.* TO 'ym'@'10.0.0.57' IDENTIFIED BY '111111';
在node2中有数据库如下:
CREATE DATABASE backup_db;
USE backup_db;
CREATE TABLE `backup_table` (
`id` int(11) NOT NULLauto_increment,
`name` varchar(20) character setutf8 NOT NULL,
`sex` varchar(2) character set utf8NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
注:node1与node2数据库结构一定要相同,否则无法构成同步。
Node2中/etc/my.cf配置如下:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format forcompatibility with mysql 3.x
# clients (those using the mysqlclient10compatibility package).
old_passwords=1
relay-log=mysql-relay-bin
#服务器ID号
server-id=2
log-bin
##需要备份的数据库
binlog-do-db=backup_db
replicate-same-server-id
#指定主服务器IP
master-host=10.0.0.56
#指定在主服务器上可以同步的账号
master-user=ym
#指定账号对应的密码
master-password=111111
master-port=3306
#断点重试间隔时间
master-connect-retry=60
replicate-do-db=backup_db
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
完成以上配置后,将node2的mysql数据库的连接权限给node1,即为node1创建一个用户
GRANT REPLICATION SLAVE,REPLICATIONCLIENT,RELOAD,SUPER ON *.* TO 'ym'@'10.0.0.56' IDENTIFIED BY '111111';
重启node1,node2数据库,
在mysql中可以通过以下命令来查看主从状态
show master status 查看master状态
show slave status 查看slave状态
show processlist G 查看当前进程
stop slave 暂时停止slave进程
start slave 开始slave进程
show slave status:此处slave_io_running,slave_sql_running都应该是yes,表示从库的I/O,Slave_SQL线程都正确开启。
到此mysql的双机互备已基本完成,在两台服务器的mysql数据库中任意添加数据看是否都可以同步到对端服务器上。
3 配置rsync同步网站目录文件
配置ssh无需密码登录
在node1上用ssh-keygen产生root用户的公钥和私钥
ssh-keygen
Generating public/private rsa keypair.
Enter file in which to save the key(/root/.ssh/id_rsa):
Enter passphrase (empty for nopassphrase):
Enter same passphrase again:
Your identification has been savedin /root/.ssh/id_rsa.
Your public key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
49:3a:87:11:11:15:1f:3d:21:c0:cf:e2:db:3b:d4:48root@FC8Server01
注意:一路直接回车就行。
进入/root/.ssh目录,将/root/.ssh/id_rsa.pub文件拷贝为node2服务器的/root/.ssh/authorized_keys中
Scp id_rsa.pub root@10.0.0.57:/root/.ssh/authorized_keys
测试 ssh 10.0.0.57,不再提示输入密码,则表示成功。
同样,在node2也做同样的ssh无密码登录配置。这样两台机器都可以相互无需密码ssh登录了。
配置rsync软件
修改/etc/rsync.conf
uid = root
gid = root
max connections = 4
pid file =/var/run/rsyncd.pid
lock file =/var/run/rsync.lock
log file =/var/log/rsyncd.log
hosts allow =10.0.0.57