天津网站开发技术,广东造价信息网,wordpress 小工具 代码,做网站需要懂哪些技能备份#xff1a;完全备份#xff0c;增量备份 完全备份#xff1a;将整个数据库完整的进行备份 增量备份#xff1a;在完全备份基础的之上#xff0c;对后续新增的内容进行备份 备份的需求
1生产环境中#xff0c;数据的安全性至关重要#xff0c;任何数据都可能产生非…
备份完全备份增量备份 完全备份将整个数据库完整的进行备份 增量备份在完全备份基础的之上对后续新增的内容进行备份 备份的需求
1生产环境中数据的安全性至关重要任何数据都可能产生非常严重的后果
2 数据丢失可能是程序操作运算错误磁盘故障人为操作等 冷备份关机备份停止mysql服务然后进行备份 热备份开机备份无需停止mysql服务然后进行备份 物理备份对数据库系统的物理文件数据文件日志文件进行备份 逻辑备份只是对数据库的逻辑组件 进行备份表结构以mysql语句的形式把库 结构表进行备份直接在数据库系统中删除全部文件rm -rf 库名逻辑备份无法恢复只能使用逻辑的方式命令行进行删除 物理备份:完全备份对整个数据库进行完整的打包备份。
优点:操作简单
缺点:数据库文件占用量是很大的占用空间太大,备份和恢复的时间都很长。而且需要暂停数据库服务。
打包备份最好把服务关掉避免有新的数据进入备覆盖恢复失败 yum -y install xz #压缩备份 tar Jcvf /opt/mysql_all_$(date %F).tar.xz /usr/local/mysql/data/ #解压恢复 tar Jxvf /opt/mysql_all_2020-11-22.tar.xz 物理冷备份 #关闭mysqld #查看data下文件 #安装一个高压缩率的数据压缩工具备份恢复先下载好这个 #打包data Tar Jcvf打包 Tar Jxvf: 解压 打包/mysql_all_$(date%F).tar.xz日期 打包位置 使用xz工具打包 J要大写J 把文件/usr/log/mysql/data打包到/opt/mysql_all_$(data %F).tar.xz (把data数据库打包相当于打包全部) 解压打包过来的数据包 #解压出来是 #演示删库相当于删除所有 数据备份恢复 数据全部还原了 远程数据迁移 复制到、/opt 下之后 再保留权限复制到下面/usr/local/mysql/data/下 #再赋权之后 刷新 数据库 数据表格等都有了 重启MySQL 热备份中的逻辑备份
MySQL的自带工具mysqldump
备份:重定向输出到/opt/下(使用mysqldump用.sql为结尾)
单个库备份
Mysqldump -u root -p --databases kgc /opt/kgc.sql
多个库备份
Mysqldump -u root -p --databases kgc kgc1 /opt/kgc1.sql
所有库进行备份
Mysqldump -u root -p --all-databases /opt/kgc3.sql 恢复库使用mysql 小于号
mysql -u root -p /opt/kgc_all.sql ##开启端口号、MySQL服务 单个数据库的逻辑热备份 #物理删除Kgc这个库恢复之后只有库的架构 没有表数据 #使用命令行的方式进行删除 #指定连接完mysql命令 之后自动退出 mysql -u root -p -e show databases; -e指定连接mysql之后执行完命令自动退出。 #恢复库 物理删除刷新没有了kgc 命令行删除还有恢复数据库 多个数据库的热备份的逻辑 备份全部数据库 如何备份指定库 指定表 指定数据库下 多表恢复 增量备份 优点 mysgldump支持增量备份。 没有重复数据备份量小时间短。 mysgldump增量备份恢复表数据期间表会锁定。 缺点 备份时锁表必然会影响业务。超过10G耗时会比较长导致服务不可用。 MySQl二进制日志记录格式有3种
1 statemnet基于sql语句
记录修改的sql语句高并发情况下记录sql语句时候的顺序可能会出错恢复数据时候可能会导致丢失和误差效率比较高
2 row 基于行
精准记录每一行的数据准确率高但是恢复效率低
3、MIXED: 即可以根据sgl语句也可以根据行
在正常情况下使用STATEMENT,-旦发生高并发会智能自动切换到ROW行。 增量-备份的过程 mysql 提供的二进制日志间接的实现增量备份。 使用增量备份需要先修改配置文件 设置把二进制文件打开 log-binmysql-bin binlog_formatMIXED #二进制日志文件的位置 #查看二进制文件的内容 mysqlbinlog --no-defaults --base64-outputdecode-rows -v mysql-bin.000002 mysqladmin -u root -p flush-logs #刷新命令会生成一个新的mysql00000x记录点 恢复 mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p 基于位置点来进行恢复
从某一个点开始恢复到最后
mysqlbinlog --no-defaults --start-position位置点 文件名 | mysql - u root -p
从开头一直恢复到某个位置
mysqlbinlog --no-defaults --stop-position位置点 文件名 | mysql - u root -p
从指定点-----指点结束点。
mysqlbinlog --no-defaults --start-position位置点 --stop-position位置点 文件名 | mysql - u root -p 基于时间点进行恢复
1、从某个时间点开始
mysqlbinlog --no-defaults --start-datetime时间点 文件 | mysql -u root -p
2、从开头到指定的结尾时间点
mysqlbinlog --no-defaults --stop-datetime时间点 文件 | mysql -u root -p
3、指定时间范围
mysqlbinlog --no-defaults --start-datetime时间点 --stop-datetime时间点 文件 | mysql -u root -p 时间点要加- At :数字是位置点 时间点 位置点 如何打开MySQL的默认日志 MySQL 的日志默认保存位置为 /usr/local/mysql/data vim /etc/my.cnf [mysqld] log-error/usr/local/mysql/data/mysql_error.log #指定日志的保存位置和文件名 ##错误日志用来记录当MySQL启动、停止或运行时发生的错误信息默认已开启 general_logON general_log_file/usr/local/mysql/data/mysql_general.log ##通用查询日志用来记录MySQL的所有连接和语句默认是关闭的 log-binmysql-bin #也可以 log_binmysql-bin ##二进制日志(binlog)用来记录所有更新了数据或者已经潜在更新了数据的语句记录了数据的更改可用于数据恢复默认已开启 slow_query_logON slow_query_log_file/usr/local/mysql/data/mysql_slow_query.log long_query_time5 ##慢查询日志用来记录所有执行时间超过long_query_time秒的语句可以找到哪些查询语句执行时间长 以便于优化默认是关闭的 #设置超过5秒执行的语句被记录缺省时为10秒 systemctl restart mysqld mysql -u root -p show variables like general%; #查看通用查询日志是否开启 show variables like log_bin%; #查看二进制日志是否开启 show variables like %slow%; #查看慢查询日功能是否开启 show variables like long_query_time; #查看慢查询时间设置 set global slow_query_logON; #在数据库中设置开启慢查询的方法 附加题写一个脚本每个月的20号对数据库打一个断点
断点之后进行增量备份