一、前言
生产环境达梦数据库某张核心业务表(以下步骤所有表名、字段名、存储过程名均是虚构的)已存在20亿+条数据,为应对一切可能存在的崩溃风险,使用以下步骤对业务表进行水平拆分(仅含数据迁移的步骤,程序已实现分表读取策略)。
方案阶段性目标:
- 实现对核心业务表20亿数据的水平拆分(存放于原库)
- 实现程序的分表读取策略,业务上无感知
- 实现对分表所属库的转移(存放于多个达梦库,分开存储)
- 优化程序的分表读取策略,实现多库多数据源分表的读取策略,业务上无感知
二、存储过程数据迁移步骤
1.清除源表已被逻辑删除的数据,减少源表数据量
CREATE OR REPLACE PROCEDURE PRO_DEL_USELESS_DATA_LIMIT(IN_START_NUM IN int, IN_END_NUM IN int)
AS
BEGIN
FOR I IN
(
SELECT
ORDER_CODE
FROM
BAK_ORDER_CODE_20240716
ORDER BY ORDER_CODE ASC
LIMIT IN_START_NUM, IN_END_NUM
)
LOOP
BEGIN
DELETE
FROM
T_O