多语言展示
当前在线:653今日阅读:23今日分享:25

memcachedb如何备份恢复?memcachedb如何启动

不同于memcached,memcachedb是作为持久性保存的数据库设计的的key value型数据库,虽然不象传统关系型数据库那么强大,但麻雀虽小,五脏俱全,基本的功能还是该有都有。
工具/原料
1

telnet客户端

2

1.2.0已安装

方法/步骤
1

memcahcedb从2009年起就没有作版本更新了,所以不用担心本文的操作不适用于自己的版本; 假设服务端已经安装完成,用whereis  memcachedb命令来查找安装执行的目录

2

memcachedb由于设计成轻型系统,所以启动很灵活,最简单的启动就是memcachedb   -u username  -d,其中-u表示以后面跟的user权限执行,-d表示后台执行。

3

当然在绝大多数生产环境这样的启动太简单,比如数据文件往往是和程序安装文件分离的,那么启动时用-H <目录名>来指定数据文件目录,另外为提高安全,往往会将程序启动在非缺省端口,以 -p <端口名>表示。

4

最重要的一点,缺省启动并不输出日志,需要手动增加启动参数-v输出日志,这时的日志是输出到终端屏,在系统调试时特别重要,用-vv可显示更详细的日志,调试结束后,正常启动可使用重定向符>> <文件名>来输出日志到文件。

5

memcachedb和关系型数据库一样,也是目录下也是分为数据文件和日志文件,一般情况下的异常,正常启动数据库后,系统可以通过数据文件和日志的对比,自动恢复数据库。

6

由上可知memcachedb也有一致性的持性,只要保存有建库以来的所有日志文件,即便数据文件不存在,也是可以进行恢复,命令为db_recover  -cf -h /data/memcachedb。

7

db_recover是安装memcachedb时安装的工具,也可以通过whereis来查找命令,-h后面直接跟日志所在的目标,-c代表的是灾难型恢复,命令的最后也可以增加 -v输出日志。

8

上面的方法虽然简单,但如果数据量比较大,保存自建库以来的日志实际也是不可能的,所以还是定期的备份,使用db_hotbackup -h

来在线备份数据库文件。

9

用文件拷贝而不用上述那些工具也是可以作库的备份的,但小编发现,在恢复方面要比关系型数据库要弱,所以在编写角本时一定要打包备份数据文件,再备份日志。

10

所以注意无论用哪种办法,必须拥有备份以后的所有日志,或者日志文件中的SCN要比数据文件新,这样才是可恢复的,不然一定会因为SCN不一致而地恢复成功。

11

因此定期日志文件是件需要慎重的工作,缺省系统提供了db_archive -d -h

命令来定期清理日志文件,依据是数据是否被刷进数据文件,之前的所有日志都会被删除。

12

这种清理方案可能导致需要作灾难恢复时无法恢复数据库,因此小编不建议用这样的方案进行清除,或者进行清理前需要用copy命令将日志归档到离线目标才是最安全的。

注意事项

memcache是个缓存系统,一字之差,千差万别,别搞混了

推荐信息