Perforce服务器的备份还原

备份:

Perforce服务器的备份分两个部分:一个是数据库的备份,一个是源文件的备份。数据库的备份简单的说就是创建一个checkpoint然后备份 checkpoint文件。源文件的备份就更简单了,用你喜欢的任何方式做一个Perforce代码库(depot)的备份。

1、备份数据库

p4 admin checkpoint -z (或者p4d -r $P4ROOT -z -jc)

这两个命令作用相同,就是把数据库里的全部信息导出来并生成一个checkpoint文件和一个jounal文件:checkpoint.nnn.gz和journal.n.gz

cp checkpoint.nnn.gz /backup/location/checkpoint.nnn.gz
cp journal.nnn.gz /backup/location/journal.nnn.gz

2、备份源文件

找到源库的文件夹。默认位置是$P4ROOT(所有db.*文件所在处)下的源库名。比如说如果你有一个depot叫projectA,

tar czvf projectA.tar.gz $P4ROOT/projectA
...
cp projectA.tar.gz /backup/location

 

还原:

恢复的过程分不同的情况:
1、数据库损坏但源文件没有受影响。
2、数据库和源文件都损坏了。

一、如果只是数据库损坏,你只需要恢复数据库。步骤如下:
1) 暂停Perforce服务器。

    p4 admin stop

2) 将所有数据库文件(db.*)改名或移动到另一个文件夹(最好不要直接删除)。

    mv $P4ROOT/db.* /somewhere/safe

3) 运行p4d从最新的checkpoint和journal文件恢复数据库。

    p4d -r $P4ROOT -jr checkpoint_file journal_file

注意如果checkpoint和journal是压缩文件的话,需要加上-z标志。

    p4d -r $P4ROOT -z -jr checkpoint_file journal_file

到这里数据库就应该恢复好了,你可以重新启动Perforce服务器检查恢复是否成功。

二、数据库和源文件都损坏了。
1) 如上恢复数据库,但是不需要使用journal文件,因为你需要从备份中恢复源文件,当前的日志文件包含的信息不再适用。

2) 恢复源文件。从备份中拷贝(如果压缩过的话先解压)源文件到Perforce库文件应在的位置,比如$P4ROOT.

任何恢复完成后都应该确定所有版本文件没有问题,运行:

    p4 verify -q //...
posted @ 2011-05-19 12:14  Byrd  阅读(872)  评论(0编辑  收藏  举报