五.MYSQL数据库备份

2023年 9月 21日 76.6k 0

五、数据库的备份****

数据的备份是我们日常工作中最重要的一部分(没有之一)****

1、程序错误,防开发

2、误操作。用rsync要注意不要用源文件去同步

3、计算机损坏。服务器尽量是在保修期内,延保,

4、磁盘损坏,raid

5、不可抗力。在建数据中心的一般是建多个备用,遵循的原则是两地三中心

(两个地区,三中心)

数据备份要考虑经济成本原则****

1、企业不差钱 :多做数据中心

2、企业差钱:你可以用公有云做好的软支持(软件层次尽量保证他的安全)

数据备份类型:****
物理与逻辑角度分为:****

物理备份,直接将我的数据库安装路径打包备份。

逻辑备份,保存的是软件的操作过程或者相关文件。

从形式分为:冷备份  关机,复制粘贴(打包)****

热备份  在业务进行时不停机,msyql自带的mysqldump工具支持innodb引擎的热备

温备份 在执行备份的时候,锁库缩表。(innodb是行级缩表,myisam是表级缩表)

从策略上分:****

全备:把所有的数据库和表统一备份一遍

增备:只复制新增的,比较的前一天的

差异化备份:比较上一次全备的内容进行备份,不是比较前一天的

公司的业务量,中小型公司数量是几十个GB即可 。压缩的比例是4-8倍

备份命令****

mysqldump 热备 5.7以后以后的版本需要加上--set-gtid-purged=OFF避免出现警告信息

mysqldump -uroot -p123123 --set-gtid-purged=OFF yun1 >/backup/yun1.sql

指定具体某个库--databases (-B)

mysqldump -uroot --set-gtid-purged=OFF --databases yun1 >/backup/yun1.sql

备份多个库:mysqldump -uroot --set-gtid-purged=OFF --databases yun1 yunjisuan1 >/backup/yun.sql

备份某一个表:不用--database(-B)默认把第一个字段当初库,第二字段是表

mysqldump -uroot --set-gtid-purged=OFF yun1 t100w >/backup/yun.sql

导入的时候需要加库名

全备所有数据库--all-databases (-A)

mysqldump -uroot -p123123 --opt --all-databases --set-gtid-purged=OFF >/backup/all.sql

mysqldump -uroot -p123123 --opt -A --set-gtid-purged=OFF |gzip -9>/backup/all_$(date +%F).sql.gz

备份的压缩

mysqldump -uroot --opt --all-databases --set-gtid-purged=OFF |gzip -9>/backup/all_$(date +%F).sql.gz

备份表结构:mysqldump -uroot -p123123 --set-gtid-purged=OFF -d yun1 benet > b.sql

导入数据两种方式****

一种登录mysql,source表文件:source /backup/yun1.sql;

在Linux重定向方式:mysql -uroot -p123123 < /backup/yun1.sql

mysql -uroot -p123123 yun1< /backup/yun1.sql

备份脚本****

#!/bin/bash

[ -d /backup ] || mkdir -p /backup

for i in mysql -uroot -p123123 -e "show databases" 2>/dev/null |sed '1d' |egrep -v "schema|sys|mysql"

do

for a in mysql -uroot -p123123 -e "use $i;show tables" 2>/dev/null |sed '1d'

do

mysqldump -uroot -p123123 --set-gtid-purged=OFF ii ia>/backup/i_i\_i_a_$(date +%F).sql &>/dev/null

        done

done

以上的方式算是全备
一般是采用全备+增备的方式

全备用mysqldump,增备用binlog日志

全备后,根据全备恢复情况,再用binlog日志提取恢复的内容

mysqlbinlog --skip-gtids --stop-datetime='23-03-25 11:24:22' mysql-bin.000008>yun3.sql

--start-position

--start-datetime

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论