企业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. IOS生成证书

    1.生成本地签名文件, 点击此图标,选择证书助理,按照以下步骤生成签名文件,在生成证书时需要导入签名文件生成. 点击继续就能生成签名文件,保存次CSR文件. 2.生成证书 到下面这个页面选择证书的签名 ...

  2. Silverlight 安装失败 提示 消息 ID 1603 的解决方法

    消息 ID: 1603 安装过程中出现错误.请执行以下步骤 原因是在以前安装过silverlight,没有安装成功或者没有彻底卸载干净,遗留了一些文件,尤其是安装时突然中断的时候会出现这个问题. 解决 ...

  3. json字符串 与 json对象 的相互转换

    var obj=JSON.parse(jsonstr); // 将json字符串转换成json对象 var str=JSON.stringify(jsonobj); // 将json对象转换成json ...

  4. 在Lucene或Solr中实现高亮的策略

    一:功能背景 近期要做个高亮的搜索需求,曾经也搞过.所以没啥难度.仅仅只是原来用的是Lucene,如今要换成Solr而已,在Lucene4.x的时候,散仙在曾经的文章中也分析过怎样在搜索的时候实现高亮 ...

  5. Tomcat启动报错:java.net.BindException: Cannot assign requested address: JVM_Bind

    Tomcat启动报错:java.net.BindException: Cannot assign requested address: JVM_Bind Tomcat Cannot assign re ...

  6. thinkphp+Jquery MiniUI 开发 管理系统

    Jquery Miniui JS 兼容IE6+的浏览器,非常适合在企业内部使用. 管理系统等都非常方便. 在企业内部正在使用的是前期asp.net +fineui实现的管理系统.经过了几年的实践检验. ...

  7. Java学习笔记3、变量、数据类型

    标识符 常见的命名规则(见名知意) 包名全部小写 类或者接口,一个单词:首字母大写,多个单词:每个单词首字母大写. 方法或者变量:一个单词:首字母小写,多个单词:从第二个单词开始,每个单词首字母大写. ...

  8. STL源码剖析(deque)

    deque是一个双向开口的容器,在头尾两端进行元素的插入跟删除操作都有理想的时间复杂度. deque使用的是分段连续线性空间,它维护一个指针数组(T** map),其中每个指针指向一块连续线性空间. ...

  9. Telnet使用

    #使用telnet telnet #使用telnet,并连接到[ip] [port] telnet [ip] [port]     baidu zone - telnet使用方法

  10. 自制MVC之工具类插件一

    1).BreakRomoteURLAttribute 提交或交互的URL数据是否来源于其它地方,站内提交,防止跨站 2). DataAttribute 取得post或get提交的数据.如果没有特殊设置 ...