- 浏览: 243510 次
最新评论
使用xtrabackup进行在线的主从搭建:
[root@mysqlserver var]# tar -xvf Percona-XtraBackup-2.3.4-re80c779-el6-x86_64-bundle.tar --解压包
percona-xtrabackup-2.3.4-1.el6.x86_64.rpm
percona-xtrabackup-debuginfo-2.3.4-1.el6.x86_64.rpm
percona-xtrabackup-test-2.3.4-1.el6.x86_64.rpm
[root@mysqlserver var]# rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm
warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
error: Failed dependencies:
libev.so.4()(64bit) is needed by percona-xtrabackup-2.3.4-1.el6.x86_64
perl(DBD::mysql) is needed by percona-xtrabackup-2.3.4-1.el6.x86_64
http://rpmfind.net/linux/rpm2html/search.php?query=libev.so.4()(64bit) --下载libev.so
[root@mysqlserver var]# rpm -ivh libev-4.04-2.el6.x86_64.rpm
warning: libev-4.04-2.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 66534c2b: NOKEY
Preparing... ########################################### [100%]
1:libev ########################################### [100%]
[root@mysqlserver var]# yum list |grep perl-DBD
perl-DBD-MySQL.x86_64 4.013-3.el6 base
perl-DBD-Pg.x86_64 2.15.1-4.el6_3 base
perl-DBD-SQLite.x86_64 1.27-3.el6 base
[root@mysqlserver var]# yum install perl-DBD-MySQL.x86_64
[root@mysqlserver var]# rpm -ivh percona-xtrabackup-2.3.4-1.el6.x86_64.rpm ---安装成功!
warning: percona-xtrabackup-2.3.4-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [100%]
1:percona-xtrabackup ########################################### [100%]
5、备份主库:
两步都要做:
innobackupex --defaults-file=/etc/my.cnf --user='root' --password='root' /home/bak | gzip > /home/bak/`date +%F_%H-%M-%S`.tar.gz
innobackupex --user=root --password='root' --apply-log /home/bak/2015-06-15_14-57-24 (步骤一备份完成后会产生2015-06-15_14-57-24目录)
[root@mysqlserver home]# innobackupex --defaults-file=/etc/my.cnf --user='root' --password='root' /home/bak --执行报错!
Could not open required defaults file: /etc/my.cnf
Fatal error in defaults handling. Program aborted
[root@mysqlserver home]# innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --user='root' --password='root' /home/bak --刚刚目录错误
[root@mysqlserver home]# xtrabackup --version
xtrabackup version 2.3.4 based on MySQL server 5.6.24 Linux (x86_64) (revision id: e80c779) --白费力啊,不知道是mysql5.7.10的版本啊!!
[root@mysqlserver home]#
卸载后重新安装2.4.1
rpm -e percona-xtrabackup-2.3.4-1.el6.x86_64
[root@mysqlserver var]# rpm -ivh percona-xtrabackup-24-2.4.1-1.el6.x86_64.rpm
warning: percona-xtrabackup-24-2.4.1-1.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ########################################### [100%]
1:percona-xtrabackup-24 ########################################### [100%]
重新备份:innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --user='root' --password='root' /home/bak 成功备份!
160326 10:59:11 [00] Writing backup-my.cnf
160326 10:59:11 [00] ...done
160326 10:59:11 [00] Writing xtrabackup_info
160326 10:59:11 [00] ...done
xtrabackup: Transaction log of lsn (62233854362) to (62344287480) was copied.
160326 10:59:11 completed OK! --注意结尾!
测试库196的整个库大小为:data目录为22g 10:46-->11:00 大约15分钟,压缩30分钟,解压缩5分钟
[root@mysqlserver bak]# du -sh * --备份目录跟data目录差不多大小
24G 2016-03-26_10-46-17
而生产库的大小为:data目录466g 约为21倍的时间啊!!
在实现“准备”的过程中,innobackupex 通常还可以使用 --use-memory 选项来指定其可以使用的内存的大小,默认通常为 100M。如果有足够的内存可用,
可以多划分一些内存给 prepare 的过程,以提高其完成速度。
应用日志:innobackupex --apply-log /home/bak/2016-03-26_10-46-17
InnoDB: 5.7.10 started; log sequence number 62344294933
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: not started
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 62344294997
160326 11:01:47 completed OK!
查看当前的binlog日志位置:
[root@mysqlserver 2016-03-26_10-46-17]# more xtrabackup_binlog_info
mysql-bin.000023 371727729
[root@mysqlserver 2016-03-26_10-46-17]#
到1.194准备进行恢复!
压缩传输:[root@mysqlserver bak]# tar -zcvf 2016-03-26_10-46-17.tar.gz 2016-03-26_10-46-17/
innobackupex --copy-back /backup/liubak/
--copy-back 把文件按照/etc/my.cnf copy到数据目录
关闭mysql服务,并且保证data目录是空的
[root@javatx mysql]# service mysql57 stop
Shutting down MySQL..... [ok]
[root@javatx mysql]# innobackupex --copy-back /home/2016-03-26_10-46-17 ---恢复操作
160326 11:44:47 innobackupex: Starting the copy-back operation
IMPORTANT: Please check that the copy-back run completes successfully.
At the end of a successful copy-back run innobackupex
prints "completed OK!".
innobackupex version 2.4.1 based on MySQL server 5.7.10 Linux (x86_64) (revision id: a2dc9d4)
Original data directory /usr/local/mysql/data is not empty!
[root@javatx mysql]# mv data data_old
[root@javatx mysql]# innobackupex --copy-back /home/2016-03-26_10-46-17 11:46--->11.52 6分钟
160326 11:52:02 [01] Copying ./testtina/runningtest#P#p201503.ibd to /usr/local/mysql/data/testtina/runningtest#P#p201503.ibd
160326 11:52:02 [01] ...done
160326 11:52:02 [01] Copying ./testtina/t_timetest.frm to /usr/local/mysql/data/testtina/t_timetest.frm
160326 11:52:02 [01] ...done
160326 11:52:02 completed OK!
改好参数后,启动从库:
[root@javatx mysql]# chown -R mysql:mysql data --注意修改属主
[root@javatx mysql]# service mysql57 start
Starting MySQL... [ok] --启动成功
[root@javatx mysql]#
CHANGE MASTER TO
MASTER_HOST='192.168.1.196',
MASTER_USER='repli',
MASTER_PASSWORD='repli',
MASTER_LOG_FILE='mysql-bin.000023',
MASTER_LOG_POS=371727729;
grant replication slave,replication client on *.* to repli@'192.168.1.196' identified by "repli";
start slave;
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Queueing master event to the relay log ---其实已经成功了,可以正常追日志就行了。
Master_Host: 192.168.1.196
Master_User: repli
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000023
Read_Master_Log_Pos: 400878447
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 45666
Relay_Master_Log_File: mysql-bin.000023
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 371773075
Relay_Log_Space: 29151245
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 3525
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: 701cbadc-ba33-11e5-9091-305a3a78baf2
Master_Info_File: /usr/local/mysql/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Reading event from the relay log
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
从库搭建完成,发现有个表空间的文件/var/my_tb/my_tb1.ibd 没过来,我们可以直接传过来,然后再change master
重新启动同步报错:
2016-03-26T04:05:05.043051Z 7 [Note] Slave SQL thread for channel '' initialized, starting replication in log 'mysql-bin.000023' at position 371727729, relay log '/home/mysql/mysql-relaybinlog/mysql-relay-bin.000001' position: 4
2016-03-26T04:05:05.324797Z 7 [ERROR] Slave SQL for channel '': Error 'Duplicate entry '4331729' for key 'PRIMARY'' on query. Default database: ''. Query: 'insert into vehiclerunninginfo.gpsrecord ( `SystemNo`,`Longitude`,`Latitude`,`Speed`,`Direction`,`Elevation`,`Acc`,`IsLocation`,`Mileage`,`Oil`,`CurrentTime`,`GPS_OprationLock`,`SouthLatitude`,`EastWest` ) values ( 'LGXCE6CCXF0997107','114.356775','22.680342','0','0','0','1','1','124','0','2016-03-26 10:53:18','','0','0' )', Error_code: 1062
2016-03-26T04:05:05.324835Z 7 [Warning] Slave: Duplicate entry '4331729' for key 'PRIMARY' Error_code: 1062
2016-03-26T04:05:05.324850Z 7 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000023' position 371727729
表空间在别的目录,比较麻烦,删掉表空间后重新做一次:
innobackupex --copy-back /home/2016-03-26_13-20-33
innobackupex --apply-log /home/2016-03-26_13-20-33
[root@mysqlserver 2016-03-26_13-20-33]# more xtrabackup_binlog_info
mysql-bin.000024 9850868
[root@mysqlserver 2016-03-26_13-20-33]#
CHANGE MASTER TO
MASTER_HOST='192.168.1.196',
MASTER_USER='repli',
MASTER_PASSWORD='repli',
MASTER_LOG_FILE='mysql-bin.000024',
MASTER_LOG_POS=9850868;
Error 'Duplicate entry '3970019' for key 'PRIMARY'' on query. Default database: ''. Query: 'insert into vehiclerunninginfo.mileagerecord ( `SystemNo`,`Longitude`,`Latitude`,`Speed`,`Direction`,`Elevation`,`Acc`,`IsLocation`,`Mileage`,`Oil`,`CurrentTime` ,`IC_TotalOdmeter`,`BMS_SOC`,`VCU_Keyposition`,`IC_Odmeter`,`VCU_BrakePedalSt`,`VCU_BrakeEnergy`,`VCU_Fault`,`VCU_CruisingRange` ) values ( '160316000000DFBE4','110.814669','32.610279','51','313','0','1','1','7785','0','2016-03-26 13:30:19' ,'7785','90','0','0','0','0','0','0' )'
3952932
因为主从一直不同步,且从库的延时越来越长,重新快速备份恢复试试!----下面是正确步骤
innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --use-memory=1G --user='root' --password='root' /home/bak
非必要步骤--增量备份innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --use-memory=1G --user='root' --password='root' --incremental --incremental-basedir=/home/bak/2016-03-28_09-46-27 /home/bak/zl
innobackupex --use-memory=500m --apply-log --redo-only --user='root' --password='root' /home/bak/2016-03-28_09-46-27
scp -r 2016-03-28_09-46-27 root@192.168.1.194:/home
压缩备份,注意是在当前目录
innobackupex --defaults-file=/etc/my.cnf --use-memory=2g --user='root' --password='root' --stream=tar ./ |gzip -> 0330_fullbk.tar.gz
还原:
innobackupex --use-memory=1G --apply-log --redo-only --user='root' --password='root' /home/2016-03-28_09-46-27
非必要步骤--增量还原
innobackupex --use-memory=1G --copy-back /home/2016-03-28_09-46-27
修改属主:
chown -R mysql:mysql data
重启服务:
service mysql57 start
[root@mysqlserver 2016-03-28_09-46-27]# more xtrabackup_binlog_info
mysql-bin.000027 299109445
配置同步:
CHANGE MASTER TO
MASTER_HOST='192.168.1.196',
MASTER_USER='repli',
MASTER_PASSWORD='repli',
MASTER_LOG_FILE='mysql-bin.000027',
MASTER_LOG_POS=299109445,
MASTER_CONNECT_RETRY=10;
关闭同步binlog_cache中的数据到磁盘--不太安全
sync_binlog=0
innodb_flush_log_at_trx_commit=0
同步正常:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
速度果然非常快,一下子就同步了,同步后最好将参数调整回来。
测试1:将从库停掉,主库插入数据,再重启从库,发现数据没有同步过来,但是start slave后,数据同步
测试2:将从库的参数调整回来后,service mysql57 reload 并不生效,重启mysql后 start slave,数据同步
测试3:在从库进行增删改查,发现是可以的,问题出在哪里?
mysql> insert into t1 values (11);
Query OK, 1 row affected (0.10 sec)
mysql> delete from t1 where id=11;
Query OK, 1 row affected (0.14 sec) --删掉后不影响同步状态。因为同步内容没涉及到这个表数据,所以可能不冲突,但很明显我们不是要的这个效果。
原来要修改权限:
1.创建一个超级管理员用户: grant all privileges on *.* to mydba@'%' identified by "mydba#246" with grant option; (主从都创建)
grant all privileges on mysql.* to mydba@'%' with grant option;
grant replication slave,replication client on *.* to repli@'192.168.1.196' identified by "repli";
2.回收root super权限即可:revoke super ON *.* FROM 'root'@'localhost';
revoke super ON *.* FROM 'root'@'%';
3.以mydba启动slave
mysql> start slave; --root已经无权限了!
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
4.以root登录操作:
mysql> insert into t1 values(11); --从库变成只读权限了,好开心!
ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement
read-only选项:对所有的非临时表进行只读控制。但是有两种情况例外:
1. 对replication threads例外,以保证slave能够正常的进行replication。
2. 对于拥有super权限的用户,可以ignore这个选项。
SUPER 权限 : 1. 可以有change master to, kill其他用户的线程的权限。
2. Purge binary logs 来删除binary log, set global来动态设置变量的权限。
3. 执行mysqladmin debug命令,开启或者关闭log,在read-only打开时执行update/insert操作。
4. 执行start slave, stop slave.
5. 当连接数已经达到max_connections的最大值时,也可以连接到server。
发表评论
-
mysql设置外键约束on delete cascade on update cascade
2016-12-09 16:27 3738mysql设置外键约束on delet ... -
mysql权限管理(实例)
2016-05-10 17:21 1516mysql权限管理实例 本文并没有很详细的介绍对具体的对象授 ... -
mysql简单的碎片清理脚本
2016-05-10 16:52 1498mysql简单的碎片清理脚本 #!/bin/bash date ... -
mysql qpress压缩备份恢复
2016-05-03 16:30 6963说明: 1.前面博客已经介绍过gzip压缩方法,备份正常,但后 ... -
mysql xtrabackup在线备份还原(全备+增备)
2016-04-11 14:47 1055工具安装: [root@mysqlserver var]# t ... -
mysql主库清理数据,从库保留
2016-04-01 15:26 1299因为业务需要,想在mysql主库清理一些数据,但从库想要保留, ... -
oracle,postgresql,mysql一些使用上的区别记录
2015-12-16 11:38 01.限制行数: select * from ta where ... -
数据库调优分享-mysql
2015-12-16 10:02 952数据库调优分享------参考一本mysql资料书 日常的困 ... -
mysql 安装-tina
2015-12-08 17:32 0mysql安装-tina 1、准备安装程序(http://ww ... -
mysqldump 只导入数据或只导结构
2015-12-22 10:36 2721[size=small]mysqldump只导出数据或只导出表 ... -
mysql server has gone away
2015-12-10 09:26 878mysql server has gone away,他的意思 ... -
mysql optimize 清理碎片
2015-12-09 09:26 1207---定期清理脚本 0 1 * * 4 root /root ... -
mysql binlog
2015-12-10 09:26 1346mysqld在每个二进制日志 ... -
mysql远程连接设置
2015-12-10 09:25 1009远程连接mysql数据库: 连接上以后,通过这台跳转服务器远 ... -
Last_SQL_Error: Error 'Duplicate entry '1' for key 'PRIMARY''
2015-12-10 09:25 1722[size=small]-实际遇到的问题: Last_SQL ... -
[ERROR] Slave I/O: error connecting to master
2015-12-09 09:26 8221刚配置的MySQL主从,在从机上看到 点击(此处)折叠或打开 ... -
MySQL常用函数
2015-02-05 10:34 539一、字符串类 1、left(str, length) 从左开始 ... -
MySQL触发器简介
2015-02-05 10:33 900一、触发器基本语法 CREATE TRIGGER trigge ... -
MySQL主从切换
2015-02-05 10:32 506环境: 原主库:192.168.10.197 ---新 ... -
MySQL主从搭建
2015-02-05 10:31 797环境简介 master(主):192.168.12.101 s ...
相关推荐
在本文中,我们将详细介绍 MySQL 8.0.23+ 的主从配置,包括主库安装配置、从库搭建和复制用户创建等。 一、主库安装配置 在安装 MySQL 之前,需要先安装相应的操作系统和软件环境。在本文中,我们使用 CentOS 7.2 ...
以下是使用XtraBackup搭建MySQL主从复制的基本步骤: 1. **环境准备**: - 在主从服务器上安装必要的软件,如Percona的YUM源。 - 安装`percona-release-0.1-4.noarch.rpm`以获取最新版本的Percona软件包。 - ...
标题:“xtrabackup在线创建slave操作记录”指的是使用xtrabackup...以上知识点详细阐述了如何使用xtrabackup进行MySQL数据库的在线备份和主从复制设置,适用于数据库管理员或需要进行MySQL复制环境搭建的技术人员。
搭建MySQL主从复制需要确保主从服务器的环境一致性,包括数据库版本、操作系统版本、磁盘I/O、磁盘容量、网络带宽等。在本例中,主从节点均为CentOS 6.2,数据库版本为5.6.12,并且配置了相应的IP地址、端口和内存。...
实现热迁移需要使用 Xtrabackup 工具,该工具可以在线备份和恢复 MySQL 数据库。 MySQL 双主高可用集群环境 MySQL 双主高可用集群环境是指使用两个 MySQL 节点组成的高可用集群环境。每个节点都可以作为主节点,...
在阅读《MySQL高可用方案搭建手册》时,应重点理解上述概念和技术,结合实际业务需求,选择适合的高可用方案,并进行充分的测试和演练,以确保在真实环境中能够顺畅地实施和运维。只有深入理解和实践,才能达到“不...
这个“mysql双主搭建脚本”正是为了实现这一目的而设计的,尤其适用于离线环境,可能是因为网络限制或者安全性考虑。 首先,我们来理解一下MySQL主从复制的基本原理。在MySQL的复制过程中,主服务器上的SQL语句被...
Percona Server for MySQL 8.0的主从复制搭建是一个重要的数据库管理任务,它涉及到数据的安全备份、高可用性和故障恢复。在这个过程中,你需要确保所有步骤都正确无误,以保证数据的一致性和完整性。 首先,为了...
标签:mysql 主主 mysql 主从 双主一从 MySQL 双主一从架构 MySQL 双主一从架构主要由两个主服务器和一个从服务器组成。两个主服务器之间使用日志点复制来实现数据的同步,而从服务器则从一个主服务器中复制数据...
│ 3_MySQL传统复制原理和搭建.mp4 │ 4_MySQL复制搭建part2.mp4 │ 5_MySQL复制相关参数.mp4 │ 6_MySQL复制状态和延迟复制.mp4 │ 7_MySQL半同步复制.mp4 │ 作业.docx │ ├─新版MySQL DBA综合实战班 第10天 │...
- 理解MySQL主从复制的重要性,模拟流量,分析主从复制原理,以及实际搭建主从复制环境。 - 探讨高可用性解决方案,如复制拓扑的维护、故障切换和监控。 这门课程通过理论教学和实战项目相结合的方式,使学员能够...
MySQL是世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,尤其在Web应用程序中广泛应用。5.5.28是MySQL的一个稳定...在Windows x64环境下,安装过程相对简单,只需注意配置细节,就能搭建起稳定可靠的MySQL服务器。
11. 单主从冗余环境搭建:设置主库,配置binlog,复制到从库,监控主从同步状态。 12. 主从同步延迟问题解决:优化网络、调整复制延迟策略、使用半同步复制、监控并分析延迟原因。 13. 数据库代理服务器功能:负载...
7. **XtraBackup备份与恢复**:详述了XtraBackup工具的使用,它是InnoDB存储引擎的高效无锁备份解决方案,用于备份和恢复MySQL数据。 8. **主从原理与配置**:解释了MySQL的主从复制原理,如何设置主服务器和从...
以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、mysql高可用集群搭建与管理、mysql服务器性能和服务监控等方面多...
此资源提供的是MySQL 8.0.22的Windows 64位版本,适用于在Windows操作系统上搭建数据库服务器。MySQL 8.0系列作为最新稳定版,带来了许多性能优化、安全改进以及新功能。 1. **MySQL 8.0的新特性** - **窗口函数**...
9. **高可用性**:MySQL 5.6支持主从复制,可以在多个服务器之间同步数据,提高服务的可用性和容错性。此外,支持组复制技术,使得数据一致性更强。 10. **优化器改进**:查询优化器在5.6版本中得到升级,能够更...
MySQL的主从复制使得数据可以从一个服务器同步到多个服务器,增强了数据的可用性和容错性。而MySQL集群则通过多台服务器共享数据,提供了高可用性和负载均衡。理解复制配置和集群搭建是大型应用架构设计的基础。 七...
本压缩包包含的是MySQL 8.0.30的Windows 64位版本,适用于在Windows操作系统上搭建数据库服务器。 MySQL 8.0是MySQL的一个重要版本,它引入了许多新特性和性能优化,旨在提供更高级的功能和更好的用户体验。以下是...
**描述中提到的“现有的复制结构利用xenon提供MySQL高可用解决方案”** 指的是利用xenon工具将现有的MySQL复制结构(例如主从复制或半同步复制)转变为一个高可用的MySQL集群环境。在这个过程中,xenon可以管理各个...