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 2240 【这题貌似可以直接FLOYD 屌丝用SPFA通过枚举找正权值环 顺便学了下map】
题意: 给了n种硬币的名称,给了m种硬币间的转换关系. 从任意兑换地点开始兑换,看是否能够通过兑换的方式增加金钱. 思路: 用SPFA不断对各个点进行松弛操作,寻找正权值的环.如果找到则输出Yes. ...
- 2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)
题目 https://nanti.jisuanke.com/t/17118 题意 有n个点0,1,2...n-1,对于一个点对(i,j)满足i<j,那么连一条边,边权为i xor j,求0到n- ...
- Java数组操作方法收集(快速判断某个值在这个数组中)
Java数组操作最高效的方式是循环取值,如果转换成集合那么就会分配内存,效率不如前者,但是方法多,需要在性能调优上去权衡.切记:数组是数组,集合是集合. 下面是收集最常用的数组转成集合的操作方法: i ...
- Spring的AOP AspectJ切入点语法详解(转)
一.Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示 ...
- 微服务 Framework
Dubbo :https://github.com/dubbo Spring Cloud :https://github.com/spring-cloud
- [转]linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
原文:http://www.jb51.net/LINUXjishu/43356.html ------------------------------------------------------- ...
- Unable to connect to database server to retrieve database list; Arcgis 连接不上postsql库;
在C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 目录下添加 pg依赖的插件 插件下载地址:
- C++卷积神经网络实例:tiny_cnn代码具体解释(6)——average_pooling_layer层结构类分析
在之前的博文中我们着重分析了convolutional_layer类的代码结构.在这篇博文中分析相应的下採样层average_pooling_layer类: 一.下採样层的作用 下採样层的作用理论上来 ...
- properties文件读取配置信息
public static void main(String[] args){ String printerName=""; String path = "C:\\Bar ...
- 【iOS系列】-程序开启后台运行
[iOS系列]-程序开启后台运行 iOS程序是伪后台的运行,可是有时候我们需要让其在后台也要进行一些操作,我们可以让其伪装成音乐的APP,这样就可以让程序后台进行相关操作了,具体做法如下: 1:在Ap ...