Mysql数据库同步实现

1、 设置Master服务器

server-id=1 
log-bin=/var/lib/mysql/mysql-bin

//为了使用事务的InnoDB在复制中最大的持久性和一致性,你应该指定innodb_flush_log_at_trx_commit=1,sync_binlog=1选项 
innodb_flush_log_at_trx_commit=1 
sync_binlog=1

2、 设置Slave服务器

Binlog_format=mixed

Max_allowed_packet=12M

Lower_case_table_names=1

Server-id = 8

Report-host=xxx.xxx.xxx.xxx

Report-user=replslave

Report-password=XXX

Log-bin=slave-bin.log

3、 用户信息同步

由于用户在创建视图等时候,会记录下创建视图的用户名密码。所以需要创建相同的用户名及主机地址

  1. A.      如果是可以锁定Master服务器的数据

a)        
锁定Master服务器

flush tables with read lock;

b)        
查询Binlog状态

show master status;

c)        
导出Master数据

mysqldump 
--default-character-set=utf8mb4 --opt -u admin --password=ILoveQihuohui!
-h Master地址 备份数据库 > bak.sql

重新打开主机Master写操作功能

unlock tables;

d)        
导入Master数据到Slave服务器

mysql -uroot -p --default-character-set=utf8mb4 dbname <
bak.sql

e)        
设置Slave服务器

stop  slave;

mysql>change master to master_host=‘192.168.1.2‘, 
->master_user=‘repl_user‘, 
->master_password=‘123456‘, 
->master_log_file=‘mysql-bin.000013‘, 
->master_log_pos=7863951;

start slave;

  1. B.      如果不可以锁定Master服务器的数据

a)        
查询Binlog状态

show master status;

b)        
导出Master数据

mysqldump 
--default-character-set=utf8mb4 --opt -u admin --password=ILoveQihuohui!
-h Master地址 备份数据库 > bak.sql

c)        
导入Master数据到Slave服务器

mysql -uroot -p --default-character-set=utf8mb4 dbname <
bak.sql

d)        
确认Binlog具体位置

需要找到附近位置,并定位到具体的sql语句

Show Binlog Events In ‘mysql-bin.000013‘ from 7863951

e)        
设置Slave服务器

stop  slave;

mysql>change master to master_host=‘192.168.1.2‘, 
->master_user=‘repl_user‘, 
->master_password=‘123456‘, 
->master_log_file=‘mysql-bin.000013‘, 
->master_log_pos=7863951;

start slave;

自动备份脚本:

需要创建一个自读用户,该用户需要有备份的数据库以下权限:

select、Lock Tables、Show View

脚本如下:

@echo off

set h=%time:~0,2%

set h=%h: =0%

set
"Ymd=%date:~,4%%date:~5,2%%date:~8,2%%h%"

md g:\db_backups\%Ymd%

"D:\xampp\mysql\bin\mysqldump"  --default-character-set=utf8mb4 --opt -u dev
--password=winbei888 -h 10.100.1.76 winbei_production >
g:\db_backups\%Ymd%\winbeidb.sql

"D:\xampp\mysql\bin\mysqldump"  --default-character-set=utf8mb4 --opt -u dev
--password=winbei888 -h 10.100.1.76 openfire >
g:\db_backups\%Ymd%\openfiredb.sql

g:\db_backups\7za.exe a -r
g:\db_backups\backdata\%Ymd%.zip g:\db_backups\%Ymd%\*

rd g:\db_backups\%Ymd%\ /S/Q

@echo
on

下载地址

时间: 2024-10-07 09:54:35

Mysql数据库同步实现的相关文章

MySQL数据库同步的实现

以下的文章主要向大家介绍的是MySQL数据库同步的实际操作步骤以及对实现MySQL数据库同步的实际应用代码与其在实际操作过程中值得我们大家注意的相关事项的描述,希望会给你带来一些帮助在此方面. 在网上我找了一下,大家都说的是这样:" MySQL从3.23.15版本以后提供数据库复制功能.利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能. MySQL数据库同步复制功能的设置都在MySQL的设置文件中体现.MySQL的配置文件(一般是my.cnf) 在unix环境下在/etc/MySQ

mysql数据库同步跳过临时错误[转]

mysql数据库同步跳过临时错误slave stop;set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;slave start; 几个跟热备有关的mysql命令:(需要在mysql命令行界面或query ) stop slave #停止同步 start slave #开始同步,从日志终止的位置开始更新. show slave status #查看同步状态 SET SQL_LOG_BIN=0|1 #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一

MySQL数据库同步小工具(Java实现)

