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

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

解答:

[root@db01 scripts]# cat fenbiao.sh
#!/bin/bash
#. /etc/rc.d/init.d/functions start_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
M_ST=$(/etc/init.d/mysqld status|awk '{print $3}')
[ "${M_ST}" != "running" ]||exit
else
echo "start up file not exits,error"
exit 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= -uroot -poldboy123 $db $tb >/server/dbbackup/$(date +%F)/${db}/${db}.${tb}$(date +%F).sql done
done
} main() {
M_ST=$(/etc/init.d/mysqld status|awk '{print $3}')
if [ "${M_ST}" != "running" ]
then
echo "to start db"
start_db
sleep fi
dump_db >/dev/null >& } main

方法二:之分库备份:

[root@db01 scripts]# cat fenku_backup.sh
#!/bin/bash
#gaobo 40team @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
db_stat=$(/etc/init.d/mysqld status|awk '{print $3}')
echo $db_stat
[ "${db_stat}" != "running" ] && /etc/init.d/mysqld start
sleep
db_stat=$(/etc/init.d/mysqld status|awk '{print $3}')
echo $db_stat
[ "${db_stat}" != "running" ] && {
echo "启动失败,请检查数据库"
exit ;
} 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= -uroot -poldboy123 $db >/server/dbbackup/$(date +%F)/${db}$(date +%F).sql done } #按照数据库的表为不同文件进行备份
#
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= -uroot -poldboy123 $db $tb >/server/dbbackup/$(date +%F)/${db}/${db}.${tb}$(date +%F).sql done
done
} function main() {
checkdb case $ in
seperate_db)
seperate_db >/dev/null >&
;;
seperate_tb)
seperate_tb >/dev/null >&
;;
*)
echo "Usage fenku_backup.sh {seperate_db|seperate_tb}"
;;
esac
} main $

6:7 题一起MySQL数据库分库备份的更多相关文章

  1. mysql数据库分库备份脚本

    mysql数据库分库备份脚本 版本1 for dbname in `mysql -uroot -poldboy123 -e "show databases;" |grep -Evi ...

  2. Mysql数据库分库备份,分表备份

    分库备份 #!/bin/sh DBPATH=/server/backup MYUSER=root MYPASS=oldboy123 SOCKET=/data/3306/mysql.sock MYCMD ...

  3. mysql数据库的备份和恢复

    Mysql数据库的备份和恢复 1.备份单个数据库 mysql数据库自带了一个很好用的备份命令,就是mysqldump,它的基本使用如下: 语法:mysqldump –u <用户名> -p ...

  4. MySQL数据库入门备份数据库

    MySQL数据库入门——备份数据库   一提到数据,大家神经都会很紧张,数据的类型有很多种,但是总归一点,数据很重要,非常重要,因此,日常的数据备份工作就成了运维工作的重点中的重点的重点....... ...

  5. 如何用SQL语句实现Mysql数据库的备份与还原

    以前一直做android客户端的项目,根本没有开发asp.net mvc的开发,现阶段做了一个模块,参数设置,以及数据库的备份与还原.其需求如下: 参数设置 本项参数设置为对自动数据备份进行设置,管理 ...

  6. mysqldump常用于MySQL数据库逻辑备份

    mysqldump常用于MySQL数据库逻辑备份. 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dump ...

  7. MYSQL数据库增量备份

    MySQL数据库增量备份,在这之前修改我们的数据库配置文件/etc/my.cnf开启bin-log日志功能即可.接下来是我参考了下网上的一些方法,自己写的,主要还是要能学到他的一些思路和方法. #fu ...

  8. [知了堂学习笔记]_Java代码实现MySQL数据库的备份与还原

    通常在MySQL数据库的备份和恢复的时候,多是采用在cmd中执行mysql命令来实现. 例如: mysqldump -h127.0.0.1 -uroot -ppass test > d:/tes ...

  9. mysql数据库的备份和还原的总结

    mysql数据库的备份和还原的总结 (来自一运维同事的总结) 1. 备份方式: 热备:数据库在线进行备份,不影响读和写的在线备份方式! 温备:数据库在线进行备份,对表备份时先锁定写操作,仅可以执行读操 ...

随机推荐

  1. php中自定义事件---事件驱动

    PHP中自定义事件驱动,处理机制. 原文:https://www.cnblogs.com/mafeifan/p/4322271.html ------------------------------- ...

  2. java运行shell命令,chmod 777 xxx,改变权限无效的解决的方法。

    在java程序中运行shell命令,改变文件的权限.能够在命令行中运行 chmod 777 <span style="font-family: Arial, Helvetica, sa ...

  3. 对PHP中类、继承、抽象的理解(个人总结)

    1,PHP中的类可以被继承:A extends B. 2,类被声明为abstract时:a.该类就仅仅包含模版,我们就不能创建该类的实例对象,必须通过继承来使用new创建对象. b.继承一个抽象类的时 ...

  4. bitbucket git push 项目503失败

    忙活了一天,要把项目push到远程仓库保存: 一直稳定的bitbucket今天突然push不成功了,出了503错误 谷歌了各种原因,还以为是连接出了问题 打开bitbucket State 页面之后, ...

  5. 大并发server架构 &amp;&amp; 大型站点架构演变

    server的三条要求: 高性能:对于大量请求,及时高速的响应 高可用:7*24 不间断,出现问题自己主动转移.这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外不论什么网络 ...

  6. windows下at命令使用详解

    T命令是Windows XP中内置的命令,它也可以媲美Windows中的“计划任务”,而且在计划的安排.任务的管理.工作事务的处理方面,AT命令具有更强大更神通的功能.AT命令可在指定时间和日期.在指 ...

  7. Vue props 单向数据流

    1.props通信 注意:DOM模板的驼峰命名props要转为短横分割命名. <!DOCTYPE html> <html lang="zh"> <he ...

  8. 用squid配置代理服务器(基于Ubuntu Server 12.04)

    怀揣着为中小企业量身定做一整套开源软件解决方案的梦想开始了一个网站的搭建.http://osssme.org/ 1. 安装squid $sudo apt-get install squid -y 注: ...

  9. Grunt快速使用笔记

    本篇文章由:http://xinpure.com/grunt-quick-note/ http://www.gruntjs.net/getting-started Grunt中文网 安装 Grunt ...

  10. python selenium --unittest 框架

    转自:http://www.cnblogs.com/fnng/p/3300788.html 学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习sele ...