对象生命周期管理设计

作者: admin 分类: 公众号存档            0 次浏览 发布时间: 2019-09-09 23:25

公众号:杨建荣的学习笔记 · 作者:杨建荣 · 发布:2019-09-09 23:25:26 · 原文链接

   

这是学习笔记的第 2096 篇文章

最近两天梳理了下生命周期管理的内容,在重新梳理的过程中,原先一些没想明白的点在这个过程中也整理明白了,而整个改进的过程在重新梳理时,发现不会大改,而是在入口和过滤的部分做一些补充,为此我也准备了如下的一些测试案例,准备把现有的流程能够较为完整的走一遍。

  其实这个过程中反复琢磨的东西,本质上还是模型。 

这是一个让我相见恨晚的设计图,折腾了一圈,目前来看,能够满足我预设的绝大多数场景。

接下来我把一些测试计划和数据模型的设计内容也总结出来。

测试计划

测试case 测试类型 测试描述 预期结果 备注
1 初始化表 初始化表 mysql_tab_baseline(insert) mysql_snap_tab_col_info(insert) mysql_snap_tab_index_info(insert)
2 初始化表 初始化库 mysql_db_baseline(insert)
3 DDL-新增 新建表 mysql_snap_tab_info(insert)   mysql_tab_baseline(insert) mysql_snap_tab_col_info(insert) mysql_snap_tab_index_info(insert)
4 DDL-修改表 修改表-新增字段 mysql_snap_tab_info(insert)  mysql_snap_tab_col_info(insert)
5 DDL-修改表 修改表-修改字段 mysql_snap_tab_info(insert) mysql_snap_tab_col_info(insert)
6 DDL-修改表 修改表-删除字段 mysql_snap_tab_info(insert) mysql_snap_tab_col_info(insert)
7 DDL-修改表 修改表-新增索引 mysql_snap_tab_info(insert)  mysql_snap_tab_index_info(insert)
8 DDL-修改表 修改表-删除索引 mysql_snap_tab_info(insert)  mysql_snap_tab_index_info(insert)
9 DDL-删除表 truncate表数据 待定
10 DDL-删除表 drop表数据 mysql_tab_baseline(update)
11 DML insert,delete,update mysql_snap_hot_tab_info(insert)

mysql_life_cycle_snapshot

Field Type Null Key Default Extra
snap_id int(11) NO PRI NULL auto_increment
ip_addr varchar(50) NO NULL
db_port varchar(100) NO NULL
duration int(11) YES NULL
start_time datetime(6) YES NULL
end_time datetime(6) YES NULL
memo varchar(500) YES NULL
create_time datetime(6) NO NULL

mysql_tab_baseline

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO NULL 快照id只作为初始状态的标识
ip_addr varchar(50) NO NULL
db_port varchar(50) NO NULL
table_schema varchar(50) NO NULL
table_name varchar(50) NO NULL 只有表的最新状态信息
tab_create_time datetime(6) YES NULL 表的创建时间
create_time datetime(6) NO NULL 变更时间
table_comment varchar(50) NO NULL
table_ddl longtext NO NULL 初始化的创建语句
memo varchar(500) NO NULL
table_status varchar(50) NO NULL ACTIVE,RECYCLE,INACTIVE
avg_row_length varchar(50) NO NULL 初始状态的数值
data_length varchar(50) NO NULL
index_length varchar(50) NO NULL 初始状态的数值
tab_last_ddl_time datetime(6) YES NULL 最新的DDL时间
tab_last_dml_time datetime(6) YES NULL 最新的DML时间
table_collation varchar(50) NO NULL
table_engine varchar(50) NO NULL
table_row_format varchar(50) NO NULL
table_rows varchar(50) NO NULL 初始状态的数值

mysql_snap_tab_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO NULL
ip_addr varchar(50) NO MUL NULL
db_port varchar(50) NO NULL
table_schema varchar(50) NO NULL
table_name varchar(50) NO NULL
create_time datetime(6) NO NULL
tab_last_ddl_time datetime(6) NO NULL
tab_last_dml_time datetime(6) YES NULL
table_engine varchar(50) NO NULL
table_row_format varchar(50) NO NULL
table_collation varchar(50) NO NULL
table_rows varchar(50) NO NULL
avg_row_length varchar(50) NO NULL
data_length varchar(50) NO NULL
index_length varchar(50) NO NULL
table_status varchar(50) NO NULL
table_ddl longtext NO NULL
memo varchar(500) NO NULL
change_sub_type varchar(50) NO NULL
change_type varchar(50) NO NULL
table_comment varchar(50) NO NULL

mysql_snap_tab_col_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO NULL
ip_addr varchar(50) NO MUL NULL
db_port varchar(50) NO NULL
table_schema varchar(50) NO NULL
table_name varchar(50) NO NULL
column_id int(11) YES NULL
column_name varchar(50) NO NULL
column_type varchar(50) NO NULL
column_default varchar(50) YES NULL
column_isnull varchar(50) NO NULL
create_time datetime(6) NO NULL
memo varchar(500) NO NULL

mysql_snap_tab_index_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO NULL
ip_addr varchar(50) NO MUL NULL
db_port varchar(50) NO NULL
table_schema varchar(50) NO NULL
table_name varchar(50) NO NULL
index_name varchar(50) NO NULL
column_index int(11) YES NULL
column_name varchar(50) NO NULL
column_orderby varchar(50) NO NULL
create_time datetime(6) NO NULL
memo varchar(500) NO NULL

mysql_snap_hot_tab_info

Field Type Null Key Default Extra
id int(11) NO PRI NULL auto_increment
snap_id int(11) NO NULL
ip_addr varchar(50) NO MUL NULL
db_port varchar(50) NO NULL
table_schema varchar(50) NO NULL
table_name varchar(50) NO NULL
create_time datetime(6) NO NULL
tab_last_ddl_time datetime(6) NO NULL
tab_last_dml_time datetime(6) YES NULL
table_engine varchar(50) NO NULL
table_row_format varchar(50) NO NULL
table_collation varchar(50) NO NULL
table_rows varchar(50) NO NULL
avg_row_length varchar(50) NO NULL
data_length varchar(50) NO NULL
index_length varchar(50) NO NULL
table_status varchar(50) NO NULL
memo varchar(500) NO NULL
hot_degree int(11) NO NULL

最后明天就是教师节了,祝老师桃李满天下

推荐一本书:

推荐理由:在游历中体悟生命意义、获得自我拯救的过程

个人新书 《MySQL DBA工作笔记》

admin

杨建荣,《Oracle DBA工作笔记》《MySQL DBA工作笔记》作者,dbaplus社群发起人之一,腾讯云TVP,现任竞技世界系统部经理,拥有十多年数据库开发和运维经验,目前专注于开源技术、运维自动化和性能调优

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注