• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Centos7 实现MySQL局域网备份(包含全备份,日志增量备份)

Centos7 实现MySQL局域网备份(包含全备份,日志增量备份)

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了Centos7 ,MySQL,局域网备份等相关知识,希望本文的分享对您有所帮助
数据库备份操作是非常重要的一步,针对上线系统来说,没有备份的数据库是不安全的。本博文通过查阅网上资料,实现了mysql数据库通过shell脚本文件的全备份,增量备份和局域网内定时备份操作。

服务器介绍:centos 7.0

【本地全备份】

1. 单数据库备份脚本文件

#vi mysql-backup.sh

db_user="root"     #本服务器用户名密码
db_passwd="root"  
db_host="192.168.64.137"   #本服务器地址
db_name="whp"  #需要备份数据库名称
# the directory for story your backup file.  
backup_dir="/backup"    #备份以后放入的文件路径
# date format for backup file (dd-mm-yyyy)  
time="$(date +"%Y-%m-%d-%H-%M-%S")"  
# mysql, mysqldump and some other bin's path  
MYSQL="/application/mysql/bin/mysql"  
MYSQLDUMP="/application/mysql/bin/mysqldump"  
GZIP="/bin/gzip"  
  
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db_name | $GZIP -9 > "$backup_dir/$db_name"_"$time.gz"

2. 保留7天历史数据的全备份

db_user="root"  
db_passwd="root"  
db_host="localhost"   
# the directory for story your backup file.  
backup_dir="/application/backup/"  
# date format for backup file (dd-mm-yyyy)  
time="$(date +"%H-%M-%S-%m-%d-%y")"  
# mysql, mysqldump and some other bin's path  
MYSQL="/application/mysql/bin/mysql"  
MYSQLDUMP="/application/mysql/bin/mysqldump"  
MKDIR="/bin/mkdir"  
RM="/bin/rm"  
MV="/bin/mv"  
GZIP="/bin/gzip"  
# check the directory for store backup is writeable   
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 
# the directory for story the newest backup  
test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"  
echo "Start to Backup...";  
# get all databases  
# don't backup information_schema、performance_schema  
all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"  
all_db=${all_db//information_schema/};  
all_db=${all_db//performance_schema/};  
for db in $all_db  
do  
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"  
done  
# delete the oldest backup  
test -d "$backup_dir/backup.7/" && $RM -rf "$backup_dir/backup.7"  
# rotate backup directory  
for int in 6 5 4 3 2 1 0  
do  
if(test -d "$backup_dir"/backup."$int")  
then  
next_int=`expr $int + 1`  
$MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"  
fi  
done  
echo "BackUp Success!"  
exit 0;

3. 修改shell脚本权限并执行

       # chmod 700 mysql-backup.sh  // 只允许管理员运行此脚本
           #./mysql-backup.sh                //执行脚本,测试一次

【日志文件增量备份】

1. 建立脚本文件:

#vi incre-backup.sh

#执行mysqladmin执行刷新日志文件         
/application/mysql/bin/mysqladmin -uroot -proot flush-logs   
         
#DATADIR=/var/lib/mysql   
DATADIR=/application/data  #获取数据文件路径 
BAKDIR=/backup    #获取要备份的数据目标文件路径
         
###如果mysql bin log你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名   
#HOSTNAME=`uname -n`   
cd $DATADIR   #转入到/application/data 查询mysql-bin.index文件
#FILELIST=`cat $HOSTNAME-bin.index`   
 FILELIST=`cat mysql-bin.index`   
 
## COUNTER number   
COUNTER=0   
for file in $FILELIST   
do   
COUNTER=`expr $COUNTER + 1 `   
done   
         
NextNum=0   
for file in  $FILELIST   
do   
base=`basename $file`   
NextNum=`expr $NextNum + 1`   
if [ $NextNum -eq $COUNTER ]   
then
echo "skip lastest"
else
dest=$BAKDIR/$base   
if(test -e $dest)   
then
echo "skip exist $base"
else
echo "copying $base"
cp $base $BAKDIR   
fi   
fi   
done   
         
echo "backup mysql binlog ok"

2. 修改文件权限并执行

# chmod 700 incre-backup.sh  // 只允许管理员运行此脚本
  #./mysql-backup.sh                //执行脚本,测试一次

【自动备份】

自动备份是站在以上编写脚本的基础上,利用linux系统crontab命令,定时自动执行shell文件:

 # crontab –e
添加:
00 01 * * */mysql-backup.sh    // 每天凌晨1点执行

【远程局域网备份】

局域网备份利用NFS服务器实现数据在局域网共享的方式实现备份,利用在NFS服务器挂载的方式实现,就像我们平时共享文件,通过配置网络连接,让自己的文件得到共享。实现方式如下:

1. NFS服务器端安装

a)安装 NFS 服务器所需的软件包:

  # yuminstall -y nfs-utils
 
           b)编辑exports文件
           #vim/etc/exports
           #/home/nfs/192.168.248.0/24(rw,sync)

