使用MySQL-Shell备份

2023-09-26  本文已影响0人  这货不是王马勺

备份实例

util.dumpInstance(outputUrl[, options])
备份实例。
其中,outputUrl 是备份目录,此目录必须为空。options 是可指定的选项。

示例:

util.dumpInstance('/data/backup/full',{compression: "none"})

命令中的 /data/backup/full 是备份目录,compression: "none" 指的是不压缩。
这里设置为不压缩主要是为了方便查看数据文件的内容。线上使用建议开启压缩,默认即开启。
压缩开启后文件中会多一些不可读的内容。

备份结果

备份结果中文件说明:

备份参数

util.dumpInstance 的参数可分为如下几类:

过滤相关
以下是过滤相关的选项:

并行备份相关

OCI(甲骨文云)相关

osBucketName,osNamespace,ociConfigFile,ociProfile,ociParManifest,ociParExpireTime:OCI 对象存储相关。

其它选项

其他粒度备份

util.dumpSchemas(schemas, outputUrl[, options])
备份指定库的数据。
用法同 util.dumpInstance 类似。其中,第一个参数必须为数组,即使只需备份一个库,如:

util.dumpSchemas(['sbtest'],'/data/backup/schema')

支持的配置大部分与 util.dumpInstance 相同。
从 MySQL Shell 8.0.28 开始,可直接使用 util.dumpInstance 中的 includeSchemas 选项进行指定库的备份。

util.dumpTables(schema, tables, outputUrl[, options])
备份指定表的数据。
用法同 util.dumpInstance 类似。其中,第二个参数必须为数组,如:

util.dumpTables('sbtest',['sbtest1'],'/data/backup/table')

支持的配置大部分与 util.dumpInstance 相同。
从 MySQL Shell 8.0.28 开始,可直接使用 util.dumpInstance 中的 includeTables 选项进行指定表的备份。

结合crontab进行定时备份

1.创建备份语句脚本
创建 /backup/scripts/mysql_shell_dumpInstance.sql

util.dumpInstance('/backup/mysql_instance',{excludeSchemas:["mysql","sys","information_schema","performance_schema"]})

2.创建调用脚本
创建/backup/scripts/mysql_shell_dumpInstance.sh

mv  /backup/mysql_instance   /backup/mysql_instance_`date +%Y%m%d -d"yesterday"`
mkdir /backup/mysql_instance
dbuser=root
savedays=3

/app/mysql-shell/bin/mysqlsh -uroot < /backup/scripts/mysql_shell_dumpInstance.sql
 if [ $? -ne 0 ]
  then
    echo "`date +%Y%m%d%H` backup failed!!!" >> /backup/mysql_instance/backup.log
  fi

find /backup/ -name "mysql_instance*"  -type d -mtime +${savedays} -exec rm -rf {} \;

注:
(1)调用前需保证存在/backup/mysql_instance备份目录,否则要先手动创建。
(2)用户密码可以保存至mysql-shell中,就不用显示指定了。

3.crontab定时调用

crontab -e

30 0 * * * /bin/bash /backup/scripts/mysql_shell_dumpInstance.sh > /dev/null 2>&1

备份流程

还原实例

util.loadDump(url[, options])
导入通过 dump 命令生成的备份集。
例:

util.loadDump("/data/backup/full",{loadUsers: true})

命令中的 /data/backup/full 是备份目录,loadUsers: true 是导入账号,默认不会导入。

还原参数

util.loadDump 的参数可分为如下几类:
过滤相关

并行导入相关

断点续传相关

OCI 相关
osBucketName,osNamespace,ociConfigFile,ociProfile。

二级索引相关

其它选项

上一篇 下一篇

猜你喜欢

热点阅读