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

网站制作公司嘉兴精准营销的典型案例

网站制作公司嘉兴,精准营销的典型案例,苏州建网站皆去苏州聚尚网络,本周时政新闻热点10条1. 确保安装了 Percona Toolkit 1.在目标环境中,确保系统中已正确安装 Percona Toolkit,尤其是 pt-online-schema-change 工具。 2. 数据库用户具备执行外部命令权限。 3. MySQL 配置启用: log_binbinlog_formatROW 目标表有主键或唯一索引…

1. 确保安装了 Percona Toolkit

1.在目标环境中,确保系统中已正确安装 Percona Toolkit,尤其是 pt-online-schema-change 工具。
2. 数据库用户具备执行外部命令权限。
3. MySQL 配置启用:

  • log_bin
  • binlog_format=ROW
  1. 目标表有主键或唯一索引。

2. 编写 Liquibase 自定义 Change Type 或使用 SQL 执行命令

Liquibase 支持通过 <sql> 标签执行原生 SQL 命令。你可以在 changelog 文件中直接调用 shell 命令来运行 pt-online-schema-change,例如:

<changeSet id="run-pt-online-schema-change" author="your-name"><sql><![CDATA[SET @schema_change := CONCAT('pt-online-schema-change --alter "ADD COLUMN new_column INT" D=your_database,t=your_table --execute');PREPARE stmt FROM @schema_change;EXECUTE stmt;DEALLOCATE PREPARE stmt;]]></sql>
</changeSet>

注意:上面的示例假设你正在使用 MySQL,并且你的数据库支持执行动态 SQL 和存储过程。

3. 配置 Liquibase 与环境兼容性

由于 pt-online-schema-change 是一个外部工具,需要确保:

  • 数据库用户有权限执行外部命令。
  • MySQL 的配置允许运行此类操作(如启用 log_binbinlog_format=ROW 等)。
  • 目标表存在合适的主键或唯一索引以支持该工具。

4. 测试和验证

建议在测试环境中先验证 pt-online-schema-change 的行为是否符合预期,并确保 Liquibase 能够成功调用并完成更改。

5. 可选:封装为自定义扩展

如果你希望更灵活地控制集成方式,可以考虑开发 Liquibase 的自定义扩展(Custom Change),将 pt-online-schema-change 封装成一个可复用的变更类型。

要在 Liquibase 中集成 pt-online-schema-change(Percona 的在线表结构变更工具),并支持表结构的增删改和索引操作,可以通过以下方式实现。


🧩 使用 Liquibase 调用 pt-online-schema-change

Liquibase 支持通过 <sql> 标签直接执行原生 SQL 或 Shell 命令。以下是一些常见操作示例:

1. 新增列

<changeSet id="add-column" author="example"><sql><![CDATA[SELECT sys_exec('pt-online-schema-change --alter "ADD COLUMN new_column VARCHAR(255)" D=my_database,t=my_table --execute') INTO @out;]]></sql>
</changeSet>

2. 删除列

<changeSet id="drop-column" author="example"><sql><![CDATA[SELECT sys_exec('pt-online-schema-change --alter "DROP COLUMN old_column" D=my_database,t=my_table --execute') INTO @out;]]></sql>
</changeSet>

3. 修改列定义

<changeSet id="modify-column" author="example"><sql><![CDATA[SELECT sys_exec('pt-online-schema-change --alter "MODIFY COLUMN column_name VARCHAR(500)" D=my_database,t=my_table --execute') INTO @out;]]></sql>
</changeSet>

4. 添加索引

<changeSet id="add-index" author="example"><sql><![CDATA[SELECT sys_exec('pt-online-schema-change --alter "ADD INDEX idx_name (column_name)" D=my_database,t=my_table --execute') INTO @out;]]></sql>
</changeSet>

5. 删除索引

<changeSet id="drop-index" author="example"><sql><![CDATA[SELECT sys_exec('pt-online-schema-change --alter "DROP INDEX idx_name ON my_table" D=my_database,t=my_table --execute') INTO @out;]]></sql>
</changeSet>

🔌 注意事项

  • sys_exec 函数:MySQL 默认不提供 sys_exec,你需要安装 MariaDB 的 lib_mysqludf_sys 插件或使用其他方式调用 shell。
  • 安全性:确保只在受控环境中运行此类命令,避免安全风险。
  • 日志与回滚:建议将执行日志记录下来,并在失败时手动介入处理。

📦 可选:封装为自定义扩展

如果希望更规范地集成,可以开发一个 Liquibase 自定义 Change 类型,例如:

public class PtOnlineSchemaChangeChange extends AbstractChange {private String databaseName;private String tableName;private String alterStatement;// getters/setterspublic SqlStatement[] generateStatements(Database database) {return new SqlStatement[]{new RawSqlStatement(String.format("SELECT sys_exec('pt-online-schema-change --alter \"%s\" D=%s,t=%s --execute') INTO @out;",alterStatement, databaseName, tableName))};}
}

然后在 changelog 中使用:

<changeSet id="custom-pt-change" author="example"><customChange class="com.example.PtOnlineSchemaChangeChange"><param name="databaseName" value="my_database"/><param name="tableName" value="my_table"/><param name="alterStatement" value="ADD COLUMN new_col INT"/></customChange>
</changeSet>

✅ 总结

操作类型示例
新增列ADD COLUMN new_column VARCHAR(255)
删除列DROP COLUMN old_column
修改列MODIFY COLUMN column_name VARCHAR(500)
添加索引ADD INDEX idx_name (column_name)
删除索引DROP INDEX idx_name ON my_table

通过上述方式,你可以灵活地在 Liquibase 中集成 pt-online-schema-change 来实现零停机时间的表结构变更。

http://www.dtcms.com/wzjs/219677.html

相关文章:

  • 企业标准版网站建设五年级下册数学优化设计答案
  • nba网站制作运营推广公司
  • 广州交易中心官网宁波seo快速排名
  • 淮南建筑网武汉搜索引擎排名优化
  • 微商怎么引流推广开鲁网站seo转接
  • 网站建设公司渠道seo短视频
  • 国度网络网站建设索引擎优化 seo
  • 网站建设行业前景网络舆情分析报告
  • 天门网站网站建设seo优化对网店的推广的作用为
  • 营销型网站解决方案制作一个网站的基本步骤
  • html5 手机 网站360广告联盟平台
  • 做淘宝客网站需要多大的数据库国内前10电商代运营公司
  • 新闻网站建设合同中国网新山东
  • 英国政府网站建设现状上海seo排名
  • 开发公司 网站建设营销策划方案ppt
  • 博彩老虎机网站可做代理吗模板建站公司
  • 网站作品怎么做什么软件可以推广
  • 做网站用小公司还是大公司佛山百度提升优化
  • 什么是模板建站大连百度关键词优化
  • 做标书需要用到哪些网站查资料网络推广方式主要有
  • 医院网站优化网站友情链接出售
  • 嘉兴网站开发公司网络舆情监测中心
  • 前端如何做双语网站自媒体seo是什么意思
  • 广州工程建设信息网站seo权重优化
  • 做游戏模板下载网站有哪些网站引流推广怎么做
  • wordpress调用网站最新文章专业推广公司
  • 搜狗竞价绑定网站要求抖音seo推广外包公司好做吗
  • 宁波网站建设哪家比较好郑州网络推广效果
  • 网站拉圈圈接口怎么做上海发布微信公众号
  • 用自己照片做衣服_杯子的是哪个网站国内免费建网站