MySQL分库备份脚本
admin
2023-05-28 16:01:46
0


vim /data/mysqlback.sh

#! /bin/bash

BAKPATH=/data/mysql-back

MYUSER=root

MYPASS="123456"

SOCKET=/var/lib/mysql/mysql.sock

MYCMD="mysql -u$MYUSER -p$MYPASS -S $SOCKET"

MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S $SOCKET -x -B -F -R"

DBLIST=`$MYCMD -e "show databases;" |sed "1d" |egrep -v "_schema|test"`


[ ! -d $BAKPATH ] && mkdir -p $BAKPATH

for dbname in $DBLIST

do

    $MYDUMP $dbname |gzip > $BAKPATH/${dbname}_$(date +%F).sql.gz

done


执行该脚本,可以在/data/mysql-back目录生成三个库的压缩文件

MySQL分库备份脚本





mysqldump命令参数说明

--lock-all-tables,  -x

提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭--single-transaction 和--lock-tables 选项。


--databases, -B

用于备份多个数据库,使用该选项,mysqldump 把每个名字都当作为数据库名。如果没有该选项,mysqldump 把第一个名字参数作为数据库名,后面的作为表名。


--flush-logs,-F

开始转储前刷新MySQL服务器日志文件。该选项要求RELOAD权限。请注意如果结合--all--database(或-A)选项使用该选项,根据每个转储的数据库刷新日志。

例外情况:当使用--lock-all-tables或--master-data的时候,在这种情况下,日志只刷新一次,在所有 表被锁定后刷新。如果你想要同时转储和刷新日志,应使用--flush-logs连同--lock-all-tables或--master-data。


--routines, -R

在转储的数据库中转储存储程序(函数和程序)。使用---routines产生的输出包含CREATE PROCEDURE和CREATE FUNCTION语句以重新创建子程序。但是,这些语句不包括属性,例如子程序定义者或创建和修改时间戳。这说明当重载子程序时,对它们进行创建时定义者应设置为重载用户,时间戳等于重载时间。如果你需要创建的子程序使用原来的定义者和时间戳属性,不使用--routines。相反,使用一个具有mysql数据库相应权限的MySQL账户直接转储和重载mysql.proc表的内容。



相关内容

热门资讯

OpenAI据悉准备未来数日或... 观点网讯:5月21日,据知情人士透露,OpenAI正在与投行合作,为未来数天或数周内提交首次公开募股...
原创 去... 近期,我国逐日工程科研团队接连取得技术突破,依托微波无线传能核心技术,为太空太阳能电站落地应用筑牢根...
2026年中国网络文明大会互联... 5月20日,2026年中国网络文明大会互联网与文明乡风建设分论坛在广西南宁举办。本次论坛以“互联网与...
一个赚钱的都没有,14家企业却... 2026年5月17日,海南文昌,长征八号把千帆星座第9批卫星送上轨道。 入轨后,在轨总数突破162颗...
“算力网要来了”冲上热搜,算力... 近期召开的国务院常务会议强调,要“加强水网、新型电网、算力网、新一代通信网、城市地下管网、物流网等规...
湖南株洲市委书记再为新人证婚 澎湃新闻记者 钟煜豪今年5月20日,湖南株洲市委书记曹慧泉等市领导再次为新人证婚。据《株洲日报》消息...
杨宝桢“宣布退出民众党”,独立... 杨宝桢昨(20)日宣布退出民众党,独立参选台中市东南区市议员选举。前民众党发言人杨宝桢有意角逐台中市...
司法部谈“饭店后厨装不装挡鼠板... ‍‍5月21日,国务院新闻办公室举行新闻发布会,介绍规范涉企行政执法专项行动有关情况。“‘执法标准不...
耿同学,一个退学博士是怎么用A... 2026年的春夏之交,中国学术圈和文学圈接连经历了两场“地震”。学术圈的震中,是一个叫“耿同学讲故事...
国网河南电力智能计量技术亮相2... 5月20日,第 27 个“世界计量日”中国主场活动在河南郑州举行。国网河南省电力公司展示的具身智能机...