MySQL数据备份与恢复
睿思达DBA_WGX
从事数据库理论教学工作,有多年管理和维护Oracle、MySQL、SQL Server数据库的相关经验。
展开
-
MySQL主从复制(8)——半同步复制配置
MySQL主从复制(8)——半同步复制配置MySQL的异步复制可以提供最佳的性能, 主库把 binlog 日志发送给从库,这一动作就结束了,并不会验证从库是否接收完毕。也就意味着有可能出现当主服务器或从服务器端发生故障的时候,有可能从服务器没有接收到主服务器发送过来的 binlog 日志,会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失。从 MySQL5.5 开始引入了半同步复制模式。该模式可以确保从服务器接收完主服务器发送的 binlog 日志文件并写入到自己的中继日志(relay l原创 2020-07-22 19:56:56 · 551 阅读 · 1 评论 -
MySQL主从复制(7)——MySQL的三种复制方式:异步复制、半同步复制、全同步复制
MySQL主从复制(7)——MySQL的三种复制方式:异步复制、半同步复制、全同步复制MySQL3.23.15版本引入了复制技术,复制的实现涉及到两个线程,一个在 Master,一个在 Slave。Slave的 I/O 和 SQL 功能作为一个线程,从 Master 获取到 event 后直接 apply,没有 relay log。这种复制方式使主备存在较大延迟,可能导致大量 binary log 没有备份到 Slave 端。从 MySQL4.0.2 版本开始将 Slave 端 event 读取和执行独立原创 2020-07-22 18:56:05 · 2091 阅读 · 2 评论 -
MySQL主从复制(6)——GTID复制
MySQL主从复制(6)——GTID复制基于GTID的复制是从 MySQL5.6 开始支持的一种复制方式,GTID称为全局事务ID(Global Transaction ID),保证为每一个在主服务器上提交的事务在复制集群中可以生成一个全局唯一的ID。GTID 使 MySQL 的主从复制变得更加简单,数据库一致性更可靠。GITD 由服务器ID(source_id)以及事务ID(transaction_id)组合而成:(1)source_id 就是执行事务的主数据库的 server-uuid 值,serv原创 2020-07-22 18:42:58 · 240 阅读 · 1 评论 -
MySQL主从复制(5)——主主复制架构的搭建
MySQL主从复制(5)——主主复制架构的搭建一、系统环境MySQL版本:MySQL5.7Linux版本:CentOS7.0主数据库A地址:192.168.1.11主数据库B地址:192.168.1.12二、配置192.168.1.11为主,192.168.1.12为从(一)配置192.168.1.111、修改配置文件找到主数据库的配置文件my.cnf,在[mysqld]部分添加如下内容:[root@Mysql11 ~]# vim /etc/my.cnf[mysqld]......原创 2020-07-05 23:50:34 · 229 阅读 · 0 评论 -
MySQL主从复制(4)——级联复制架构的搭建
MySQL主从复制(4)——级联复制架构的搭建MySQL 的复制功能是构建大型,高性能应用程序的基础。将 MySQL 的数据分布到多个系统,这种分布机制是通过将MySQL 的某一台主机(master)的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。一、MySQL常用的主从复制架构复制的体系结构需要遵循以下基本原则:(1)每个 slave 只能有一个 master;(2)每个 slave 有一个唯一的服务器ID(s原创 2020-07-05 21:48:20 · 1628 阅读 · 0 评论 -
MySQL主从复制(3)——Change Master参数详解
MySQL主从复制(3)——Change Master参数详解在进行MySQL主从复制配置时,change master 用于配置和改变 slave 服务器用于连接 master 服务器的参数,以便 slave服务器读取 master 服务器的 binlog 及 slave 服务器的 relay log。同时更新 master.info 及 relay-log.info信息。执行该语句之前从服务器上如果 IO 线程和 SQL 线程已经启动,需要先停止(执行 stop slave 命令)。一、change原创 2020-07-05 12:46:28 · 14807 阅读 · 0 评论 -
MySQL主从复制(2)——一主多从架构的搭建
MySQL主从复制(2)——一主多从架构的搭建步骤MySQL主从复制的工作原理如下:(1)Mysql服务器之间的主从复制是基于二进制日志,主服务器使用二进制日志来记录数据库的变动情况,从服务器通过读取和执行该日志文件来保持和主服务器的数据一致。(2)在使用二进制日志时,主服务器的所有操作都会被记录下来,然后从服务器会接收到该日志的一个副本。从服务器可以指定执行该日志中的哪一类事件(插入数据、更新数据、删除数据),默认会执行日志中的所有语句。(3)每一个从服务器会记录关于二进制日志的信息(文件名和已经原创 2020-07-05 11:40:05 · 462 阅读 · 1 评论 -
MySQL主从复制(1)——基本概念
MySQL主从复制(1)——基本概念MySQL主从复制允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。一、主从复制的基本原理MySQL之间数据复制的基础是二进制日志(binary log)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以【事件】的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文原创 2020-07-05 10:04:31 · 417 阅读 · 1 评论 -
MySQL的二进制日志(binlog)使用分析(4)——利用binlog日志恢复数据
MySQL的二进制日志(binlog)使用分析(4)——利用binlog日志恢复数据利用binlog日志恢复数据,就是让mysql将保存在binlog日志中指定段落区间的SQL语句重新执行一次而已。下面通过一个例子说明怎样例如binlog日志恢复数据:一、数据库信息1、数据库:hist,wanggxmysql> show databases;+--------------------+| Database |+--------------------+| info原创 2020-07-04 13:01:57 · 364 阅读 · 1 评论 -
MySQL的二进制日志(binlog)使用分析(3)——使用show binlog events命令查看日志信息
MySQL的二进制日志(binlog)使用分析(3)——使用show binlog events命令查看日志信息binlog文件中存储的内容称之为二进制事件,简称事件。我们的每一个数据库更新操作(Insert、Update、Delete等),都会对应的一个事件。1、查询所有工种为CLERK的12、查询与SMITH员工从事相同工作的所有员工信息。https://www.cnblogs.com/Presley-lpc/p/9619571.htmlhttps://www.360kuai.com/pc/原创 2020-07-04 11:29:14 · 14524 阅读 · 1 评论 -
MySQL的二进制日志(binlog)使用分析(2)——使用mysqlbinlog命令查看日志信息
MySQL的二进制日志(binlog)使用分析(2)——使用mysqlbinlog命令查看日志信息默认情况下binlog日志是二进制文件,无法直接查看。mysqlbinlog命令的功能是将Mysql的binlog日志转换成Mysql语句。mysqlbinlog命令的格式如下:1、基本功能mysqlbinlog 日志文件名;说明:把日志文件的信息在屏幕上直接显示出来。命令执行的结果如下:[root@localhost wgx]# mysqlbinlog /var/lib/mysql/mysql-原创 2020-07-03 23:07:55 · 1485 阅读 · 1 评论 -
MySQL数据库的备份与恢复(6)——编写一个mysqldump分表备份脚本
MySQL数据库的备份与恢复(6)——编写一个mysqldump分表备份脚本编写一个脚本,用于备份某个数据库中所有的数据表,每个数据表生成一个sql文件。step1、取出hist数据库包含的所有表的名称[root@Mysql11 tmp]# mysql -uroot -p123456 hist -e "show tables;"mysql: [Warning] Using a password on the command line interface can be insecure.+-----原创 2020-07-02 15:40:30 · 280 阅读 · 1 评论 -
MySQL数据库的备份与恢复(5)——编写一个简单的mysqldump分库备份脚本
MySQL数据库的备份与恢复(5)——编写一个简单的mysqldump备份脚本编写一个脚本,用于备份除了information_schema和performance_schema数据库之外的所有数据库,每个数据库生成一个sql文件。step1、取出MySQL包含的所有数据库名称[root@Mysql11 tmp]# mysql -uroot -p123456 -e "show databases;"mysql: [Warning] Using a password on the command li原创 2020-07-02 15:12:09 · 351 阅读 · 1 评论 -
MySQL数据库的备份与恢复(4)——mysqldump参数详解
MySQL数据库的备份与恢复(4)——mysqldump参数详解mysqldump是MySQL自带的逻辑备份命令,备份文件包含一组SQL语句,可以通过执行这些语句来生成备份前的数据库对象定义和表数据。mysqldump命令还可以生成CSV,其他分隔文本或XML格式的输出。mysqldump命令的格式如下:mysqldump [options] [db_name [tbl_name ...]]常用的[options]参数如下:1、指定登录用户名-uuser_name--user=user_na原创 2020-07-02 12:23:53 · 719 阅读 · 1 评论 -
MySQL数据库的备份与恢复(3)——恢复数据
MySQL数据库的备份与恢复(3)——恢复数据使用MySQL自带的备份工具mysqldump备份数据,然后进行数据恢复。一、以SQL格式备份数据并且恢复1、备份所有数据库[root@Mysql11 ~]# mysqldump -uroot -p123456 --all-databases > /tmp/all.sqlmysqldump: [Warning] Using a password on the command line interface can be insecure.2、备原创 2020-07-02 11:12:49 · 916 阅读 · 1 评论 -
MySQL数据库的备份与恢复(2)——使用mysqldump命令(热备)
MySQL数据库的备份与恢复(2)——使用mysqldump命令(热备)在数据库的日常维护工作中经常需要对数据进行导出操作,mysqldump是MySQL自带的数据导出工具,具有非常强大的功能。mysqldump命令可以把整个数据库装载到一个单独的文本文件中。这个文本文件包含有所有重建数据库所需要的SQL命令。这个命令取得所有的模式(Schema)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。mysqldump将数据库中所有的设计倒转原创 2020-07-01 23:26:11 · 725 阅读 · 1 评论 -
MySQL数据库的备份与恢复(1)——使用Select Into Outfile和Load Data Infile命令
MySQL数据库的备份与恢复(1)——使用Select Into Outfile和Load Data Infile命令一、使用Select Into Outfile命令导出数据命令格式如下:SELECT ... INTO OUTFILE 'file_name'fields terminated by 'char'; 说明:(1)OUTFILE参数指定的文件所在的路径需要有mysql的访问权限,否则会报错原创 2020-07-01 21:36:22 · 1356 阅读 · 2 评论 -
MySQL的二进制日志(binlog)使用分析(1)——binlog日志的格式及配置
MySQL的二进制日志(binlog)使用分析(1)——基本概念及配置Mysql的二进制日志(binlog)作用是用来记录对mysql数据库的更新,对数据库的查询select或show等不会被binlog日志记录。其主要用于数据库的主从复制以及增量恢复。可以使用mysqlbinlog命令查看二进制日志的内容。一、MySQL binlog的三种格式1、STATMENT基于SQL语句的复制(statement-based replication,SBR),把修改修改数据的每一条sql语句记录到binlo原创 2020-07-03 21:54:49 · 869 阅读 · 1 评论