数据库---------完全备份和增量备份的数据恢复,以及断点恢复

目录

一、在数据库表中,分三次录入学生考试成绩

1.1先创建库,创建表,完成三次数据的录入

1.2首次录入成绩后,做该表的完全备份

1.3第二次插入后 做增量备份

1.4第三次插入后 做增量备份

二、模拟数据丢失,并使用增量备份分别基于位置和时间点恢复一班所有学生成绩与二班陈铭与付杰的成绩

2.1用完全备份恢复,获取一班的人的成绩

2.2陈铭的成绩恢复

方法一:

方法二:

2.3付杰的成绩恢复

三、数据库上云迁移的方案?

1.1 方案一:使用脱机冷备份

1.2 方案二:热迁移

四、脚本增量备份

五、温故而知新


某学校进行期中考试要求录入各班考试成绩

为保证数据的可靠性录入学生成绩需要做数据库备份

为了测试备份数据是否可用,模拟数据丢失故障,进行数据还原需求描述

需求描述:

在数据库表中,分三次录入学生考试成绩

首次录入成绩后,做该表的完全备份,后两次成绩的录入之后,分别作增量备份

模拟数据丢失,并使用增量备份分别基于位置和时间点恢复一班所有学生成绩与二班陈铭与付杰的成绩

一、在数据库表中,分三次录入学生考试成绩

1.1先创建库,创建表,完成三次数据的录入

create table class(name varchar(10) unique key,class varchar(4),id int primary key,chinese int,math int,English int,sci int);

insert into class values('张三','一班',20170822,110,105,92,235);
insert into class values('李四','一班',20170820,95,115,110,260);
insert into class values('王五','一班',20170818,95,103,108,270);
insert into class values('赵六','一班',20170816,100,109,112,265);

1.2首次录入成绩后,做该表的完全备份

cd /opt
mkdir backup
mysqldump -uroot -p123123 nanjing class > /opt/backup/nanjing_class.sql
ls /opt/backup/
nanjing_class.sql

这是MySQL自带的备份和恢复工具支持逻辑热备份通过SQL语句的形式进行保存

