2012-07-31 4 views
6

데비안 머신에서 마스터 - 슬레이브 동기화를 설정하려고했습니다. 복제를위한 Redis의 임시 파일 위치?

[9559] 31 Jul 11:48:17 * Connecting to MASTER... 
[9559] 31 Jul 11:48:17 * MASTER <-> SLAVE sync started 
[9559] 31 Jul 11:48:17 * Non blocking connect for SYNC fired the event. 
[9559] 31 Jul 11:48:22 # Opening the temp file needed for MASTER <-> SLAVE synchronization: Permission denied 

너희들이 나를 :) 도움이 될 수 있습니다 희망/= 난 항상 내 로그에이 오류가 나는 임시 파일이 있어야 할 곳에 알아낼 수 없습니다

사실

답변

7

대부분 redis-server 프로세스를 실행하는 사용자는 작업 디렉토리에 액세스 할 수 없습니다. 확인

당신의 redis.conf (/etc/redis.conf 대부분의 경우) 및 디렉토리 redis-server를 실행하는 사용자가 쓸 수 있는지 확인, (그과에 대한 문서를 찾기 위해 "작업 디렉토리"를 검색)을 dir 설정을 찾을 수 있습니다.

+0

나는 오래된 메시지라는 것을 알고 있지만 나를 위해 sentinel.conf에 임시 디렉토리 경로가 정의되어 있다는 문제가있었습니다 (redis-3.0.1) – mcorbe

6

마스터에 의해 생성 된 파일 SYNC 시간은 다른 rdb 파일과 같은 위치에 작성된 일반적인 스냅 샷 파일 (즉, rdb 파일)입니다.

이 위치는 마스터 인스턴스의 Redis 구성 파일에 설정됩니다. dir 및 dbfilename 매개 변수를 참조하십시오. 인스턴스가 /data/redis/dump.rdb 물론

# The filename where to dump the DB 
dbfilename dump.rdb 

# The working directory. 
# 
# The DB will be written inside this directory, with the filename specified 
# above using the 'dbfilename' configuration directive. 
# 
# Also the Append Only File will be created inside this directory. 
# 
# Note that you must specify a directory here, not a file name. 
dir /data/redis 

에서 덤프를 생성 할 수

, 레디 스가 시작됩니다 사용자는이 위치에 적절한 액세스 권한이 있어야합니다.

이제 슬레이브 측에서 마스터에서 읽은 덤프 파일이 temp- % d. % ld.rdb (타임 스탬프와 pid 포함)와 같은 임시 파일에 복사됩니다. 이 파일은 작업 디렉토리에 작성되며, 슬레이브 인스턴스 구성의 dir 매개 변수에 해당합니다. 따라서 RDB가 슬레이브 측에서 활성화되지 않은 경우에도 dir 매개 변수를 올바르게 설정하고 적절한 액세스 권한이있는 디렉토리를 가리켜 야합니다.