企业实战:mysql5.6数据库备份、恢复脚本

一、mysql数据库备份脚本

备份脚本1:

[[email protected] scripts]# vim elab_fenku_backup.sh
#!/bin/sh
#create at 2018-01-08
#author oldboy
#qq 88888

echo "--------------------------ychfq:`date +%F-%H`--------------------------"

DB_USER="oldboy_bak"
DB_PWD="123456"
DB_PROT="3306"
DB_HOST="ro-oldboy.mysql.rds.aliyuncs.com"
BACKUP_DIR="/data/backup/mysql"

if [ ! -d $BACKUP_DIR ];then
    echo "$BACKUP_DIR:No such file or directory" && exit 2
else
    for dbname in `mysql -u"$DB_USER" -p"$DB_PWD" -h"$DB_HOST" -P"$DB_PROT" -e "show databases;"     |egrep -v "Database|information_schema|performance_schema|mysql|mysq"`
    do
        #备份存储过程、函数等
        mysqldump -u"$DB_USER" -p"$DB_PWD" -h"$DB_HOST" -P"$DB_PROT" --opt --default-character-set=utf8 --hex-blob --triggers -d -t -R $dbname         |sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'|gzip>$BACKUP_DIR/"$dbname"_func_$(date +%Y%m%d%H).sql.gz

        #copy存储过程、函数到公司内网服务器
        scp -r -p -P 52119 $BACKUP_DIR/"$dbname"_func_$(date +%Y%m%d%H).sql.gz [email protected]:/data/mysqlbak/ &

        #备份视图、数据
        mysqldump -u"$DB_USER" -p"$DB_PWD" -h"$DB_HOST" -P"$DB_PROT" --opt --default-character-set=utf8 --hex-blob --skip-triggers $dbname         |sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'|gzip>$BACKUP_DIR/"$dbname"_data_$(date +%Y%m%d%H).sql.gz

        #copy视图、数据到公司内网服务器
        scp -r -p -P 52119 $BACKUP_DIR/"$dbname"_data_$(date +%Y%m%d%H).sql.gz [email protected]:/data/mysqlbak/ &

    done
fi

wait
find $BACKUP_DIR -mtime +3 -type f -name "*.sql.gz" |xargs rm -f

备份脚本2:

[[email protected] scripts]# cat elab_fenku_backup.sh
#!/bin/sh
#create at 2018-01-08
#author oldboy
#qq 88888

echo "--------------------------ychfq:`date +%F-%H`--------------------------"

DB_USER="elab_bak"
DB_PWD="123456"
DB_PROT="53306"
DB_HOST="oldboycom.mysql.rds.aliyuncs.com"
BACKUP_DIR="/data/backup/mysql"

if [ ! -d $BACKUP_DIR ];then
    echo "$BACKUP_DIR:No such file or directory" && exit 2
else
    for dbname in `mysql -u"$DB_USER" -p"$DB_PWD" -h"$DB_HOST" -P"$DB_PROT" -e "show databases;"     |egrep -v "Database|information_schema|performance_schema|mysql|mysq"`
    do 
        #备份存储过程、函数等
        mysqldump -u"$DB_USER" -p"$DB_PWD" -h"$DB_HOST" -P"$DB_PROT" --opt --default-character-set=utf8 --hex-blob --triggers -d -t -R $dbname         |sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'|gzip>$BACKUP_DIR/"$dbname"_func_$(date +%Y%m%d%H).sql.gz
        #copy存储过程、函数到公司内网服务器
        scp -r -p -P 52119 $BACKUP_DIR/"$dbname"_func_$(date +%Y%m%d%H).sql.gz [email protected]:/data/mysqlbak/ &
        

        #备份视图、数据
        mysqldump -u"$DB_USER" -p"$DB_PWD" -h"$DB_HOST" -P"$DB_PROT" --opt --default-character-set=utf8 --hex-blob --skip-triggers $dbname         |sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'|gzip>$BACKUP_DIR/"$dbname"_data_$(date +%Y%m%d%H).sql.gz
        #copy视图、数据到公司内网服务器
        scp -r -p -P 52119 $BACKUP_DIR/"$dbname"_data_$(date +%Y%m%d%H).sql.gz [email protected]:/data/mysqlbak/ &
         

    done
fi

wait
find $BACKUP_DIR -mtime +3 -type f -name "*.sql.gz" |xargs rm -f

二、恢复脚本

[[email protected] ~]# cat /scripts/mysql_import.sh
#!/bin/sh

#author  billy
#time    2017-01-10
#version 1.0

MYSQL_PATH=/application/mysql/bin

cd /scripts
echo "---------------------------------$(date +%F)-------------------------------------" 

