如果我们的服务运行一段时间后,需要增加一个从库(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客户端,开发者可以在.NET环境中轻松地构建与Tokyo Tyrant数据库交互的应用程序,满足高速读写、低延迟和高可扩展性的需求。同时,了解NoSQL数据库的特性和Tokyo Tyrant的使用,...
例如,Memcached适合简单的键值对存储,MongoDB适合处理复杂的文档结构,Redis适用于需要高速读写和多数据结构操作的场景,而Tokyo Tyrant则提供了一个轻量级的解决方案。 在学习和使用过程中,可能会涉及到的知识...
4. 易于备份和恢复:通过简单的文件复制即可完成数据库的备份和恢复。 Tokyo Cabinet 和 Tokyo Tyrant 的组合在某些特定场景下,如日志分析、高速缓存、分布式存储等,表现出了优秀的性能和可靠性。它们的使用需要...
Tokyo Tyrant的高可用性和可靠性通过热备份、更新日志记录和复制技术得到保障。 在智能电网数据采集系统的数据处理子系统中,还采用了SOA(Service-Oriented Architecture,面向服务的体系结构)框架和J2EE(Java 2...
1.1.标签 2.1.选择器 2.2.边距 3.1.sql拼写方法问题 3.1.在同一个页面同时使用两个ng-app问题
Tokyo Tyrant-1.1.33是该数据库系统的一个版本,可能包含了性能优化、bug修复以及新特性的引入。升级或安装这个版本时,用户需要注意兼容性问题,确保与现有应用程序的无缝对接。在深入研究Tokyo Tyrant的内部实现时...
总结来说,Tokyo Cabinet和Tokyo Tyrant是针对高并发和大数据量需求的Key-Value数据库解决方案,通过调整参数如MMAP内存大小和bucket数组数量,可以在保持高效性能的同时,适应不断增长的数据规模。对于寻求优化...
从给出的信息来看,它可能是Tokyo Tyrant的一个特定版本,因为压缩包中的文件名为"tokyotyrant-1.1.41"。Tokyo Tyrant是一个轻量级、高性能的键值存储系统,常用于数据缓存和快速查找应用。 Tokyo Tyrant主要知识点...
5. **备份与恢复**:Tokyo Tyrant提供数据备份和恢复机制,保证数据的安全性。 标签 "源码 工具" 暗示了Tokyo Cabinet和Tokyo Tyrant都是开源软件,并且它们通常被用作开发工具,用于构建其他应用的数据存储层。...
宫崎电阻描述: MiyazakiResistance是一个类似于ActiveRecord的库,可以使用Tokyo Tyrant。 宫崎县抵抗支持师傅/奴隶。 如果从服务器关闭,它将自动分离。 宫崎骏电阻支持双主控(主动/待机)。 如果活动服务器关闭...
4. 数据备份与恢复:Tokyo Cabinet 的文件格式支持直接复制备份,Tokyo Tyrant 可以方便地进行数据迁移或恢复。 5. 高可用性:Tokyo Tyrant 可以通过集群部署实现高可用性和负载均衡,确保服务的连续性。 在实际...
暴君是一款图形化的类Roguelike幻想冒险游戏。 它具有错综复杂的随机生成的景观,城镇和地牢。 它是用Java编写的,具有高度可扩展的游戏引擎。
Tokyo Cabinet具有高性能和多种存储引擎选择,Tokyo Tyrant则通过热备份、update log和异步复制提高可用性,并允许通过Lua脚本进行原子性操作。 3. MongoDB:MongoDB是一个面向文档的数据库,支持无固定规格的JSON...
从名字来看,我们可以推测这可能是一个与异步操作相关的库,特别是与TNT(可能是Tokyo Tyrant或类似的数据库服务)的交互。Tokyo Tyrant是一个键值存储系统,常用于数据缓存和轻量级数据库操作。`asynctnt` 库可能...
- **Tokyo Tyrant (TT)**:TC的网络版本,提供了远程访问和高并发读写的能力,支持Memcached协议和HTTP协议,适用于网络分布式的应用场景。 #### 2. MongoDB - MongoDB是一种文档型数据库,以其灵活性和强大的查询...
其中,键值存储数据库如Tokyo Cabinet/Tokyo Tyrant,以极高的读写速度著称,适合高速缓存和实时数据处理;文档数据库如MongoDB,以JSON文档形式存储数据,便于数据的检索和管理;列族存储数据库如HBase,适用于大...
【web-tyrant:改造项目x】 在当前的数字化时代,Web开发扮演着至关...通过对"web-tyrant-master"压缩包的深入研究,我们可以发现具体的代码实现、配置文件和可能的示例,从而更深入地了解这个改造项目的目标和策略。
同时,它还提供了数据备份和恢复功能,通过日志文件可以进行故障恢复,保证数据的安全性。 8. 使用场景: Tokyo Cabinet常用于日志记录、缓存系统、配置文件存储、搜索引擎索引等。它在数据挖掘、大数据分析等领域...