《MySQL备份与恢复Mysql学习》要点: 本文介绍了MySQL备份与恢复Mysql学习,希望对您有用。如果有疑问,可以联系我们。
导读:1、数据备份的重要性在企业中数据的价值至关重要,数据保障了企业的业务的运行,因此数据的安全性及可靠性是运维的重中之重,任何数据的丢...
1、数据备份的重要性
在企业中数据的价值至关重要,因此数据的安全性及
可靠性是运维的重中之重,任何数据的丢失都有可能会对企业产生严重的后果.造成数据
丢失的原因如下:
☆ 程序错误
☆ 人为错误
☆ 运算失败
☆ 磁盘故障
☆ 灾难(如火灾、地震)和盗窃
2、数据库备份的分类
从物理与逻辑的角度
备份可以分为物理备份和逻辑备份.
物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份.物理
备份又可分为脱机备份(冷备份)和联机备份(热备份).
1. 冷备份:是在关闭数据库的时候进行的
2. 热备份:数据库处于运行状态,这种备份方法依赖于数据库的日志文件
3. 温备份:数据库锁定表格(不可写入但可读)的状态下进行的
逻辑备份:对数据库逻辑组件(如表等数据库对象)的备份
从数据库的备份策略角度
备份可分为完全备份、差异备份和增量备份
????? 完全备份:每次对数据进行完整的备份,即对整个数据库的备份、数据库结构和文件
结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础.
优点:备份与恢复操作简单方便
缺点:数据存在大量的重复;占用大量的空间;备份与恢复时间长
????? 差异备份:备份那些自从上次完全备份之后被修改过的所有文件,备份的时间节点是
从上次完整备份起,备份数据量会越来越大.恢复数据时,只需恢复上次的完全备份与最
近的一次差异备份.
????? 增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份.以上
次完整备份或上次的增量备份的时间为时间点,仅备份这之间的数据变化,因而备份的数
据量小,占用空间小,备份速度快.但恢复时,需要从上一次的完整备份起到最后一次增
量备份依次恢复,如中间某次的备份数据损坏,将导致数据的丢失.
3、MySQL? 完全备份操作
MySQL 数据库的备份可以采用多种方式
1、直接打包数据库文件夹,如/usr/local/mysql/data/ 或 /var/lib/mysql/
示例:
- [root@localhost?~]#?mysql?
- mysql>?create?database?auth;?
- Query?OK,?1?row?affected?(0.00?sec)?
- mysql>?use?auth;?
- Database?changed?
- mysql>?create?table?user(name?char(10)?not?null,ID?int(48));?
- Query?OK,?0?rows?affected?(0.04?sec)?
- mysql>?insert?into?user?values('crushlinux','123');?
- Query?OK,?1?row?affected?(0.01?sec)?
- mysql>?select?*?from?user;?
- +------------+------+?
- |?name?|?ID?|?
- +------------+------+?
- |?crushlinux?|?123?|?
- +------------+------+?
- 1?row?in?set?(0.00?sec)?
- mysql>?exit?
- Bye?
- [root@localhost?~]#?service?mysqld?stop?
- Shutting?down?MySQL..?[?OK?]?
- [root@localhost?~]#?yum?-y?install?xz?
- [root@localhost?~]#?tar?Jcf?mysql_all-$(date?+%F).tar.xz?/usr/local/mysql/data/?
- tar:?Removing?leading?`/'?from?member?names?
MYSQL教程模拟数据丢失!
?
- [root@localhost?~]#?mkdir?bak?
- [root@localhost?~]#?mv?/usr/local/mysql/data/*?bak/?
MYSQL教程恢复数据:
?
- [root@localhost?~]#?mkdir?restore?
- [root@localhost?~]#?tar?xf?mysql_all-2016-12-08.tar.xz?-C?restore/?
- [root@localhost?~]#?mv?restore/usr/local/mysql/data/*?/usr/local/mysql/data/?
- [root@localhost?~]#?service?mysqld?start?
- Starting?MySQL..?[?OK?]?
- [root@localhost?~]#?mysql?
- mysql>?select?*?from?auth.user;?
- +------------+------+?
- |?name?|?ID?|?
- +------------+------+?
- |?crushlinux?|?123?|?
- +------------+------+?
- 1?row?in?set?(0.00?sec)?
MYSQL教程2、使用专用备份工具 mysqldump
MySQL 自带的备份工具,相当方便对 MySQL 进行备份.通过该命令工具可以将数据库、
数据表或全部的库导出为 SQL 脚本,在需要恢复时可进行数据恢复.
(1)对单个库进行完全备份
格式:mysqldump -u 用户名 -p[密码] [选项] [数据库名] > /备份路径/备份文件名
示例:
?
- [root@localhost?~]#?mkdir?/backup?
- [root@localhost?~]#?mysqldump?-uroot?-p123123?auth?>?/backup/auth-$(date?+%Y%m%d).sql?
- [root@localhost?~]#?echo?$??
- 0?
- [root@localhost?~]#?cat?/backup/auth-20161208.sql?
MYSQL教程(2)对多个库进行完全备份
格式:mysqldump -u 用户名 -p [密码] [选项] --databases 库名 1 [库名 2]… > /备份路径/备份
文件名
示例:
- [root@localhost?~]#?mysqldump?-uroot?-p123123?--databases?mysql?auth?>?
- /backup/mysql+auth-$(date?+%Y%m%d).sql?
- [root@localhost?~]#?cat?/backup/mysql+auth-20161208.sql?
MYSQL教程(3)对所有库进行完全备份
格式:mysqldump -u 用户名 -p [密码] [选项] --all-databases > /备份路径/备份文件名
示例:
?
- [root@localhost?~]#?mysqldump?-uroot?-p123123?--opt?--all-?
- databases?>/backup/mysql_all.$(date?+%Y%m%d).sql?
- ??
- [root@localhost?~]#?cat?/backup/mysql_all.20161208.sql?
- ?
MYSQL教程(4)对表进行完全备份
格式:mysqldump -u 用户名 -p [密码] [选项] 数据库名 表名 > /备份路径/备份文件名
示例:
?
- [root@localhost?~]#?mysqldump?-uroot?-p123123?auth?user?>/backup/auth_user-$(date?
- +%Y%m%d).sql?
- [root@localhost?~]#?cat?/backup/auth_user-20161208.sql?
MYSQL教程(5)对表结构的备份
格式:mysqldump -u 用户名 -p [密码] -d 数据库名 表名 > /备份路径/备份文件名
示例:
?
- [root@localhost?~]#?mysqldump?-uroot?-p123123?-d?mysql?user?>/backup/desc_mysql_user-?
- $(date?+%Y%m%d).sql?
- [root@localhost?~]#?cat?/backup/desc_mysql_user-20161208.sql?
MYSQL教程4、使用? mysqldump? 备份后,恢复数据库
1、source 命令
登录到 MySQL 数据库,执行 source 备份 sql 脚本路径
示例
?
- [root@localhost?~]#?mysql?
- mysql>?show?databases;?
- +--------------------+?
- |?Database?|?
- +--------------------+?
- |?information_schema?|?
- |?auth?|?
- |?mysql?|?
- |?performance_schema?|?
- |?test?|?
- |?usr?|?
- +--------------------+?
- 6?rows?in?set?(0.00?sec)?
- mysql>?drop?database?auth;?
- Query?OK,?1?row?affected?(0.12?sec)?
- mysql>?source?/backup/mysql_all.20161208.sql?
- mysql>?show?databases;?
- ??
- +--------------------+?
- |?Database?|?
- +--------------------+?
- |?information_schema?|?
- |?auth?|?
- |?mysql?|?
- |?performance_schema?|?
- |?test?|?
- |?usr?|?
- +--------------------+?
- 6?rows?in?set?(0.00?sec)?
MYSQL教程2、mysql 命令
格式:mysql -u 用户名 -p [密码] < 库备份脚本的路径
mysql -u 用户名 -p [密码] 库名 < 表备份脚本的路径
示例:
?
- [root@localhost?~]#?mysql?-uroot?-p123123?-e?'show?databases;'?
- +--------------------+?
- |?Database?|?
- +--------------------+?
- |?information_schema?|?
- |?auth?|?
- |?mysql?|?
- |?performance_schema?|?
- |?test?|?
- |?usr?|?
- +--------------------+?
- [root@localhost?~]#?mysql?-uroot?-p123123?-e?'drop?database?auth;'?
- [root@localhost?~]#?mysql?-uroot?-p123123?<?/backup/mysql_all.20161208.sql?
- [root@localhost?~]#?mysql?-uroot?-p123123?-e?'show?databases;'?
- +--------------------+?
- |?Database?|?
- +--------------------+?
- |?information_schema?|?
- |?auth?|?
- |?mysql?|?
- |?performance_schema?|?
- |?test?|?
- |?usr?|?
- +--------------------+?
- ?
- [root@localhost?~]#?mysql?-uroot?-p123123?-e?'drop?table?auth.user;'?
- [root@localhost?~]#?mysql?-uroot?-p123123?auth<?/backup/auth_user-20161208.sql?
- [root@localhost?~]#?mysql?-uroot?-p123123?-e?'select?*?from?auth.user;'?
MYSQL教程+------------+------+ | name | ID | | crushlinux | 123 | +------------+------+
? (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|