当前位置: 首页 > news >正文

郑州 服装网站建设摄影作品网站风景

郑州 服装网站建设,摄影作品网站风景,wordpress做物流网站,3000块钱在朋友圈投放广告备份的主要目的是灾难恢复#xff0c;备份还可以测试应用、回滚数据修改、查询历史数据、审计等。 而备份、恢复中#xff0c;日志起到了很重要的作用 MySQL日志管理是数据库管理中的一个重要方面#xff0c;它可以用于诊断问题、监控性能、进行故障恢复等。MySQL主要有几种…备份的主要目的是灾难恢复备份还可以测试应用、回滚数据修改、查询历史数据、审计等。 而备份、恢复中日志起到了很重要的作用 MySQL日志管理是数据库管理中的一个重要方面它可以用于诊断问题、监控性能、进行故障恢复等。MySQL主要有几种类型的日志包括错误日志、查询日志、二进制日志、慢查询日志等。下面详细解析每种类型的日志以及其管理。 配置文件 vim /etc/my.cnf 错误日志Error Log 错误日志用来记录当MySQL启动、停止或运行时发生的错误信息默认已开启 查看错误日志 log-error/usr/local/mysql/data/mysql_error.log #指定日志的保存位置和文件名配置错误日志路径 在MySQL配置文件通常是my.cnf或my.ini中添加或修改如下配置 [mysqld] log_error/path/to/error.log查询日志General Query Log 查询日志记录了所有客户端的连接和执行的SQL语句。启用查询日志会对性能产生一定影响默认是关闭的因此在生产环境中通常不建议一直启用。 查看查询日志状态 SHOW VARIABLES LIKE general_log%;启用查询日志 SET GLOBAL general_log ON;配置查询日志路径 在MySQL配置文件中添加或修改如下配置 [mysqld] general_log ON general_log_file /path/to/query.log二进制日志Binary Log 二进制日志包含了对数据库的修改操作用于数据恢复、主从复制等。启用二进制日志会对性能有一定影响。默认已开启 查看二进制日志状态 SHOW VARIABLES LIKE log_bin%;启用二进制日志 SET GLOBAL log_bin ON;配置二进制日志路径和命名 在MySQL配置文件中添加或修改如下配置 [mysqld] log_bin ON log_bin_basename /path/to/binlog慢查询日志Slow Query Log 慢查询日志记录执行时间超过阈值的查询用于识别性能问题。 查看慢查询日志状态 SHOW VARIABLES LIKE slow_query_log%;启用慢查询日志 SET GLOBAL slow_query_log ON;配置慢查询日志路径和阈值 在MySQL配置文件中添加或修改如下配置 [mysqld] slow_query_log ON slow_query_log_file /path/to/slow-query.log long_query_time 1 # 指定执行时间的阈值单位是秒中继日志 一般情况下它在Mysql主从同步复制、读写分离集群的从节点开启。主节点一般不需要这个日志 刷新日志设置 无需重启MySQL可以通过以下命令刷新日志设置 FLUSH LOGS;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; #在数据库中设置开启慢查询的方法二进制日志开启后重启mysql 会在目录中查看到二进制日志 cd /usr/local/mysql/data ls mysql-bin.000001 #开启二进制日志时会产生一个索引文件及一个索引列表索引文件记录更新语句 索引文件刷新方式 1、重启mysql的时候会更新索引文件用于记录新的更新语句 2、刷新二进制日志 mysql-bin.index 二进制日志文件的索引 数据备份 数据备份的重要性 1、备份的主要目的是灾难恢复 2、在生产环境中数据的安全性至关重要 3、任何数据的丢失都可能产生严重的后果 4、造成数据丢失的原因 备份类型 1. 逻辑备份Logical Backups SQL导出 使用 mysqldump 命令将数据库导出为SQL格式的文件可以包含数据库结构和数据。这种备份方式可读性强易于理解和修改但在恢复大型数据库时速度较慢。 SELECT INTO OUTFILE 使用SQL语句将查询结果导出到文件可以备份表中的数据。 2. 物理备份Physical Backups 全量备份 备份整个MySQL数据库系统包括数据文件、索引等。这种备份方式恢复速度快但文件较大占用存储空间多。 增量备份 只备份自上次全量备份或增量备份以来发生更改的数据。通常使用MySQL的二进制日志binary log来实现。 3. 冷备份与热备份 冷备份 在数据库关闭状态下进行备份这种方式可能导致数据库暂时不可用适用于小型数据库或可以承受停机时间的环境。 热备份 在数据库运行时进行备份数据库可以继续提供服务。热备份的方法包括使用复制、文件系统快照、MySQL Enterprise Backup 等。 4. 远程备份与本地备份 远程备份 将备份数据存储在远程位置可以提高数据安全性防止因本地故障而导致备份数据丢失。 本地备份 将备份数据存储在本地设备或服务器上便于访问和恢复但可能存在风险如硬件故障或自然灾害导致数据丢失。 5. 定时备份策略 完整备份和增量备份结合 定期进行完整备份然后以较短的时间间隔进行增量备份确保备份数据的完整性和实时性。 定期验证备份 不仅要进行备份还应定期验证备份文件的完整性和可恢复性以确保在需要时可以顺利进行恢复。 备份方式比较 逻辑备份的策略增、全、差异 合理值区间⭐⭐⭐ 一周一次的全备全备的时间需要在不提供业务的时间区间进行 PM 10点 AM 5:00之间进行全备 增量3天/2天/1天一次增量备份 差异选择特定的场景进行备份 一个处理NFS提供额外空间给与mysql 服务器用 常见的备份方法 1、物理冷备 备份时数据库处于关闭状态直接打包数据库文件tar 备份速度快恢复时也是最简单的 2、专用备份工具 mysqldump 或 mysqlhotcopy mysqldump 常用的逻辑备份工具 mysqlhotcopy 仅拥有备份 MyISAM 和 ARCHIVE 表 3、启用二进制日志进行增量备份 进行增量备份需要刷新二进制日志 MySQL支持增量备份进行增量备份时必须启用二进制日志。二进制日志文件为用户提供复制对执行备份点后进行的数据库更改所需的信息进行恢复。如果进行增量备份包含自上次完全备份或增量备份以来发生的数据修改需要刷新二进制日志。 4、第三方工具备份 免费的MySQL 热备份软件 Percona XtraBackup mysqlbackup MySQL完全备份 MySQL完全备份一般是指备份整个数据库系统包括数据库结构表结构、存储过程、触发器等和数据。这种备份方式确保在灾难发生或数据丢失时能够进行全面的恢复。 是差异备份和增量备份的基础 优缺点 优点 备份与恢复操作简单方便 缺点 数据存在大量的重复 占用大量的备份空间 备份与恢复时间长 数据库完全备份分类 物理冷备份与恢复 关闭MySQL数据库 使用tar命令直接打包数据库文件夹 直接替换现有MySQL目录即可 mysqldump备份与恢复 MySQL自带的备份工具可方便实现对MySQL的备份 可以将指定的库、表导出为SQL 脚本 使用命令mysq|导入备份的数据 实验 环境准备 use 库名; create table if not exists info ( id int(4) not null auto_increment, name varchar(10) not null, age char(10) not null, hobby varchar(50), primary key (id) );insert into info values(1,user1,20,running); insert into info values(2,user2,30,singing);MySQL完全备份与恢复 InnoDB 存储引擎的数据库在磁盘上存储成三个文件: db.opt(表属性文件)、表名.frm(表结构文件)、表名.ibd(表数据文件)。 物理冷备份与恢复 systemctl stop mysqld yum -y install xz #压缩备份 tar Jcvf /opt/mysql_all_$(date %F).tar.xz /usr/local/mysql/data/ mv /usr/local/mysql/data/ /opt/ #解压恢复 tar Jxvf /opt/mysql_all_2020-11-22.tar.xz -C /usr/local/mysql/data/ cd /usr/local/mysql/data mv /usr/local/mysql/data/* ./mysqldump 备份与恢复温备份 reate table info2 (id int,name char(10),age int,sex char(4)); insert into info2 values(1,user,11,性别); insert into info2 values(2,user,11,性别);完全备份一个或多个完整的库 (包括其中所有的表) mysqldump -u root -p[密码] --databases 库名1 [库名2] ... /备份路径/备份文件名.sql #导出的就是数据库脚本文件 例: mysqldump -u root -p --databases kgc /opt/kgc.sql #备份一个kgc库 mysqldump -u root -p --databases mysql kgc /opt/mysql-kgc.sql #备份mysql与 kgc两个库 完全备份 MySQL 服务器中所有的库 mysqldump -u root -p[密码] --all-databases /备份路径/备份文件名.sql 例: mysqldump -u root -p --all-databases /opt/all.sql完全备份指定库中的部分表 mysqldump -u root -p[密码] 库名 [表名1] [表名2] ... /备份路径/备份文件名.sql 例: mysqldump -u root -p [-d] kgc info1 info2 /opt/kgc_info1.sql #使用“-d”选项说明只保存数据库的表结构 #不使用“-d选项说明表数据也进行备份 #做为一个表结构模板查看备份文件 grep -v ^-- /opt/库名_info1.sql | grep -v ^/ | grep -v ^$MySQL完全恢复 恢复数据库 1.使用mysqldump导出的文件可使用导入的方法 source命令 mysql命令2.使用source恢复数据库的步骤登录到MySQL数据库 执行source备份sql脚本的路径3.source恢复的示例MySQL [(none)] source /backup/all-data.sql示例方法一 创建备份 mysqldump -uroot -p123456 school info /opt/info.sql mysql -uroot -p123123 -e drop table school.info; #删除数据库的表这是一个使用mysqldump命令进行MySQL数据库备份的示例具体含义如下 mysqldump: 是MySQL提供的用于导出数据库的命令行工具。 -uroot: 指定MySQL连接的用户名这里是root。 -p123456: 指定MySQL连接的密码这里是123456。请注意密码没有空格直接接在-p后面。 school: 是要备份的数据库名称这里是school。 info: 是数据库中的表名称这里是info表。如果没有指定表名那么默认备份整个数据库。 /opt/info.sql: 将备份的内容输出到一个SQL文件这里是/opt/info.sql。 操作符用于将命令输出写入到指定的文件中。 所以这个命令的含义是从MySQL数据库中的school数据库的info表中导出数据并将导出的SQL语句保存到/opt/info.sql文件中。如果数据库连接成功并且有足够的权限系统将要求输入密码。 示例方法二 恢复数据表 mysql -uroot -p123456 school /abc/school.info.sql 这是一个使用mysql命令进行MySQL数据库导入的示例具体含义如下 mysql: 是MySQL提供的用于执行SQL语句的命令行工具。 -uroot: 指定MySQL连接的用户名这里是root。 -p123456: 指定MySQL连接的密码这里是123123。请注意密码没有空格直接接在-p后面。 school: 是要导入数据的数据库名称这里是school。 /abc/school.info.sql: 从指定文件 (/abc/school.info.sql) 中读取SQL语句并将其导入到MySQL数据库中。 所以这个命令的含义是将包含在/abc/school.info.sql文件中的SQL语句导入到MySQL数据库中的school数据库。如果数据库连接成功并且有足够的权限系统将要求输入密码。 select * from info; 查询所有字段 show tables; 查看表信息 免交互方式source /opt/info.sql mysql -uroot -p123123 -e show tables from school;mysqldump 严格来说属于温备份会需要对表进行写入的锁定 在全量备份与恢复实验中假设现有test01库test01库中有一个test表需要注意的一点为 当备份时加 --databases ,表示针对于test01库 #备份命令 mysqldump -uroot -p123123 --databases school /opt/school_01.sql 备份库后 #恢复命令过程为 mysql -uroot -p123123 drop database ky13; exit mysql -uroot -p123123 /opt/ky13_01.sql ② 当备份时不加 --databases表示针对ky11库下的所有表 #备份命令 mysqldump -uroot -p123123 ky13 /opt/ky11_all.sql #恢复过程 mysql -uroot -p123123 drop database ky13; create database ky13; exit mysql -uroot -p123123 ky13 /opt/ky11_02.sql #查看ky11_01.sql 和ky11_02.sql 主要原因在于两种方式的备份前者会从create databases开始,而后者则全是针对表格进行操作 4.在生产环境中可以使用Shell脚本自动实现定时备份时间频率需要确认0 1 * * 6 /usr/local/mysql/bin/mysqldump -uroot -pabc123 kgc info1 ./kgc_infol_$(date %Y%m%d).sql ;/usr/local/mysql/bin/mysqladmin -u root -p flush-logsMySQL增量备份与恢复 MySQL数据库增量恢复 一般恢复 将所有备份的二进制日志内容全部恢复 基于位置恢复 数据库在某一时间点可能既有错误的操作也有正确的操作 可以基于精准的位置跳过错误的操作 发生错误节点之前的一个节点上一次正确操作的位置点停止 基于时间点恢复 跳过某个发生错误的时间点实现数据恢复 在错误时间点停止在下一个正确时间点开始 增量备份示例 1.开启二进制日志功能 vim /etc/my.cnf [mysqld] log-binmysql-bin binlog_format MIXED #可选指定二进制日志(binlog)的记录格式为MIXED混合输入 server-id 1 #可加可不加该命令#二进制日志(binlog)有3种不同的记录格式: STATEMENT (基于SQL语句)、ROW(基于行)、MIXED(混合模式)默认格式是STATEMENT① STATEMENT基于SQL语句: 每一条涉及到被修改的sql 都会记录在binlog中 缺点日志量过大如sleep()函数last_insert_id()以及user-defined fuctionsudf、主从复制等架构记录日志时会出现问题总结增删改查通过sql语句来实现记录如果用高并发可能会出错可能时间差异或者延迟可能不是我们想想的恢复可能你先删除或者在修改可能会倒过来。准确率底② ROW(基于行) 只记录变动的记录不记录sql的上下文环境 缺点:如果遇到update......set....where true 那么binlog的数据量会越来越大总结update、delete以多行数据起作用来用行记录下来 只记录变动的记录不记录sql的上下文环境 比如sql语句记录一行但是ROW就可能记录10行但是准确性高高并发的时候由于操作量性能变低 比较大所以记录都记下来③ MIXED 推荐使用 一般的语句使用statement函数使用ROW方式存储。systemctl restart mysqld 查看二进制日志文件的内容 cp /usr/local/mysql/data/mysql-bin.000002 /opt/① mysqlbinlog --no-defaults /opt/mysql-bin.000002mysqlbinlog --no-defaults --base64-outputdecode-rows -v /opt/mysql-bin.000002#--base64-outputdecode-rows使用64位编码机制去解码decode并按行读取rows #-v: 显示详细内容 #--no-defaults : 默认字符集不加会报UTF-8的错误 PS: 可以将解码后的文件导出为txt格式方便查阅 mysqlbinlog --no-defaults --base64-outputdecode-rows -v /opt/mysql-bin.000002 /opt/mysql-bin.000002二进制日志中需要关注的部分 1、at 开始的位置点 2、end_log_pos结束的位置 3、时间戳 210712 11:50:30 4、SQL语句2.进行完全备份(增量备份时基于完全备份的所以我们直接完全备份数据库) [rootmysql data]# mysqldump -uroot -p school info /opt/kgc_info1_$(date %F).sql [rootmysql data]# mysqldump -uroot -p123123 school /opt/school_all_$(date %F).sql3.可每天进行增量备份操作生成新的二进制日志文件(例如:mysql-bin.000002) mysqladmin -u root -p flush-logs4.插入新数据以模拟数据的增加或变更 PS:在第一次完全备份之后刷新二进制文件在第二个二进制文件中记载着增量备份的数据 mysql create database ky13; Query OK, 1 row affected (0.00 sec)mysql use ky13; Database changed mysql create table test1 (id int(4),name varchar(4)); Query OK, 0 rows affected (0.00 sec)mysql insert into test1 values(1,one); Query OK, 1 row affected (0.00 sec)mysql insert into test1 values(2,two); Query OK, 1 row affected (0.00 sec)mysql select * from test1; ------------ | id | name | ------------ | 1 | one | | 2 | two | ------------ 2 rows in set (0.00 sec)5.再次生成新的二进制日志文件(例如:mysql-bin.000003) mysqladmin -u root -p flush-logs #之前的步骤4的数据库操作会保存到mysql-bin.000002文件中之后我们测试删除ky13库的操作会保存在mysql-bin.000003文件中 以免当我们基于mysql-bin.000002日志进行恢复时依然会删除库增量恢复实例 1.一般恢复 (1)、模拟丢失更改的数据的恢复步骤直接使用恢复即可 ① 备份ky11库中test1表 mysqldump -uroot -p123123 ky13 test1 /opt/ky13_test13.sql ② 删除ky13库中test1表 drop table ky13.test1; ③ 恢复test1表 mysql -uroot -p ky13 info-2020-08-31.sql #查看日志文件 [rootmysql data]# mysqlbinlog --no-defaults --base64-outputdecode-rows -v mysql-bin.000002(2)、模拟丢失所有数据的恢复步骤 ① 模拟丢失所有数据 [rootmysql data]# mysql -uroot -p123123 mysql show databases; -------------------- | Database | -------------------- | information_schema | | ky13 | | mysql | | performance_schema | | school | | sys | | test | -------------------- 7 rows in set (0.00 sec)mysql drop database ky13; Query OK, 1 row affected (0.00 sec)mysql exit② 基于mysql-bin.000002恢复 mysqlbinlog --no-defaults /opt/mysql-bin.000002 | mysql -u root -p2.断点恢复 mysqlbinlog --no-defaults --base64-outputdecode-rows -v /opt/mysql-bin.000002 例: # at 302 #201122 16:41:16 插入了user3的用户数据# at 623 #201122 16:41:24 插入了user4的用户数据(1)、基于位置恢复 ① 插入三条数据 mysql use ky13;mysql select * from test1; ------------ | id | name | ------------ | 1 | one | | 2 | two | ------------ 2 rows in set (0.00 sec)mysql insert into test1 values(3,true); Query OK, 1 row affected (0.00 sec)mysql insert into test1 values(4,f); Query OK, 1 row affected (0.00 sec)mysql insert into test1 values(5,t); Query OK, 1 row affected (0.00 sec)mysql select * from test1; ------------ | id | name | ------------ | 1 | one | | 2 | two | | 3 | true | | 4 | f | | 5 | t | ------------ 5 rows in set (0.00 sec)#需求以上id 4的数据操作失误需要跳过② 确认位置点刷新二进制日志并删除test1表 mysqlbinlog --no-defaults --base64-outputdecode-rows -v /opt/mysql-bin.000003 960 停止 1066 开始#刷新日志 mysqladmin -uroot -p123123 flush-logsmysql use ky13; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -ADatabase changed mysql show tables; ---------------- | Tables_in_ky13 | ---------------- | test1 | ---------------- 1 row in set (0.00 sec)mysql drop table ky13.test1; Query OK, 0 rows affected (0.00 sec)③ 基于位置点恢复 #仅恢复到操作 ID 为“623之前的数据即不恢复user4的数据 mysqlbinlog --no-defaults --stop-position623 /opt/mysql-bin.000002 | mysql -uroot -p#仅恢复user4的数据跳过user3的数据恢复 mysqlbinlog --no-defaults --start-position623 /opt/mysql-bin.000002 | mysql -uroot -pmysqlbinlog --no-defaults --start-position400 --stop-position623 /opt/mysql-bin.000002 | mysql -uroot -p #恢复从位置为400开始到位置为623为止(2)、基于时间点恢复 mysqlbinlog [--no-defaults] --start-datetime年-月-日 小时:分钟:秒 --stop-datetime年-月-日小时:分钟:秒 二进制日志 | mysql -u 用户名 -p 密码#仅恢复到16:41:24 之前的数据即不恢复user4的数据 mysqlbinlog --no-defaults --stop-datetime2020-11-22 16:41:24 /opt/mysql-bin.000002 | mysql -uroot -p #仅恢复user4的数据跳过user3的数据恢复 mysqlbinlog --no-defaults --start-datetime2020-11-22 16:41:24 /opt/mysql-bin.000002 | mysql -uroot -p如果恢复某条SQL语之前的所有数据就stop在这个语句的位置节点或者时间点 如果恢复某条SQL语句以及之后的所有数据就从这个语句的位置节点或者时间点start
http://www.yutouwan.com/news/442018/

