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

珠海网站建设成功案例自助建站系统php

珠海网站建设成功案例,自助建站系统php,制作网站 太原,网站建设方案-奢侈品目录 什么是MyDumper MyDumper优势有哪些 如何安装MyDumper 参数解释 1 mydumper参数解释 备份流程 一致性快照如何工作#xff1f; 如何排除#xff08;或包含#xff09;数据库#xff1f; 输出文件 Metadata文件 ​编辑 表数据 文件 表结构 文件 建库文件…目录 什么是MyDumper MyDumper优势有哪些  如何安装MyDumper 参数解释  1 mydumper参数解释  备份流程 一致性快照如何工作 如何排除或包含数据库 输出文件 Metadata文件 ​编辑 表数据 文件 表结构 文件 建库文件 总结  使用示例 参考 原来一直使用mysqldump 和 xtrabackup对MySQL数据库进行逻辑备份和物理备份最近在生产环境接触到了一种新的备份恢复工具 mydumper 这里介绍总结一下自己的使用经验以及遇到的问题。 什么是MyDumper MyDumper是一个MySQL逻辑备份工具。它有2个工具 mydumper负责导出 MySQL 数据库的一致备份myloader从 mydumper 读取备份连接到目标数据库并导入备份。 这两个工具都使用多线程功能。 MyDumper优势有哪些  速度更快 - 多线程并发备份性能更好 - 避免昂贵的字符集转换整体代码高效易于管理的输出文件 -比如每个表都能生成单独的备份文件备份的元数据信息文件metadata记录位点信息等等便于查看/解析数据备份一致性 - 维护所有线程的快照提供准确的主从日志位置等可管理性高- 支持通过PRRE正则表达式 指定或者排除特定的库和表 什么是 PRRE PCRE 是 Perl Compatible Regular Expressions兼容 Perl 正则表达式的缩写。它是一个正则表达式库提供对正则表达式的支持并且与 Perl 的正则表达式语法高度兼容。 如何安装MyDumper 这里介绍离线安装 生产服务器一般没有外网  下载rpm 包地址 Tags · mydumper/mydumper · GitHub centos 系统 # 下载rpm  wget https://github.com/mydumper/mydumper/releases/download/v0.15.2-6/mydumper-0.15.2-6.el7.x86_64.rpm# 安装 rpm -ivh mydumper-0.15.2-6.el7.x86_64.rpm 安装完成之后会 mydumper 和 myloader都会被安装  $ mydumper --version mydumper v0.15.2-6, built against MySQL 5.7.43-47 with SSL support$ myloader --version myloader v0.15.2-6, built against MySQL 5.7.43-47 with SSL support mydumper 与 MySQL版本对应关系 参数解释  每个版本的参数略有差异下面是针对版本 v0.15.2-6 进行的参数解释 1 mydumper参数解释  长参数短参数参数解释连接参数--host-h连接的数据库服务器--user-u需要特性权限的用户--password-p用户的密码--ask-password-a提示输入用户的密码--port-PTCP/IP 端口--socket-S用于连接的 UNIX 域套接字文件--protocol用于连接的协议tcp、socket--compress-protocol-C对 MySQL 连接使用压缩--ssl使用 SSL 连接--ssl-mode连接到服务器所需的安全状态DISABLED、PREFERRED、REQUIRED、VERIFY_CA、VERIFY_IDENTITY--key密钥文件的路径名--cert证书文件的路径名--ca证书颁发机构文件的路径名--capath包含 PEM 格式的受信任 SSL CA 证书的目录的路径名--cipher用于 SSL 加密的允许密码列表--tls-version服务器允许哪些协议进行加密连接匹配过滤参数--regex-xdb.table 匹配的正则表达式--database-B需要备份的数据库--ignore-engines-i要忽略的存储引擎的列表 逗号分隔--where仅转储选定的记录--updated-since-U使用 Update_time 仅转储最近 U 天内更新的表--partition-regex按分区名称过滤的正则表达式。--omit-from-file-O包含要跳过的数据库.表条目列表的文件每行一个在应用正则表达式选项之前跳过--tables-list-T要备份的表列表以逗号分隔不排除正则表达式选项。 表名必须包含数据库名。 例如test.t1test.t2锁参数--tidb-snapshot-z使用 TiDB 快照--no-locks-k不执行 临时共享读锁 警告⚠️这将会导致非一致性备份--use-savepoints使用 savepoints 来减少元数据锁的产生需要 SUPER 权限--no-backup-locks不使用 Percona 的 backup locks 备份锁--lock-all-tables对所有的表 LOCK TABLE而不是使用FTWRL--less-locking对于 InnoDB 存储引擎的表 最少的锁时间--trx-consistency-only只有事务一致性PMM参数--pmm-path默认值为 /usr/local/percona/pmm2/collectors/textfile-collector/high-resolution--pmm-resolution默认值较高EXEC参数--exec-threads与 --exec 一起使用的线程数量--exec使用文件作为参数执行命令--exec-per-thread设置将由 STDIN 接收并将 STDOUT 写入输出文件的命令--exec-per-thread-extension使用 --exec-per-thread 时设置 STDOUT 文件的扩展名长查询参数--long-query-retries重新检查长查询 默认0 ,不糊重试--long-query-retry-interval长查询检测的间隔 默认60秒--long-query-guard-l设置长查询的时间阈值 默认60秒--kill-long-queries-kkill 长查询Job参数--char-deep定义当主键是字符串时要使用的字符数--char-chunk定义应将表拆分为多少部分。 默认情况下我们使用线程数量--rows将表拆分为这么多行的块。 它可以是 MIN:START_AT:MAX。 MAX 可以为 0表示没有限制。 如果查询时间少于 1 秒则块大小将加倍如果查询时间超过 2 秒则块大小减半--split-partitions将分区转储到单独的文件中。 此选项会覆盖分区表的 --rows 选项。校验参数--checksum-all-M转储所有对象的校验和--data-checksums转储表与数据 校验和--schema-checksums转储模式表和视图创建校验和--routine-checksums转储触发器、函数和例程 校验和备份对象参数--no-schemas-m不备份表的数据库--all-tablespaces-Y备份所有表空间--no-data-d不备份表的数据--triggers-G备份触发器。默认情况下不备份--events-E备份事件。默认情况下不备份--routines-R备份存储过程和函数。默认情况下不备份--views-as-tables将视图作为表导出--no-views-W不要备份视图Statement参数--load-data不创建 INSERT INTO 语句而是创建 LOAD DATA 语句和 .dat 文件--csv自动启用--load-data 并设置变量以 CSV 格式导出--fields-terminated-by定义分割字段的字符。--fields-enclosed-by定义包围字段的字符。 默认 ”--lines-starting-by在每行的开头添加字符串。 使用 --load-data 时它会添加到 LOAD DATA 语句中。 当使用它时它也会影响 INSERT INTO 语句。--lines-terminated-by在每行末尾添加字符串。 当使用 --load-data 时它被添加到 LOAD DATA 语句中。 当使用它时它也会影响 INSERT INTO 语句。--statement-terminated-by这可能永远不会被使用除非你知道你在做什么--insert-ignore-N使用 INSERT IGNORE 备份行--replace用 REPLACE 替换备份行--complete-insert使用包含列名的完整 INSERT 语句--hex-blob使用十六进制表示法转储二进制列--skip-definer从 CREATE 语句中删除 DEFINER。 默认情况下语句不被修改--statement-size-s尝试的 INSERT 语句大小以字节为单位默认 1000000--tz-utcSET TIME_ZONE00:00 在转储顶部允许在服务器具有不同时区的数据或数据在不同时区的服务器之间移动时转储 TIMESTAMP 数据默认为使用 - -skip-tz-utc 禁用。--skip-tz-utc不在备份文件上添加 SET TIMEZONE--set-names设置名称使用它需要您自担风险默认二进制文件Extra参数--chunk-filesize-F将表分割成此输出文件大小的块。 该值以 MB 为单位--exit-if-broken-table-found如果发现损坏的表则退出--success-on-1146如果表不存在则不增加错误计数并发出警告而不是错误--build-empty-files-e即使表中没有可用数据也构建转储文件--no-check-generated-fields与生成字段相关的查询不会被执行。如果您生成了列则会导致恢复问题--order-by-primary如果不存在主键则按主键或唯一键对数据进行排序--compress-c使用 /usr/bin/gzip 和 /usr/bin/zstd 压缩输出文件。 选项GZIP 和 ZSTD。 默认值GZIPDaemon参数--daemon-D后台运行--snapshot-interval-I每个转储快照之间的间隔以分钟为单位需要 --daemon默认 60--snapshot-count-X快照数量默认2Application参数--help-?显示帮助选项--outputdir-o输出文件的目录--stream一旦文件被写入它将通过 STDOUT 流式传输。 自 v0.12.7-1 起接受 NO_DELETE、NO_STREAM_AND_NO_DELETE 和 TRADITIONAL默认值如果未给出参数则使用--logfile-L要使用的日志文件名默认情况下使用 stdout--disk-limits如果确定没有足够的磁盘空间则设置暂停和恢复的限制。接受类似以下值resume:pause以 MB 为单位。例如100:500 将在只有 100MB 时暂停 免费如果有 500MB 可用则恢复--threads-t要使用的线程数默认 4--version-V显示程序版本并退出--identifier-quote-character设置标识符引号字符仅用于在 mydumper 上插入语句以及在 myloader 上分割语句。 使用 SQL_MODE 更改 CREATE TABLE 语句可能的值有BACKTICK 和 DOUBLE_QUOTE。 默认值反引号--verbose-v输出的详细程度0 silent, 1 errors, 2 warnings, 3 info, default--defaults-file使用特定的默认文件。 默认值/etc/mydumper.cnf--defaults-extra-file使用额外的默认文件。 这是在 --defaults-file 之后加载的替换以前定义的值--fifodir需要时将在其中创建 FIFO 文件的目录。 默认值与备份相同 备份流程 备份过程主要步骤概括 主线程 FLUSH TABLES WITH READ LOCK , 施加全局只读锁以阻止 DML 语句写入保证数据的一致性 读取当前时间点的二进制日志文件名和日志写入的位置并记录在 metadata 文件中以供即时点恢复使用 N 个线程数可以指定默认是 4个dump 线程 START TRANSACTION WITH CONSISTENT SNAPSHOT ; 开启读一致的事物 dump non-InnoDB tables , 首先导出非事物引擎的表 主线程 UNLOCK TABLES 非事物引擎备份完后释放全局只读锁dump InnoDB tables , 基于事物导出 InnoDB 表 事物结束。 更详细的流程 1该工具在–daemo模式下支持以守护进行形式启动默认每60s进行一次备份。间隔时间由–snapshot-interval控制。 2首先会创建一个MySQL服务的连接 3然后在MySQL上执行show processlist根据参数long-query-guard和kill-long-queries决定退出或杀掉长查询; 4根据是否有–lock-all-tables进行锁表LOCK TABLE tn READ或者FLUSH TABLES WITH READ LOCK然后执行START TRANSACTION 5创建4个备份表的子线程 6创建1个work thread后g_async_queue_pop(conf.ready);此时conf.ready为空需要sleep等待。 7work线程执行连接mysql设置隔离级别RRstart transactiong_async_queue_push(conf-ready,GINT_TO_POINTER(1));然后main函数的g_async_queue_pop挂住的地方可以唤醒了继续创建线程或者向下走。 8work线程接着执行进入死循环从队列里pop出任务job(struct job *)g_async_queue_pop(conf-queue);根据任务类型进行dump。这里的并行是根据表并行的。先备份非事务表然后备份innodb表 9最后等所有work线程完成非事务表备份后唤醒g_async_queue_pop(conf.unlock_tables);执行UNLOCK TABLES解锁 10事务结束   一致性快照如何工作 这一切都是按照 MySQL 最佳实践和传统完成的 作为预防措施服务器上运行长查询要么会中止备份 要么被杀死获取全局读锁“FLUSH TABLES WITH READ LOCK”读取各种元数据“SHOW SLAVE STATUS”、“SHOW MASTER STATUS”其他线程连接并建立快照“START TRANSACTION WITH CONSISTENT SNAPSHOT” ** 在 4.1.8 之前的版本中它创建虚拟 InnoDB 表并从中读取。一旦所有工作线程宣布快照建立主线程就会执行“UNLOCK TABLES” 并开始排队作业。 FLUSH TABLES WITH READ LOCK; 全局读锁 所有的表只能进行读不能进行写 START TRANSACTION WITH CONSISTENT SNAPSHOT; 这个语句的目的是在事务开始时创建一个一致性的数据库快照通过MVCC机制确保在整个事务执行期间事务看到的数据保持一致性。 如何排除或包含数据库 可以使用--regex功能例如不转储mysql和测试数据库 # 可以使用--regex功能例如不备份 mysql 和 test 数据库 mydumper --regex ^(?!(mysql\.|test\.))# 仅备份 mysql 和 test 数据库 mydumper --regex ^(mysql\.|test\.)# 不备份以 test 开头的所有数据库 mydumper --regex ^(?!(test))# 转储不同数据库中的指定表 mydumper --regex ^(db1\.table1$|db2\.table2$)# 如果你想备份几个数据库但丢弃一些表你可以这样做 mydumper --regex ^(?(?:(db1\.|db2\.)))(?!(?:(db1\.table1$|db2\.table2$)))输出文件 版本 mydumper 0.10.0 Metadata文件 当备份正在执行的时候会有文件 metadata.partial 生成当备份顺利完成之后 重命名为 metadata。该文件中包含备份启动与完成的时间 主库二进制日志的文件与位点。 表数据 文件 每个表的文件都会写到单独的文件中文件的命名如下  database.table.sql(.gz|.zst) 如果使用了 --rows 选线每个表的备份都会被分割成多个文件,文件后会有5个数字填充格式如下  database.table.chunk.sql(.gz|.zst) 表结构 文件 如果没有使用选项 --no-schemas 每个表都会生成一个表结构的备份文件 格式如下 database.table-schema.sql(.gz|.zst)建库文件 database-schema-create.sql(.gz|.zst) 总结  可能各个版本备份出来的文件命名稍有不同从文件命名可以较为明显的看出该文件的内容大致总结下文件命名规则如下 dbname-schema-create.sql建库语句。dbname-schema-post.sql包含事件、存储过程及函数创建语句若存在则有该文件。dbname.tbname.metadata记录这个表的行数。dbname.tbname-schema.sql此表的创建语句。dbname.tbname-schema-triggers.sql创建触发器语句若该表存在触发器 则有此文件。dbname.tbname.sql该表的插入数据语句若该表为空 则不存在此文件。dbname.viewname-schema.sql创建视图语句只列举出视图字段。dbname.viewname-schema-view.sql创建视图的真正语句。metadata记录开始及结束备份的时间以及二进制日志位置。 使用示例 参考 Github  GitHub - mydumper/mydumper: Official MyDumper Project 输出文件 mydumper备份工具介绍与使用 - 简书 备份原理图  MySQL备份工具之mydumper mydumper工作原理解析_51CTO博客_Mydumper
http://www.yutouwan.com/news/308739/

