MySQL 备份

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 原文:MySQL 备份 http://rimuhosting.com/howto/mysqlbackup.jsp  Automated MySQL Database BackupVersion 1 Want to backup your MySQL databases to a...
原文: MySQL 备份

http://rimuhosting.com/howto/mysqlbackup.jsp

 

Automated MySQL Database Backup

Version 1

Want to backup your MySQL databases to another machine on a nightly basis? 

Then create a /etc/cron.daily/mysqlbackup.sh job like this:

mysqldump  -- compress  - u root  - p $pw   - $currenthost   -- add - drop - table  -- extended - insert  -- quote - names  -- databases db1 db2 |  mysql  - u root  - p $pw   - $remotehost

 

Run chmod +x /etc/cron.daily/mysqlbackup.sh.  And change the $ parameters to the appropriate 'real' values.

Or if you are not backing up to a separate host, run:

mysqldump  - u root  - p $pw   - $currenthost   -- add - drop - table  -- extended - insert  -- quote - names  -- databases db1 db2  >   / var / log / mysql . backup . $(date  + " %Y%m%d " ) . sql 

 

Version 2

This one is slightly more advanced. It's a bash script that will basically do the same as above but also only keep a certain number of old copies.

Note that this script is prepared to backup as the root user, if you are going to be running this as a non root user you should modify paths to reflect that.

# !/bin/sh

# List of databases to be backed up separated by space

dblist = " db_name_1 db_name_2 db_name_3 etc. "

#  Directory for backups
backupdir =/ root / mysql_dumps

#  Number of versions to keep
numversions = 4

#  Full path for MySQL hotcopy command
# Please put credentials into /root/.my.cnf
#hotcopycmd=/usr/bin/mysqlhotcopy

hotcopycmd = " /usr/bin/mysqldump --lock-tables --databases "

#  Create directory if needed
mkdir   - " $backupdir "
if  [  !   - " $backupdir "  ]; then
   echo 
" Invalid directory: $backupdir "
   
exit   1
fi

#  Hotcopy begins here
echo  " Dumping MySQL Databases... "
RC
= 0
for  database in  $dblist do
   echo
   echo 
" Dumping $database ... "
   mv 
" $backupdir/$database.gz "   " $backupdir/$database.0.gz "   2 >   / dev / null
   
$hotcopycmd   $database   |  gzip  >   " $backupdir/$database.gz "

   RC
= $ ?
   
if  [  $RC   - gt  0  ]; then
     
continue ;
   fi

   
#  Rollover the backup directories
   rm  - fr  " $backupdir/$database.$numversions.gz "   2 >   / dev / null
   i
= $numversions
   
while  [  $i   - gt  0  ];  do
     mv 
" $backupdir/$database.`expr $i - 1`.gz "   " $backupdir/$database.$i.gz "   2 >   / dev / null
     i
= `expr  $i   -   1 `
   done
done

if  [  $RC   - gt  0  ]; then
   echo 
" MySQL Dump failed! "
   
exit   $RC
else
   
#  Hotcopy is complete. List the backup versions!
   ls  - " $backupdir "
   echo 
" MySQL Dump is complete! "
fi
exit   0

 

So this system has three parts. First is the file that holds the credentials, e.g. /root/.my.cnf and it's in standard mysql config format like so:

#  cat /root/.my.cnf  [client] user=root password=whatever 

 

Second is the script itself, as listed above. Enter the names of your dbs, how many copies to keep, and where to put them.

 

Third is the crontab entry that will run this script for you. For example, once per day:

#  (Use to post in the top of your crontab)
# ----------------- minute (0 - 59)
# |  -------------- hour (0 - 23)
# |  |  ----------- day of month (1 - 31)
# |  |  |  -------- month (1 - 12)
# |  |  |  |  ----- day of week (0 - 7) (Sunday=0 or 7)
# |  |  |  |  |
# *  *  *  *  *  command to be executed


35   01   *   *   *   / root / mysql_backup . sh

 

 

完!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
存储 关系型数据库 MySQL
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
279 4
|
20天前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
5天前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
64 28
|
10月前
|
存储 SQL 关系型数据库
|
5月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
385 3
|
5月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
212 3
|
6月前
|
安全 关系型数据库 MySQL
MySQL用户备份
【10月更文挑战第2天】MySQL用户备份
153 3
|
6月前
|
存储 关系型数据库 MySQL
MySQL如何备份?
【10月更文挑战第2天】MySQL如何备份?
450 3
|
8月前
|
安全 关系型数据库 MySQL
揭秘MySQL海量数据迁移终极秘籍:从逻辑备份到物理复制,解锁大数据迁移的高效与安全之道
【8月更文挑战第2天】MySQL数据量很大的数据库迁移最优方案
1090 17
|
8月前
|
SQL 关系型数据库 MySQL
在Linux中,如何备份和恢复MySQL数据库?
在Linux中,如何备份和恢复MySQL数据库?