mysql 备份 shell 脚本与还原
前言
数据库备份是防止数据丢失的一种重要手段。生产环境中,数据的安全性是至关重要的,任
何数据的丢失都可能产生严重的后果。
数据库备份的重要性主要体现在:
⚫ 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据库备份就没法找
到数据。
⚫ 使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案,如果
让用户重新- 添加数据,代价未免太大。
⚫ 没有数据就没有一切,数据库备份是一种防范灾难的强力手段。
数据库备份分类
⚫ 物理备份:对数据库物理文件的备份
⚫ 逻辑备份:对数据库对象和对象数据的备份,mysql 使用 mysqldump 将数据库中的对
象和数据以 sql 的形式导出。以下介绍的是使用 mysqldump 进行数据库的备份。
mysqldump 命令
命令格式:mysqldump -h 主机名 -P 端口 -u 用户名 -p 密码 参数 1,参数 2… > 备份文
件.sql
主要参数:
⚫ databases
指定要备份的数据库
参数后面所有名字参量都被看作数据库名。
⚫ tz-utc
tz-utc 参数是 mysqldump 的默认参数,会使得 mysqldump 的导出文件的顶部加上一个
设置时区的语句 SET TIME_ZONE=‘+00:00’ ,这个时区是格林威治时间,也就是 0 时区。这
样当导出 timestamp 时间戳字段时,会把在服务器设置的当前时区下显示的 timestamp
时间值转化为在格林威治时间下显示的时间。比如我们数据库采用北京时间东八区,
mysqldump 导出的文件当中显示的 timestamp 时间值相对于通过数据库查询显示的时间
倒退了 8 个小时。
⚫ skip-tz-utc
skip-tz-utc 的含义就是当 mysqldump 导出数据时,不使用格林威治时间,而使用当前
mysql 服务器的时区进行导出,这样导出的数据中显示的 timestamp 时间值也和表中查询
出来的时间值相同。如果你的服务器都是处于同一时区,建议加上此参数。
⚫ compact
压缩模式,产生更少的输出