mysql数据库镜像

1. 说明

  mysql 数据库镜像是将主数据库内容镜像备份到从数据库,当出现主数据库错误可以及时用从数据库顶替或者从从数据库回复数据的一种方式。

2. 配置

  配置主从镜像,需要分别配置主数据库和从数据库的配置文件,然后重启数据库才能生效。

2.1 主数据库配置

2.1.1 数据库配置

停数据库

#mysql.server stop
 

数据库配置文件,通常为 /etc/my.cnf

#vi /etc/my.cnf
 

找到 server-id 配置项,一般在 [mysqld] 配置下

增加:

server-id=1

log-bin=/var/db/mysql/master.log //BIN日志路径

#binlog-do-db=要同步的数据库名称  //不写就同步全部。如果备份多个数据库,重复设置这个选项即可

#binlog-ignore-db = mysql //忽略的数据库,如果不备份多个数据库,重复设置这个选项即可

 启动数据库

#mysql.server start

mysql> show master status;//查看主服务器状态
 

2.1.2 创建从数据库用户

在主服务器上创建从服务器同步数据要的帐号,如果多台,建议统一帐号便于管理。

一般创建帐号命令如下:

grant replication slave,reload,super,select on *.* to "用户名"@"从数据库地址" identified by "密码"
 

其中红色部分为帐号权限,蓝色部分为需要自行定制的帐号密码已经从数据库服务器 IP 地址

这一步也可以通过 phpadmin 进行配置

2.2 从数据库配置

停数据库

#mysql.server stop
 

#vi /etc/my.cnf

找到 server-id 配置项,一般在 [mysqld] 配置下

增加:

server-id=2

master-host=主数据库服务器地址

master-user=连接主服务器的帐号

master-password=连接主服务器的密码

master-port=3306

master-connect-retry=60

#replicate-do-db=要同步的数据库 //如果备份多个数据库,重复设置这个选项即可

#replicate-ignore-db=不同步的数据库 //如果不备份多个数据库,重复设置这个选项即可

 启动数据库:

#mysql.server start

mysql> show slave status G; //查看从数据库状态
 

3. 数据镜像

3.1 rsync 同步数据

将主数据库目录下数据库文件拷贝到从数据库目录下,可以通过 rsync 或者通过 scp 等方式拷贝,这里建议使用 rsync 同步

配置主数据库服务器 rsync

#apt-get install rsync

 编辑配置文件

#vi /etc/rsyncd.conf

 将下面内容加入进去配置好:

uid = root

gid = root

use chroot = no

max connections = 50

syslog facility = local5

pid file = /var/run/rsyncd.pid

log file = /var/log/rsyncd.log

 

[访问的名称]

        path = 要同步的数据库目录路径

        comment = 说明

        hosts allow =  允许的访问地址
 

配置从数据库 rsync

#apt-get install rsync
 

同步数据:

登陆主服务器锁库:

mysql> FLUSH TABLES WITH READ LOCK;
 
#rsync –av 主服务器地址 :: 访问的名称   从服务器数据库目录

 

例如:

#rsync –av 202.205.109.1::db3  /home/mysql/db3/
 

完成后解锁:

登陆主数据库解锁:

mysql>UNLOCK TABLES;
 

3.2 数据库命令同步数据

当配置好主和从数据库后,先主数据库服务器表:

登陆主服务器锁库:

mysql> FLUSH TABLES WITH READ LOCK;

 登陆从数据库运行:

mysql>load data from master;
 

这个过程很慢,根据数据库大小不同,镜像时间不同,不建议使用,完成后解锁

登陆主数据库解锁:

mysql>UNLOCK TABLES;
 

4. 测试

在主库新建一个表或者创建个数据库,到从库查看,并查看下日志和运行状况等,如果没有问题表示成功

 

mysql建立镜像数据库- - Tag: mysql建立镜像数据库 环境介绍:主库 192.168.0.205 从库 192.168.0.206 mysql版本:4.1.13a 1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加 server-id=1 log-bin=binlog_name 2、主库增加用户,用于从库读取主库日志。 grant replication slave,reload,super on *.* to 'slave'@'192.168.0.206' identified by '123456' 3、从库连接主库进行测试。 /opt/mysql/bin/mysql -u slave -p -h 192.168.0.205 4、停从库,修改从库/etc/my.cnf,增加选项: [mysqld] server-id=2 master-host=192.168.0.205 master-user=slave master-password=123456 5、启动从库,可以进行主从库数据同步 /opt/mysql/share/mysql/mysql start /opt/mysql/bin/mysql -u root -p mysql>load data from master; 说明:这一步不这么做也可以,用数据库倒入或者直接目录考过来也行。 6、进行测试: 主库创建表, mysql>create database sampdb; mysql>create table new (name char(20),phone char(20)); mysql>insert into new ('lhj','60549391'); 打开从库,察看: /opt/mysql/bin/mysql -u root -p mysql>show database; mysql sampdb test mysql>use sampdb; mysql>show tables; new 说明主从数据库创建成功。 7、主从数据库相关命令: slave stop; slave start ; 开始停止从数据库。 show slave status\G; 显示从库正读取哪一个主数据库二进制日志 purge master logs to 'binlog.000004';C此命令非常小心,删除主数据库没用的二进制日志文件。如果误删除,那么从库就没有办法自动更新了。 change master; 从服务器上修改参数使用。 如果数据库表是myisam类型,并且权限够 grant replication slave,reload,super on *.* to 'slave_user'@'host' identified by 'slave_pass' 也可以用load data from master命令,建立从数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值