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表的内容。



相关内容

热门资讯

别再深夜乱刷直播间!央视起底黑... 家人们,睡前刷手机的时候,有没有刷到过这样的直播间? 没有主播露脸,没有精彩内容,甚至只有一个头像,...
余承东困在“遥遥领先” 作者 | 叶二 编辑 | 魏晓 聚光灯下的余承东,尽可能的向外界展示自己没有受到“竹知了”风波的影响...
细胞“重生” 本报记者 刘苏雅 倘若一艘船上的木板被一块块替换,直至所有部件都焕然一新,那它还是原来那艘船吗?当再...
聚“绿”成势,结构转型活力足(... 尹双红产业结构的绿色转型,不是简单地给排放做减法,而是一场全方位、深层次的系统性变革细览2026年经...
房主任塌房,互联网装不下“农村... 作者/富十几 编辑/章鱼房主任,塌房了。这些天,只要你打开社交平台就会发现,这位50岁脱口秀演员风评...
美媒爆料:特朗普与美防长爆发激... 据《华盛顿邮报》8月5日报道,在上周末戴维营峰会上,特朗普总统就弹药库存极度短缺一事怒火难平,向美防...
马桶水箱烂了能补吗 解决方法:当然是可以修补的,首先你把水箱的水放干,用卫生纸把洞口水渍污垢擦干,如果洞口很小的话,直接...
九牧马桶冲水无力怎么处理 进水阀的水位比较低,冲水压力小导致。将进水阀拆掉,把里面的卡扣逆时针旋转到适当的调整高度,再拧紧连接...
海尔油烟机好用吗 你好,个人觉得海尔油烟机还是非常不错的,我家目前也是选择购买的海尔油烟机,目前使用了这么久基本没有出...
智能马桶漏水的原因和处理方法有... 1、可能是因为异物进入智能马桶中,建议寻找专业的维修人员进行维修,在维修之前一定要先断电,避免发生危...