当前位置: 首页 > news >正文

网站怎么做备案域名收录查询

网站怎么做备案,域名收录查询,手机如何自制网站,国内网站模板目录 一、MySql数据库增量备份的工作原理 1、全量备份与增量备份 2、增量备份原理 二、进行增量备份 步骤1:启用二进制日志 使用 SHOW VARIABLES 命令查看二进制日志状态 步骤2:执行增量备份脚本 三、使用增量备份恢复损坏的数据库 步骤1&#…

目录

一、MySql数据库增量备份的工作原理

1、全量备份与增量备份

2、增量备份原理

二、进行增量备份

步骤1:启用二进制日志

使用 SHOW VARIABLES 命令查看二进制日志状态

步骤2:执行增量备份脚本

三、使用增量备份恢复损坏的数据库

步骤1:恢复全量备份

步骤2:执行增量恢复脚本恢复全量备份


一、MySql数据库增量备份的工作原理

1、全量备份与增量备份

在数据库管理中,备份是确保数据安全的关键步骤。数据库发生故障、数据丢失或误操作时,备份是恢复数据的唯一途径。全量备份保存整个数据库的完整副本,但随着数据量增加,备份时间和存储需求也会显著增加。相比之下,增量备份可以有效优化这一过程。增量备份仅保存自上次备份以来的变更数据,极大减少了备份时间和存储空间。特别是在数据更新频繁的业务环境中,增量备份是一种高效且经济的选择,能够快速恢复到最新的数据库状态,确保数据安全与业务连续性。

2、增量备份原理

MySql的增量备份实际上是在完成一次完整的全量备份之后,后续只备份自上次备份以来对数据库所做的变更,例如新增(INSERT)、修改(UPDATE)和删除(DELETE)操作。增量备份呢依赖于 二进制日志(Binary Logs),这些日志记录了所有对数据库的更改(如 INSERTUPDATEDELETE 操作)。在恢复数据库时,先恢复数据库的全备份,恢复到某个时间点的完整数据状态。再从前往后执行备份的增量备份日志,将数据库恢复到最新状态。

  1. 全备份
    • 全备份 是备份整个数据库的完整副本,通常在备份操作的起点进行。它包含所有表结构、数据等。
    • 全备份创建之后,后续的备份可以依赖增量备份来减少备份的数据量和时间。
  2. 二进制日志(Binary Logs)
    • MySql 的二进制日志是一个关键组件,它记录了所有对数据库造成更改的 SQL 语句,包括 INSERTUPDATEDELETE 等操作。通过保存这些二进制日志,可以实现增量备份。
    • 二进制日志不记录 SELECT 操作,因为它们不会更改数据。
  3. 增量备份
    • 增量备份不再保存整个数据库,而是通过读取并保存自上次备份以来的二进制日志文件,记录这些日志所涉及的更改。
    • 增量备份通常以二进制日志文件的方式存在(如 MySql-bin.000001),也可以通过 MySqlbinlog 工具导出为 SQL 格式,以便日后恢复。
  4. 恢复过程
    • 恢复数据库时,首先应用全备份,恢复到某个时间点的完整数据状态。
    • 然后,依次应用每个增量备份(即二进制日志文件),将数据库恢复到最新状态。

二、进行增量备份

步骤1:启用二进制日志

首先,确保 MySql 配置文件中启用了二进制日志功能。编辑 MySql 配置文件(my.cnfmy.ini)并添加以下行:

[MySqld]
log-bin=/var/log/MySql/MySql-bin

启用后,重新启动 MySql 服务:

sudo systemctl restart MySql
使用 SHOW VARIABLES 命令查看二进制日志状态

如果输出结果是 ON,说明二进制日志已开启;如果是 OFF,则表示二进制日志未启用。

步骤2:执行增量备份脚本

