数据库同步工具
sqlserver,Mysql数据同步软件

利用shell开发mysql分库分表备份脚本

购买事宜请联系QQ:1793040

#!/bin/bash

##

#定义变量

RETVAL = 0

用户=根

端口= 3306

通过=" chenliang"

时间= $(日期+%Y_%m_%d)

Sock ="/mysql/$Port/mysql.sock"

路径="/mysql/apps/mysql/bin"

登录=" $路径/mysql-u $用户-p $传递-S $袜子"

转储=" $路径/mysqldump-u $用户-p $传递-S $袜子"

数据库= $($登录-e"显示数据库;" | grep-Ev" _schema | mysql | sys |数据库")

#确定要执行的用户

如果[" $ UID"-ne" $ RETVAL"];然后

回声"必须是roo才能运行脚本"

1号出口

科幻

#加载本地函数

[-f/etc/init.d/functions] \ \源/etc/init.d/functions

#停止从SQL线程

$登录-e"停止从属sql_thread;"

RETVAL = $?

如果[$ RETVAL-eq 0];然后

动作"停止从属sql_thread"/bin/true

其他

动作"停止从属sql_thread"/bin/false

科幻

#刷新日志;

$ Login-e"刷新日志;"

#for mysql循环备份$端口实例数据库和表

用于$ Database中的数据库

#确定$ Bak_dir1存在

Bak_dir1 ="/数据/bak _ $ {端口}/子数据库/$时间"

如果[!-d" $ Bak_dir1"];然后

mkdir $ Bak_dir1-p

RETVAL = $?

如果[$ RETVAL-eq 0];然后

动作" mkdir" $ Bak_dir1" dir"/bin/true

其他

动作" mkdir" $ Bak_dir1" dir"/bin/false

科幻

科幻

#备份数据库

$转储-B-F-R-x--set-gtid-purged = off--master-data = 2 gzip \ gt; $ Bak_dir1/$ {时间} _ $ {端口} _database-$ {数据库}.sql.gz

RETVAL = $?

如果[$ RETVAL-eq 0];然后

动作"备份" $数据库"数据库"/bin/true

其他

动作"备份" $数据库"数据库"/bin/false

科幻

#查找delete-mtime +7数据

Bak_dir11 ="/数据/bak _ $ {端口}/sub_database"

找到$ Bak_dir11-maxdepth 1-type d-mtime +7 | xargs rm-fr

Table = $($ Login-e"使用$数据库;显示表;" | grep-v" Tables_in")

用于$表中的表

#确定$ Bak_dir2存在

Bak_dir2 ="/数据/bak _ $ {端口}/子表/$数据库/$时间"

如果[!-d" $ Bak_dir2"];然后

mkdir $ Bak_dir2-p

RETVAL = $?

如果[$ RETVAL-eq 0];然后

动作" mkdir" $ Bak_dir2" dir"/bin/true

其他

动作" mkdir" $ Bak_dir2" dir"/bin/false

科幻

科幻

$转储-R-x--set-gtid-purged = off $数据库$表| gzip \ gt; $ Bak_dir2/$ {时间} _ $ {端口} _ $ {数据库} _table-$ {table}.sql.gz

RETVAL = $?

如果[$ RETVAL-eq 0];然后

操作"备份$ {数据库}。$ {表}表"/bin/true

其他

操作"备份$ {数据库}。$ {表}表"/bin/false

科幻

#查找删除$ Bak_dir22-mtime +7数据

Bak_dir22 ="/数据/bak _ $ {端口}/子表/$数据库"

找到$ Bak_dir22-maxdepth 1-type d-mtime +7 | xargs rm-fr

做完了

做完了

#mysqladmin flush-logs

$路径/mysqladmin-u $用户-p $传递-S $ Sock flush-logs

#启动slave sql线程

$登录-e"启动从属sql_thread;"

RETVAL = $?

如果[$ RETVAL-eq 0];然后

动作"启动slave sql_thread"/bin/true

其他

动作"启动slave sql_thread"/bin/false

科幻

#脚本返回值

退出$ RETVAL

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » 利用shell开发mysql分库分表备份脚本

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们