UniFi Veritabanı Sorunlarını
UniFi Ağ Uygulamasındaki Veritabanı Sorunlarını Onarma
Giriş ve Belirtiler
Bakılacak şey:
- Veri saklama süresi içinde raporlanmayan istatistikler. Tipik olarak, istatistikler yalnızca birkaç gün boyunca kayıt yapacak ve daha sonra kesilecek veya aralıklı olacaktır.
- İstatistik içeren bir yedekleme yapamamak (7 günlük, 30 günlük vb.).
- Yalnızca ayarlar yedeklemesi tamamlanamıyorsa, ace veritabanında bozulma veya alakasız başka bir şey olabilir.
- UniFi Network uygulamasını açmaya çalışırken 400 hatası alıyorum.
- Veritabanı hataları nedeniyle ağ uygulama hizmeti başlatılamıyor.
df -h
UniFi’nin veri depoladığı bölümün boş olup olmadığını görmek için bunu bir SSH oturumunda kontrol edin .32-bit MongoDB Sınırlamaları
32 bit MongoDB koleksiyonları toplam 2 GB boyutuyla sınırlıdır. MMAPv1 depolama motorunu çalıştırırken bu, toplama toplama boyutlarını küçültmeye çalışırken sorunlara neden olabilir. MongoDB üzerinde bir kompakt komut çalıştırırken, veritabanı yeniden yazılır ve hata düzeltmesi yapılmadan birleştirilir. Bu işlem, depolama motoru MMAPv1 olduğunda UniFi OS Konsoluna (veya diğer Ağ uygulaması ana bilgisayarına) kullanılabilir disk alanı döndürmez.
32 bitlik bir MongoDB örneğinde bu değerli disk alanını geri almak, veritabanının onarılmasını gerektirecektir. Bu onarım, geçersiz girişler, bozulma veya koleksiyon ölçeklendirme sorunlarından şüphelenenler için gerekli olabilir. Bir veritabanı onarımını çalıştırabilmek için Bulut Anahtarının, mevcut veri kümesinin boyutuna ve 2 gigabayta eşit yeterli boş disk alanına sahip olması gerekir. Veri kümesi zaten db.repairDatabase() komutuyla devam edemeyecek kadar büyümüşse, bu sorunu çözmek için aşağıda yönergeler vardır.
- 32-Bit mimari
- MMAPv1
- MongoDB Sürüm 2.4.10
Bulut Anahtarında Veri tabanı Nasıl Onarılır
1. mongo budama komut dosyasını indirin. Yazıldığı gibi, komut dosyası yalnızca son 7 güne ait girişleri tutacaktır. UniFi yönetimi için gerekli olan girişleri kaldırmaz. Aşağıdaki komutu çalıştırarak bunu yapın:
2. UniFi hizmetini durdurun
servis unifi durağı
mongod --dbpath /usr/lib/unifi/data/db --smallfiles --logpath /usr/lib/unifi/logs/server.log --repair
4. Bu komutla mongo’yu yeniden başlatın:
mongod --dbpath /usr/lib/unifi/data/db --smallfiles --logpath /usr/lib/unifi/logs/server.log --journal --for
stat
5. Soruna neden olan koleksiyonları budamak için komut dosyasını yürütün :
mongo </tmp/CK_repair.js
6. Mongo sunucusunu şu komutla kapatın:
mongod --dbpath /usr/lib/unifi/data/db --smallfiles --logpath /usr/lib/unifi/logs/server.log --shutdown
7. Son olarak, UniFi hizmetini yeniden başlatın:
servis unifi başlangıcı
Bulut Anahtarı artık Ağ uygulamasını çalıştırabilmelidir. Hala veritabanı sorunlarınız varsa lütfen Ubiquiti Destek ile iletişime geçin .
Debian tabanlı Linux’ta Veritabanı Nasıl Onarılır
1. UniFi hizmetini durdurun
servis unifi durağı
2. Derginin bozulduğu bazı durumlarda, veritabanını başka bir konuma taşımak için, veritabanını onarmadan önce aşağıdaki komutu çalıştırmak yardımcı olacaktır:
mv -vi /usr/lib/unifi/data/db/journal /usr/lib/unifi/data/db/journal-$(tarih -I)
3. Veritabanını şu komutla onarın:
mongod --dbpath /usr/lib/unifi/data/db --smallfiles --logpath /usr/lib/unifi/logs/server.log --repair
4. Son olarak, UniFi hizmetini yeniden başlatın:
servis unifi başlangıcı
chown -R unifi:unifi /usr/lib/unifi/data/db/
chown -R unifi:unifi /usr/lib/unifi/logs/server.log
Hala veritabanı sorunlarından şüpheleniyorsanız, lütfen Ubiquiti Destek ile iletişime geçin .
macOS’ta Veritabanı Nasıl Onarılır
1. Çalışma Dizini: Geçici bir çalışma dizini oluşturun. Onarım amacıyla bu dizine /repair diyeceğiz. Terminalde:
mkdir ~/tamir
2. MongoDB’yi indirin: macOS UniFi yükleyicisi mongo ikili dosyasını içermez. MongoDB resmi indirme web sitesini ziyaret edin ve sunucunuzun CPU mimarisine karşılık gelen .tgz sürümünü indirin. Ayrıca 2.4.14’ü doğrudan buradan indirebilirsiniz: 2.4.14.tgz .
3. Mongo’yu Çıkarın: İndirilen paketi çalışma dizininize taşıyın ve çift tıklayarak veya istediğiniz uygulamayı kullanarak çıkarın.
4. Mongo’yu Çalışma Dizinine Taşıyın: bin/mongo ikili dosyasını bulun ve çalışma dizininize kopyalayın. Bu noktada, indirilen .tgz paketi ve ekstra çıkarılan dosyalar sadece mongo ikili dosyasına ihtiyacımız olduğu için silinebilir.
5. Terminal ve komutlar: Terminal’i açın ve çalışma dizininize gidin
cd ~/tamir
6. UniFi’yi Kapatın/Durdurun.
7. Mongo Veritabanını Onarın:
mongod --dbpath ~/Library/Application\ Support/UniFi/data/db --smallfiles --logpath ~/Library/Application\ Support/UniFi/logs/server.log --repair
8. Finder’dan UniFi uygulamasını açın:
-n /Applications/UniFi.app'yi açın
Hala veritabanı sorunlarından şüpheleniyorsanız, lütfen Ubiquiti Destek ile iletişime geçin .
Windows’ta Bir Veritabanı Nasıl Onarılır
1. MongoDB’yi İndirin: Windows UniFi yükleyicisi mongo ikili dosyasını içermez. MongoDB resmi indirme web sitesini ziyaret edin ve CPU mimarinize karşılık gelen .zip sürümünü indirin.
NOT : Önerilen MongoDB sürümü 3.4.x’tir. 3.4.23’ü doğrudan buradan indirebilirsiniz: 3.4.23.zip .
2. Mongod.exe’yi çıkarın
\bin\mongod.exe dosyasını istediğiniz bir çalışma dizinine çıkarın. Bu örnekte, C:\repair\ kullanacağız. .zip dosyasında bulunan diğer tüm dosyaları yok sayabilirsiniz.
3. UniFi’yi Kapatın/Durdurun
4. Komut İstemini Açın: WINDOWS + R tuşlarına basarak komut istemini açın. Açılır pencerede cmd yazın ve ENTER tuşuna basın.
5. Çalışma Dizinine Girin
cd C:\tamir\
6. UniFi’yi Kapatın/Durdurun.
7. Mongo Veritabanını Onarın
mongod.exe --dbpath "%userprofile%\Ubiquiti UniFi\data\db" --smallfiles --logpath "%programfiles%\Ubiquiti UniFi\logs\server.log" –repair
8. UniFi uygulamasını açın
Hala veritabanı sorunlarından şüpheleniyorsanız, lütfen Ubiquiti Destek ile iletişime geçin .
MMAPv1’den WiredTiger’a Nasıl Geçilir?
Ağ uygulaması tekrar işlevsel hale geldikten sonra, bir kullanıcı onu WiredTiger depolama motoruna geçirmek isteyebilir.
Ne kadar alan kullanıldığını doğrulamak için aşağıdaki komutu çalıştırın:
du -shc /usr/lib/unifi/data/db/ace* /usr/lib/unifi/data/db/journal/* /usr/lib/unifi/data/db/local* | grep toplam
Hangi MongoDB sürümünün kullanıldığını doğrulamak için aşağıdakileri çalıştırın:
mongod --versiyon | grep "db sürümü"
Hangi depolama altyapısı sürümünün kullanıldığını doğrulamak için aşağıdaki iki komutu çalıştırın:
mongo yerel ana bilgisayar: 27117 db.serverStatus().storageEngine.name
WiredTiger’a nasıl geçiş yapılır
1. Ayarlar > Bakım > Yedekleme altında istenen saklama ayarlarıyla bir yedek oluşturun.
2. UniFi’yi Windows veya macOS’tan kaldırın. UniFi’yi Debian tabanlı Linux’tan şu komutla temizleyin:
sudo dpkg -P birleşik
3. UniFi’yi Windows veya macOS’ta yeniden yükleyin. UniFi’yi aşağıdaki komutlarla Debian tabanlı Linux’a yeniden yükleyin:
cd /tmp/ wget <indirmek için https bağlantısı> sudo dpkg -i unifi_sysvinit_all.deb
4. UniFi Kurulum Sihirbazı’nda 1. adımdaki yedeklemeyi geri yükleyin.
İlgili Makaleler
UniFi – Eski Verileri Kaldırma (Budama) ve Mongo Veritabanı Boyutunu Ayarlama