Firebird 3.0 ve 4.0 Linux'a nasıl kurulur
by Vasily Sidorov, 24 Ağu 2022
Bu makalede Firebird 3 ve 4 sürümlerinin popüler Linux sürümlerine kurulumunu açıklıyoruz: CentOS 7, Oracle Linux 7/8, Debian 9/10, Ubuntu18/20 ve OpenSUSE15.0.
Linux için Firebird dağıtımını almak için lütfen resmi Firebird web sitesindeki tar arşivini kullanın:
- Firebird 4: https://firebirdsql.org/en/firebird-4-0/
- Firebird 3: https://firebirdsql.org/en/firebird-3-0/
Kurulumun root veya sudoer ile yapıldığını ve Linux bilgisayarın İnternet erişimine sahip olduğunu varsayıyoruz.
Lütfen bazı komutların kullanıcıdan girdi gerektirdiğini unutmayın. Sonunda noktalı virgül (;) olan satırların komutun tek satırlık komut olarak çalıştırılabileceği anlamına geldiğini lütfen unutmayın.
Ayrıca, kurmayı düşündüğünüz Firebird sürümü için Sürüm Notları’nı okumanızı öneririz.
Ön Koşullar
4.0.1 ve 3.0 için sistem kütüphanesi gereksinimleri aynı hale geldi: ncurses5 ve tommath0 için statik bağlama ve ICU için dinamik.
Dağıtıma bağlı olarak, ncurses5 sistem kütüphanesi (RH7/Debian) olacak veya geriye dönük uyumluluk için bir paket olarak kullanılabilir olacaktır (RH8/Debian).
tommath kütüphanesi sürüm 0 veya sürüm 1 olacaktır (ikili uyumludurlar). Eğer tommath0 yoksa, sembolik bağlantı oluşturacağız.
Diğer gerekli sistem araçları tar ve curl’dür.
Bu paketleri açıkça kuruyoruz, böylece paket yöneticisi onları manuel olarak kontrol edilen olarak işaretler ve otomatik olarak kaldırmaz.
Hızlı Kurulum
1. Maksimum harita sayısını belirtin.
Bu adım isteğe bağlıdır, ancak üretim sistemleri için şiddetle tavsiye edilir:
/etc/sysctl.conf dosyasını açın ve aşağıdaki satırı ekleyin:
vm.max_map_count = 256000
ardından uygulayın
sysctl -p /etc/sysctl.conf
2. libtommath için gerekli depoyu kurun
CentOS 7 için
yum install epel-release;
CentOS 8 için
dnf install epel-release;
Oracle Linux 7 için
yum install oracle-epel-release-el7;
Oracle Linux 8 için
dnf install oracle-epel-release-el8;
Diğer dağıtımlar için gerekli paketler ana depolarda mevcut olmalıdır.
3. Paketleri ve araçları kurun
CentOS 7 / Oracle Linux 7
yum makecache;
yum install ncurses libicu libtommath;
yum install curl tar;
CentOS 8 / Oracle Linux 8
dnf makecache;
dnf install ncurses-compat-libs libicu libtommath;
dnf install curl tar;
Debian 9/10, Ubuntu 18/20
apt-get install libncurses5 libtommath1;
apt-get install curl tar;
Open SUSE 15
zypper install libncurses5 libtommath1;
zypper install curl tar;
ICU sürümü değişebilir:
Debian 9
apt-get install libicu57
Debian 10
apt-get install libicu63
Ubuntu 18
apt-get install libicu60
Ubuntu 20
apt-get install libicu66
OpenSUSE 15.0
zypper install libicu60_2
libtommath1’e sahip dağıtımlarda (yukarıdakilerin tümü CentOS7 ve Oracle Linux 7 hariç) libtommath.so.0 sembolik bağlantısını oluşturmak gerekir:
TM=libtommath.so;
for LIB in `find /lib* /usr/lib* -name ${TM}.1`;
do ln -s ${TM}.1 `dirname ${LIB}`/${TM}.0;
done;
unset TM;
Firebird 4.0.1 ve üstü kurulum betiği sembolik bağlantıyı otomatik olarak oluşturabilir, ancak Firebird 3 için manuel olarak oluşturulmalıdır.
4. Firebird’ü indirin ve kurun
Gerekli araçların ve kütüphanelerin kurulumundan sonra indirme, açma ve kurulum paketini çalıştırmaya devam edebiliriz.
DOWNLOADLINK’in www.firebirdsql.org’dan gerekli Firebird’ü indirmek için bir bağlantı olduğunu varsayıyoruz.
curl -L DOWNLOADLINK | tar -zxC /tmp
cd /tmp/FIREBIRD_folder
sudo ./install.sh
Burada DOWNLOADLINK - tar.gz’ye bağlantı ve FIREBIRD_folder - Firebird-version.build-0.architecture
dağıtımın tar -zxC /tmp komutuyla açılacağı yer.
Linux’ta Firebird 3 veya 4’ün hızlı kurulumu için gereken tek şey budur.
İsteğe bağlı olarak, Firebird Configuration Calculator ile optimal yapılandırma dosyalarını (firebird.conf ve databases.conf) oluşturabilirsiniz.
Firebird kurulumu hakkında daha fazla ayrıntı
Firebird kurulumunu daha iyi yapılandırmak isteyenler için yukarıdaki adımların ayrıntılı açıklamasını sağlıyoruz.
vm.max_map_count yapılandırması
Firebird, sürüm 3’ten itibaren yoğun dinamik bellek ayırma ile SuperServer mimarisini etkili bir şekilde kullanır. Yüksek yük ve sık bağlantı/bağlantı kesme durumunda, motor Linux’ta bellek parçalanma sınırlarına ulaşabilir; bu, firebird.log’da hata 11 (ENOMEM) veya hata 12 (munmap) olarak görünecektir.
Bellek parçalanma sınırı, varsayılan değeri 65536 olan vm.max_map_count parametresi tarafından kontrol edilir.
Bu ayarı sunucunun yeniden başlatılmasından sonra korumak için /etc/sysctl.conf dosyasına aşağıdaki satırı ekleyin:
vm.max_map_count = 256000
Bunu uygulamak için sunucuyu yeniden başlatın veya komutu çalıştırın:
sudo sysctl -p /etc/sysctl.conf
Disk alanı planlaması
Genel olarak, Firebird veritabanı olan sunucuda 3 ayrı bölüm ayırmanızı öneririz: geçici dosyalar için, veritabanları için ve yerel yedeklemeler için.
Geçici dosyalar için bölüm
Ana geçici dosyalar kilit dosyaları, sıralama dosyaları, global geçici tablolar ve bloblar için dosyalar ve izleme verileri içeren dosyalardır.
Varsayılan olarak, Linux’ta sıralama dosyaları ve global geçici tabloların verileri /tmp’de, mon$ verileri ve kilit tabloları için dosyalar /tmp/firebird’de bulunur.
Geçici dosyalar için bölümün uygun boyutunu nasıl belirlersiniz?
Potansiyel olarak, sıralama ve blob dosyaları oldukça büyük olabilir, bu nedenle makul sayıda kullanıcısı olan üretim sistemi için geçici dosyalar bölümünün yaklaşık 30-40Gb olması pratik bir öneridir. Uygun boyutu daha kesin belirlemek için geçici dosyaların gerçek boyutlarını izlemenizi öneririz.
Bu tür izleme için küçük bir sorun, sıralama dosyalarının oluşturulduktan hemen sonra bağlantısının kaldırılmasıdır, bu nedenle normal “ls” komutuyla görülemezler. Bunları görüntülemek için işlemin tanıtıcılarını kontrol etmemiz gerekir (ve silinmiş olarak işaretlenirler) aşağıdaki komutla:
sudo ls -lhF /proc/`pgrep firebird`/fd
Bu komutun sonucunda /proc/…/fd/ sözde klasörünün içeriğini göreceğiz.
Bu klasördeki belirli bir dosya hakkında bilgi görmek için komutu kullanmanız gerekir:
sudo stat -L /proc/`pgrep firebird`/fd/NNNNN
burada NNNNN dosyanın tanımlayıcısıdır.
Bu komutu SuperServer ve SuperClassic mimarileri için, motor tek bir işlem olarak çalıştığında kullanabilirsiniz. Elbette, pgrep firebird yerine Firebird işleminin tanıtıcı numarasını belirtmek mümkündür.
Veritabanı dosyaları için bölüm
Veritabanı dosyaları için bölüm, tüm veritabanı dosyalarını artı en büyük veritabanının boyutuna eşit boş alanı artı önümüzdeki 2-3 yıl için büyüme rezervini depolamak için yeterli olmalıdır.
Yerel yedeklemeler için bölüm
Minimum olarak, yerel yedekleme bölümü tüm yerel yedeklemeleri artı en büyük veritabanının yedeğini depolamak için yeterli olmalıdır.
Ayrıca, geri yükleme işlemlerini gerçekleştirmek için yedekleme bölümünde en büyük veritabanı boyutuna eşit ek boş alan öneriyoruz.
Yedeklemeler hakkında daha fazla okuma
firebird kullanıcısı oluşturun (isteğe bağlı)
Kurulum betiği, yoksa, Firebird’ün tüm etkinliğini bu kullanıcıyı kullanarak gerçekleştirmek için “firebird” adında kullanıcı ve grup oluşturur (bu, Linux sistemleri için en iyi uygulamadır).
Bu aynı zamanda veritabanı dosyalarının ve veritabanlarının ve yedeklemelerin bulunduğu klasörlerin bu kullanıcı için sahiplik veya izinlere sahip olması gerektiği anlamına gelir.
Bazen kurulumdan önce “firebird” kullanıcısını ve grubunu oluşturmak mantıklıdır:
groupadd firebird &&
useradd -M -b /opt -s /sbin/nologin \
-g firebird -u UID firebird
firebird kullanıcısı için ana klasör oluşturmuyoruz (-M anahtarı), yalnızca temel klasörü belirtiyoruz (-b).
-s anahtarıyla nologin kabuğu sunucuya standart girişi önler.
Gerekli paketleri kurun
Firebird 3.0 ve 4.0, ncurses (libncurses.so.5), ICU (sürüme bağlantı olmadan ve ldd çıktısında görünmezler) ve tommath (libtommath.so.0) kütüphanelerine bağlıdır.
Linux dağıtımına bağlı olarak, sürümlü veya sürümsüz kütüphane adlarını kullanmamız gerekir. Pratik kopyala-yapıştır komutları yukarıda gösterilmiştir ve aşağıda açıklanmaktadır.
CentOS ve Oracle Linux
Sürüm 7 gerekli paketleri varsayılan olarak içerir, sürüm 8 ncurses-compat-libs kurulumunu ve libtommath.so.0 sembolik bağlantısının oluşturulmasını gerektirir.
Debian, Ubuntu ve OpenSUSE
Debian 9 ve 10, Ubuntu 18 ve 20, OpenSUSE 15 sürümlerinde libncurses5 ve libtommath1 kurmamız gerekir ve ICU sürümünü belirlemek için eksik adı aramayı kullanabiliriz:
Ubuntu’da
apt-cache search libicu5
OpenSUSE 15’te
zypper search libicu6
Firebird kurulum ayrıntıları
Kurulumdan önce sistem parametresi vm.max_map_count’u artırdık, ICU, ncurses ve tommath kütüphanelerini kurduk. Ardından ncurses ve tommath’in doğru sürümlerine sahip olduğumuzu kontrol ettik (libncures.so.5 ve libtommath.so.0) veya gerekli sembolik bağlantıları oluşturduk.
İsteğe bağlı olarak, firebird kullanıcısını ve grubunu oluşturabiliriz.
Bundan sonra Firebird’ü kurabiliriz; bunun için kurulum paketinin açıldığı klasöre gidip kurulumu başlatıyoruz:
./install.sh
kurulumu onaylamak için Enter’a basın ve istendiğinde SYSDBA için şifreyi belirtin.
Başlangıçta Firebird varsayılan yapılandırma dosyasıyla kurulacaktır. Varsayılan yapılandırma, mütevazı değerlerle SuperServer mimarisi olarak çalışır: veritabanı başına önbellek (DefaultDbCachePages, ayrıca Page buffers olarak da adlandırılır) 2048 olarak ayarlanır, sıralama için tampon (TempCacheLimit) 64M’dir (v3’te sunucu için ve v4’te veritabanı başına).
firebird.conf’un yorumlanmamış parametrelerini görüntülemek için aşağıdaki komutu kullanabilirsiniz:
grep -v ^# firebird.conf | grep -v ^$
Firebird Configuration Calculator ile optimal yapılandırma dosyası oluşturacaksanız veya parametreleri manuel olarak değiştirecekseniz, değişikliklerin Firebird hizmetinin yeniden başlatılmasından sonra uygulanacağını lütfen unutmayın (SuperServer ve SuperClassic durumunda, Classic durumunda tüm Firebird işlemlerinin yeniden başlatılması gerekir).
Firebird 3’ten itibaren SuperServer, SuperClassic ve Classic için ayrı systemd birimleri olduğunu lütfen unutmayın.