拷贝 var lib mysql 备份_mysql复制与备份

备份策略:

完全+差异+binlog

完全+增量+binlog

binlog最好能实时备份到另一个节点上。

完全备份,多久一次?

数据变化量:有20%,建议使用完全备份。

可用的备份存储空间:

数据变化量很大,可以每天做一个完全备份,每周做一次增量备份。

数据变化量不大,可以每月做一次完全备份,每天做一次增量或者差异。

数据

备份工具:

mysqldump:发起一次数据查询,生成table,插入数据。

如果备份的是整个库,那么create database语句是存在的,如果是备份表,则没有create database。也可以备份多个库。取决于备份需求。备份数据库会影响到用户的访问,应在访问量最小的时候进行备份。

sed -i 's@ENGINE=MyISAM@ENGINE=InnoDB@g'   hellodb.sql

备份其中的一个数据库

[root@centos7 ~]#mysqldump -uroot -hlocalhost -p hellodb > ./hellodb.sql.1

Enter password:

mysqldump -uroot  -hlocalhost  -p  –databases   hellodb > ./hellodb.sql.2(可以备份多个数据库)

mysqldump -uroot  -hlocalhost  -p  –all–databases> ./data.sql.3(备份所有数据库)

数据库比较大时

InnoDB存储引擎:支持温备和热备:

–single-transaction:创建一个事务,基于此快照执行备份。

其它选项:

-R,–routines:存储过程和存储函数;

–triggers

-E,–events

