MySQL线上日志库迁移优化案例 说说最近的一个案例吧,线上阿里云RDS上的一个游戏日志库最近出现了一点问题,随着游戏人数的增加,在线日志库的数据量越来越大,最新的日志库都已经到50G大小了,在线变更的时间非常长...3、日志库在迁移的过程中,能够容忍几分钟的表数据丢失,对数据的同步实时性要求不是很高 4、线上的日志库需要支持用户活跃度等统计 5、不希望执行分库分表,有很多查询近几个月的SQL操作,表之间存在一定的耦合性...3、备份并清理线上表3个月之外的数据,大概是40G,并将线上的game_log_bak数据库中3个月以内的数据(大概10G)重新灌入game_log数据库中,这样结构就变成了: ?...6、设置定时任务,按照一定的周期清理线上的过期数据,确保线上只保留最近3个月的数据,不会对rds的磁盘存储空间产生压力。...这个方法中,目前看来存在下面几个问题: 1、经常性的清理线上数据,这些数据占用的表空间不能被立即回收,可能会造成数据表的碎片问题。
前言 有了keepalived和mysql upgrade的技术作基础,可以结合两者完成无逢升级 下面分享一下我的 Best Practice Of Mysql Migration ---- 概要 --...-- 准备工作 下面步骤最好作为准备工作,提前完成,这样可以更有效进行切换,和减少窗口期 挂载NFS 安装软件包的收集(mysql,xtrabackup,keepalived) 安装keepalived
服务重构,老版系统为php代码,新版系统改为Java。 数据层面沿用之前老版服务的数据库结构,部分库字段进行修改。
是否为MySQL线上库的备份而烦恼过,这里提供一个完整的备份从属数据库的备份方案,亲测可用。...DB_NAME + '_' + Date_Time + '.sql' # 数据库备份名称 Logs_File = Backup_Dir + '/logs' # 指定备份时日志输出的文件 Mysql_Bin...= "/usr/bin/mysql" # 指定[mysql]命令所在路径 MysqlDump_Bin = "/usr/bin/mysqldump" # 指定[mysqldump]命令所在路径...backup 0 6 * * * root python /scripts/mysql_slave_backup.py 0 12 * * * root python.../scripts/mysql_slave_backup.py 0 18 * * * root python /scripts/mysql_slave_backup.py 3、rsync配置
myisam_recover_options [testuser@slave01 etc]$ innodb_additional_mem_pool_size 也已经被弃用了,如果有要注释掉 ---- 将zabbit加入mysql...组以方便监控 [root@new-master mysql]# vim /etc/group [root@new-master mysql]# id zabbix uid=496(zabbix) gid...=493(zabbix) groups=493(zabbix),492(mysql) [root@new-master mysql]# /etc/init.d/zabbix-agent restart...]# ---------- [root@zabbix-server ~]# zabbix_get -s new-master -p 10050 -k "mysql.slowlog[100,/var/lib.../mysql/new-master-slow.log]" 2.98465 [root@zabbix-server ~]#
修改zabbix统计数据过期时间 [root@new-master mysql]# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh...[root@new-master mysql]# grep 120 /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh if...[ `expr $TIMENOW - $TIMEFLM` -gt 120 ]; then [root@new-master mysql]# 修改之前是300,也就是5分钟,这个监控粒度太粗,所以改为...-4.013-3.el6.x86_64 has missing requires of libmysqlclient.so.16()(64bit) perl-DBD-MySQL-4.013-3.el6....x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit) php-mysql-5.3.3-40.el6_
新版master上安装并启动keepalived 安装并启动keepalived [root@new-master ~]# yum -y install ke...
[root@slave01 data]# cd /var/lib/mysql/ [root@slave01 mysql]# ls livedb slave01-relay-bin.000308...javadb ijavadb mysql-bin.000154 mysql-bin.000159 relay-log.info backup-my.cnf slave01-relay-bin....000309 ibdata1 wavedb mysql-bin.000155 mysql-bin.000160 functiondb mysqltest_his slave01...-relay-bin.index ib_logfile0 master.info mysql-bin.000156 mysql-bin.index test mysqltestt_db...ib_logfile2 mysql mysql-bin.000158 keydb [root@slave01 mysql]# rm -rf * [root@slave01 mysql
innobackupex: Backup created in directory '/data/nfs/test_full_backup/2015-12-09_00-53-03' innobackupex: MySQL...binlog position: filename 'mysql-bin.000004', position 8299670 151209 02:06:09 innobackupex: Connection
]# chown -R mysql.mysql /var/lib/mysql/ [root@slave02 mysql]# ll total 5916780 drwx------ 2 mysql mysql...---- 2 mysql mysql 36864 Dec 9 03:57 mysqltestt_db drwx------ 2 mysql mysql 4096 Dec 9 03...drwx------ 2 mysql mysql 4096 Dec 9 02:52 ijavadb drwx------ 2 mysql mysql 12288 Dec 9...4096 Dec 9 02:45 mysql drwx------ 2 mysql mysql 4096 Dec 9 02:49 testdb drwx------ 2 mysql mysql...mysql mysql 20480 Dec 9 03:08 /data/mysql/ [root@slave02 mysql]#
要确保mysql 数据库的 datadir是清空的,否则会报错 [root@slave02 data]# cat restore.log nohup: ignoring input Warning:.../usr/bin/innobackupex version 2.3.2 based on MySQL server 5.6.24 Linux (x86_64) (revision id: 306a2e0...) Original data directory /var/lib/mysql is not empty!...) Original data directory /var/lib/mysql is not empty!...开头的文件 如: .bash_history .lesshst .mysql_history .viminfo 要指明删,如 rm -rf .bash_history .lesshst .mysql_history
更新slave mysql版本 [root@slave02 src]# rpm -e Percona-Server-client-51-5.1.73-rel14.11.603.rhel6.x86_64...rhel6.x86_64 Percona-Server-shared-51-5.1.73-rel14.11.603.rhel6.x86_64 error: Failed dependencies: mysql...-4.013-3.el6.x86_64 libmysqlclient.so.16()(64bit) is needed by (installed) php-mysql-5.3.3-40.el6_6....-4.013-3.el6.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) php-mysql...SONAME 'libfnv1a_udf.so'" mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'" mysql
启动mysql并且开启同步 [root@slave02 mysql]# mysql -u root -p Enter password: Welcome to the MySQL monitor....Your MySQL connection id is 1 Server version: 5.6.27-75.0-log Percona Server (GPL), Release 75.0, Revision...mysql> show slave status\G Empty set (0.00 sec) mysql> CHANGE MASTER TO MASTER_HOST='192.168.66.100'...=8299670; Query OK, 0 rows affected, 2 warnings (0.01 sec) mysql> show slave status\G **************...hostname slave02 mysql>
/tmp/old /tmp/new id zabbix /etc/init.d/zabbix-agent restart zabbix_get -s new-master -p 10050 -k "mysql.slowlog...[100,/var/lib/mysql/new-master-slow.log]" vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh...grep 120 /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh yum install libev rpm -e xtrabackup...test_full_backup/2015-12-09_00-53-03/ >> restore.log 2>&1 & tail -f restore.log watch -n 2 du -sh /data/mysql.../ cat xtrabackup_binlog_pos_innodb chown -R mysql.mysql /var/lib/mysql/ 原文地址
启动mysql并且开启同步 [root@slave02 mysql]# mysql -u root -p Enter password: Welcome to the MySQL monitor....Your MySQL connection id is 1 Server version: 5.6.27-75.0-log Percona Server (GPL), Release 75.0, Revision...mysql> show slave status\G Empty set (0.00 sec) mysql> CHANGE MASTER TO MASTER_HOST='192.168.66.100'...[100,/var/lib/mysql/new-master-slow.log]" vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh.../ cat xtrabackup_binlog_pos_innodb chown -R mysql.mysql /var/lib/mysql/ 原文地址
领取专属 10元无门槛券
手把手带您无忧上云