2012-07-31 19 views
6

Debian makinesinde bir Master-Slave eşitlemesi kurmaya çalıştım. Çoğaltma için Redis 'temp dosyasının yeri?

[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 

siz bana :) yardımcı olabilir Umut/= Hep Günlüklerimde o hatayı alıyorum ve ben geçici dosya olması gereken yerde bilemiyorum

Aslında

cevap

7

Büyük olasılıkla redis-server işlemini çalıştıran kullanıcının çalışma dizinine erişimi yoktur. Kontrol

senin redis.conf (/etc/redis.conf çoğu durumda) ve dizin redis-server çalıştıran kullanıcı tarafından yazılabilir olduğundan emin olun (bunu ve bunun için dokümanlar bulmak için "çalışma dizininde" için arama) dir ayarı bulmak.

+0

Eski bir ileti olduğunu biliyorum ama benim için sorun, geçici dizin yolu tanımlandı (redis-3.0.1) sentinel.conf dosyasındaydı. – mcorbe

6

Pilot'da tarafından oluşturulan dosya SYNC zamanı, diğer rdb dosyalarından aynı konumda yazılmış normal bir anlık görüntü dosyasıdır (örn. Rdb dosyası).

Bu konum ana örneğin Redis yapılandırma dosyasında ayarlanır - dir ve dbfilename parametrelerine bakın. Örneğin /data/redis/dump.rdb Tabii

# 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 

dökümlerini oluşturmak için için

, Redis için başlatılan kullanıcı bu konuma uygun erişim haklarına sahip olmalıdır.

Şimdi, köle tarafında, ustadan okunan döküm dosyası ismi (bir zaman damgası ve pid dahil) TEMP% d.% Ld.rdb gibi bir şey geçici bir dosyaya içine kopyalanır. Dosya, çalışma örneğinde, slave örneğinin yapılandırmasında dir parametresine karşılık gelen şekilde oluşturulur. Dolayısıyla, RDB slave tarafında aktif olmasa bile, dir parametresi doğru şekilde ayarlanmalı ve uygun erişim haklarına sahip bir dizine işaret etmelidir.