50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
# RailwaySystem 融合测试数据库清理与回滚操作指引
|
||||
|
|
|
|||
|
|
> **安全警示与铁律约束**:
|
|||
|
|
> 1. 本指引**仅作为操作手册供 DBA 手动查阅**,严禁集成到自动化脚本中静默触发。
|
|||
|
|
> 2. **严禁自动执行 `DROP DATABASE`**,绝不自动终止其他数据库会话。
|
|||
|
|
> 3. 操作前必须严格核对 `current_database()`,绝对禁止在 `training`、`iotlocks` 或历史 QA 库执行任何销毁操作。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、初始化失败导致半完成状态的手动清理步骤
|
|||
|
|
|
|||
|
|
若在全新空库 `railwaysystem_fusion_qa_20261013` 初始化过程中遭遇网络中断或语法中断,导致对象处于半完成状态,推荐的手动回滚流程如下:
|
|||
|
|
|
|||
|
|
### 步骤 1:确认操作身份与目标数据库
|
|||
|
|
由具备实例管理权限的 DBA 连接至默认维护库(例如 `template1` 或 `kingbase`),查询当前活动连接:
|
|||
|
|
```sql
|
|||
|
|
SELECT pid, usename, client_addr, state, query
|
|||
|
|
FROM pg_stat_activity
|
|||
|
|
WHERE datname = 'railwaysystem_fusion_qa_20261013';
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤 2:确认无误后手动断开该测试库连接
|
|||
|
|
确认连接均为当前测试会话后,方可手动终止连接(注意:仅限针对该特定目标库):
|
|||
|
|
```sql
|
|||
|
|
SELECT pg_terminate_backend(pid)
|
|||
|
|
FROM pg_stat_activity
|
|||
|
|
WHERE datname = 'railwaysystem_fusion_qa_20261013'
|
|||
|
|
AND pid <> pg_backend_pid();
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 步骤 3:安全销毁半完成测试库
|
|||
|
|
```sql
|
|||
|
|
-- 必须经过复核后手动执行
|
|||
|
|
DROP DATABASE railwaysystem_fusion_qa_20261013;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、测试周期结束后的资源归档与销毁建议
|
|||
|
|
|
|||
|
|
1. **测试日志与结果留痕**:
|
|||
|
|
在销毁前,先导出测试期间生成的业务通行记录与授权记录日志(用于验收报告归档)。
|
|||
|
|
2. **账号权限回收**:
|
|||
|
|
```sql
|
|||
|
|
REVOKE ALL ON DATABASE railwaysystem_fusion_qa_20261013 FROM fusion_bootstrap_user, fusion_app_user;
|
|||
|
|
DROP USER IF EXISTS fusion_bootstrap_user;
|
|||
|
|
DROP USER IF EXISTS fusion_app_user;
|
|||
|
|
```
|
|||
|
|
3. **数据库下线**:
|
|||
|
|
重复上述手动销毁步骤即可。
|