传奇数据迁移全流程指南(2025版)

来源: 作者: 点击:
#### 一、核心迁移逻辑与前置准备
迁移传奇私人服务器数据本质是**数据库文件转移+服务端配置适配**的过程。需重点关注以下三类数据:

| 数据类型 | 存储路径(旧服务器) | 新服务器验证点 |
|----------------|----------------------------------|------------------------|
| 账号数据 | `\MirServer\mud2\Logsrv\IdDB\` | 用户登录权限及密码校验 |
| 角色存档 | `\MirServer\mud2\DBSrv200\FDB\` | 装备/等级/地图坐标 |
| 行会及沙巴克 | `\MirServer\Mir200\GuildBase\` | 行会成员/攻城状态 |


**前置准备清单**:
1. 停止旧服务器所有服务进程(避免数据写入冲突)
2. 确认新旧服务器使用相同引擎版本(Hero/GOM/Bule等),不同版本需执行数据库转换
3. 准备FTP工具或内网传输通道(推荐FileZilla/SCP)

---

#### 二、关键数据备份与导出
##### 1. **账号与角色数据**
- **导出路径**:
```bash
# 账号库
/MirServer/mud2/Logsrv/IdDB/*.dbs
# 角色库
/MirServer/mud2/DBSrv200/FDB/*.dbs
```

- **操作要点**:
- 使用`DBC2000`打开`HeroDB`验证字段完整性
- 若出现`StdItems.DB`编号不一致,需用Navicat执行字段映射

##### 2. **行会与沙巴克数据**
- **核心文件**:
```bash
/MirServer/Mir200/GuildBase/guilds/*.txt # 行会成员名单
/MirServer/Mir200/Envir/Castle/*.txt # 沙巴克配置
```

- **特殊处理**:
- 将文件内IP地址批量替换为新服务器IP(VSCode全局替换)
- 中文行会名需检查编码格式(必须ANSI)

##### 3. **GM权限与日志数据**
- **必要备份项**:
```bash
/MirServer/Mir200/Envir/AdminList.txt # GM名单
/MirServer/Mir200/Log/*.log # 操作日志
```


---

#### 三、新服务器数据导入
##### 1. **基础环境部署**
- 安装相同版本的DBC2000,配置`HeroDB`路径指向新位置
```reg
# 注册表路径示例
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\HeroDB]
"DBQ"="D:\\NewMirServer\\mud2\\DB"
```

- 修改所有服务端配置文件中的IP地址(共5处核心文件):

| 文件路径 | 修改字段 |
|----------------------------|-----------------------|
| /Mir200/!Setup.txt | IP=新服务器IP |
| /LoginGate/Config.ini | Server1=新服务器IP |
| /RunGate/RunGate.ini | ListenAddr=新服务器IP |


##### 2. **数据文件覆盖**
- 通过对比工具(Beyond Compare)增量同步:
```bash
# 旧服务器 -> 新服务器
/mud2/Logsrv/IdDB/ --> /NewMirServer/mud2/Logsrv/IdDB/
/mud2/DBSrv200/FDB/ --> /NewMirServer/mud2/DBSrv200/FDB/
```

- 执行数据库修复命令:
```sql
CHECKDB('HeroDB', REPAIR_ALLOW_DATA_LOSS) -- 强制修复损坏数据
```


---

#### 四、迁移后验证与调试
##### 1. **基础功能测试**

| 测试项 | 预期结果 | 异常处理方案 |
|------------------|--------------------------|--------------------------|
| 账号登录 | 可正常输入密码进入选角 | 检查IdDB文件权限 |
| 角色装备 | 背包/穿戴装备无丢失 | 对比StdItems.DB字段 |
| 行会功能 | 成员列表及职位显示正常 | 检查guilds文件编码 |


##### 2. **压力测试**
- 使用JMeter模拟并发登录(建议50用户起步)
- 监控M2Server内存占用(超过2GB需优化脚本)

##### 3. **容灾回滚方案**
- 创建迁移快照:
```bash
tar -zcvf backup_20250310.tar.gz /NewMirServer/ # 全量打包
```

- 异常时执行:
```bash
systemctl stop传奇服务 && rm -rf /NewMirServer/ && tar -zxvf backup_20250310.tar.gz
```


---

#### 五、高阶场景处理
##### 1. **跨引擎迁移(如Hero转GOM)**
- 使用数据库转换工具(如LegacyDBConverter)
- 关键字段映射关系:

| Hero字段 | GOM对应字段 | 转换规则 |
|---------------|-----------------|-------------------|
| ACCOUNTINDEX | LoginID | 直接复制 |
| ITEMTYPE | StdMode | 需查表转换 |


##### 2. **云服务器迁移**
- 阿里云/腾讯云特殊配置:
- 安全组开放7000/7100/7200端口
- 使用云数据库RDS替换DBC2000(需改写M2Server连接逻辑)

---

#### 六、迁移工具包推荐

| 工具名称 | 用途 | 下载源 |
|------------------|--------------------------|------------------------|
| DBC2000修复助手 | 数据库字段校验 | | Navicat Premium | 数据库可视化操作 | | 数据同步专家 | 增量文件对比 | | 压力测试终端 | 多用户并发模拟 |