近期公司做个报表系统,为了报表系统中复杂的查询条件,不影响线上业务系统的使用,研究了一下MySQL数据库同步,下面用Java代码实现MySQL数据库同步,以便自己查阅! ? 数据库同步实现功能点: 1.支持跨服务器跨库的多线程同步 2.每张表的同步有日志记录 3.每次同步记录数可配置 源码和具体的使用细则,可以到下载源码及使用说明?. ? 一.数据同步核心代码 ? ? ? 二.数据库同步多线程实现 ? ? ? ? 三.配置文件及读取配置文件代码 配置文件内容为: 读取配置文件的Java类为: ?

mysql数据库同步可以针对单张表同步吗?解决办法

mysql数据库同步可以针对单张表同步吗?第一个问题:mysql数据库同步可以针对单张表同步吗? 也就是说1.数据库A里面有a1,a2,a3三张表,数据库B里面只有一张a1表(A与B的a1的表结构式一样的)2.数据库B只同步数据库A中的a1表3.数据库A也要同步B的a1表 注:其实可以认为是数据库A与数据库B的a1表双向同步,即A数据库a1数据有改变,,B数据库a1也要相应改变,同理B数据库a1有改变,A数据库a1也要改变(Aa1<=>Ba1) 第二个问题:配置数据库同步linux与windo

mysql数据库同步部署

1.配置/etc/my.cnf文件 采取双机部署方式,两台机器的配置文件略有不同,如下图所示,server-id设置为不同的数字,auto_increment_offset一台机器设置为1,另外一台机器设置为2. 2.启动mysql服务 #service mysql start #chkconfig mysql on #/usr/bin/mysqladmin -u root password 'mysql.rzrk' 3.主备机配置 确认两台机器MYSQL服务都正确配置并成功启动,然后进行mas

不同服务器的mysql数据库同步

目标: A服务器上自建的数据库同步到B服务器上自建的数据库. 阿里云的RDS数据库A同步到B服务器上自建的数据库. A的数据库名为:mytest 基础:linux,会配置my.cnf 开始: 下面称前者A为主服务器,后者B为从服务器. 先在A服务器查看:sql语句:show master status; 得到File,Position 的值. 'mysql-bin.000039', '1538',  (这个后面要用到) 在B服务器,修改:/etc/my.cnf. 修改前,先停止mysql. 增加

Linux两台服务器mysql数据库同步

我们在做web系统部署的时候往往涉及到两台甚至多台数据库的备份,为了数据安全考虑(虽然说到底不过是一堆0 1,但是价值千金啊),所以我们还是乖乖做同步把! 1.准备两台Linux服务器(主.从) 2.安装好Mysql 3.在配置文件/etc/my.cnf(MySQL中为mysql.ini)修改开启二进制日志 log-bin=mysql-bin 修改方法:打开配置文件后在 [mysqld]中添加内容: server-id = 1 #确保在整个MySQL集群中唯一 log-bin=/var/log/

mysql数据库同步时数据一致性的配置优化

据丢失,而在生产环境中, 每一数据都是要尽量不等丢失,所以,为了提高主从数据一致性和稳定性,降低丢失数据的可能,就需要进行一些配置优化,使用一些特别的设定,使得数据安全更好,但是同时也会影响到mysql数据库的性能,所以就需要在安全和性能之间进行取舍.根据使用的具体环境,选择最适合自身的数据库安全设置.下面就一一介绍和列举几个对主从数据复制安全比较重要的几个配置参数:MySQL版本为5.61.master主库上设置:innodb_flush_log_at_trx_commit=0: log bu

mysql数据库同步

windows xp 下设置数据库同步 环境:两台windows xp系统机器,并且安装同一版本的数据库5.0.17 两台机器Ip A:173.26.100.62 B:173.26.100.61 此例为A为主服务器,B为从服务器,A服务器上的数据变更会更新到B服务器数据库当中步骤: 1 .A机器上创建数据库tsas,设置数据库访问权限,也就是创建一个用户和密码,目的在于在B机器上用创建的这个用户能够正常连接A机器的数据库. grant file on *.* to [email protecte

mysql数据库同步工具

? ?客服QQ1793040 ? 关于HKROnline SyncNavigator 注册机价格的问题 HKROnline SyncNavigator?8.4.1 企业版数据同步软件 自2009年第一个版本开发出来以来,经过8年不断地根据客户需求,加强功能,修复bug,现在已经具备强大的数据库同步功能,以前官方syncnavigator授权码的价格是2800元一套,授权码是绑定电脑硬件的,更换硬件或者电脑,软件无法正常运行,需要重新购买授权码. 今年官方团队有其他项目,没有重点开发市场,其中一个