博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6:7 题一起MySQL数据库分库备份
阅读量:6826 次
发布时间:2019-06-26

本文共 2821 字,大约阅读时间需要 9 分钟。

企业Shell面试题6MySQL数据库分表备份

请实现对MySQL数据库进行分表备份,用脚本实现。

解答:

 

[root@db01 scripts]# cat fenbiao.sh#!/bin/bash#. /etc/rc.d/init.d/functionsstart_db () {if [ -e /etc/init.d/mysqld ]then    M_ST=$(/etc/init.d/mysqld status|awk '{print $3}')    [ "${M_ST}" != "running" ]&&/etc/init.d/mysqld start        sleep 1        M_ST=$(/etc/init.d/mysqld status|awk '{print $3}')        [ "${M_ST}" != "running" ]||exit 0else    echo  "start up file not exits,error"        exit 2  fi}dump_db () {for db in `mysql -u root -poldboy123 -e "show databases;"|sed '1,2d'`do    for tb in `mysql -u root -poldboy123 -e "use $db;show tables;"|sed '1d'`               do         mkdir -p /server/dbbackup/$(date +%F)/$db         /application/mysql/bin/mysqldump  --lock-tables=0  -uroot -poldboy123  $db  $tb  >/server/dbbackup/$(date +%F)/${db}/${db}.${tb}$(date +%F).sql            donedone}main() {  M_ST=$(/etc/init.d/mysqld status|awk '{print $3}')  if [ "${M_ST}" != "running" ]  then    echo "to start db"    start_db        sleep 3  fi   dump_db >/dev/null 2>&1}main

 

方法二:之分库备份:

 

 

[root@db01 scripts]# cat fenku_backup.sh #!/bin/bash#gaobo  40team  614627690@qq.com###对数据库进行启动二次检查function checkdb() {  if [ -f /etc/init.d/mysqld ]    then    db_stat=$(/etc/init.d/mysqld status|awk '{print $3}')    if [ "${db_stat}" != "running" ]        then        /etc/init.d/mysqld start        sleep 10        db_stat=$(/etc/init.d/mysqld status|awk '{print $3}')        echo $db_stat        [ "${db_stat}" != "running" ] && /etc/init.d/mysqld start        sleep 10        db_stat=$(/etc/init.d/mysqld status|awk '{print $3}')                echo $db_stat        [ "${db_stat}" != "running" ] && {            echo "启动失败,请检查数据库"            exit 11;        }                        fi      else    echo "数据库启动文件不存在请检查"  fi}# 按照库进行分库不同的文件备份# -e 不进入数据库执行命令function seperate_db() {for db in  $(mysql -uroot -poldboy123 -e "show databases;"|awk 'NR>1{print $0}') do    /application/mysql/bin/mysqldump  --lock-tables=0 -uroot -poldboy123  $db >/server/dbbackup/$(date +%F)/${db}$(date +%F).sqldone}#按照数据库的表为不同文件进行备份#seperate_tb () {for db in `mysql -u root -poldboy123 -e "show databases;"|sed '1,2d'`do    for tb in `mysql -u root -poldboy123 -e "use $db;show tables;"|sed '1d'`               do         mkdir -p /server/dbbackup/$(date +%F)/$db         /application/mysql/bin/mysqldump  --lock-tables=0  -uroot -poldboy123  $db  $tb  >/server/dbbackup/$(date +%F)/${db}/${db}.${tb}$(date +%F).sql            donedone}function main() {    checkdb        case $1 in         seperate_db)            seperate_db  >/dev/null 2>&1        ;;        seperate_tb)        seperate_tb  >/dev/null 2>&1        ;;        *)        echo "Usage fenku_backup.sh  {seperate_db|seperate_tb}"            ;;    esac    }main $1

 

转载于:https://www.cnblogs.com/gaoyuechen/p/7986700.html

你可能感兴趣的文章
使用Java Socket手撸一个http服务器
查看>>
node-sass安装失败的究极解决方法与简单使用
查看>>
单例模式
查看>>
网易云轻舟微服务深度解读:基于开源,强于开源
查看>>
不轻松,服务器部署nginx+uwsgi+djangorestfremework+react
查看>>
亚洲第一届 Rust 大会将于 4 月 20 日在 [北京] 开启
查看>>
AFNetworking2.0
查看>>
TiDB 源码阅读系列文章(二)初识 TiDB 源码
查看>>
七年切图仔如何面试大厂web前端?(沟通软技能总结) | 掘金技术征文
查看>>
Express 实战(七):视图与模板:Pug 和 EJS
查看>>
学习OpenGL ES之透视和正交投影
查看>>
node的process以及child_process
查看>>
推送本地仓库至 GitHub
查看>>
Git 命令小结
查看>>
JavaScript 中的操作符
查看>>
js事件类型中的异类一焦点事件
查看>>
iOS性能优化 - APP启动时间优化
查看>>
MediaCodec 高效解码得到标准 YUV420P 格式帧
查看>>
还欠自己一整套LeetCode 算法题
查看>>
HTML5的特性与发展趋势
查看>>