Replica 복제서버 만들기[1] : Master 설정
Replica 복제서버 만들기[1] : Replica 설정
개요 및 에러 발생
Master 서버에서 비대해지는 Journal의 순환을 위하여 Checkpoint를 생성할때 Replica 서버에서도 Journal 순환을 하게된다.
Master설정에서 gabriel(Replica server) server "journalPrefix=D:\PerforceServer\checkpoints\journal_backup" 설정을 참조하여 이경로에 Replica Server의 Journal을 backup 한다.
이때 Replica에서 Journal 순환시에 아래와 같은 에러가 발생 할 수 있다.
Perforce server error:
2024/01/08 15:47:00 pid 5532 service@1666 background [p4d/2021.1/NTX64/2156517] 'pull -i 1'
Startup command failed: client-Message
open for read: journal.3: 지정된 파일을 찾을 수 없습니다.
이는 Replica가 Journal 순환시에 Master서버의 백업된 Journal.N(N은 시퀀스) 파일을 참조해야하는데 이를 찾을 수 없어 발생하는 에러이다.
기본적으로 Master에 journalPrefix 가 설정되어 있지 않다면 P4ROOT에 순환된 Checkpoint, Journal 파일이 저장된다.
만약 journalPrefix 설정이 되어 있다면 설정된 경로에 파일이 저장된다.
단 P4ROOT에 저장되는 경우에는 파일이름이 checkpoint.N, Journal.N 형식이고 journalPrefix에 저장되는 경우는 <Filename>.ckp.N, <filename>.jnl.N 형식을 취한다.
> p4 -u <super id> -P <super pass> configure show
P4ROOT=C:\PerforceServer\ (set -S)
P4PORT=1666 (set -S)
P4JOURNAL=journal (set -S)
P4NAME=Perforce (services registry)
P4LOG=log (set -S)
journalPrefix=C:\PerforceServer-Backup\backup (configure)
server: 1 (P4DEBUG)
따라서 Replica는 Master의 journalPrefix 를 참조하여 설정이 없다면 P4ROOT에서 Journal.N을, 설정이 있다면 설정된 경로에 <filename>.jnl.N 을 찾는다.
에러 해결
Replica에서 위와같은 에러가 발생한다면 Master에서 P4ROOT에 Journal.3파일을 이동시키면 잠시후 Journal 순환이 완료된다.
진행은 아래와 같이 확인 할 수 있다.
> p4 -u <super id> -P <super pass> pull -l -j
Current replica journal state is: Journal 2, Sequence 547.
Current master journal state is: Journal 2, Sequence 732.
Current master journal state is: Journal 3, Sequence 739.
The statefile was last modified at: 2024/01/08 15:50:02.
The replica server time is currently: 2024/01/08 15:53:02 +0900
...
> p4 -u <super id> -P <super pass> pull -l -j
Current replica journal state is: Journal 3, Sequence 739.
Current master journal state is: Journal 3, Sequence 739.
The statefile was last modified at: 2024/01/08 15:53:53.
The replica server time is currently: 2024/01/08 15:53:53 +0900
checkpoint 생성
참고로 Master에서 Journal 은 아래와 같은 명령어로 checkpoint를 생성할 수 있으며 스케줄러를 이용하여 주기적으로 수행 할 수 있다.
이때 Perforce P4는 정지하는 것이 좋다.
p4d -jc -r <P4ROOT>
참고
command line으로 작업시 아래와 같은 오류가 나면
Unicode server permits only unicode enable clients.
아래와 같이 설정
p4 set P4CHARSET=auto
'시스템 > Perforce P4' 카테고리의 다른 글
[Perforce P4] Replica 복제 서버 만들기[2] (0) | 2023.12.12 |
---|---|
[Perforce P4] Replica 복제 서버 만들기[1] (0) | 2023.12.12 |