Inception: 云时代的 MySQL 审核工具 Oracle Code 设计与实现 周彦伟极数云舟 CEO Oracle ACE Director for MySQL 8 May 2018 Copyright 2017, Oracle and/or its affiliates. All rights reserved.
免责声明 以下内容旨在概述产品的总体发展方向 该内容仅供参考, 不可纳入任何合同 本演示不承诺提供任何材料 代码或功能, 也不应将其作为购买决策的依据 此处所述有关 Oracle 产品的任何特性或功能的开发 发布和时间安排均由 Oracle 自行决定
大纲 关于我 常见 MySQL 审核方法 Inception 简介 Inception 使用方法 Inception 配置参数 Inception 对 OSC 的支持 Inception 执行流程 Inception 备份回滚 Arkit Inception 的全新实现 Inception for Cloud
关于我 Oracle ACE Director (MySQL) 前人人网 DBA 去哪儿网数据库总监 中国 MySQL 用户组 (ACMUG) 创始人 开源数据库论坛 (ODF)& 极数学院发起 MySQL 运维内参 & MySQL Inception 作者 2018 年创办极数云舟, 致力于 MySQL 技术产品和社区推广 5
常见 MySQL 审核方法 半自动化方法 同步问题 准确性问题 被动发现错误 不能穷尽 备份 / 恢复
常见 MySQL 审核方法 人肉法 累 主观 哪错了? 效率
Inception 简介 具备特性 源自 MySQL 轻量级 精准 支持 Python C 接口 支持 MySQL 协议 穷尽错误 结果集 服务器模式 上下文逻辑相关性
Inception 简介
Introduction 使用方法 Inception 服务器 日志功能 启动 语句格式 加注 hint, 支持若干选项 开始 提交
Inception 使用方法
Inception 使用方法
Inception 使用方法 结果集 ID:sql 序号 stage: 所处阶段信息 errlevel: 错误分级, 包括通过 警告及严重错误 ( 颜色 ) stagestatus: 阶段处理汇报信息 errormessage: 全部错误信息, 包括执行与备份 SQL 语句 : 语句块中被分离出来的一条 affected_rows: 预计影响行数 实际影响行数 sequence: 备份 回滚序列号 backup_dbname: 备份数据库名字 execute_time: 当前语句执行时间, 单位是秒, 精确到毫秒 SQLSHA1:ALTER TABLE 使用 OSC 时的唯一键
Inception 使用方法 支持选项 --host --port --user --password --enable-check --enable-execute --enable-force --enable-ignore-warnings --enable-remote-backup
Inception 配置参数 Inception 支持配置参数 inception_check_insert_field inception_check_column_comment inception_max_keys inception_check_dml_where inception_check_primary_key inception_enable_not_innodb inception_check_dml_limit inception_enable_partition_table inception_support_charset inception_check_dml_orderby inception_enable_enum_set_bit inception_check_table_comment inception_enable_select_star inception_check_index_prefix inception_max_char_length inception_enable_orderby_rand inception_enable_autoincrement_unsigned inception_check_autoincrement_init_value inception_enable_nullable inception_max_char_length inception_check_autoincrement_datatype inception_enable_foreign_key inception_check_autoincrement_init_value inception_check_timestamp_default Inception_max_key_parts inception_check_autoincrement_datatype inception_remote_backup_host inception_max_update_rows inception_check_timestamp_default inception_remote_backup_port inception_remote_system_password inception_remote_system_user inception_enable_identifer_keyword Inception 配置参数查看及修改 inception get variables variable_name ; inception get variables; inception set variable_name=value; inception set session variable_name=value;
Inception 执行流程
Inception 执行备份 优势 一键式 DBA 工作效率 回滚简单易操作 二次开发
Inception 对 OSC 的支持 pt-online-schema-change: 友好性 Inception 支持配置参数 会话级参数修改 (inception set session ) OSC 进度查询 HASH 值的获取 inception get osc_percent HASH value ; inception_osc_bin_dir inception_osc_check_interval inception_osc_chunk_size inception_osc_chunk_size_limit inception_osc_chunk_time inception_osc_critical_thread_connected inception_osc_critical_thread_running inception_osc_drop_new_table inception_osc_drop_old_table inception_osc_max_lag inception_osc_max_thread_connected inception_osc_max_thread_running inception_osc_min_table_size inception_osc_on 中止 OSC 执行 :inception stop alter sqlsha1 inception_osc_print_none inception_osc_print_sql
Inception 备份 备份存储方式 可配置 集中式库级备份 (192_168_168_168_3310_inception) 操作备份信息 ( 操作备份表 ) SQL 语句 Binlog 前后位置 数据库地址 端口 操作类型 (insert/update...) 回滚序号 (opid_time)
Inception 回滚 存储 ( 回滚表 )
Inception 回滚 存储结构
Inception 回滚语句生成 DML 行模式 (mixed) insert delete update 一条语句对多条回滚语句 各种反拼 DDL 执行前 ALTERTABLE CREATETABLE DROPTABLE 等 处理范围
Inception 回滚方法 回滚一条 回滚 sequence 事务 回滚多条 回滚 sequence 从后向前 事务
Arkit Inception 的全新实现
Arkit 准确 使用简单 实时状态查询 持久化 批量提交 上下文逻辑相关性 一键回滚 语法树打印 错误分级
Inception For Cloud User User User Arkit-web Service Arkit-Server Online DB Arkit-Server Arkit-Server Arkit-Server Arkit-Server Online DB 26