6:7 题一起MySQL数据库分库备份
2024-09-28 05:37:02
企业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 $
最新文章
- 【夯实Nginx基础】Nginx工作原理和优化、漏洞
- 坎坷路:ASP.NET Core 1.0 Identity 身份验证(中集)
- Entity Framework 教程——EF体系结构
- web前端面试试题总结---html篇
- iOS小Tip之查看FPS
- 使用mvc时,在视图view中使用强类型视图,在web.config文件中添加命名空间namespace的引用不起作用,解决方法
- IOS开发基础知识--碎片22
- C 语言学习的第 05 课:C 语言基础(01)
- leetcode 198
- ASP.NET页面之间传递值的几种方式
- (七)中介者模式-C++实现
- Xcode安装的推送证书所在目录
- struts2学习笔记之一:基本简介
- 基于visual Studio2013解决C语言竞赛题之0509杨辉三角
- iOS项目的命名规范
- bzoj 4006: [JLOI2015]管道连接
- Python基础语法 系统学习
- Oracle初级优化sql
- nagios系列(一)centos6.5环境部署nagios服务端
- 在HTML中导入外部的css
热门文章
- Java实现文件MD5加密
- Media-媒介(媒体、介质)【译】
- POJ 3122-Pie(二分+精度)
- MVC入门教程二[第一个小Demo](转载)
- 常用HTML标签的全称及描述
- MPEG2 PS和TS流格式
- linux内核及其模块的查询,加载,卸载 lsusb等
- 疯狂java学习路线图
- java异常处理Exception
- Https与Http,SSL,DevOps, 静态代码分析工具,RFID, SSH, 非对称加密算法(使用最广泛的一种是RSA), 数字签名, 数字证书