Centos6.3是mysql数据库主从复制备份笔记(1/2)

 

MySQL主从复制结构是基于mysql bin-log日志基础上,从库通过打开IO进程收到主库的bin-log日志增量

信息,并保存到本地relay log,而后再通过打开MYSQL进程从relay log上获取的增量信息并翻译成SQL语

句后写到从数据库。

主从复制结构,实际上可以实现两个功能:

1.从库充当主库的数据库备份实例

2.读写分离,主库负责正常读写数据,从库只负责读数据

实际生产环境,因为很多应用实际读数据库的次数远大于写数据库的次数,所以在项目开发初期,编写

程序时做一个判断,对所有读的操作全部推到从库,若从库无法获取数据,则再向主库获取数据,从而

在一定意义上实现读写分离,缓解主库的IO压力。

所以生产环境下推荐使用这种架构。

系统环境:centos6.3 x64

数据库:  mysql-5.6.10

mysql master:192.168.100.90

mysql slave:192.168.100.91

 

MySQL主从复制结构是基于mysql bin-log日志基础上,从库通过打开IO进程收到主库的bin-log日志增量

信息,并保存到本地relay log,而后再通过打开MYSQL进程从relay log上获取的增量信息并翻译成SQL语

句后写到从数据库。

主从复制结构,实际上可以实现两个功能:

1.从库充当主库的数据库备份实例

2.读写分离,主库负责正常读写数据,从库只负责读数据

实际生产环境,因为很多应用实际读数据库的次数远大于写数据库的次数,所以在项目开发初期,编写

程序时做一个判断,对所有读的操作全部推到从库,若从库无法获取数据,则再向主库获取数据,从而

在一定意义上实现读写分离,缓解主库的IO压力。

所以生产环境下推荐使用这种架构。

系统环境:centos6.3 x64

数据库:  mysql-5.6.10

mysql master:192.168.100.90

mysql slave:192.168.100.91

 

一.部署环境:

1.关闭iptables和SELINUX

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------

2.安装配置mysql传送门:http://www.showerlee.com/archives/6

二.主mysql配置:(mysql master)

修改mysql配置文件:

# vi /etc/my.cnf

添加:

-----------------

# Replication Master Server

# bin日志路径

log-bin = /usr/local/mysql/log/bin.log

# 服务器ID号

server-id = 1

# 忽略mysql系统库复制

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

------------

重启服务

# service mysqld restart

登录mysql后台:

# mysql -u root -p123456

查看此刻登录账号:

> select user();

在master为slave添加同步帐号:

> grant replication slave on *.* to 'slave'@'192.168.100.91' identified by '123456';

查看创建的用户:

> select user.host from mysql.user;

查看权限:

> show grants for 'slave'@'192.168.100.91';

mysql锁表只读(其他账户登录mysql后无法进行写表操作,防止备份数据库后,主mysql表更新,导致和

从数据库内容不一致)

> flush tables with read lock;

查看锁表倒计时时间:

> show variables like '%timeout%';

------------------------

....

wait_timeout                | 28800

------------------------

将master的数据库表全部备份导出,并传送到slave服务器上。

# /usr/local/mysql/bin/mysqldump -u root -p123456 --opt  --flush-logs  --all-database >

/root/allbak.sql

# cd ~

# scp allbak.sql root@192.168.100.91:/root

查看mysql偏移量(数据库如果有写操作,偏移值会递增)

# mysql -u root -p123456 -e "show master status"

----------------------

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

| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| bin.000009 |     120 |              |                  |                   |

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

----------------------

保证FILE列和Position列与从库配置一致:

 

三.从mysql配置(mysql slave)

修改mysql配置文件:

# vi /etc/my.cnf

添加:

--------------------

# Replication Slave Server

# bin日志路径(无需开bin-log日志)

#log-bin = /usr/local/mysql/log/bin.log

server-id=2

# 只读:

read-only

# 忽略mysql系统库复制

binlog-ignore-db=mysql

binlog-ignore-db=information_schema

---------------------

重启服务

# service mysqld restart

恢复server的数据库到slave

#/usr/local/mysql/bin/mysql -u root -p123456 < /root/allbak.sql

