游戏日志DB迁移总结-db文件

上周,游戏logdb磁盘空间不足,检查发现没有配置innodb_file_per_table=1,数据库空间无法收缩,从A1到A1或A1到A5采用那种方式比较合适呢?

感谢大家关注本头条号,每天分享高质量的游戏开发经验,游戏运营经验和从零到一完整开发一款产品

方法一:数据文件迁移

  • 安装好新MYSQL

  • 停掉原DB

  • 拷贝原DB的/data/mysqldata/innodb/data目录到新机器覆盖

scp -r /data/mysqldata/innodb/data mysql@***.17.142.100#36000:/data/mysqldata/innodb

scp -r /data/mysqldata/innodb/log mysql@***.17.142.100#36000:/data/mysqldata/innodb

scp -r /data/mysqldata/relay-log mysql@172.17.142.100#36000:/data/mysqldata

  • 拷贝原DB的/data/mysqldata/data到新机器覆盖

scp -r /data/mysqldata/data mysql@***.17.142.100#36000:/data/mysqldata

  • 修改目标机器的innodb_data_file_path参数与原机器一致

  • 重新启动新MYSQL

  • 修改mysql.user,db表的host

  • 测试

如果不同IDC,ibdata文件很大,可结合挂载NFS方式做传输。

方法二:远程mysqldump

(5.1的参数)

/usr/local/mysql/bin/mysqldump -uxxxxx -pxxxxx -h22.222.22.222 --skip-opt --create-option --single-transaction -q --no-autocommit -R --default-character-set=latin1 -B DB1 DB2 > /data/dbbak/logdb_118.sql

不同IDC不建议。

方法三:通过挂载NFS做备份恢复的方式迁移LOGDB

目的:10.221.111.111 -> 10.22.11.112(保留原有权限)

(Client) (Server)

  • Suse配置NFS

a.起NFS Server进程(如果原来已经起来了,这步忽略)

/sbin/portmap

/etc/init.d/nfsserver start

b.修改server配置文件/etc/exports

这里添加server提供的服务列表,格式是:

本地共享目录 授权可以mount的IP(mount参数)

比如添加一条信息是:

/data/dbbak/logdb118 10.111.111.111(rw,no_root_squash)

表示本地的/data/dbbak/logdb118目录可以供10.132.70.72进行mount使用,参数含义可以参考一下相关资料,一般按照上面的例子设置就可以了。

c.刷新配置信息

执行语句exportfs –rv

d.客户端操作

一般情况下,客户端上也要起portmap进程才能正常mount相应的nfs文件系统,但是由于portmap会起一个111绑定所有IP的端口,所以如果没有iptables限制的情况下,要在迅速mount,并在mount之后立即kill掉此进程。

比如,需要mount服务器10.2.2.222这台nfsserver的/data/dbbak/logdb118文件系统到本地的/data/nfs目录,可以执行如下操作:

/sbin/portmap

mount 10.2.2.222:/data/dbbak/logdb118 /data/nfs

  • Client执行/data/dbbak/dumplogdb.sh

(调用mysqldump导出脚本到挂载的/data/nfs目录)

  • 检查mysqldump状态

Client:ps -ef|grep mysql 检查导出进程

Server: 在 /data/dbbak/logdb118 目录ls -lh查看文件大小

  • Server执行/data/dbbak/logdb118/import.sh

(调用mysql导入)

  • 检查导入状态

Server: ps -ef|grep mysql 检查导入进程

df -lh 并关注磁盘空间

  • 卸载NFS

Client: umount /data/nfs

Server: 修改/etc/exports中配置,刷新exportfs -rv

至此迁移完了,游戏稳定运行


最近又开始优化游戏了,

主要修改如下

金币流入流出统计

一、注册:

1、一般注册

2、快速注册

3、qq注册

二、商城

1、元宝购买金币

2、购买记牌器

三、任务

1、每日任务

2、新手任务

3、定时任务

4、宝箱

四、红包

1、玩家发放红包,系统收税

2、玩家领取红包

3、系统发放红包

五、统计游戏服务器产生的金币

1、万人炸金花系统庄家结算

2、百人牛牛系统庄家结算

3、万人水果机注水(现在不注水了)

六、统计机器人自动添加的金币数量

1、机器人自动添加的金币存储在redis中,key:statistics:robot_add_coin:20171101

七、活动赠送

1、特价金币

2、幸运大礼包

八、统计万人场庄家输赢流入金币

1、万人炸金花

2、百人牛牛

后面我会详细介绍优化细节,也请各位同学指教

游戏日志DB迁移总结

游戏日志DB迁移总结

推荐阅读