网站制作学习网Database→正文:mysql备份,热备份,数据同步
字体:

mysql备份,热备份,数据同步

Database 2015/1/18 22:23:41  点击:不统计

转载%77%77%77请%2E%66%6F%72%61%73%70%2E%63%6E注明
 以前用到过mysql的热备份,但在小公司里面一般不需要的,服务器又少所以很少用mysql热备份.

mysql热备份,一般有一个slave备份主机,一个master主机,master的数据部分会同步到slave上。
下面我们对mysql的备份,操作进行说明,mysql备份分两种一种是master和slave刚建立,一种是现在master数据库正在运行,则实现备份。实现备份的原理是master进行操作日志记录,slave则通过读取master的日志进行对应的操作。
1.我们先说一下新建立mysql数据库实现热备份。
比如我们的主mysql服务器(master)Ip 192.168.1.10,备份服务器(slave)则为192.168.1.11
(1) 首先配置master,在master中mysql的my.conf中配置
[mysqld]
...
log-bin=master-bin
log-bin-index=master-bin.index
server-id = 1 
...
配置完毕后重启。
(2) 在master 上面配置用来备份的账号backupuser 密码backupuserpwd
master> create user backupuser;
master>grant replication slave on *.* to backupuser@"%" identified by 'backupuserpwd';
master>flush privileges;
(3)我们在mysql备份服务器slave上面配置
[mysqld]
...
server-id =2
relay-log = slave-relay-bin
relay-log-index= slave-bin.index
...
配置mysql备份slave完毕后重启。
(4)在slave中创建通过backupuser账户进行连接进行数据复制。
slave> change master to 
-> master-host ='192.168.1.10',
-> master-prot = '3306',
-> master-user = 'backupuser',
-> master_password = 'backupuserpwd';
运行完毕后
slave> start slave;
slave> show slave status\G
我们可以看到slave的状态。
如果看到有warning或者error则进行相关的修改。
2. 如果如果我们已经有master服务器在运行,基本和上面的操作mysql操作一致。(已经运行的数据库)
不同的地方在于:要把master目前的数据以及操作bin-log告诉slave。
//配置完master配置文件后,则需要master将现有数据进行备份到slave上。
克隆master
master>flush tables with read lock; //只读锁的形式。不可以在操作数据库,这样保持master和slave统一。
//记录log日志位置
master>show master status\g;
| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000001 | 151917    | xxxxxx       |                  |
上面是记录了日志文件以及写的日志的位置,我们记录下来。
//然后备份master
mysqldump -u xxx -p xxx  dbname >back.sql
备份完毕,解除只读锁。
master>unlock tables;
 
这里开始slave的操作,区别在于通过账号同步数据操作
将备份的数据back.sql 移动到slave mysql中
slave >source back.sql;
然后,通过master的backupuser 进行同步数据
//这里定义的 log的名称和postion位置
slave>change master to master_host='192.168.1.10',master_port=3306,master_user='backupuser',master_password='backupuserpwd',master_log_file='mysql-bin.000001',master_log_pos=151917;
slave>start slave;
命令执行完毕后,则可以通过slave的状态进行查询。
 
3.其他说明
(1)配置mysql备份的数据库和不需要备份的数据库
在master文件中可以配置选择那些数据库备份,那些数据库不备份。
[mysqld]
...
binlog_do_db = dbname //log记录那些数据库的操作,这里是通过log设置的同步的数据库,如果多个则写多行,如果这里设置则下面的无效
#binlog-ignore-db = dbname//这里是设置不需要同步的数据库,如果多个则写多行
replicate-do-db=test //这里是直接定义了复制那些数据库的操作,如果这里设置了,则下面的无效
replicate-ignore-db=mysql//这里是不需要复制的数据库
....
 
(2)查看master的相关信息
master> show variables like '%server%';
(3)master-id 必须唯一.
(4) 停止 服务,命令
STOP SLAVE;

原载于:本文原载于www.forasp.cn

·上一篇:网站制作学习网    ·下一篇:mysql 中文乱码 >>
推荐文章
最新文章