如果我们的服务运行一段时间后,需要增加一个从库(ttserver)来分担压力或者用于负载均衡和HA,因为是线上系统,那么就不应该停机,那么我们应该怎么对数据进行备份和拷贝,然后启动一个slave从库呢?
1.如何备份和恢复
登录到ttserver服务器,执行如下命令
]# tcrmgr copy -port 11211 localhost /data/backup.tch
localhost :ttserver主机名
/data/backup.tch 备份文件保存的路径,请注意,这里指ttserver所在机器的路径。
同样,也可以备份远程机器,
]# tcrmgr copy -port 11211 remotehost /data/backup.tch
备份文件将保存在remotehost的/data/backup.tch
接下来恢复数据就比较简单,直接替换掉原有ttserver的数据文件,启动就可以了。
这种方式适用于定期的数据备份,在出现灾难故障时可以恢复到某一个时间的数据。不适合用来增加从库时需要的数据库文件。
2.如何不停机增加从库
从库需要进行同步,那么就需要有个文件的时间版本,防止数据冲突。
首先我们建立一个一个如下的脚本文件,存为"backup.sh",并赋予执行权限(chmod 755 backup.sh)。比如存在:
/data/backup/路径下。
#! /bin/sh
srcpath="$1"
destpath="$1.$2"
rm -f "$destpath"
cp -f "$srcpath" "$destpath" 接下执行如下命令,执行的时间会根据你的磁盘性能和数据大小而定。
tcrmgr copy -port 11211 masterhost '@/data/backup/backup.sh'
materthost:主库主机名,请注意:backup.sh存放的路径是在materthost机器上。
'@/data/backup/backup.sh' :如果tcrmgr copy命令中,参数以@开始,那么后面的字符串作为命令行执行。
执行完成后,我们进入ttserver的数据目录,执行ls -lh会发现类似下面的文件名,
-rw-r--r-- 1 root root 9.2G Aug 25 14:31 casket.tch.1251181588942889
请确认产生casket.tch.xxxxx类似的文件名,xxxxx代表时间戳。
接下来在从库salve上以我们备份的文件来运行ttserver,把时间错写入到一个时间戳文件ttserver.rts。
]$ ls
]$ cp casket.tch.xxxxx casket.tch
]$ echo xxxxx >ttserver.rts
]$ mkdir ulog
]$ ttserver -mhost masterhost -mport mport -port 11211 -ulog ulog -sid 2 -rts ttserver.rts casket.tch
运行后,ttserver将会以此时间戳进行同步。
masterhost :主库主机名
mport : 主库端口号
到此我们就完成了一个salve从库ttserver的增加。
3.小结
推荐备份也使用2中用到的方式,上面带上了时间戳,可以精确的知道数据的版本时间。
另外请注意:在使用此方法进行备份的时候,ttserver会在备份过程中一直保持同步阻塞和不修改数据。所以可以保证备份出来的版本跟时间戳的一致性。
分享到:
相关推荐
C#版Tokyo Tyrant客户端 来源:cnblogs
1.1.标签 2.1.选择器 2.2.边距 3.1.sql拼写方法问题 3.1.在同一个页面同时使用两个ng-app问题
tokyo cabinet tyrant研究资料
一个小型快速数据库的安装使用及原理介绍。
NULL 博文链接:https://leadtoit.iteye.com/blog/1076241
#资源达人分享计划#
宫崎电阻描述: MiyazakiResistance是一个类似于ActiveRecord的库,可以使用Tokyo Tyrant。 宫崎县抵抗支持师傅/奴隶。 如果从服务器关闭,它将自动分离。 宫崎骏电阻支持双主控(主动/待机)。 如果活动服务器关闭...
暴君是一款图形化的类Roguelike幻想冒险游戏。 它具有错综复杂的随机生成的景观,城镇和地牢。 它是用Java编写的,具有高度可扩展的游戏引擎。
《暴君2》是一款基于mikera 的roguelike,游戏玩法将进化为Angband,游戏世界将进化为Arena:Elder Scrolls。 关键词:游戏、Java、OOP、随机世界生成、AI、RPG、角色扮演游戏。
web-tyrant改造项目xNo。1
主要功能: 服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新 服务器性能监控:GET、... 兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外) 支持服务器连接池,多服务器管理切换方便简洁
MemAdmin主要功能: 服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新 ...兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外) 支持服务器连接池,多服务器管理切换方便简洁
firefox-tu-cardlog 将 Tyrant Unleashed 卡的购买记录到中央数据库的 Firefox 插件
该项目使用 node.js 和提供服务器端调度功能,以将可用的场地空间分配给具有任意数量预定义首选项的运动队集合。 包含一个简单的 Web 应用程序用于显示结果。 要求 除了 node.js 安装之外,该程序还要求 lp_solve 可...
暴君释放优化器(SIM)
如今,越来越多的 Web 应用程序开始...而日本的 mixi(http://mixi.jp)则在这方面走在了前面,不仅大规模使用 memcached 作为缓存来加速 Web 应用,而且自行开发了 Tokyo Cabinit、Tokyo Tyrant 等一系列相关的软件。
依存关系该项目具有一个本地依赖项:Tokyo Tyrant。 我们将其用作我们的数据存储。 您必须为要在其上运行服务器的任何系统本地构建它。 有关详细信息,请参见 。 一旦有了这些,所有Rubygem依赖项都将由Ruby Bundler...
暴君用Java编写的经典图形类Roguelike游戏。 暴君(Tyrant)最早写于1997年,从那以后慢慢扩展。有趣的功能具有自定义32x32 Tileset的图形roguelike 一个非常灵活且可配置的动态对象模型
OFFICALTYRANT