创建一个的bash脚本文件backup_MySql.sh,将下面的代码段进行如下四步修改后拷贝进去。

  • MySql_USERMySql_PASSWORD 替换为你的 MySql 用户名和密码。
  • MySql_HOST 设置为 MySql 服务器的地址,通常是 localhost
  • BINLOG_DIR 设置为本机MySql数据库的二进制日志存放目录。
  • 将倒数第二行的sleep后方的数字(文中是sleep 10)修改为你希望的增量备份的时间间隔。
#!/bin/bash# MySql 配置
MySql_USER="root"
MySql_PASSWORD="xxxxxx."
MySql_HOST="localhost"
BACKUP_DIR="./backup"
LOG_FILE="$BACKUP_DIR/backup.log"
BINLOG_DIR="/www/server/data"  # 二进制日志目录
FULL_BACKUP_DIR="$BACKUP_DIR/full"
INCREMENTAL_BACKUP_DIR="$BACKUP_DIR/incremental"
LAST_BACKUP_FILE="$BACKUP_DIR/last_backup_pos.txt"# 检查备份目录是否存在,不存在则创建
mkdir -p "$FULL_BACKUP_DIR" "$INCREMENTAL_BACKUP_DIR"# 完全备份函数
full_backup() {TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")FULL_BACKUP_PATH="$FULL_BACKUP_DIR/full_backup_$TIMESTAMP.sql"echo "Starting full backup at $TIMESTAMP" >> "$LOG_FILE"MySqldump -u "$MySql_USER" -p"$MySql_PASSWORD" -h "$MySql_HOST" --all-databases > "$FULL_BACKUP_PATH"# 记录二进制日志位置MySql -u "$MySql_USER" -p"$MySql_PASSWORD" -h "$MySql_HOST" -e "SHOW MASTER STATUS;" | awk 'NR==2 {print $1, $2}' > "$LAST_BACKUP_FILE"echo "Full backup completed at $TIMESTAMP" >> "$LOG_FILE"
}# 增量备份函数
incremental_backup() {TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")INCREMENTAL_BACKUP_PATH="$INCREMENTAL_BACKUP_DIR/incremental_backup_$TIMESTAMP.sql"echo "Starting incremental backup at $TIMESTAMP" >> "$LOG_FILE"# 读取上次备份的二进制日志位置if [ -f "$LAST_BACKUP_FILE" ]; thenBINLOG_FILE=$(awk '{print $1}' "$LAST_BACKUP_FILE")BINLOG_POS=$(awk '{print $2}' "$LAST_BACKUP_FILE")# 进行增量备份MySqlbinlog --start-position="$BINLOG_POS" "$BINLOG_DIR/$BINLOG_FILE" > "$INCREMENTAL_BACKUP_PATH"# 记录当前的二进制日志位置MySql -u "$MySql_USER" -p"$MySql_PASSWORD" -h "$MySql_HOST" -e "SHOW MASTER STATUS;" | awk 'NR==2 {print $1, $2}' > "$LAST_BACKUP_FILE"echo "Incremental backup completed at $TIMESTAMP" >> "$LOG_FILE"elseecho "No previous backup found, running full backup instead." >> "$LOG_FILE"full_backupfi
}# 每隔3600秒运行增量备份
while true; do# 判断是否是第一次运行(没有完全备份),如果是则先做完全备份if [ ! -f "$LAST_BACKUP_FILE" ]; thenfull_backupelseincremental_backupfi# 休眠10秒sleep 10
done

运行脚本
给脚本添加执行权限并运行:

chmod +x backup_MySql.sh
./backup_MySql.sh

确认备份文件目录:确保增量备份的 SQL 文件存放在 INCREMENTAL_BACKUP_DIR(例如 /backup/MySql/incremental/)目录下,文件名格式为 incremental_backup_*.sql,并按时间顺序命名。

  • 脚本会从指定的备份目录中读取所有按时间命名的增量 SQL 文件,并将它们按顺序恢复到指定的 MySql 数据库中。
  • 如果恢复过程中遇到错误,脚本会停止并提示出错的文件。

