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上都经过了 ...
随机推荐
- POJ 1860【求解是否存在权值为正的环 屌丝做的第一道权值需要计算的题 想喊一声SPFA万岁】
题意: 有n种钱币,m个钱币兑换点,小明一开始有第n种钱币数量为w. 每个兑换点可以将两种不同的钱币相互兑换,但是兑换前要先收取一定的费用,然后按照比例兑换. 问小明是否可以经过一系列的兑换之后能够将 ...
- codeforces 892E(离散化+可撤销并查集)
题意 给出一个n个点m条边的无向联通图(n,m<=5e5),有q(q<=5e5)个询问 每个询问询问一个边集{Ei},回答这些边能否在同一个最小生成树中 分析 要知道一个性质,就是权值不同 ...
- 从 modCount 看 java集合 fail-fast 机制
一.背景 在常见的Java的非线程安全集合类中(如HashMap.ArrayList),经常可以在一些修改结构的操作(如Add)中看到实例变量 modCount++ ,来统计集合的修改次数. 从注释也 ...
- [Angular] Write Compound Components with Angular’s ContentChild
Allow the user to control the view of the toggle component. Break the toggle component up into multi ...
- ES文件浏览器 WIFI 查看电脑文件怎么弄
1 开启来宾账户 2 右击要共享的文件夹,添加Guest共享(如果只是要查看共享的资源,权限级别为读取即可) 3 共享之后,网络路径就是"\\"+你的计算机名+" ...
- es5~es6
1.用箭头函数减少代码(相信你在Vue已经看到了) ES5: function greetings (name) { return 'hello ' + name } ES6: const greet ...
- A Single Channel with Multiple Consumers RabbitMQ
http://stackoverflow.com/questions/30696351/a-single-channel-with-multiple-consumers-rabbitmq up vot ...
- struts2 java.io.FileNotFoundException: http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd
xxx-validation.xml 文件里 java.io.FileNotFoundException: http://www.opensymphony.com/xwork/xwork-valid ...
- 初步认识Tensorflow
不多说,直接上干货! TensorFlow 是一个开源软件库,用于使用数据流图进行数值计算.换句话说,即是构建深度学习模型的最佳方式. Tensorflow的官网 https://www.tensor ...
- js调试记录,将客户的调试信息保存到服务器端的一个小方法。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...