Bu sayfa makine çevirisidir. İngilizce orijinalini okuyun. English

IBSurgeon kütüphanesi

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:

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:

Code
vm.max_map_count = 256000

ardından uygulayın

Code
sysctl -p /etc/sysctl.conf

2. libtommath için gerekli depoyu kurun

CentOS 7 için

Code
yum install epel-release;

CentOS 8 için

Code
dnf install epel-release;

Oracle Linux 7 için

Code
yum install oracle-epel-release-el7;

Oracle Linux 8 için

Code
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

Code
yum makecache;
yum install ncurses libicu libtommath;
yum install curl tar;

CentOS 8 / Oracle Linux 8

Code
dnf makecache;
dnf install ncurses-compat-libs libicu libtommath;
dnf install curl tar;

Debian 9/10, Ubuntu 18/20

Code
apt-get install libncurses5 libtommath1;
apt-get install curl tar;

Open SUSE 15

Code
zypper install libncurses5 libtommath1;
zypper install curl tar;

ICU sürümü değişebilir:

Debian 9

Code
apt-get install libicu57

Debian 10

Code
apt-get install libicu63

Ubuntu 18

Code
apt-get install libicu60

Ubuntu 20

Code
apt-get install libicu66

OpenSUSE 15.0

Code
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:

Code
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.

Code
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:

Code
vm.max_map_count = 256000

Bunu uygulamak için sunucuyu yeniden başlatın veya komutu çalıştırın:

Code
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:

Code
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:

Code
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:

Code
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

Code
apt-cache search libicu5

OpenSUSE 15’te

Code
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:

Code
./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:

Code
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.