/usr/bin/scp -r -p -P53306 [email protected]:/data/mysqlbak/*_$(date +%Y%m%d)01.sql.gz /scripts
#/usr/bin/scp -r -p [email protected]:/data/mysqlbak/youyadai_$(date +%Y%m%d)01.sql.gz /scripts

/bin/gzip -d *_$(date +%Y%m%d)01.sql.gz
#/bin/gzip -d yyd_$(date +%Y%m%d)01.sql.gz

$MYSQL_PATH/mysql -uroot -p'123456' yyd <youyadai_data_$(date +%Y%m%d)01.sql
$MYSQL_PATH/mysql -uroot -p'123456' yyd <youyadai_func_$(date +%Y%m%d)01.sql

#$MYSQL_PATH/mysql -uroot -p'123456' ych <ychfq_data_$(date +%Y%m%d)01.sql
$MYSQL_PATH/mysql -uroot -p'123456' ych <ychfq_func_$(date +%Y%m%d)01.sql

$MYSQL_PATH/mysql -uroot -p'123456' lending_account <lending_account_func_$(date +%Y%m%d)01.sql
$MYSQL_PATH/mysql -uroot -p'123456' lending_account <lending_account_data_$(date +%Y%m%d)01.sql

/bin/rm -f /scripts/*_$(date +%Y%m%d)01.sql

echo "---------------------------------end-------------------------------------"

原文地址:http://blog.51cto.com/sandshell/2159127

时间: 2024-08-01 19:40:05

企业实战:mysql5.6数据库备份、恢复脚本的相关文章

Oracle数据库备份恢复高级培训视频课程(案例、实战、深入、全面)

套餐介绍: 介绍:风哥Oracle数据库备份恢复培训(案例.实战.深入.全面),DBA初级到骨灰级的脱变. 内容:风哥Oracle数据库备份恢复及存储容灾基础,控制文件与参数文件详解,存储结构深入分析,Oracle底层技术,数据块解析,BBED深入解析,重做日志Redo深入解析,Undo回滚段深入解析,用户管理模式的备份恢复,RMAN备份恢复,Flashback闪回恢复管理,LogMiner日志挖掘技术,SQL_Loader,Oracle逻辑备份恢复迁移之exp/imp和expdp/impdp.

centos mysql 实战 第十二节课 备份恢复 备份方案 备份可以分为几种形式 mysqldump 在不同版本里对性能会不会有影响? mysqldump 的用户需要什么权限 mysqldump 支持Where条件 备份评估

centos mysql 实战 第十二节课  备份恢复  备份方案  备份可以分为几种形式  mysqldump 在不同版本里对性能会不会有影响?   mysqldump 的用户需要什么权限   mysqldump 支持Where条件  备份评估 阿里云Percona-live 2016-4 基于Innodb物理复制 mysql5.7没有线程池,需要用percona版本mysql才有,percona的定位是做免费的企业版mysql mysql5.6的memcached插件只是提供memcache

Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工具: xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构: innobackupex:是将xtrabackup进行封装的perl脚本,可以备份和恢复MyISAM表以及数据表结构. 一段官方文档的说明: http://www.per

Oracle数据库备份恢复基础讲解_超越OCP精通Oracle视频教程培训12

Oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习Oracle数据库备份恢复概念及基础,包括:Oracle常见的故障类型.Oracle备份的重要性及备份策略.Oracle如何制定合适的备份策略保证高效备份.Oracle备份分类.MTTR,MTBR,MTTF.Oracle物理备份与逻辑备份.Oracle备份恢复的工具及Oracle还原与恢复介绍. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http://e

某电商项目PostgreSQL数据库备份恢复方案

某电商项目PostgreSQL数据库备份恢复方案: 下载地址:某电商项目PostgreSQL数据库备份恢复方案

Oracle数据库备份恢复,巡检需要关注的对象设置以及相关恢复概述

数据库备份恢复,巡检需要关注的对象设置: 1.数据库名称,以及DBID:  --dbid在v$database中 [email protected]>select dbid,name from v$database; DBID NAME ---------- --------- 1385095721 ORCL 2.控制文件的位置: show parameter control_files; select name from v$controlfile; 3.日志文件的位置以及数据库的归档设置:

MongoDB数据库备份恢复与导入导出

一.mongodump/mongorestore方式 使用场景:数据库导出指定collection,无法手工修改导出文件(二进制)允许条件:数据库原始collection导入操作前可以被删除(处理方式:插入)或者保留(处理方式:删除然后插入)导出数据格式:二进制类型,不可手工修改 1.备份数据库指定collection C:\Users\Administrator>mongodump -d webdb -c users -o e:\webdb_users_dumpconnected to: 12

mysql用户管理、常用sql语句、mysql数据库备份恢复

mysql用户管理 1.新增用户user1,并设置密码为123456 mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by '123456'; #创建user1用户并授予其所有权限"*.*"(通配符) #第一个*:表示所有的数据库 #第二个*:表示所有的表 #127.0.0.1表示来源IP,指的只有这个IP可以连接:'%':代表所有的ip #identified by 设置密码 2.对user1用户进行授权管理

13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复

13.4 mysql用户管理 grant all on . to 'user1' identified by 'passwd';mysql> grant all on . to 'user1' identified by 'passwd';Query OK, 0 rows affected (0.01 sec) grant SELECT,UPDATE,INSERT on db1. to 'user2'@'192.168.15.132' identified by 'passwd';mysql>

mysql用户管理, 常用sql语句,mysql数据库备份恢复

mysql用户管理 新创建一个指定IP的用户,可以访问mysql的某些库某些表. 所有库的所有表,如果想指定访问某个库某些表,只需要修改名称user1 指定用户名br/>@后面的ip是指定ip,%表示所有的ipindentified by 后面是用户的密码验证用用户user1登录也可以指定localhost,登录时不输入本机ip地址即可访问查看授权,用于授权给新用户,新权限: 常用sql 语句 查看库表的行数搜索:select count() from mysql.user;搜索:select