Perforce的备份恢复机制和策略

Perforce实施备份介绍

 

创建方法:在Perforce服务器,使用-jc标志创建。


P4d–r root –jc默认保存为Perforce程序根目录下checkpoint.n文件和journal.n-1到同时使journal开始重新记录历史数据。

上一次的checkpint.n和这次的journal。是本次创建checkpoint数据库的当前所有信息。例如:你可以使数据恢复到checkpoint.6创建的时候,用checkpint.5和变更记录journal.5。也可以理解为checkpoint5+journal.5 = checkpoint.6。

使checkpoint和journal保存在特定文件夹下或是使用文件前缀。也是使用-jc 选项。例如:p4d –jc prefix ,将保存checkpoint为prefix.ckp.n 和prefix.jnl.n.如果没有前缀,将默认保存为checkpoint.n & journal.n 。

使用p4 admincheckpoint [z] [prefix]来实现在不登录服务器的情况下实现备份。此时你必须是一个超级管理员。

在恢复的时候,checkpoint至少和当前depot中的源程序文件一样老。两者之间的时间差,越小越好。当然程序文件可以比checkpoint文件新。


Journal files


就是服务器中所有的数据库变更集log文件,(开始时间是上次备份),journal files是两个checkpoint之间的纽带。
确定在创建一个checkpoint在开启journnaling,

打开Journaling后:马上使用p4d –jc 和p4d –J journalfile。Journal的名字和存档地址可以更改。
注意:如果创建了journal文件用-Jfilename flag ,请确定,序列checkpoints 使用相同的名字,不然journaling是不会正确命名的。

关闭Journaling,设置P4JOURNAL 为off,在不使用-J flag 的情况下,执行p4d命令。


Versioned files:

 

源程序文件存放在服务器的更目录下,是存放为RCS根式,使用filename.v.只有一个RCS-format file 每个文本文件,

在checkpointing操作后:
为了保证versioned文件反应了数据库的所有信息。那些源程序文件必须重新保存,


备份过程:

1,确定server上的文件完整,增加MD5 数据和文件长度信息,到一个新的文件里。

P4 verify //…

使用p4 verify –q 可以保证只有在错误的信息的时候输出。

2,运行 p4d –jc 或者 p4 admincheckpoint

3,在备份的时候,会将数据库上锁。最好在备份的时候停止服务器。

4,停止、启动服务器命令:

Netstart perforceNetstop perforce/P4 admin stop

5,保证在checkpoint成功创建后,再备份源程序文件,

6,如果checkpoint被成功创建后,

7,你不需要备份db.*,你最新的checkpoint和journal、源程序包含了所有用来恢复的信息。


恢复过程:

数据路损坏,源程序文件没有影响:

1.1   准备最近一次备份的checkpoint文件,

1.2   准备当前的journal文件,

1.3   停止当前perforce的运行,p4d admin stop

1.4   重命名或者移走db.*文件。

1.5   调用有p4d –jr 命令,确定最近一次的checkpoint 和当前的journal,如果你想指定Server root,就使用-r $P4ROOT 参数。例如:

P4d –r $P4ROOT –jr checkpoint_file journal_file


数据库文件和源程序文件都损坏:

2.1    必须保证VersiondFiles源程序不能比checkpoint更老。

2.2    最近一次备份的checkpoint文件,你的versioned文件,存放在P4Root目录下,

2.3    停止服务,p4 admin stop

2.4    重命名或者移走db.*文件,

2.5    使用-jr 参数调用p4d,例如:P4d–r $P4ROOT –jr checkpoint_file

2.6    恢复数据文件,将数据文件放到原来位置即可。

2.7    数据恢复后验证数据的完整性。


使用命令:p4verify –q //…

posted @ 2011-05-19 11:33  Byrd  阅读(1067)  评论(0编辑  收藏  举报