同192.168.248.0/24一个网络号的主机可以挂载NFS服务器上的/home/nfs/目录到自己的文件系统中

rw表示可读写;sync表示同步写

c)启动nfs服务

#systemctlstart rpcbind.service

#systemctlstart nfs-server.service

d)确认NFS服务器启动成功:

#rpcinfo –p


e)若没有启动成功,重新启动rpcbind和nfs-server服务:

#systemctl restart rpcbind.service

#systemctl restart nfs-server.service

客户端安装


a)安装nfs,启动rpcbind服务

# yuminstall -y nfs-utils

b)先为rpcbind做开机启动

#systemctlenable rpcbind.service

c)然后启动rpcbind服务:

systemctlstart rpcbind.service

d)检查NFS服务器端是否有共享目录:

#showmount -e 192.168.64.138

e)在从机上使用mount挂载服务器端目录到客户端某个目录下(这里将上面本地备份的文件路径挂载如服务器里面):

#mount -tnfs -o nolock,nfsvers=1,vers=3 192.168.64.138:/home/nfs /backup

问题:mount.nfs: Stale NFS file handle

解决方法:在client端把挂载文档去掉重新挂载:

# umount –a

【备份恢复】

a.将gzip数据库恢复到Mysq

#gunzip <dbname.gz | mysql -u Username -p dbname

b.二进制文件恢复数据库:

#/mysql/bin/mysqlbinlog--database=fox --start-date="2013-01-22 5:00:00" --stop-date="2013-01-22 9:00:00"/mysql/data/mysql-bin.000001 | /mysql/bin/mys

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Centos7 实现MySQL局域网备份(包含全备份,日志增量备份)

相关文章

  • 2018-12-05sql2005 安装教程 图文
  • 2018-12-05MySQL实现按指定字段自定义列表排序的详细介绍
  • 2018-12-05详细介绍Mysql5.7从节点配置多线程主从复制的方法
  • 2018-12-05在SQL Server数据库中为标识(IDENTITY)列插入显式值
  • 2018-12-05mysqlslap的使用方法介绍
  • 2018-12-05MYSQL经典语句大全——技巧篇
  • 2018-12-05实例详解Mysql中Join的应用
  • 2018-12-05PB7 连接 Oracle 的设置方法
  • 2018-12-05SQL Server 2005 同步复制技术
  • 2018-12-05MySQL基础教程3 — 数据类型之字符串类型

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • sqlserver 字符串分拆 语句
    • 将mater库中的系统存储过程批量生成*.sql文件 通用且非常实用
    • 怒学Python——第三篇——结构控制
    • linux下mysql自动备份脚本代码
    • 详细介绍mysql 协议的ColumnCount包及解析
    • Mysql5.7.17在Window下安装及设置编码为utf8的方法分享
    • 关于mysql联结的详细介绍
    • Oracle SQL性能优化系列学习一
    • 图数据库实践系列 (二)--Neo4J空间数据存储
    • 配置MySQL与卸载MySQL实例操作

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有