–master-data[=#]

1:记录为CHANGE MASTER TO语句,此语句不被注释;

2:记录为CHANGE MASTER TO语句,此语句被注释;

mysqldump -uroot -hlocalhost -p –master-data=2 –databases hellodb > ./hellodb.sql.2

–flush-logs:锁定表完成后,即进行日志刷新操作。

mysqldump:

逻辑备份、完全备份、部分备份;

针对hellodb数据库

mysqldump -uroot -hlocalhost -p –master-data=2 –databases hellodb > ./hellodb.sql.2

做了一个插入和删除操作

此时查看 mysqlbinlog  /var/lib/mysql/master-log.000001

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

应该将DROP database hellodb删除后再进行恢复,否则将陷入死循环。

截取掉的方法:1,文本工具2.mysqlbinlog  –stop-position=695 /var/lib/mysql/master-log.000001

然后再次查看发现已经没有了DROP database hellodb。

另作保存,待会儿可以直接使用其来进行恢复。 mysqlbinlog  –stop-position=695 /var/lib/mysql/master-log.000001 > /tmp/mysql.log

cp ./hellodb.sql.2 /tmp/hellodb.sql

mysql -uroot -hlocalhost -pmageedu连入mysql后进行操作,关闭二进制文件的使用

SET sql_log_bin=OFF;

\. /tmp/hellodb.sql

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

.//tmp/mysql.log(二进制日志)

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

此时数据得到了恢复后,SET sql_log_bin=ON;

基于lvm2的备份:

基于逻辑卷,可以做到几乎热备。

为了确保是快照之前的状态。快照卷是把该之前的复制出来。

创建快照后,将其中文件内容复制出来,然后就可以删除掉该快照了。

第一步打开客户端,FLUSH TABLES WITH READ LOCK;请求保存读锁。

第二步,挂载。

备份时不能只备份数据文件,还要备份事务日志。事务日志和数据文件放在同一个逻辑卷上。

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

还原起来比较麻烦,用的不多。

Xtrabackup:

MyISAM:温备,不支持增量备份;

InnoDB:热备,增量;

物理备份,备份性能好,速旅快、可靠;支持压缩功能;节约带宽。备份完成后自动校验备份结果是否可用;还原速度快;

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

man innobackupex

是一个客户端工具,需要链接到服务器端。保存至本地路径下。还可以用tar执行压缩。

还可以实现部分备份。

常用的功能:

一.完全备份

指定用户+密码 本地的备份目录。

innobackupex  –user=root –password=mageedu  /mydata/ba

得把事务日志中未提交的ROLLback

prepare预备工作

数据还原过程:

1.在另一台设备上安装xrabbackup工具,并将本机的文件复制过去

2.scp -rp 2016-11-19_14-42-33/ 10.1.44.7:/mydata/backup/

3.innobackupex –apply-log  /mydata/backup/2016-11-19_14-42-33/

4.innobackupex –copy-back /mydata/backup/2016-11-19_14-42-33/(把备份目录复制到数据库中)

5.cd /var/lib/mysqlchown -R mysql ./*

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

ib_logfile0的大小变为48M,

6.修改/etc/my.cnf

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

7.此时再去进行启动,如下

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

二.增量备份

数据增加后,INSERT INTO teachers (name,age,gender) VALUES ('Miejue Shitai',48,'F');

1.innobackupex –user=root –password=mageedu –incremental /mydata/backup/ –incremental -basedir=/mydata/backup/2016-11-19_14-42-33/

2.此时/mydata/backup的文件目录变多了。

2016-11-19_14-42-33  2016-11-19_15-43-04

3.删除数据后DELETE FROM students WHERE StuID=8;,再次进行备份,如果相对于2016-11-19_14-42-33进行备份那么叫做差异备份,如果是相对于2016-11-19_15-43-04叫做增量备份。

innobackupex –user=root –password=mageedu –incremental /mydata/backup/ –incremental -basedir=/mydata/backup/2016-11-19_15-43-04/

4.在另一太设备上,rm -rf /var/lib/mysql/*      rm -rf /mydata/backup/2016-11-19_14-42-33/

5.在本机上执行

[root@centos7 2016-11-19_15-51-49]# cat xtrabackup_binlog_info

master-log.0000011242

[root@centos7 2016-11-19_15-51-49]# mysqlbinlog –start-position=1242 /var/lib/mysql/master-log.000001

[root@centos7 2016-11-19_15-51-49]# mysqlbinlog –start-position=1242 /var/lib/mysql/master-log.000001 > /mydata/backup/binlog.sql

[root@centos7 backup]# scp -rp ./* 10.1.44.7:/mydata/backup/

6.在另一台设备上做prepare

2016-11-19_14-42-33  2016-11-19_15-43-04  2016-11-19_15-51-49  binlog.sql

合并增量,按次序合并。

innobackupex –apply-log –redo-only 2016-11-19_14-42-33/

[root@localhost backup]# innobackupex –apply-log –redo-only 2016-11-19_14-42-33/ –incremental-dir=/mydata/backup/2016-11-19_15-43-04/

[root@localhost backup]# innobackupex –apply-log   2016-11-19_14-42-33/ –incremental-dir=/mydata/backup/2016-11-19_15-51-49/

7.做copyback

innobackupex –copy-back   2016-11-19_14-42-33/

cd /var/lib/mysql chown -R mysql./*

vim/etc/my.cnf   删除innodb_log_file_size = 50331648

mysql -uroot -hlocalhost -p < binlog.sql 重装二进制文件

主从复制

主服务器:

配置文件my.cnf

server_id=#

log_bin=log-bin

启动服务:

mysql > GRANT REPLICATION   SLAVE,REPLICATION   CLIENT    ON  *.*    TO 'USERNAME'@'HOST'    IDENTIFIED BY 'YOUR_PASSWORD';

mysql > FLUSH   PRIVILEGES;

从服务器:

配置文件my.cnf

server_id=#

relay_log=relay-log

启动服务:

mysql> CHANGE   MASTER   TO

MASTER   HOST='HOST',MASTER_USER='USERNAME',MASTER_PASSWORD='YOUR_PASSWORD',MASTER_LOG_FILE='BINLOG',MASTER_LOG_POS=#;

mysql> START SLAVE [IO_THREAD|SQL_THREAD];

mysql>SHOW   SLAVE   STATUS;

192.168.1.110为主节点,192.168.1.107为从节点

主从复制:

一、/etc/mycnf的配置

主机的/etc/my.cnf的配置

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

从机的配置:

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

二、mysql配置

主机上:

SHOW MASTER STATUS;   245

GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'repluser'@'10.1.0.%' IDENTIFIED BY 'replass';

FLUSH PRIVILEGES;

SHOW BINLOG EVENTS IN 'master-log.000002';

从机:

CHANGE  MASTER  TO MASTER HOST='10.1.44.2',MASTER_USER='repluser',MASTER_PASSWORD='replass',MASTER_LOG_FILE='master-log.000002',MASTER_LOG_POS=742;

SHOW SLAVE STATUS\G;

START SLAVE;

SELECT User,Host,Password FROM mysql.user;

从服务器设为只读:

SELECT @@global.read_only;

FLUSH TABLE WITH READ LOCK;

双主复制

第一步:/etc/my.cnf

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

第二步,mysql配置

主1机上

1.、GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'repluser'@'10.1.44.%' IDENTIFIED BY 'replpass';

2、FLUSH PRIVILEGES;

3、SHOW MASTER STATUS;

4、CHANGE  MASTER  TO MASTER_HOST='10.1.44.7',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=505;

5、START SLAVE;

主2机上

1、GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'repluser'@'10.1.44.%' IDENTIFIED BY 'replpass';

2、FLUSH PRIVILEGES;

3、SHOW MASTER STATUS;

4、CHANGE  MASTER  TO MASTER_HOST='10.1.44.2',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=505;

5、START SLAVE;

此时在一个主1机创建数据库mydb,主2机也可以获取该信息。

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

本实验中出现过Slave_IO_Running:Connecting错误,我的问题是密码写错。

网上有网友贴出了出现相关的错误的原因如下:

先理解Slave_IO_Running 为connecting,的含义

主要有三个原因

1、网络不通

2、密码不对

3、pos不对

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

从服务器意外终止后,服务再次启动后,应该设置禁止自动连接另一台服务器。

半同步复制

一、配置文件

主机:

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

从机:

3c8ce6380daa33c267ccb0e2e66a02de.png

3c8ce6380daa33c267ccb0e2e66a02de.png

二、mysql的配置

主机:

GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'repluser'@'10.1.44.%' IDENTIFIED BY 'replpass';

FLUSH PRIVILEGES;

SHOW MASTER STATUS\G   (POS 495)

从机:

CHANGE  MASTER  TO MASTER_HOST='10.1.44.2',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=495;

START SLAVE;

SHOW SLAVE STATUS\G

三、插件

主机:

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

SHOW PLUGINS;

SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';

SET GLOBAL rpl_semi_sync_master_enabled=ON;

从机:

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

SHOW PLUGINS;

SHOW GLOBAL VARIABLES LIKE 'rpl_semi%';

SET GLOBAL rpl_semi_sync_slave_enabled=ON;

主机:

SHOW GLOBAL STATUS LIKE '%semi%';

从机:

START SLAVE;

STOP SLAVE;

START SLAVE;

原创文章,作者:178babyhanggege,如若转载,请注明出处:http://www.178linux.com/60354

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/506749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nodejs+vue+微信小程序+python+PHP的4s店客户管理系统-计算机毕业设计推荐

系统的功能结构是系统实现的框架&#xff0c;本系统的主要结构为管理员和用户、员工。管理员的功能为车辆信息管理、用户管理、售后服务管理、售后安排管理、完成售后管理等。 本系统实现了售后的在线申请与处理&#xff0c;方便了用户和管理员、员工三方的利益&#xff0c;提高…

esd防护_电路级ESD防护方法

电路板级的ESD防护方法有很多种类&#xff0c;常见的有以下几个方法1、并联放电器件常用的放电器件有ESD/TVS&#xff0c;固体放电管&#xff0c;稳压二极管&#xff0c;压敏电阻&#xff0c;气体放电管等瞬变电压消除器 TVS(Transient Voltage Suppressor)&#xff1a; TVS 是…

mysql中如何判断数组和链表_数据结构之链表与数组(-)——数组和链表的简介...

众所周知&#xff0c;在计算机中要对给定的数据集进行若干处理&#xff0c;首要任务是把数据集的一部分(当数据量非常大时&#xff0c;可能只能一部分一部分地读取数据到内存中来处理)或全部存储到内存中&#xff0c;然后再对内存中的数据进行各种处理。例如&#xff0c;对于数…

python从字符串中提取数字并转换为相应数据类型_python从PDF中提取数据的示例

01前言数据是数据科学中任何分析的关键&#xff0c;大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据。然而&#xff0c;由于可移植文档格式(pdf)文件是最常用的文件格式之一&#xff0c;因此每个数据科学家都应该了解如何从pdf文件中提取数据&#xff0c…

python延时队列_如何通过Python实现RabbitMQ延迟队列

最近在做一任务时&#xff0c;遇到需要延迟处理的数据&#xff0c;最开始的做法是现将数据存储在数据库&#xff0c;然后写个脚本&#xff0c;隔五分钟扫描数据表再处理数据&#xff0c;实际效果并不好。因为系统本身一直在用rabbitmq做异步处理任务的中间件&#xff0c;所以想…

安卓 监听 mysql_Android监听数据库的值改变与否

做购物车的时候有这个需要&#xff0c;当点击增加数量的时候&#xff0c;要更更新总价与数量&#xff0c;也就是往数据库里更新数据&#xff0c;当更新完的时候&#xff0c;就要计算出新的价钱&#xff0c;这就需要对数据库进行监听。这就要用到内容观察者了。第一步&#xff1…

while的用法java_java中的while循环和do while循环

那么在讲解循环之前呢我们先来了解一下什么是循环 生活中的例子 车子的轮胎他就是一直在循环 马拉松跑到也是在循环 因为运动员不停的一圈一圈在跑这也是一个循环那么我们为什么要学习循环呢&#xff1f;下面看一个小问题 张浩Java考试成绩未达到自己的目标。为了表明自己勤…

迷宫java代码_java写的迷宫代码

迷宫代码&#xff1a;截图如下&#xff1a;packagecom.zxl.maze;/** 抽象类表示选择不同的算法*/public abstract classAbstractMap{/** 得到数据*/public abstract boolean[][] getData(int m,intn);/** 重置*/public abstract void reset(int m,intn);}packagecom.zxl.maze;/…

java class list_详解Java 集合类 List 的那些坑

现在的一些高级编程语言都会提供各种开箱即用的数据结构的实现&#xff0c;像 Java 编程语言的集合框架中就提供了各种实现&#xff0c;集合类包含 Map 和 Collection 两个大类&#xff0c;其中 Collection 下面的 List 列表是我们经常使用的集合类之一&#xff0c;很多的业务代…

java 类加载 双亲委派_Java类加载器和双亲委派机制

前言之前详细介绍了Java类的整个加载过程(类加载机制详解)。虽然&#xff0c;篇幅较长&#xff0c;但是也不要被内容吓到了&#xff0c;其实每个阶段都可以用一句话来概括。1)加载&#xff1a;查找并加载类的二进制字节流数据。2)验证&#xff1a;保证被加载的类的正确性。3)准…

win10开发java_win10系统搭建Java开发环境的操作方法

很多小伙伴都遇到过对win10系统搭建Java开发环境进行设置的困惑吧&#xff0c;一些朋友看过网上对win10系统搭建Java开发环境设置的零散处理方法&#xff0c;并没有完完全全明白win10系统搭建Java开发环境的操作方法非常简单&#xff0c;只需要1、双击运行jdk-8u60-windows-x64…

java cms bootstrap_thinkcms: Java CMS系统,完善的后台功能,大气的前台页面. 使用springMVC,hibernate,bootstrap,amazeui....

#thinkcmsJava CMS系统&#xff0c;完善的后台功能&#xff0c;大气的前台页面主要技术springmvc-mvc控制层shiro-方便全面的安全控制框架hibernate-orm框架ehcache-缓存框架前端&#xff1a;jquery&#xff0c;bootstrap&#xff0c;amazeui拉完代码将maven相关包拉下来&#…

java方法不可覆盖_详解Java构造方法为什么不能覆盖,我的钻牛角尖病又犯了.......

一看Think in Java&#xff0c;遇到个程序classEgg2 {protected classYolk {publicYolk() {System.out.println("Egg2.Yolk()");}public voidf() {System.out.println("Egg2.Yolk.f()");}}private Yolk y newYolk();publicEgg2() {System.out.println(&qu…

有人去瑞幸咖啡java_瑞幸股价暴跌,门店竟然爆单了

本文首发于“全天候科技”作者姚心璐。欢迎下载“见闻VIP”&#xff0c;即时见证历史。昨晚至今&#xff0c;有人被瑞幸疯狂打了1.8折&#xff0c;有人疯狂用1.8折券买入瑞幸咖啡。是不是看上去很迷&#xff1f;这的确是冰火两重天一样的真实存在。4月2日&#xff0c;瑞幸自曝2…

我的世界java版做船_“不要在云了,船的合成用木铲?”我的世界:Java和基岩版的差异...

“不要在云了&#xff0c;你这个云玩家&#xff01;”不知道你没有没有因为某些原因被网友说成是MC的云玩家&#xff0c;我就听到过一个很冤枉的故事。一个已经玩了5年之久的基岩版玩家&#xff0c;被一个玩了一年Java版的玩家硬生生说成是一个云玩家&#xff0c;重点不是这&am…

java线程interu_Intel 10nm服务器U首曝:多线程性能提升118%

Intel 10nm Ice Lake已经应用在轻薄本平台上&#xff0c;当时频率先天不足&#xff0c;而且只能做到4核心&#xff0c;不得不同时祭出14nm Comet Lake予以辅助&#xff0c;而在游戏本、桌面上也不得不继续依赖14nm Comet Lake。根据路线图&#xff0c;服务器平台上Intel今年会先…

java面板换一个斜的圆形_java – 如何从底部设计圆形视图?

我想设计一个从底部是圆形的视图,请看图像I have try different way to design, Like XML, Programatically but I am not able to get any success. I use XML code it’s doing circle from bottom but when I use Any image or Banner slider as show in figure then it’s …

php反序列化漏洞 freebuf,最全的PHP反序列化漏洞的理解和应用

原创&#xff1a;f1r3K0php反序列化漏洞&#xff0c;又叫php对象注入漏洞&#xff0c;是一种常见的漏洞&#xff0c;在我们进行代码审计以及CTF中经常能够遇到。01学习前最好提前掌握的知识PHP类与对象(https://www.php.net/manual/zh/language.oop5.php)PHP魔术方法(https://s…

php按数字分页类,PHP简单实现数字分页功能示例

本文实例讲述了PHP简单实现数字分页功能。分享给大家供大家参考&#xff0c;具体如下&#xff1a;header ( Content-Type: text/html; charsetutf-8 );//分页$page$_GET[page];$allcount 100;$page_size 10;$page_show 5;$page_count ceil($allcount/$page_size);if($page <…

php 瀑布流布局,CSS3实现瀑布流布局的方法

这次给大家带来CSS3实现瀑布流布局的方法&#xff0c;CSS3实现瀑布流布局的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。以前使用瀑布流都要用js&#xff0c;现在有了css3&#xff0c;可以轻松实现了。掌握点&#xff1a;1、column-count 把p中的文本…