فهرست منبع

更新合服代码

gitxsm 1 سال پیش
والد
کامیت
29c5f90ac0
2فایلهای تغییر یافته به همراه41 افزوده شده و 35 حذف شده
  1. 29 28
      script/merge/MergeServerDefine.lua
  2. 12 7
      script/merge/MergeServerLogic.lua

+ 29 - 28
script/merge/MergeServerDefine.lua

@@ -18,17 +18,19 @@
 --备份和恢复
 --[=[
     备份
-    mongodump --db 要备份的数据库名字 --out 备份文件存放目录
-    如:  mongodump --db ckwy_fy_S350002 --out /server/dumpDB/2025-4-3/
+        mongodump --db 要备份的数据库名字 --out 备份文件存放目录
+        如:  mongodump --db ckwy_fy_S350002 --out /server/dumpDB/2025-4-4/
+        脚本: /server/dumpDB.sh    需要修改脚本中的数据库名
+
 
     将备份文件恢复
-    mongorestore --db 数据库存放目录  备份文件目录
+        mongorestore --db 数据库存放目录  备份文件目录
+
+        mongorestore --db=ckwy_fy_S350077 --drop /server/bin3/dumpDB/ckwy_fy_S350077  --增加 --drop参数,会先删除数据库,再恢复
 
-    mongorestore --db=ckwy_fy_S350077 --drop /server/bin3/dumpDB/ckwy_fy_S350077  --增加 --drop参数,会先删除数据库,再恢复
-    mongorestore --db=ckwy_fy_S350078 --drop /server/bin3/dumpDB/ckwy_fy_S350078
+        mongorestore --db=ckwy_fy_S3500002  /server/bin3/dumpDB/ckwy_fy_S3500002
 
-    mongorestore --db=ckwy_fy_S3500002 --drop /server/bin3/dumpDB/ckwy_fy_S3500002
-    mongorestore --db=ckwy_fy_S3500002  /server/bin3/dumpDB/ckwy_fy_S3500002
+        脚本: /server/restoreDB.sh  需要根据dumpDB.sh 修改脚本中的备份数据所在目录, 以及数据库名
 
 ]=]--
 
