80 lines
2.8 KiB
Markdown
80 lines
2.8 KiB
Markdown
# ARR 测试数据库远程迁移记录
|
||
|
||
执行日期:2026-07-28
|
||
状态:完整迁移已提交并验收。
|
||
|
||
## 范围
|
||
|
||
- 源:`<LEGACY_DB_HOST>:5433/booking_test`,PostgreSQL 15.18
|
||
- 目标:`<ARR_DB_HOST>:5432/booking_test`,PostgreSQL 15.14
|
||
- 目标用户:`<TEST_DB_OWNER>`,数据库 owner,非超级用户
|
||
- 迁移对象:`ingestion`、`booking`、`finance`
|
||
- 源库处理:只读,未修改、未删除,继续保留作为临时回退
|
||
|
||
## 执行内容
|
||
|
||
- 应用 DDL:`database/008_arr_mvp_v1_rebuild.sql`
|
||
- DDL SHA-256:`a29df928a2bcfca262216a9d53260528374b830266b3285f3687199cb802a530`
|
||
- 基础表:14
|
||
- 视图:8
|
||
- 同步所有 identity sequence 的 `last_value/is_called`
|
||
- 迁移全部现有测试数据、处理审计和工件元数据
|
||
|
||
## 迁移前备份
|
||
|
||
- 目录:`<PRIVATE_BACKUP_ROOT>/booking_test_pre_remote_migration_20260728T180747+0800`
|
||
- manifest SHA-256:`db8ca84fed52123d10151b475aca31659be237c6e7d513484e4f25b1d9a89c4d`
|
||
- 备份权限:目录 0700,文件 0600
|
||
- 内容:14 表逐行 gzip JSON、schema/约束/索引/视图/函数/触发器/sequence 元数据、目标空库证据
|
||
|
||
## 安全执行
|
||
|
||
1. 只读确认目标 ARR schema 为空,用户为数据库 owner 且具备 CREATE。
|
||
2. 在目标执行一次完整 DDL + 全量复制 + 校验 + 强制 ROLLBACK 演练。
|
||
3. 第二连接确认演练后目标仍为空。
|
||
4. 正式执行相同流程,结构与数据在一个 SERIALIZABLE 事务内提交。
|
||
5. 任一步失败都会回滚;未发生部分提交。
|
||
|
||
## 最终一致性
|
||
|
||
- 双端结构 signature:`0d64002b919d439dbbbbf78d1f5c5fab86d8f815f80dc6225f17a91ab5455e38`
|
||
- 双端 14 表内容 hash bundle:`42faf898d67b3015e85baf00bbd66a1fa4448d80daa7f5d9d0207a4004fad35c`
|
||
- 双端逐表行数和逐表内容 SHA-256:全部一致
|
||
- identity sequence state:全部一致
|
||
- 未验证约束:0
|
||
- 目标 `public` 用户对象:0
|
||
|
||
关键数据计数:
|
||
|
||
| 表 | 行数 |
|
||
|---|---:|
|
||
| `booking.source_rows` | 867 |
|
||
| `booking.parse_versions` | 867 |
|
||
| `booking.room_items` | 867 |
|
||
| `booking.current_row_parses` | 867 |
|
||
| `finance.daily_versions` | 1 |
|
||
| `finance.current_daily_versions` | 1 |
|
||
| `finance.daily_records` | 3 |
|
||
| `ingestion.artifacts` | 5 |
|
||
| `ingestion.processing_runs` | 2 |
|
||
|
||
Finance outcome:retained、duplicate、excluded_rate_code 各 1。
|
||
|
||
## 应用验收
|
||
|
||
使用新远程数据库实际运行:
|
||
|
||
- 渠道 BI:1 个渠道、1 条 retained;
|
||
- 渠道明细:1 行;
|
||
- 月报生成源:1 行;
|
||
- 公司报表:1 行,Booking Room 为 `【DBL】1`;
|
||
- Web 日报列表:1 条;
|
||
- Web 月度数据源投影:1 行。
|
||
|
||
## 当前配置
|
||
|
||
- 当前测试库配置:`/path/to/private/booking-test-db.env`(0600)
|
||
- 旧 LAN 回退配置:`/path/to/private/booking-test-lan-db.env`(0600)
|
||
|
||
文档不保存密码。应用应优先使用新远程配置;在观察期结束前不要删除旧 LAN 库。
|