[root@localhost opt]#cat /opt/backup/nanjing_class.sql
-- MySQL dump 10.13  Distrib 5.7.17, for Linux (x86_64)
--
-- Host: localhost    Database: nanjing
-- ------------------------------------------------------
-- Server version	5.7.17/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
-- Table structure for table `class`
--DROP TABLE IF EXISTS `class`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `class` (`name` varchar(10) DEFAULT NULL,`class` varchar(4) DEFAULT NULL,`id` int(11) NOT NULL,`chinese` int(11) DEFAULT NULL,`math` int(11) DEFAULT NULL,`English` int(11) DEFAULT NULL,`sci` int(11) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `class`
--LOCK TABLES `class` WRITE;
/*!40000 ALTER TABLE `class` DISABLE KEYS */;
INSERT INTO `class` VALUES ('赵六','一班',20170816,100,109,112,265),('王五','一班',20170818,95,103,108,270),('李四','一班',20170820,95,115,110,260),('张三','一班',20170822,110,105,92,235);
/*!40000 ALTER TABLE `class` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;-- Dump completed on 2024-03-30 23:52:25

1.3第二次插入后 做增量备份

insert into class values('李宁','二班',20170824,92,98,105,235);
insert into class values('陈铭','二班',20170826,111,107,96,204);

开启二进制日志

log-error=/usr/local/mysql/data/mysql_error.log
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
log-bin=mysql-bin
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5
binlog_format = MIXED

mysqladmin -uroot -p123123 flush-logs
mv mysql-bin.000001 /opt/backup/mysql-bin.000001.$(date +%F_%T)
[root@localhost /opt/backup]#mysqlbinlog --no-defaults --base64-output=decode-rows -v 指定二进制日志备份文件

为什么空的?是由于没有在插入数据前,开启二进制日志,所以切记切记,一定要在开启二进制日志后,才可以插入数据,不然二进制日志识别不到哦

开启二进制日志后,先把之前错误的数据删除,然后我们在重复新插入数据

查看二进制日志

[root@localhost data]#mysqlbinlog --no-defaults --base64-output=decode-rows -v /usr/local/mysql/data/mysql-bin.000002 
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#240331 10:57:36 server id 1  end_log_pos 123 CRC32 0x68d67970 	Start: binlog v 4, server v 5.7.17-log created 240331 10:57:36
# Warning: this binlog is either in use or was not closed properly.
# at 123
#240331 10:57:36 server id 1  end_log_pos 154 CRC32 0x53f83afb 	Previous-GTIDs
# [empty]
# at 154
#240331 11:35:29 server id 1  end_log_pos 219 CRC32 0x8e1dc01f 	Anonymous_GTID	last_committed=0	sequence_number=1
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#240331 11:35:29 server id 1  end_log_pos 304 CRC32 0xffd43c1e 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856129/*!*/;
SET @@session.pseudo_thread_id=4/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1437073414/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 304
#240331 11:35:29 server id 1  end_log_pos 421 CRC32 0x31a6b5eb 	Query	thread_id=4	exec_time=0	error_code=0
use `nanjing`/*!*/;
SET TIMESTAMP=1711856129/*!*/;
delete from class where name='李宁'
/*!*/;
# at 421
#240331 11:35:29 server id 1  end_log_pos 452 CRC32 0x57775191 	Xid = 8
COMMIT/*!*/;
# at 452
#240331 11:37:44 server id 1  end_log_pos 517 CRC32 0xb2bce275 	Anonymous_GTID	last_committed=1	sequence_number=2
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 517
#240331 11:37:44 server id 1  end_log_pos 602 CRC32 0x826c35bf 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856264/*!*/;
BEGIN
/*!*/;
# at 602
#240331 11:37:44 server id 1  end_log_pos 719 CRC32 0x4d30d3d9 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856264/*!*/;
delete from class where name='李宁'
/*!*/;
# at 719
#240331 11:37:44 server id 1  end_log_pos 805 CRC32 0x0effbaa6 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856264/*!*/;
COMMIT
/*!*/;
# at 805
#240331 11:38:09 server id 1  end_log_pos 870 CRC32 0x531b5239 	Anonymous_GTID	last_committed=2	sequence_number=3
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 870
#240331 11:38:09 server id 1  end_log_pos 955 CRC32 0x7e377af7 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856289/*!*/;
BEGIN
/*!*/;
# at 955
#240331 11:38:09 server id 1  end_log_pos 1072 CRC32 0x7f128ff4 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856289/*!*/;
delete from class where name='陈铭'
/*!*/;
# at 1072
#240331 11:38:09 server id 1  end_log_pos 1103 CRC32 0xe6e93731 	Xid = 10
COMMIT/*!*/;
# at 1103
#240331 11:38:34 server id 1  end_log_pos 1168 CRC32 0xd340a8d1 	Anonymous_GTID	last_committed=3    sequence_number=4
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 1168
#240331 11:38:34 server id 1  end_log_pos 1253 CRC32 0xb2d9ce6b 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856314/*!*/;
BEGIN
/*!*/;
# at 1253
#240331 11:38:34 server id 1  end_log_pos 1399 CRC32 0x62bc5441 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856314/*!*/;
insert into class values('李宁','二班',20170824,92,98,105,235)
/*!*/;
# at 1399
#240331 11:38:34 server id 1  end_log_pos 1430 CRC32 0xd85c6c10 	Xid = 12
COMMIT/*!*/;
# at 1430
#240331 11:38:39 server id 1  end_log_pos 1495 CRC32 0x0674a180 	Anonymous_GTID	last_committed=4    sequence_number=5
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 1495
#240331 11:38:39 server id 1  end_log_pos 1580 CRC32 0xed5f16ee 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856319/*!*/;
BEGIN
/*!*/;
# at 1580
#240331 11:38:39 server id 1  end_log_pos 1727 CRC32 0xd5dc66ea 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856319/*!*/;
insert into class values('陈铭','二班',20170826,111,107,96,204)
/*!*/;
# at 1727
#240331 11:38:39 server id 1  end_log_pos 1758 CRC32 0xd4119983 	Xid = 13
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

接下来开始做增量备份:

[root@localhost backup]#mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/backup/mysql-bin.000002.2024-03-31_11:58:58

[root@localhost backup]#mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/backup/mysql-bin.000002.2024-03-31_11:58:58
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#240331 10:57:36 server id 1  end_log_pos 123 CRC32 0x68d67970 	Start: binlog v 4, server v 5.7.17-log created 240331 10:57:36
# at 123
#240331 10:57:36 server id 1  end_log_pos 154 CRC32 0x53f83afb 	Previous-GTIDs
# [empty]
# at 154
#240331 11:35:29 server id 1  end_log_pos 219 CRC32 0x8e1dc01f 	Anonymous_GTID	last_committed=0	sequence_number=1
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#240331 11:35:29 server id 1  end_log_pos 304 CRC32 0xffd43c1e 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856129/*!*/;
SET @@session.pseudo_thread_id=4/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1437073414/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 304
#240331 11:35:29 server id 1  end_log_pos 421 CRC32 0x31a6b5eb 	Query	thread_id=4	exec_time=0	error_code=0
use `nanjing`/*!*/;
SET TIMESTAMP=1711856129/*!*/;
delete from class where name='李宁'
/*!*/;
# at 421
#240331 11:35:29 server id 1  end_log_pos 452 CRC32 0x57775191 	Xid = 8
COMMIT/*!*/;
# at 452
#240331 11:37:44 server id 1  end_log_pos 517 CRC32 0xb2bce275 	Anonymous_GTID	last_committed=1	sequence_number=2
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 517
#240331 11:37:44 server id 1  end_log_pos 602 CRC32 0x826c35bf 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856264/*!*/;
BEGIN
/*!*/;
# at 602
#240331 11:37:44 server id 1  end_log_pos 719 CRC32 0x4d30d3d9 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856264/*!*/;
delete from class where name='李宁'
/*!*/;
# at 719
#240331 11:37:44 server id 1  end_log_pos 805 CRC32 0x0effbaa6 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856264/*!*/;
COMMIT
/*!*/;
# at 805
#240331 11:38:09 server id 1  end_log_pos 870 CRC32 0x531b5239 	Anonymous_GTID	last_committed=2	sequence_number=3
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 870
#240331 11:38:09 server id 1  end_log_pos 955 CRC32 0x7e377af7 	Query	thread_id=4	exec_time=0	error_code=0
SET TIMESTAMP=1711856289/*!*/;
BEGIN
/*!*/;
# at 955
#240331 11:38:09 server id 1  end_log_pos 1072 CRC32 0x7f128ff4 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856289/*!*/;
delete from class where name='陈铭'
/*!*/;
# at 1072
#240331 11:38:09 server id 1  end_log_pos 1103 CRC32 0xe6e93731 	Xid = 10
COMMIT/*!*/;
# at 1103
#240331 11:38:34 server id 1  end_log_pos 1168 CRC32 0xd340a8d1 	Anonymous_GTID	last_committed=3    sequence_number=4
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 1168
#240331 11:38:34 server id 1  end_log_pos 1253 CRC32 0xb2d9ce6b 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856314/*!*/;
BEGIN
/*!*/;
# at 1253
#240331 11:38:34 server id 1  end_log_pos 1399 CRC32 0x62bc5441 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856314/*!*/;
insert into class values('李宁','二班',20170824,92,98,105,235)
/*!*/;
# at 1399
#240331 11:38:34 server id 1  end_log_pos 1430 CRC32 0xd85c6c10 	Xid = 12
COMMIT/*!*/;
# at 1430
#240331 11:38:39 server id 1  end_log_pos 1495 CRC32 0x0674a180 	Anonymous_GTID	last_committed=4    sequence_number=5
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 1495
#240331 11:38:39 server id 1  end_log_pos 1580 CRC32 0xed5f16ee 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856319/*!*/;
BEGIN
/*!*/;
# at 1580
#240331 11:38:39 server id 1  end_log_pos 1727 CRC32 0xd5dc66ea 	Query	thread_id=4	exec_time=0 error_code=0
SET TIMESTAMP=1711856319/*!*/;
insert into class values('陈铭','二班',20170826,111,107,96,204)
/*!*/;
# at 1727
#240331 11:38:39 server id 1  end_log_pos 1758 CRC32 0xd4119983 	Xid = 13
COMMIT/*!*/;
# at 1758
#240331 11:58:28 server id 1  end_log_pos 1805 CRC32 0xb246b44f 	Rotate to mysql-bin.000003  pos: 4
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
[root@localhost backup]#

1.4第三次插入后 做增量备份

insert into class values('付杰','二班',20170828,115,118,116,268);
insert into class values('郭尚','二班',20170830,111,99,80,259);

二、模拟数据丢失,并使用增量备份分别基于位置和时间点恢复一班所有学生成绩与二班陈铭与付杰的成绩

模拟整个数据全部丢失,然后分析需要恢复一班的成绩那么就是将完全备份进行恢复,需要恢复陈铭和付杰的成绩,那么就是分别对第2和第3次的增量数据做断点恢复

2.1用完全备份恢复,获取一班的人的成绩

数据恢复:

mysql -uroot -p123123 nanjing < /opt/backup/nanjing_class.sql

注意路径哦

2.2陈铭的成绩恢复

mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/backup/mysql-bin.000002.2024-03-31_11:58:58

查看断点信息

方法一:

mysqlbinlog --no-defaults --start-position='1580' /opt/backup/mysql-bin.000002.2024-03-31_11:58:58|mysql -uroot -p123123

方法二:

mysqlbinlog --no-defaults --start-position='1580' --stop-position='1758' /opt/backup/mysql-bin.000002.2024-03-31_11:58:58|mysql -uroot -p123123

2.3付杰的成绩恢复

mysqlbinlog --no-defaults --base64-output=decode-rows -v /opt/backup/mysql-bin.000003.2024-03-31_12:13:22

数据恢复

mysqlbinlog --no-defaults --start-datetime='2024-03-31 12:07:14' --stop-datetime='2024-03-31 12:07:58' /opt/backup/mysql-bin.000003.2024-03-31_12:13:22|mysql -uroot -p123123

三、数据库上云迁移的方案?

1.1 方案一:使用脱机冷备份

冷迁移----物理冷备
首先需要关闭数据库服务;
然后用tar对数据库进行打包
再将tar包传给另一台主机
然后将其解压再恢复

1.2 方案二:热迁移

热迁移---阿里云自带的热迁移工具DTS(数据传输服务)

四、脚本增量备份

#!/bin/bash
##增量备份脚本
DIRLOGS=/var/log/mysql
LOGS_HOME=/usr/local/mysql/data
TODAY=$(data +%F)
YESTERDAY=$(date -d '-1 day' +%F)
USER=root
PASSWORD=abc123#先判断收集备份文件的目录是否存在,不存在则创建目录
[ -d $DIRLOGS ]||mkdir -p $DIRLOGS##备份二进制日志的索引文件到指定目录并加入时间标记
\cp  $LOGS_HOME/mysql_bin.index $DIRLOGS/mysql_bin.index.$TODAY#先判断昨天的二进制日志的索引文件是否存在,存在则作为过滤条件过滤出今天需要备份的二进制日志文件名称
if [ -f $DIRLOGS/mysql_bin.index.$YESTERDAY ];thenBINGLOG=$(cat $DIRLOGS/mysql_bin.index.$TODAY|grep -v $(cat $DIRLOGS/mysql_bin.index.$YESTERDAY)|awk -F/ '{print $2}')elseBINGLOG=$(cat $DIRLOGS/mysql_bin.index.$TODAY|awk -F/ '{print $2}')
fi##刷新生成新的二进制日志文件,便于收集最新的二进制日志
mysqladmin -u"$USER" -p"$PASSWORD" flush-logs &>/dev/null##使用for循环,对所有的新产生的binlog文件进行备份
for i in $BINGLOG
do
mv $LOGS_HOME/$i  $DIRLOGS/$i.$TODAY
done

五、温故而知新

备份方法
物理备份:直接对数据库的物理文件(数据文件、日志文件等)进行备份
逻辑备份:对数据库的库和表对象以SQL语言的形式导出进行备份备份策略
完全备份:每次备份都备份完整的库或者表数据
差异备份:只备份上一次完全备份后的更新数据
增量备份:每次备份只备份上一次完全备份或增量备份后的更新数据数据库上云迁移     冷迁移     物理冷备      先关闭数据库,再打包备份+恢复热迁移     阿里云 DTS完全备份
物理冷备:先关闭数据库,使用tar命令打包备份数据库的数据目录和文件  mysql/data/mysqldump逻辑热备
mysqldump -uXXX -pXXX  --databases 库1 [库2 ....] > XXX.sql       备份一个或多个库及库中所有的表数据
mysqldump -uXXX -pXXX  --all-databases > XXX.sql                  备份所有的库
mysqldump -uXXX -pXXX  库名 > XXX.sql                             备份指定库中的所有的表数据,不包含库对象
mysqldump -uXXX -pXXX  库名 表1 [表2 ....] > XXX.sql              备份指定库中的一个或多个表数据,不包含库对象xtrabackup物理热备完全恢复
先登录到数据库,再执行 source XXX.sql (如果sql文件是只备份了表数据的文件,需要先创建库并 use 切换库后再执行)mysql -uXXX -pXXX < XXX.sql         cat XXX.sql | mysql -uXXX -pXXX                          恢复库
mysql -uXXX -pXXX 库名 < XXX.sql    cat XXX.sql | mysql -uXXX -pXXX 库名                     恢复表增量备份
通过刷新二进制日志间接实现增量备份
mysqladmin -uXXX -pXXX flush-logs查看二进制日志内容
mysqlbinlog --no-defaults --base64-output=decode-rows -v <BINLOG>使用二进制日志增量恢复
mysqlbinlog --no-defaults <BINLOG> | mysql -uXXX -pXXX断点恢复
基于位置点恢复
mysqlbinlog --no-defaults --start-position='开始位置点' --stop-position='结束位置点'  <BINLOG> | mysql -uXXX -pXXX基于时间点恢复
mysqlbinlog --no-defaults --start-datetime='YYYY-mm-dd HH:MM:SS' --stop-position='YYYY-mm-dd HH:MM:SS'  <BINLOG> | mysql -uXXX -pXXX如果需要恢复到某条sql语句之前的所有数据,就stop在这个语句的位置点或时间点之前
如果需要恢复某条sql语句及其之后的所有数据,就从这个语句的位置点或时间点开始start

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

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

相关文章

小练习——java中循环语句打印乘法口诀表

正向乘法表 for (int i 1; i<9; i) {for (int j 1; j < i; j) {System.out.print(j "X" i "" (i * j) "\t");}System.out.println();}代码结果&#xff1a; 打印反向乘法表 for (int i 9; i > 1; i--) {for (int j 1; j <…

大数据技术之 Apache Doris(一)

第 1 章 Doris 简介 1.1 Doris 概述 Apache Doris 由百度大数据部研发&#xff08;之前叫百度 Palo&#xff0c;2018 年贡献到 Apache 社区后&#xff0c;更名为 Doris &#xff09;&#xff0c;在百度内部&#xff0c;有超过 200 个产品线在使用&#xff0c;部署机器超过 10…

机器学习周报第35期

目录 一、文献阅读&#xff1a;You Only Look Once: Unified, Real-Time Object Detection1.1 摘要1.2 背景1.3 论文模型1.4 网络设计1.5 YOLO的局限性1.6 实现代码 target 7*7*30 值域为0-1 一、文献阅读&#xff1a;You Only Look Once: Unified, Real-Time Object Detection…

从0开始搭建基于VUE的前端项目(三) Vuex的使用与配置

准备与版本 vuex 3.6.2(https://v3.vuex.vuejs.org/zh/)概念 vuex是什么? 是用作 【状态管理】的 流程图如下 state 数据状态,成员是个对象 mapState 组件使用this.$store.state.xxx获取state里面的数据 getters 成员是个函数,方便获取state里面的数据,也可以加工数据 ma…

LC 106.从中序与后序遍历序列构造二叉树

106. 从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a; inorder [9,3,15,20,7], post…

个人主页导航源码

源码简介 个人主页导航源码&#xff0c;个人主页导航源码&#xff0c;一款带后台的个人导航主页源码。 搭建环境 PHP 5.2 Nginx Mysql5.6 安装教程 1.上传源码压缩包到网站目录并解压 2.访问网站域名安装提示进行安装即可 后台路径为&#xff1a;https://域名/admin/ …

ngrok 内网穿透使用

title: ngrok 内网穿透使用 search: 2024-02-29 文章目录 背景Windows安装ngrok指令授权ngrok个人用户Authtoken穿透 http 或 https 服务ngrok的代理http指令ngrok获得静态域名指令ngrok的代理ssh指令 背景 这次寒假回家&#xff0c;很无奈&#xff0c;很多东西放在项目组服务…

Vue2(十一):脚手架配置代理、github案例、插槽

一、脚手架配置代理 1.回顾常用的ajax发送方式&#xff1a; &#xff08;1&#xff09;xhr 比较麻烦&#xff0c;不常用 &#xff08;2&#xff09;jQuery 核心是封装dom操作&#xff0c;所以也不常用 &#xff08;3&#xff09;axios 优势&#xff1a;体积小、是promis…

微软Azure推出9种逼真AI语音服务;OpenAI有限开放Voice Engine访问权限

&#x1f680; 微软Azure推出9种逼真AI语音服务 摘要&#xff1a;微软Azure团队在2023年9月对外宣布&#xff0c;针对商业客户推出了一系列逼真的AI语音服务。最近&#xff0c;该公司进一步表示&#xff0c;这些服务现已包含9种更为真实的人工智能声音&#xff0c;并且已于所有…

PostgreSQL:所有支持的数据类型及建表语句实例

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 一、引言 在当今这个数据驱动的时代&#xff0c;数据库已经成为了企业和个人不可或缺的工具。而在众多数据库产品中&#xff0c;PostgreSQL以其强大的功能和高度的可扩展性&#xff0c;受到了越来越多开发者的青睐。…

ZC706+AD9361 运行 open WiFi

先到github上下载img&#xff0c;网页链接如下&#xff1a; https://github.com/open-sdr/openwifi?tabreadme-ov-file 用win32 Disk lmager 把文件写入到SD卡中&#xff0c;这一步操作会把SD卡重新清空&#xff0c;注意保存数据。这个软件我会放在最后的网盘链接中 打开linu…

对接中泰极速行情 | DolphinDB XTP 插件使用教程

XTP 是中泰证券推出的高性能交易平台&#xff0c;专为专业投资者提供高速行情及交易系统&#xff0c;旨在提供优质便捷的市场接入通道。目前支持股票、基金、ETF、债券、期权等多个市场&#xff0c;可满足不同投资者需求。 基于 XTP 官方 C SDK&#xff0c;DolphinDB 开发了 X…

使用hping3网络工具构造TCP/IP数据包和进行DDos攻击

1 概述 hping3是一个强大的命令行工具&#xff0c;用于生成、发送和解析TCP/IP协议的数据包。它是开源的网络安全工具&#xff0c;由Salvatore Sanfilippo开发&#xff0c;主要应用于网络审计、安全测试和故障排查等领域。hping3不仅可以作为普通的网络连通性检测工具&#xf…

【蓝桥杯第十三届省赛B】(部分详解)

九进制转十进制 #include <iostream> #include<math.h> using namespace std; int main() {cout << 2*pow(9,3)0*pow(9,2)2*pow(9,1)2*pow(9,0) << endl;return 0; }顺子日期 #include <iostream> using namespace std; int main() {// 请在此…

ROS2从入门到精通1-2:详解ROS2服务通信机制与自定义服务

目录 0 专栏介绍1 服务通信模型2 服务模型实现(C)3 服务模型实现(Python)4 自定义服务5 话题、服务通信的异同 0 专栏介绍 本专栏旨在通过对ROS2的系统学习&#xff0c;掌握ROS2底层基本分布式原理&#xff0c;并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。…

智慧公厕是什么?智慧公厕的主要功能、特点?

智慧公厕&#xff0c;顾名思义&#xff0c;是指应用了智能科技的公共厕所&#xff0c;旨在提供更加便捷、舒适、智能化的卫生服务。相比传统的公厕&#xff0c;智慧公厕不仅拥有更加智能化的设备&#xff0c;还配备了远程监控与管理系统&#xff0c;以及节能环保技术&#xff0…

如何选择优质的外贸网站建设公司?

在当今数字化时代&#xff0c;外贸行业越来越重视在线渠道的发展&#xff0c;而外贸网站建设作为企业对外联系的重要窗口&#xff0c;扮演着至关重要的角色。选择一家优质的外贸网站建设公司&#xff0c;不仅能帮助企业提升品牌形象&#xff0c;还能有效扩大海外市场。那么&…

微信小程序【从入门到精通】——服务器的数据交互

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

linux C:变量、运算符

linux C 文章目录 变量运算符 一、变量 [存储类型] 数据类型 标识符 值 标识符&#xff1a;由数字、字母、下划线组成的序列&#xff0c;不能以数字开头。 数据类型&#xff1a;基本数据类型构造类型 存储类型&#xff1a;auto static…

Linux(CentOS7)配置系统服务以及开机自启动

目录 前言 两种方式 /etc/systemd/system/ 进入 /etc/systemd/system/ 文件夹 创建 nginx.service 文件 重新加载 systemd 配置文件 ​编辑 配置开机自启 /etc/init.d/ 进入 /etc/init.d/ 文件夹 创建 mysql 文件 编写脚本内容 添加/删除系统服务 配置开机自启 …