Mysql主从复制配置日志服务器

如果配置主从,从库需要读取的是比较旧的日志,而这些日志没有被主服务器操作系统缓存,必须从磁盘中进行读取,那么可能会导致大量的磁盘读写,从而严重影响数据库繁忙的生产系统,可以考虑的办法是不要直接从主库中进行日志传递,而是专门搭建一个日志服务器。

配置守完日志服务器之后,把从库索取的日志文件放到日志服务器中,然后再从这个日志服务器进行同步。

我们也可以使用日志服务器来进行时间点恢复,利用复制来进行时间点恢复不是用mysqlbinlog来进行,注意原因如下:

* 复制是被久经考验的,而mysqlbinlog则不是那么可靠。

* 复制的速度更快。

* 复制可以更方便地查看进度。

* 复制有更多控制,更容易处理复制错误,也可以过滤事件。

配置日志服务器进行时间点恢复的步骤如下:

1) 部署安装。

下载MySQL二进制官方安装包。

wget mysql5.1.58-linux-x86_64-glibc23.tar.gz

下载sandbox,创建安装用户。

​wget https://launchpad.net/mysql-sandbox/mysql-sandbox-3/mysql-sandbox-3/+download/mysql-Sandbox-3.0.28.tar.gz

useradd sandbox

usermod -G mysql sandbox
​

解压到目录/home/sandbox/pkgs/mysql-Sandbox-3.0.28/,进行安装。注意不要将解压的二进制包的目录删除了。

# as normal user

export PATH=$HOME/usr/local/mysql/bin:$PATH

##export PERL5LIB=$HOME/usr/local/lib/perl5/site_perl/5.8.8

perl Makefile.PL PREFIX=$HOME/local/sandbox

make

make test

make install

将/home/sandbox/local/sandbox/bin路径添加到PATH变量。

执行如下命令安装MySQL实例。

make_sandbox /home/sandbox/pkgsmysql5.1.58-linux-x86_64-glibc23.tar.gz

安装成功后,/home/sandbox/sandboxs/msb_5_1_58下同时生成了很多便于管理的脚本,如start、stop、use等。

配置字符集,并添加日志临时目录(默认生成的实例是没有日志的)。

./stop

修改配置文件

[client]

default-character-set = utf8

[mysqld]

character-set-serve = utf8

default-storage-engine=innodb

./start

./use

> status

2) 以下命令将查找最近的二进制文件,并且将日志传递到sandbox主机,准备测试。

find ./ -type f -name "mysql-bin.*" -newer mysql-bin.025050 \xargs ls -lrt > /tmp/all_file.txt

scp -P 9922 -p `cat /tmp/all_file.txt` sandbox@11.11.11.11:/home/sandbox/mysqllog_tmp

3) 配置日志服务器。

通过以上步骤,日志目录放在/home/mysql/mysqllog_tmp处,我们可运行如下命令生成日志索引文件mysql-bin.index。

cd /home/sandbox/mysqllog_tmp

ls -1 /home/sandbox/mysqllog_tmp/mysql-bin.[0-9]* > mysql-bin.index

./stop

修改配置文件my.sandbox.cnf,添加如下配置项。

log_bin = /home/sandbox/mysqllog_tmp/mysql-bin

log_bin_index = /home/sandbox/mysqllog_tmp/mysql-bin.index

./start

启动成功。

./use

> show binary logs

4) 配置复制用户

./use --user=root

> GRANT REPLICATION SLAVE ON *.* TO 'rsandbox'@'10.%' IDENTIFIED BY 'rsandbox';

5) 配置主从同步,进行时间点恢复,恢复到指定时间。

基本步骤如下:

向从库导入一份历史备份,配置主人同步,然后应用日志服务器的日志,我们可以设置同步到某个时间点。可使用如下命令,同步到某个指定的位置。

START SLAVE [SQL_THREAD] UNTIL MASTER_LOG_FILE = 'log_name', MASTER_LOG_POS=log_pos

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若水如斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值