相关文章:

  • 济南网站搜索排名北京网站案例
  • 电商网站建设技术可行性分析怎么看wordpress用了哪个主题
  • 10个零网站建设建e网室内设计网下载
  • 网上书城网站开发的目的与意义中国建设的网站
  • 中国空间站扩展网站设计用户体验
  • 正阳县网站建设个体户网站备案
  • 手机建设网站的目的阿里云虚拟主机怎么建设网站
  • 从哪些方面评价一个企业的网站建设互联网挣钱项目平台
  • 学校网站如何建设网站建设的前后台代码
  • 东莞住房和城乡建设厅网站建设什么样的网站月入一万
  • 哪个网站可以做效果图wordpress strip_tags
  • 做电影网站侵权吗一流的江苏网站建设
  • soho外贸网站用jsp做的网站源代码
  • 网站开发学些什么北京王府井简介
  • 天津网站建设普斯泰python在线编程题库
  • 营销型网站建设的优缺点wordpress安装好后
  • 如何用python做网站脚本语言wordpress修改404页面
  • 莘县住房建设局网站网站维护怎么样
  • 凯里市经济开发区建设局网站seo排名软件
  • 自己怎么做淘宝客网站吗wordpress文章标题过长
  • 郑州市网站建设哪家公司好帮人做钓鱼网站以及维护
  • 网站开发的难点与重点asp化妆品网站源码
  • 怎么样增加网站权重wordpress快速审批
  • 执法局网站建设目的前端自己写代码建网站要花多少钱
  • 百度微信官网网站模板公司网站建设素材
  • 临沂企业建站系统数字化文化馆网站建设
  • php网站 上传西部数码备案域名购买
  • 重庆网站优化排名软件方案北京网页设计公司兴田德润可信赖
  • linux 如何做网站深圳专业医疗网站建设
  • 凡科免费做网站宣城网站 建设