Tokyo Tyrant备份和恢复

Tokyo Tyrant备份和恢复


备份

1. 全量热备份

备份命令为:

tcrmgr copy -port 1978 localhost dpath.tch.xxxxx

(其中xxxxx为备份时间)

根据业务需求及数据库运行状态决定备份的频度,全量热备时数据库库会写锁定,读不受影响。全量备份需记录备份时间点以提供replication恢复时所用,时间记录点精确的微秒,可记录到备份文件名中,如backup.tch.1259474040630024。

示例备份脚本:

[ -n "$1" ] || { echo "input port number"; exit; }
[ -n "$2" ] || { echo "input backup dir"; exit; }
backup_date=`date +%s%N`
backup_date=`expr $backup_date / 1000`
tcrmgr copy -port ${1} localhost ${2}/backup_${1}.tch.${backup_date}
echo "back up finish! ${2}/backup_${1}.tch.${backup_date}"

2. 增量备份ulog

ttserver产生的ulog在"$basedir/ulog"目录,设置了ulimsiz后会按文件尺寸进行切割并按数据升序命名,可以根据备份的频度,按ulog文件最后修改时间,备份到ulog最大命名数字的前一个文件,同时也需记录备份时间,可将时间记录在打包备份的文件名中,如backup_ulog.1259474040630024.tar.gz, 和全量备份一样,精确到微秒。

注意:全量备份速度和服务器情况有关,基本接近直接copy速度。

恢复


1. 使用replication恢复

根据备份方案中数据库全量备份方法得到的备份库,如backup.tch.xxxxxx,

echo xxxxxx > "$basedir/rts" 写入备份时间点,即恢复时间点。

cp backup.tch.xxxxx database_name.tch

启动:

./ttservctl start

恢复的库会根据时间点去master库同步数据。

2. 使用日志增量恢复

先使用前一个全量备份的数据库文件作为基数据库,下线要整理的ttserver。

清空原来的日志,然后解压,再cp 备份的ulog文件 $basedir/ulog/,

echo xxxxxx > "$basedir/rts" 写入备份时间点(压缩文件名中包含),即恢复时间点。

单独启动ttserver : ttserver database_name.tch

从日志恢复:tcrmgr restore -port port -rcc localhost ulog

ctrl+c停掉ttserver,然后使用 ./ttservctl start 启动,master结构重新建立。

注意:日志增量恢复环节应避免受其他ttserver的服务器影响,如可以使用一个不使用的端口进行恢复,这样数据也不会影响到其他服务器,恢复后再用原来的启动脚本启动,形成原来的dual master结构。

备注

基于dual master的结构具有较高的可靠性,dual master其实就是实时的热备方案,所以在备份频度和广度上是否可以适当宽松一些?建议每天备份全量即可,增量的日志一直留在服务器上,但是日志的分割尺寸要根据业务和恢复的粒度来确定。

时间: 2024-10-10 13:36:41

Tokyo Tyrant备份和恢复的相关文章

Tokyo Tyrant(TTServer)系列(二)-启动参数和配置

启动参数介绍 ttserver命令可以启动一个数据库实例.因为数据库已经实现了Tokyo Cabinet的抽象API,所以可以在启动的时候指定数据库的配置类型. 支持的数据库类型有: 内存hash数据库 内存tree数据库 hash数据库 B+ tree数据库, 命令通过下面的格式来使用,'dbname'制定数据库名,如果省略,则被视作内存hash数据库. ttserver [-host name] [-port num] [-thnum num] [-tout num] [-dmn] [-pi

Tokyo Tyrant管理工具tcrmgr使用介绍

Tokyo Tyrant管理工具tcrmgr使用介绍 [[email protected] tokyotyrant]# tcrmgr tcrmgr: the command line utility of the remote database API   usage: tcrmgr inform [-port num] [-st] host tcrmgr put [-port num] [-sx] [-sep chr] [-dk|-dc|-dai|-dad] [-ds num] host ke

Tokyo Tyrant(TTServer)系列(六)-数据丢失谁的错

前面的一些文章讲到了memcache以及TT,memcache内存数据库很好理解,数据存储在内存中,重启服务器或者重启memcahce进程,数据是会丢失的.那么我们也提到过TTServer数据是持久存储的,它的数据真是绝对安全吗? 下面我们来具体测试一下,在测试服务器启动两个ttserver,不记录日志. 1 2 ttserver -port 1978 -dmn -pid /data/ttserver/test1/pid /data/ttserver/test1/casket.tch ttser

MySQL优化之——备份和恢复

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46766919 备份 逻辑备份方法 使用MYSQLDUMP命令备份 MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具.mysqldump命令执行时将数据库备份成一个文本文件,该文件中实际上包含了多个CREATE 和INSERT语句,使用这些语句可以重新创建表和插入数据 MYSQLDUMP的语法和选项 mysqldump -u user -p pwd -h host

备份和恢复数据库

查看实例编号,名称和日志模式:SYS AS [email protected]>select dbid,name,log_mode from v$database; DBID NAME      LOG_MODE---------- --------- ------------1391294860 ORCL      ARCHIVELOG 1 row selected. RMAN:    登录:    [[email protected] ~]$ rman    RMAN> CONNECT T

Linux系统中备份和恢复MongoDB数据的教程

版本:mongodb3.2.6 备份格式: /data/mongodb/bin/mongodump -h IP --port 端口号 -u 用户 -p 密码-d 数据库名-o 存储路径 恢复格式: /mnt/mongodb/bin/mongorestore -h IP --port 端口号 -u 用户名-p密码  -d 数据库名 备份的文件夹名/* 注意,如果mongodb开启了认证登录,那么需要加参数--authenticationDatabase=admin, 因为笔者使用的mongodb开

Mysql备份和恢复

Mysql备份和恢复 备份 热备,是指对数据库运行中直接进行备份,对正在运行的数据库没有任何影响: 冷备,是指在数据库停止(关闭)下进行备份,只需拷贝相关的数据物理文件: 温备,是指对数据库运行中直接进行备份,但对当前数据库操作有所影响,很少用. 按备份出来的文件内容分为: 逻辑备份: 裸文件备份. 逻辑备份后文件内容是可读的,通常是文本文件,内容一般是Sql语句或表内的实际数据,如mysqldump或select * into outfile等方法.适用于数据库的升级.迁移,恢复时间较长. 裸

从SQL Server中清除msdb备份和恢复记录

正如我在前面的技巧“您的数据库上次恢复是什么时候呢?”中提到的,SQL Server使msdb数据库内系统表中的备份和恢复记录保持激活状态.没有正常的维护,这些系统表将变得很大,从而导致对于msdb数据库整体超大. 这些msdb表包括:       backupfile backupfilegroup backupmediafamily backupmediaset backupset restorefile restorefilegroup restorehistory 幸运的是,微软提供了两

[MySQL Reference Manual] 7 备份和恢复

7. 备份和恢复 本章主要会介绍: 1.备份的类型:逻辑备份,物理备份,全备和增量4种 2.创建备份的方法 3.还原方法,包括还原到时间点 4.备份计划,压缩和加密 5.表维护,恢复损坏的表 7. 备份和恢复... 1 7.1备份和还原类型... 1 7.1.1 物理备份VS逻辑备份... 1 7.1.2 Online VS OFFLINE. 1 7.1.3 本地VS远程... 1 7.1.4 快照备份... 1 7.1.5 全备VS增量备份... 1 7.1.6 完全恢复VS时间点(增量)恢复