mysql远程备份
相关链接:
https://blog.csdn.net/LiuHuan_study/article/details/81512831
https://www.cnblogs.com/ryanzheng/p/8444128.html
1.跨服务器备份
原理:服务器A 192.168.100.200
mysql root 123456
服务器B 192.168.100.201
mysql root 123456
在A服务器上编写脚本 backmysql.sh 用于备份A服务器上MYSQL数据库制定库到B服务器上
scp.exp 用于ssh免密码登录
scp.exp
#!/usr/bin/expect
#FileName:scp.exp
set timeout
if { [llength $argv] < } {
puts "Usage:"
puts "$argv0 local_file remote_path"
exit
}
set local_file [lindex $argv ]
set remote_path [lindex $argv ]
set passwd root123
set passwderror
spawn scp $local_file $remote_path
expect {
"*assword:*" {
if { $passwderror == } {
puts "passwd is error"
exit
}
set timeout
set passwderror
send "$passwd\r"
exp_continue
}
"*es/no)?*" {
send "yes\r"
exp_continue
}
timeout {
puts "connect is timeout"
exit
}
}
backmysql.sh
#!/bin/bash backupdir=/home/backup mysql_bin_dir=/usr/bin #mysqldump的路径 databaseName=agm #备份的数据库名字 bakdatabaseName=backup_agm #备份的数据库全部表的文件名 mysqluser=root #正式服务器A的mysql用户名 mysqlpwd= #正式服务器A的mysql密码 targetServerUser=root #测试服务器B的用户名 targetServerIP=192.168.100.201 #测试服务器B的IP地址 targetpath=/home/backup #测试服务器B备份路径 time=`date +%Y%m%d` #当天的日期年月日 #从数据库导出数据库备份文件
$mysql_bin_dir/mysqldump -u$mysqluser -p$mysqlpwd $databaseName | gzip > $backupdir/$bakdatabaseName$time.sql.gz #保留3天内的备份文件,时间可通过-mtime 后的 + 修改
find $backupdir -name "$bakdatabaseName*.sql.gz" -type f -mtime + -exec rm -f {} \; > /dev/null >& #将备份文件发送到测试服务器B
/home/backup/scp.exp $backupdir/$bakdatabaseName$time.sql.gz $targetServerUser@$targetServerIP:$targetpath/$bakdatabaseName$time.sql.gz
在B服务器上编写脚本updatemysql.sh用于恢复数据到B服务器mysql上
updatemysql.sh
#!/bin/bash # FileName:updatemysql.sh # This is a ShellScript For Auto DB Backup and Delete old Backup backupdir=/home/backup #测试服务器B数据库备份文件路径 mysql_bin_dir=/usr/bin #测试服务器B的mysql的安装路径 databaseName=agm #数据库名字 bakdatabaseName=backup_$databaseName #备份的数据库的文件名 mysqluser=root #测试服务器B的mysql用户名 mysqlpwd= #测试服务器B的mysql密码 time=` date +%Y%m%d ` #当天的日期:年月日 #先删除前一天的数据库
$mysql_bin_dir/mysql -u $mysqluser -p$mysqlpwd -e "drop database $databaseName;" #创建新的数据库
$mysql_bin_dir/mysql -u $mysqluser -p$mysqlpwd -e "create database $databaseName;" #将备份的数据库文件导入到mysql中
gzip -dc $backupdir/$bakdatabaseName$time.sql.gz | $mysql_bin_dir/mysql -u $mysqluser -p$mysqlpwd $databaseName #保留3天内的备份文件,时间可通过-mtime 后的 + 修改
find $backupdir -name "*.sql.gz" -type f -mtime + -exec rm -f {} \; > /dev/null >&
安装软件 yum install crontabs
ssh免密码登录
mysql 远程登录权限
backmysql.sh
backupdir=/home/backup
mysql_bin_dir=/usr/bin #mysqldump的路径
databaseName=agm #备份的数据库名字
bakdatabaseName=backup_agm #备份的数据库全部表的文件名
mysqluser=root #正式服务器A的mysql用户名
mysqlpwd=123456 #正式服务器A的mysql密码
targetServerUser=root #测试服务器B的用户名
targetServerIP=192.168.100.201 #测试服务器B的IP地址
targetpath=/home/backup #测试服务器B备份路径
time=`date +%Y%m%d` #当天的日期年月日
#从数据库导出数据库备份文件
$mysql_bin_dir/mysqldump -u$mysqluser -p$mysqlpwd $databaseName | gzip > $backupdir/$bakdatabaseName$time.sql.gz
#保留3天内的备份文件,时间可通过-mtime 后的 +2 修改
find $backupdir -name "$bakdatabaseName*.sql.gz" -type f -mtime +2 -exec rm -f {} \; > /dev/null 2>&1
#将备份文件发送到测试服务器B
/home/backup/scp.exp $backupdir/$bakdatabaseName$time.sql.gz $targetServerUser@$targetServerIP:$targetpath/$bakdatabaseName$time.sql.gz
scp.exp
#!/usr/bin/expect
#FileName:scp.exp
set timeout 60
if { [llength $argv] < 2} {
puts "Usage:"
puts "$argv0 local_file remote_path"
exit 1
}
set local_file [lindex $argv 0]
set remote_path [lindex $argv 1]
set passwd root123
set passwderror 0
spawn scp $local_file $remote_path
expect {
"*assword:*" {
if { $passwderror == 1 } {
puts "passwd is error"
exit 2
}
set timeout 1000
set passwderror 1
send "$passwd\r"
exp_continue
}
"*es/no)?*" {
send "yes\r"
exp_continue
}
timeout {
puts "connect is timeout"
exit 3
}
}
updatemysql.sh
#!/bin/bash
# FileName:updatemysql.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
backupdir=/home/backup #测试服务器B数据库备份文件路径
mysql_bin_dir=/usr/bin #测试服务器B的mysql的安装路径
databaseName=agm #数据库名字
bakdatabaseName=backup_$databaseName #备份的数据库的文件名
mysqluser=root #测试服务器B的mysql用户名
mysqlpwd=123456 #测试服务器B的mysql密码
time=` date +%Y%m%d ` #当天的日期:年月日
#先删除前一天的数据库
$mysql_bin_dir/mysql -u $mysqluser -p$mysqlpwd -e "drop database $databaseName;"
#创建新的数据库
$mysql_bin_dir/mysql -u $mysqluser -p$mysqlpwd -e "create database $databaseName;"
#将备份的数据库文件导入到mysql中
gzip -dc $backupdir/$bakdatabaseName$time.sql.gz | $mysql_bin_dir/mysql -u $mysqluser -p$mysqlpwd $databaseName
#保留3天内的备份文件,时间可通过-mtime 后的 +2 修改
find $backupdir -name "*.sql.gz" -type f -mtime +2 -exec rm -f {} \; > /dev/null 2>&1
mysql远程备份的更多相关文章
- mysql 远程备份
#远程备份./innobackupex --defaults-file=/etc/my.cnf --no-timestamp --user xxx --host 192.168.1.123 \--pa ...
- mysql数据库备份并且实现远程复制
一.实现ssh 远程登陆 机器环境: 192.167.33.108 clent 用户:crawler 192.167.33.77 server 用户:crawler 1.客户端 生成密钥 /home/ ...
- centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾
centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾 系统:centos6.5 1.创建脚本目录 mkdir -p /usr/local/sh/ 创建备份web ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- 转 MySQL 数据备份与还原
MySQL 数据备份与还原 原贴:http://www.cnblogs.com/kissdodog/p/4174421.html 一.数据备份 1.使用mysqldump命令备份 mysqldum ...
- mysql自动备份维护shell脚本 (copy)
#!/bin/bash #Mysql 自动备份 压缩并上传到 指定ftp #设想每天凌晨3点备份mysql #编辑crontab配置文件 # * * * backupmysql.sh #压缩并以&qu ...
- Mysql数据库备份和按条件导出表数据
Mysql数据库备份和按条件导出表数据 一.备份数据库 # mysqldump -u root -p dbcurr>/home/20090219.sql mysqldum为备份命令,- ...
- MySQL恢复备份读书笔记
1. 任何执行时间长于 wait_timeout或interactive_timeout选项值得备份,都会导致会话被关闭,这也会隐含执行UNLOCK TABLES命令.2. 对于使用FLUSH TAB ...
- 用rsync从Linux到Windows远程备份
论 rsync是Linux系统下的数据镜像备份工具,从软件的命名上就可以看出来 了——remote sync.rsync支持大多数的类Unix系统,无论是Linux.Solaris还是BSD上都经过了 ...
随机推荐
- (转)Redis
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章: 1.Redis简介 Redis是 一个key-value存储系统.和Memcached类似,但是解决 ...
- CentOS LAMP一键安装网站环境及添加域名
一般的VPS用户普遍使用一键安装包和WEB管理面板居多,在一键安装包中,使用LAMP和LNMP的普遍居多. 第一个版本的LAMP环境包安装过程以及建站过程分享出来. 第一.LAMP一键包环境的安装 目 ...
- 如何删除Windows 7的保留分区
Windows 7的保留分区可以删除,但是必须小心.启动到Windows 7,运行具有管理员权限的CMD.exe,然后输入:diskpartsel disk 0list volsel vol 0 (你 ...
- Java多线程导致的的一个事物性问题
业务场景 我们如今有一个类似于文件上传的功能.各个子网站接受业务,业务上传文件,各个子网站的文件须要提交到总网站保存.文件是按批次提交到总网站的,也就是说,一个批次以下约有几百个文件. 考虑到白天提交 ...
- 【Mongodb教程 第一课 补加课1 】windows7 下安装mongodb 开启关闭服务
mongodb在2.2版本开始就不支持windows xp了(我想现在用xp的应该也是带着情怀的一部分人吧,我只是一个工匠而已),windows下server8 R2,64位,32位,只是32位只支持 ...
- 从CakePHP 1.3升级到2.5
从CakePHP 1.3升级到2.5 摘要:最近把一个CakePHP 1.3的项目升级到了2.x,当然就用最新的版本2.5.3了,结果基本满意.本文记录了升级的过程,包括使用的工具,遇到的问题和相应的 ...
- A Simple Example About Privileged Methods in JavaScript
Douglas Crockford classified the "class methods" in JavaScript into three types: private, ...
- NPOI解析Excel
园子的文章: http://www.cnblogs.com/csqb-511612371/category/654604.html 关键就是如何解析Excel表头,特别是合并单元格的..还有对应NPO ...
- TCP Operational Overview and the TCP Finite State Machine (FSM) http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF.htm
http://tcpipguide.com/free/t_TCPOperationalOverviewandtheTCPFiniteStateMachineF.htm http://tcpipgu ...
- c语言和oc对比
1)源文件对比 思考&实现1: 1)在C语言中,我们遇到不同后缀的文件有哪些? .c .o .out .h 2.基本语法对比 1)数据类型对比学习 2)变量的定义对比 3)流程控制语句对比 1 ...