标签:用户名 -- 备份 Mysql 数据备份 mysqldump mysql 数据库
一、数据库备份
1、备份可分为完全备份、差异备份、增量备份
2、常见备份方法:
物理备份:冷备份,在数据库关闭状态下进行备份
启用二进制日志进行增量备份:二进制日志为用户提供复制、对执行备份点后进行的数据库更改所需的信
息进行备份。
二、备份操作
1、完全备份
- 1、直接打包数据库文件夹,源码包位置/usr/local/mysql/data/, rpm包位置/var/lib/mariadb
- 2、创建备份位置mkdir backup 将数据单个库进行完全备份
- 格式:mysqldump -u用户名 -p[密码] [选项] --databases [数据库名] > /备份路径/备份文件名
- mysqldump -uroot -p123456 --databases auth > backuper/auth-$(date+%Y%m%d).sql
- 3、对多个库进行完全备份:
- 格式:mysqldump -u用户名 -p [密码] [选项] --databases 库名1 [库名2]… > /备份路径/备份文件名
- mysqldump -uroot -p123456 --databases mysql auth > backup/mysql+auth-$(date +%Y%m%d).sql
- 4、对所有库进行完全备份:
- 格式:mysqldump -u用户名 -p [密码] [选项] --opt --all-databases > /备份路径/备份文件名
- mysqldump -uroot -p123456 --opt --all-detabases > backuper/mysql_all.$(date +%Y%m%d).sql
- 5、对表进行完全备份:
- 格式:mysqldump -u用户名 -p [密码] [选项] 数据库名 表名 > /备份路径/备份文件名
- mysqldump -uroot -p123456 auth user > backuper/auth_user-$(date +%Y%m%d).sql
- 6、对表结构进行备份
- 格式:mysqldump -u用户名 -p [密码] -d 数据库名 表名 > /备份路径/备份文件名
- mysqldump -uroot -p123456 -d mysql user > backup/desc_mysql_user-$(date +%Y%m%d).sql
- 七、恢复数据库
- 1、source命令
- 登录到数据库,执行source备份sql脚本路径
- drop dtabase auth;
- source backup/auth.sql即可恢复
- 2、mysql命令
- 格式:mysql -u用户名 -p [密码] < 库备份脚本的路径
mysql -u用户名 -p [密码] 库名 < 表备份脚本的路径
八、备份思路
1、定期实施备份,制定备份计划或策略,并严格遵守。
2、除了进行完全备份,开启MySQL服务器的binlog日志功能是很重要的(完全备份加上日志,可以对MySQL进行最大化还原)。
3、使用统一和易理解的备份名称,推荐使用库名或者表名加上时间的命名规则,如mysql_user-20181214.sql,不要使用backup1或者abc之类没有意义的名字。
9、更改字符集
[root@localhost ~]# vim /etc/my.cnf
[mysqld]
character_set_server=utf8
查看字符集是否支持中文 show variables like 'character_set_%';
三、增量备份
1、特点
没有重复的,备份量小
恢复需要一次一次的恢复
通过二进制日志(bing logs)实现增量备份
二进制日志保存了所有更新数据的数据库操作(sql语句)
二进制日志在mysql服务器开始后开始记录,并在文件达到max_binlod_size所设置的大小
vim /etc/my.cof
log-bin=mysql-bin
max_binlog_size=1024000 #二进制日志最大1M
2、增量恢复
格式:mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u用户名 -p密码
3、基于时间点的恢复,便于跳过某个发生错误的时间点实现数据恢复
开头到某个时间点
mysqbinlog [--no-defaults] --stop-datetime='年-月-日 小时:分钟:秒'二进制日志 | mysql -u 用户名 -p 密码
某个时间点到结尾恢复
mysqlbinlg [--no-defaults] --start-datetime='年-月-日 小时:分钟:秒’二进制日志 | mysql -u 用户名 -p 密码
某个时间点到某个时间点
mysqlbinlog [--no-defaults] --start-datetime=’年-月-日 小时:分钟:秒’ --stop-datetime=’年-月-日 小时:分钟:秒’ 二进制日志 | mysql -u用户名 -p密码
四、企业备份策略
1. 确定当前mysql 是处于哪种表类型下工作的,它们支持事物处理还是非事物的,因为我们需要根据不同的特点来做一些设置。
2. 要选择备份的形式是完全备份还是增量备份,它们各有优缺点。
3. 为了保证恢复的完整性,我们得开启binary log功能,同时binlog给恢复工作也带来了很大的灵活性,可以基于时间点或是位置进行恢复。考虑到数据库性能,我们可以将binlog文件保存到其他安全的硬盘中。
4. 备份操作和应用服务同时运行,这样就十分消耗系统资源了,会导致数据库服务性能下降,这就要求我们选择一个合适的时间(比如在应用负担很小的时候)再来进行备份操作。
5. 不是备份完就万事大吉,我们还得确认备份是否可用,所以之后的恢复测试是完全有必要的。
l 根据数据更新频繁,则应该较为频繁的备份
l 数据重要,则在有适当更新时进行备份
l 在数据库压力小的时段进行备份,如一周一次完全备份,然后每天进行增量备份
l 中小公司,全备一般可一天一次
l 大公司可每周进行一次全备,每天进行一次增量备份
l 尽量为企业实现主从复制架构
标签:用户名,
--,
备份,
Mysql,
数据备份,
mysqldump,
mysql,
数据库
From: https://www.cnblogs.com/wxfboke/p/18060859