备份的类型:
①物理备份:备份数据库的物理文件,数据文件和日志文件;
冷备份:关闭数据库进行的;
热备份:数据库处于运行中状态,依赖于日志文件;
温备份:数据库锁定表格的情况下进行;
②逻辑备份:通过备份工具备份数据库、表对象。
备份策略:
①完全备份
②差异备份
③增量备份
完全备份:
完全冷备份:关闭mysql服务,然后使用tar 对数据库的目录进行压缩
使用备份工具mysqldump、xtrabackup进行逻辑备份:
mysqldump -uroot -p123456 --all-databases >/opt/all_databases.sql 备份所有的数据库
mysqldump -uroot -p123456 --databases 库名1 库名2 ... > /opt/库名_database.sql 备份哪些数据库
mysqldump -uroot -p123456 库名 表名1 表名2 > /opt/库名_表名.sql 备份哪些表
mysqldump -uroot -p123456 库名 > /opt/库名.sql 备份哪个库的所有表(没有库)
恢复:
①mysql -uroot -p123456 < .sql文件
②进入mysql 然后source
日志管理:
错误日志:log-error=/usr/local/mysql/data/mysql_error.log
通用日志:general_log=ON genreal_log_file=/usr/local/mysql/data/mysql_general.log
二进制日志:bin-log=mysql_log
慢日志:slow_query_log=ON slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log long_query_time=3
开启二进制日志生成的类型:
查询日志是否开启:
show variabs like 'error.log%'等等
二进制文件备份:
查看mysql数据库二进制日志文件:
恢复二进制日志文件:
按照时间点和位置点恢复日志文件:
mysqlbinlog --no-defaults --start-position='' /--stop-position='' | mysql -uroot -p123456
mysqlbinlog --no-defaults --start-datetime='' / --stop-datetime='' | mysql -uroot -p123456
如果恢复某条SQL语句之前的所有数据,就stop在这个语句的位置节点或时间点;
如果恢复某条SOL语句以及其之后的所有数据,就从这个语句的位置节点或时间点。
在工作中一般每周一的24点进行完全备份,然后每天的24点进行增量备份!!!!