| 服务端的配置和安装 1、获得安装包: release-version.tar.bz2 map-version.tar.bz2 在/home/ztgame下建立以时间为名字的目录(game20050928),压缩包放入此目录,然后用tar –jxvf release-version.tar.bz2 和tar –jxvf map-version.tar.bz2解开压缩包 进入release目录,cp –rf ../map . 按照config.xml.example格式创建文件config.xml 配置文件主要定义了服务器的各种参数: [global]这段主要定义了通用参数,如服务器本地网络设备名称,扩展网络设备名称,日志级别,SuperServer的服务器地址,端口等参数。 其他各个段定义了具体的服务参数,主要是指定该服务对应的数据库,数据库的连接地址,端口,用户名,密码等数据库连接字符串。每个服务可以定义日志文件的存放位置,如果没有指定,缺省放置在/tmp/目录下面。 如SuperServer服务 mysql://test:123456@192.168.2.14:3306/SuperServer /home/test/tmp/superserver.log 上面配置指明SuperServer服务,采用连接串用户名test,密码123456,访问192.168.2.14服务器上3306端口下SuperServer数据库,日志文件存放在/home/test目录下。其他服务配置类似。 例子: debug eth0 192.168.104.109 loginServerList.xml 218.80.198.252 218.80.198.252 mysql://ztgame:yS29wahvCH@192.168.104.109:3306/SuperServer lmOf.1kySwS0a09j11xyCdI1ySujl1hnCvT0hDitT0hjzv00gzSv00gDSw91tS9fE1 --> /log/superserver.log mysql://ztgame:yS29wahvCH@192.168.104.109:3306/RecordServer /log/recordserver.log mysql://ztgame:yS29wahvCH@192.168.104.109:3306/Bill /log/billserver.log /log/clienttrade.log mysql://ztgame:yS29wahvCH@192.168.104.109:3306/RecordServer /log/sessionserver.log 3600 /log/offlineMessages scenesinfo.xml npctrade.xml messageSystem.xml initcharinfo.xml magicrangefile.xml quest/ map/ map/ /log/gm_log.log 300 /log/ /log/scenesserver.log 2 /log/gatewayserver.log scenesinfo.xml 1 forbidWords 注意存放日至的目录是否建立,以及建立session服务所要求的日志存放子目录offlineMessages。 修改loginServerList.xml,填入平台中心的FLServer服务器ip以及端口。 例子: 然后将修改好的版本传至其它9台服务器。并启动服务 六、服务器的启动,停止和更新 1、将运行脚本传至各个服务器。 2、开启游戏服务 通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过网关服务器连接其他9台服务器, 10个窗口内分别进入最新的服务端存放目录/home/ztgame/game200508**/release/ 数据库服务器 启动服务./SuperServer -d 和 ./SessionServer -d 和 ./RecordServer -d 和 ./BillServer -d 场景服务器 启动服务./ScenesServer -d 网关服务器 启动服务./GatewayServer -d 以上操作可以通过/home/ztgame/tools/allstart game200508**来启动(由于程序是后台运行,所以如发现程序运行时间过长,可以CTRL+c中断,并不影响程序的正常运行。) 3、停止游戏服务 通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allstop,中止所有服务 ,此脚本是并不是强行杀进程,所以如果发现进程无法kill的情况,用/home/ztgame/tools/allstop_9来强行杀死进程。 4、查看游戏服务 通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allview,查看所有服务运行状态。 5、更新游戏服务 通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过服务器连接其他9台服务器, 分别在/home/ztgame目录下面建立最新的服务端存放目录game200508**. 然后将服务器端安装包通过scp传到第一台网关服务器,在game200508**下解压。 tar jxvf zebra-release-***** tar jxvf zebra-release-***** cp map release/ -rf 然后从上一个版本里拷贝出一些配置文件覆盖源文件 cp /home/ztgame/game_old/release/config.xml /home/ztgame/game_new/release/ cp /home/ztgame/game_old/release/loginServerList.xml /home/ztgame/game_new/release/ cp /home/ztgame/game_old/release/messageSystem.xml /home/ztgame/game_new/release/ 以上工作准备好后就可以将网关服务器上的版本传到其他服务器 scp -r /home/ztgame/game_new/* ztgame@192.168.100.111:/home/ztgame/game_new 以上操作可以通过shell脚本来实现 /home/ztgame/tools/installPackage game_new game-old 七、服务器数据的备份 1、数据备份 为了防止意外情况的发生造成数据的丢失,关键数据或整个系统或对有选择的系统部分,在本地和异地进行定时备份,以保证系统全部或部分在灾害出现时也能持续运行。 2、具体方案 1)、数据库每日备份 每天4:00,将RecordServer数据库拷贝至/root/back后进行压缩,然后上传至192.168.1.9服务器上,/root/back留有压缩版本。 运行脚本/root/scripts/back.sh 例子: #!/bin/bash rm /root/back/RecordServer/* -rf /usr/local/mysql/bin/mysqlhotcopy RecordServer /root/back/RecordServer -u ztgame -p yS29wahvCH sleep 5 cd /root/back tar zcf `hostname`-RecordServer`date +%Y%m%d`.tar.gz RecordServer sleep 5 echo "tar ok!" /usr/local/bin/ncftpput -u gamebak -p gamebak@ztgame 218.80.198.234 / /root/back/`hostname`-RecordServer`date +%Y%m%d`.tar.gz sleep 20 echo "upload RecordServer ok!" 2)、数据库即时备份 每隔1小时,将RecordServer数据库拷贝至/root/back/hour目录进行备份,然后将压缩文件传给特定服务器。 例子: #!/bin/bash hottime=`date +%Y%m%d%H%M` mkdir /root/back/hour/RecordServer"$hottime" /usr/local/mysql/bin/mysqlhotcopy Recor dServer /root/back/hour/RecordServer"$hottime" -u ztgame -p yS29wahvCH sleep 5 cd /root/back/hour tar zcf `hostname`-RecordServer"$hottime".tar.gz RecordServer"$hottime" sleep 5 echo "tar ok!" /usr/local/bin/ncftpput -u backupdb -p backupdb 192.168.102.119 / /root/back/hour/`hostname`-RecordServer"$hottime".tar.gz sleep 20 echo "upload RecordServer ok!" rm `hostname`-RecordServer"$hottime".tar.gz -f 3)、日志备份 每天02:00,将/log/下前一天的日志,进行压缩,然后上传至192.168.1.9服务器。 运行脚本/root/scripts//upload_daily 例子: #!/bin/bash cd /log/ mkdir log`date --date '1 days ago' +%Y%m%d` mv *.log.`date --date '1 days ago' +%y%m%d`-* log`date --date '1 days ago' +%Y%m%d` sleep 10 tar zcvf `hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz log`date --date '1 days ago' +%Y%m%d` /usr/local/bin/ncftpput -u log -p log@ztgame 218.80.198.234 / /log/`hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz rm `hostname`-log`date --date '1 days ago' +%Y%m%d`.tar.gz 注:计划任务通过/etc/crontab –e来进行设置 4)、即时日志备份 直接运行/home/ztgame/tools/upload 将最新日志上传至192.168.1.9服务器,方便研发部门查看。 运行脚本/home/ztgame/tools/upload,(如果所有服务器的日志都需要上传,可以运行网关服务器上的/home/ztgame/tools/allupload) |