三、使用增量备份恢复损坏的数据库

向数据库中生成一些数据,执行增量备份。

删除生成的数据,模拟数据库损毁的情况。

步骤1:恢复全量备份

MySql -uroot -p. < ./full_backup_2024-09-12_16-01-04.sql

以下参数需要进行替换或注意:

  • -uroot:将root用户替换为你想使用的你的 MySql 用户名。
  • -p:提示输入密码(恢复时需要输入 MySql 密码)。
  • ./full_backup_2024-09-12_16-01-04.sql:将此文件替换为脚本执行时产生的全量备份文件。

步骤2:执行增量恢复脚本恢复全量备份

在增量备份脚本相同目录下创建restore_incremental.sh文件,将下面的代码段进行如下四步修改后拷贝进去。

  • MySql_USERMySql_PASSWORD 替换为你的 MySql 用户名和密码
  • MySql_HOST 设置为 MySql 服务器的地址,通常是 localhost
  • BINLOG_DIR 设置为本机MySql数据库的二进制日志存放目录。
#!/bin/bash# MySql 登录信息
MySql_USER="root"
MySql_PASSWORD="xxxxxx."
MySql_HOST="localhost"# 增量备份目录
INCREMENTAL_BACKUP_DIR="./backup/incremental"# 检查是否有备份文件
if [ ! -d "$INCREMENTAL_BACKUP_DIR" ]; thenecho "增量备份目录不存在: $INCREMENTAL_BACKUP_DIR"exit 1
fi# 获取所有增量备份文件(按时间顺序)
sql_files=$(ls $INCREMENTAL_BACKUP_DIR/incremental_backup_*.sql | sort)# 恢复每一个增量备份文件
for sql_file in $sql_files; doecho "正在恢复增量备份: $sql_file"MySql -u $MySql_USER -p$MySql_PASSWORD -h $MySql_HOST < $sql_fileif [ $? -ne 0 ]; thenecho "恢复 $sql_file 时出错"exit 1fi
doneecho "所有增量备份已成功恢复。"

运行脚本
给脚本添加执行权限并运行:

chmod +x backup_MySql.sh
./backup_MySql.sh

刷新后数据全部恢复成功。

http://www.hkea.cn/news/515879/

相关文章:

  • 大型门户网站模板营销神器
  • 学设计的网站都有哪些seo和sem
  • 如何做网站流量买卖营销型网站的特点
  • 装修设计网站哪个平台最好软文推广多少钱一篇
  • 怎么做微信里的网页网站链接网站设计平台
  • 长宁专业做网站网络营销案例分享
  • 哈尔滨专业建网站哪家好码迷seo
  • 涞水县住房和城乡建设局网站厦门seo专业培训学校
  • 网站建设销售招聘德阳seo
  • 平台网站建设的公司seozou是什么意思
  • wordpress 相册 主题seo整站优化技术培训
  • 做窗帘网站图片百度自动点击器下载
  • 飘雪影视大全免费观看视频快推达seo
  • 做网站的装饰标语seo宣传网站
  • 国外 平面设计 网站百度收录
  • 做网站话术简述搜索引擎的工作原理
  • 现在建设网站赚钱吗seo外链论坛
  • 青海网站建设企业海南百度竞价推广
  • 南京做网站yuanmus电脑突然多了windows优化大师
  • 美国做deals的网站软文营销经典案例优秀软文
  • 招标网站怎么做吴江seo网站优化软件
  • 苏州建设工程协会网站seo去哪里学
  • 上海正规网站制作价格可口可乐软文营销案例
  • 番禺网站 建设信科网络站长之家ping
  • 建筑工程施工承包合同关键词优化报价推荐
  • 网站可以免费看企业网站系统
  • 中华人民共和国建设部网站seo怎么快速提高排名
  • 南宁做网站的有几家东莞网络营销网站建设
  • 苏州知名网站建设开发新区seo整站优化公司
  • 政府建设网站计划书品牌营销策略包括哪些内容