@@ -68,27 +70,26 @@ CHANGENAME_TAG = "changeName"
 --要进行数据合并的数据库列表, 每个value中第一个为目标数据库,其他为源数据库
 --!!! 当前项目 ckwy_fy_S350002 是1服的数据库, ckwy_fy_S350003 是2服的数据库, ckwy_fy_S350004 是3服的数据库, 以此类推...
 MERGE_DB_TB = {
-    {"ckwy_fy_S350002", "ckwy_fy_S350003"},
-    {"ckwy_fy_S350004", "ckwy_fy_S350005"},
-    {"ckwy_fy_S350006", "ckwy_fy_S350007"},
-    {"ckwy_fy_S350008", "ckwy_fy_S350009"},
-    {"ckwy_fy_S350010", "ckwy_fy_S350011"},
-    {"ckwy_fy_S350012", "ckwy_fy_S350013"},
-    {"ckwy_fy_S350014", "ckwy_fy_S350015"},
-    {"ckwy_fy_S350016", "ckwy_fy_S350017"},
-    {"ckwy_fy_S350018", "ckwy_fy_S350019"},
-    {"ckwy_fy_S350020", "ckwy_fy_S350021"},
-
-    -- {"ckwy_fy_S3500002", "ckwy_fy_S3500003"},
-    -- {"ckwy_fy_S3500004", "ckwy_fy_S3500005"},
-    -- {"ckwy_fy_S3500006", "ckwy_fy_S3500007"},
-    -- {"ckwy_fy_S3500008", "ckwy_fy_S3050009"},
-    -- {"ckwy_fy_S3500010", "ckwy_fy_S3500011"},
-    -- {"ckwy_fy_S3500012", "ckwy_fy_S3500013"},
-    -- {"ckwy_fy_S3500014", "ckwy_fy_S3500015"},
-    -- {"ckwy_fy_S3500016", "ckwy_fy_S3500017"},
-    -- {"ckwy_fy_S3500018", "ckwy_fy_S3500019"},
-    -- {"ckwy_fy_S3500020", "ckwy_fy_S3500021"},
+    -- {"ckwy_fy_S350002", "ckwy_fy_S350003"},
+    -- {"ckwy_fy_S350004", "ckwy_fy_S350005"},
+    -- {"ckwy_fy_S350006", "ckwy_fy_S350007"},
+    -- {"ckwy_fy_S350008", "ckwy_fy_S350009"},
+    -- {"ckwy_fy_S350010", "ckwy_fy_S350011"},
+    -- {"ckwy_fy_S350012", "ckwy_fy_S350013"},
+    -- {"ckwy_fy_S350014", "ckwy_fy_S350015"},
+    -- {"ckwy_fy_S350016", "ckwy_fy_S350017"},
+    -- {"ckwy_fy_S350018", "ckwy_fy_S350019"},
+    -- {"ckwy_fy_S350020", "ckwy_fy_S350021"},
+    {"ckwy_fy_S350022", "ckwy_fy_S350023"},
+    {"ckwy_fy_S350024", "ckwy_fy_S350025"},
+    {"ckwy_fy_S350026", "ckwy_fy_S350027"},
+    {"ckwy_fy_S350028", "ckwy_fy_S350029"},
+    {"ckwy_fy_S350030", "ckwy_fy_S350031"},
+    {"ckwy_fy_S350032", "ckwy_fy_S350033"},
+    {"ckwy_fy_S350034", "ckwy_fy_S350035"},
+    {"ckwy_fy_S350036", "ckwy_fy_S350037"},
+    {"ckwy_fy_S350038", "ckwy_fy_S350039"},
+    {"ckwy_fy_S350040", "ckwy_fy_S350041"},
 }
 
 

+ 12 - 7
script/merge/MergeServerLogic.lua

@@ -1,15 +1,20 @@
 --合服逻辑
 
 --[=[
-    1.备份数据库, 方法见 MergeServerDefine
-    2.先执行一次start.sh, 因为重启游戏服时会根据条件删除一些数据, 这样合服时要处理的数据就少了一些
-    3.将/script 目录下 Main文件改名为其他名字, MainMerger改为Main,合服完毕后再改回来。
+    1.更新MergeServerDefine.MERGE_DB_TB中要合并的数据库,备份数据库, 方法见 MergeServerDefine
+
+    2.先执行一次start.sh, 因为重启游戏服时会根据条件删除一些数据, 这样合服时要处理的数据就少了一些。比较前面的服邮件数据可能有异常,
+        执行/server/cleanExpireMail.sh清理下异常的邮件(需要修改脚本中数据库名)
+
+    3.将游戏服bin* 的/script 目录下的启动文件Main.lua暂时改为其他名字, MainMerger改为Main.lua,合服完毕后再改回来。
+
     4.检查MergeServerDefine中的MERGE_DB_TB数据库名是否正确, 如果正确则和正常启动游戏一样启动游戏服, 开始进行合服
-    5.查看日志oss_merge, 看看是否有报错
-    6.修改mysql区服列表的 port 和 dbName, 被合服的 port 和 dbname 要改为目标服一样
-    7.修改linux上代表游戏服的bin*文件名, 防止 start.sh 启动时会把被合服也启动起来
 
-    8.需要测试下邮件和cdk
+    5.查看日志oss_merge, 是否有报错。
+
+    6.修改mysql区服列表的 port, dbName,megre_server字段, 被合服的 port 和 dbname 要改为目标服一样。 sql见sdk数据库下查询中的updateMergeServerData(需要修改数据库名)
+
+    7.修改linux上被合服的bin*文件名, 防止 start.sh 启动时会把被合服也启动起来。脚本见/server/changebinName.sh  (需要修改脚本中数据库名)
 ]=]