相关文章:

  • 深圳建立网站公司网站wordpress与数据库
  • 淘客网站开发公司wordpress 更改服务器
  • 网站如何为关键词做外链北京做网站建设的公司排名
  • jsp获取网站域名最近的新闻头条
  • 网站建设公司业务wordpress最多多少用户
  • 自己动手做衣服网站跟建设通差不多额网站
  • 外国企业网站模板免费下载枣庄手机网站建设报价
  • 网站设计与网页制作网站关键词在哪
  • 自助建网站不需要域名wordpress 编辑器
  • 苏州做网站公司乛 苏州聚尚网络响应式布局方式
  • 网站备案号 有效期网站开发客户需求
  • 企业级网站开发与部署wordpress插件汉化教程
  • 怎样找素材做网站徐州网站制作报价
  • 河南网站建设公司店铺logo一键生成器
  • 郑州网站建设动态软件开发报价
  • 玉环 网站建设app下载安装官方网站
  • 一级a做爰片365网站泰安法拍房信息网
  • 企业大型网站开发需要多少钱平面电商设计是什么
  • 微信投票网站怎么做更换动易网站模板的方法
  • 企业网站的建设目标有哪几种顺德做网站的公司
  • 网站审批号建个人网站怎么赚钱吗
  • php网站开发预算文档电子专业毕设做网站
  • python做网站后台宣传型企业网站设计方案
  • app需要申请网站的子域名吗深圳做h5网站的公司
  • 企业网站属于下面哪种媒体类型学院网站建设情况
  • 做网站困难吗公司注册查询 核名
  • 网站优化种类免费网站建设 godaddy
  • 做软件贵还是做网站贵网站备案初审时间
  • 网站开发岗位名称厦门国外网站建设公司
  • 建立个人网站有什么好处wordpress 简书模板