首页 1 2 末页

时间: 2024-11-05 02:43:45

Centos6.3是mysql数据库主从复制备份笔记(1/2)的相关文章

mysql数据库主从复制部署笔记

数据库主从复制原理: 数据库的主从复制就是从master数据库复制到slave数据库,在master与slave之间实现整个复制需要三个线程来完成,其中两个在slave端一个在master端. 在master端必须打开binlog功能,因为从数据库需要获得主数据的完整的操作日志然后再自身上顺序的执行日志中的各种操作. 主要步骤: 1.将slave的io线程连上master,请求获得指定日志文件的指定位置之后的操作日志的内容: 2.master获得slave的io线程请求后,将请求中读取到的指定日

mysql数据库 主从复制的配置方法_Mysql

MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维 护日志文件的一个索引以跟踪日志循环.当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那 时起发生的任何更新,然后封锁并等待主服务器通知下一次更新. 为什么使用主从复制? 1.主服务器/从服务器设置增加了健壮性.主服务器出现问题时,你可以切换到从服务器作为备份. 2.通过在主服务器和从服务器之间切分处理

编制一个Mysql数据库自动备份脚本

mysql|备份|脚本|数据|数据库 可以将这个脚本放进crontab,每天凌晨执行一次,自动备份这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上. 代码: #!/bin/bash #This is a ShellScript For Auto DB Backup #Powered by SearchDatabase #2005-09 #Setting #设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式 #默认情况下备份方式是tar,还可以是mysq

mysql 数据库自动备份问题

问题描述 mysql 数据库自动备份问题 我昨天看了看数据库备份,也成功地自动备份出来了,但是备份出来的是.frm文件,直接导入数据库的话,会报错,说是我第一行有错误,和关键字冲突 Query: ? Error occured at:2015-08-10 10:17:42 Line no.:4110 Error Code: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

实现Linux中Mysql数据库自动备份并上传到远程FTP服务器

这篇文章很有分享价值,因为我们在实际的生产环境中需要将数据库进行自动备份,然后上传到指定的位置,当然也可以像以下文章中所讲的一样,上传到你指定的FTP服务器中,从而实现Mysql数据库自动备份并上传到远程FTP服务器的部署,在Linuxhttp://www.aliyun.com/zixun/aggregation/31093.html">技术交流群中,也有朋友会遇到这方面的问题,可以将此文分享给群友共益. 注意:任何的操作都会具有风险性,请在本机实际测试通过之后再部署到服务器环境,这样即熟

mysqldump常用于MySQL数据库逻辑备份

  mysqldump常用于MySQL数据库逻辑备份.   1.各种用法说明      A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump file]      上述命令将指定数据库备份到某dump文件(转储文件)中,比如: mysqldump -uroot -p123 test > test.dump      生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句.        

深入解析Linux下MySQL数据库的备份与还原_Mysql

深入解析Linux下MySQL数据库的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可. 2. 还原法一:[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>&

Mysql 数据库常用备份方法和注意事项_Mysql

Mysql数据库备份的常用3种方法: 1.直接拷贝(cp.tar,gzip,cpio) 2.mysqldump 3.mysqlhotcopy 1.使用直接拷贝数据库备份 典型的如cp.tar或cpio实用程序. 当你使用直接备份方法时,必须保证表不在被使用.如果服务器在你正在拷贝一个表时改变它,拷贝就失去意义. 保证你的拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重启服务器.如果你不想关闭服务器,要在执行表检查的同时锁定服务器.如果服务器在运行,相同的制约也适用于拷贝文件,而且你应该使用相同

Mysql数据库主从复制相关介绍

公司使用master-slave架构,就具体学习了下,这里记录下相关内容. Replication的好处 读写分离:主数据库负责写和update数据,从数据库负责读操作 数据安全:由于数据复制到从库,并且可以对从库的复制进程进行停止操作,所以可以在从库上进行备份服务而不需要对主服务器进行中断操作 可分析:在线数据可以在master数据库上创建,然后在slave数据库上进行分析,且不会对master数据库造成性能影响 长数据:如果一个分支机构需要一份主要数据的copy,可以使用复制来创建一份本地备