Firebird 3'ü Linux'un modern sürümlerine yükleme: CentOS8 ve Ubuntu 19

Bu makalede, Firebird DBMS sürüm 3.0'ın yeni Linux dağıtımlarına optimum kurulumu için gereken minimum eylem kümesini açıklayacağız. Örnekler için CentOS 8 ve Ubuntu 19 seçilmiştir.

Firebird dağıtımını hedef sisteme “iletmek” için, bu kılavuzda, resmi proje web sitesinden bir bağlantı kullanılarak tar.gz arşivini indirme seçeneği seçilmiştir (firebirdsql.org).

En sabırsızlar için doğrudan savaşa girin:

Hızlı kurulum

dosyayı düzenleme /etc/sysctl.confsatırı ekleyerek:

vm.max_map_count = 256000

Dosyayı kaydedin ve ayarı uygulayın:

sudo sysctl -p /etc/sysctl.conf

Diğer talimatlar CentOS 8 ve Ubuntu 19 için farklılık gösterir ancak ССЫЛКА и КАТАЛОГ dağıtımın indirilmesi için resmi Firebird proje web sitesinden bir bağlantıyı ve indirme işlemi sırasında dağıtımın açılacağı dizini belirtin.
Şu anda (Mart 2020) mevcut sürüm Firebird 3.0.5'tir (İşte link 64 bit sürümüne).

8 CentOS

sudo yum -y install epel-release
sudo yum -y makecache
sudo yum -y install libicu libtommath tar
ln -s libncurses.so.5 
/usr/lib64/libncurses.so.5
ln -s libtommath.so.1 
/usr/lib64/libtommath.so.0
curl -L ССЫЛКА|tar -zxC /tmp

Ubuntu 19

sudo apt-get -y install libncurses5 libtommath1
ln -s libtommath.so.1 
/usr/lib/x86_64-linux-gnu/libtommath.so.0
wget -O- ССЫЛКА|tar -zxC /tmp

Firebird DBMS'nin gerçek kurulumu:

cd /tmp/КАТАЛОГ
sudo ./install.sh

Bu eylemlerin ne işe yaradığını daha iyi anlamak istiyorsanız okumaya devam edin.

Ana

Kısa bir önsöz

İşletim sisteminin zaten minimum bir sürümde kurulu olduğu ve genel depolara veya bunların yerel kopyalarına erişimin yapılandırıldığı varsayılmaktadır.

Okuyucunun Linux ve Firebird DBMS hakkında temel bilgiye sahip olduğu varsayılmaktadır.

planlama

DBMS sunucusunda geçici dosyalar için ayrı bölümler tahsis edilmesi önerilir (/tmp), veritabanı dosyaları ve yerel yedeklemeler.

Geçici olanlar arasında kilit dosyaları, sıralama dosyaları, küresel geçici tabloların (GTT) "gerçekleştirme" dosyaları ve izleme tabloları bulunur. Sıralama dosyaları ve genel geçici tablolar şurada bulunur: /tmp, mon$-table dosyaları ve kilit dosyaları – içinde /tmp/firebird.

Sıralama dosyaları “silindi” (unlink) oluşturulduktan hemen sonra, dizin listesinde "görülmezler" - yalnızca işlem tanıtıcıları listesinde (olarak işaretlenir) deleted):

sudo ls -lhF /proc/`pgrep firebird`/fd

Sahte dizin listesinde /proc/…/fd/ sembolik bağlantılar görüntülenir ve dosya hakkındaki gerçek bilgiler şu şekilde verilir:

sudo stat -L /proc/`pgrep firebird`/fd/НОМЕР

nerede НОМЕР – ilgilenilen dosyanın tanımlayıcısı (tanımlayıcısı).

" diye seslenmek yerinepgrep исполняемый-файл"İlgili sürecin tanımlayıcısını hemen değiştirebilirsiniz.

Geçici dosyalar çok büyük olabilir, bu nedenle /tmp En az 20-30 GB tahsis edilmesi tavsiye edilir. Dosyaları sıralama boyutunun yalnızca istekte açıkça veya örtülü olarak sıralanan veri miktarına bağlı olduğu ve tek bir kullanıcının gigabaytlarca geçici dosya "oluşturabileceği" dikkate alınmalıdır.

Veritabanı dosyaları bölümü tüm veritabanı dosyalarını içermelidir. artı en azından en büyük veritabanı dosyasının bir kopyası. Gelecek birkaç yıl boyunca veritabanı dosyalarının büyümesini hesaba katmak gerekir.

Yerel yedeklemeler bölümü, tüm veritabanlarının en az bir yedekleme arşivini ve en büyük veritabanının yedeğini içermelidir. Bu bölümün aynı zamanda en büyük veritabanını geri yüklemek için de alan içermesi arzu edilir. Gelecekte birkaç yıl boyunca yedeklemelerin ve yedekleme arşivlerinin büyümesi dikkate alınmalıdır.

Ön hazırlık

Firebird 3.0 DBMS sunucusu sistem belleğini dinamik olarak tahsis eder ve serbest bırakır, bu da sistemin parçalanmasına neden olabilir. Örneğin çok sayıda kullanıcının süper sunucuyla bağlantısı aynı anda kesildikten sonra yeni bağlantılar yapılırken hatalar meydana gelebilir.

Bellek parçalanması bir sistem parametresi tarafından kontrol edilir vm.max_map_count, varsayılan 64K'dır. Değerinin dört kat arttırılması tavsiye edilir:

sudo sysctl vm.max_map_count=256000

Sistem yeniden başlatıldığında yeni değerin ayarlanması için dosyaya ekleyin /etc/sysctl.conf astar:

vm.max_map_count = 256000

Bu parametrenin değiştirilme nedeninin net olarak anlaşılması için yorum yapılması tavsiye edilir. Önce dosyayı düzenleyebilir, ardından içinde kayıtlı ayarları uygulayabilirsiniz:

sudo sysctl -p /etc/sysctl.conf

Gerekli paketlerin kurulumu

Firebird 3.0 Linux DBMS'nin yürütülebilir dosyaları ncurses kitaplıklarına bağlıdır (libncurses.so.5), ICU (versiyona bağlı değil ve çıktıda görüntülenmiyor) ldd) ve Tommat (libtommath.so.0). Montaj arşivini indirmek ve paketini açmak için yardımcı programlara ihtiyacınız olacak gzip, tar и curl veya wget. Yoğun bakım versiyonları, gzip, tar и curl/wget – önemsizdir.

Paketlerle çalışmak sisteme ve sistemde kullanılan paket yöneticisine bağlıdır, bu yüzden bunları tek tek ele alacağız.

8 CentOS

CentOS 8 yeni bir paket yöneticisi kullanıyor – dnf ve komut tarafından "şeffaf" olarak adlandırılır yum. Bizim amaçlarımız açısından aralarında hiçbir fark olmadığından örneklerde yum.

Meta veri önbelleğini güncelleyin: sudo yum makecache

Libtomath paketi ayrı bir E(xtra)P(ackages for)E(nterprise)L(inux) deposunda bulunur, dolayısıyla zaten dahil olup olmadığını kontrol ederiz:

yum -C repolist

"Yalnızca önbellekten" seçeneği (-C veya --cache-only) gereksiz kontrolleri ve indirmeleri ortadan kaldırarak yum'u daha hızlı hale getirir. Listede epel deposu yoksa yükleyin ve meta veri önbelleğini güncelleyin:

sudo yum install epel-release &&
sudo yum makecache

Gerekirse, pgp anahtarlarının değerlerini güvenilir bir kaynaktan bilinenlerle kontrol ederek istekleri onaylıyoruz.

https kaynaklarından depo meta bilgilerinin yüklenmesinde sorun varsa dosyayı düzenleyin /etc/yum.repos.d/epel.repo, değiştirilmesi https:// üzerinde http:// ve önbellek güncelleme komutunu tekrarlayın.

Gerekli paketlerin durumunu kontrol ediyoruz (komut karmaşıktır, örnek çıktıda 32 bitlik paket filtrelenmiştir):

yum -C list 
ncurses libicu libtommath 
gzip tar curl wget |
grep -v i686
Installed Packages
curl.x86_64 7.61.1-11.el8 @anaconda
gzip.x86_64 1.9-9.el8 @anaconda
ncurses.x86_64 6.1-7.20180224.el8 @anaconda
Available Packages
libicu.x86_64 60.3-1.el8 BaseOS
libtommath.x86_64 1.1.0-1.el8 epel
tar.x86_64 2:1.30-4.el8 BaseOS
wget.x86_64 1.19.5-8.el8_1.1 AppStream

bunu görüyoruz curl, gzip и ncurses yükleyicinin sözde deposunda barındırılır (anaconda), Ve tar – minimum sistem kurulumunun dışındadır. Ana sürümler libncurses и libtommath gereğinden fazla: sırasıyla 6 ve 1 yerine 5 ve 0. Aynı paket hem kurulu hem de kullanılabilir durumdaysa, bunun için bir güncelleme yayımlanmıştır. Eksik paketleri yükleyin:

sudo yum install 
libicu libtommath tar

Ubuntu 19

Yardımcı programlar paketleri yönetmek için tasarlanmıştır apt, apt‑get и apt‑cache. Birincisi etkileşimli çalışma için, son ikisi ise komut dosyalarında kullanılmak üzere tasarlanmıştır. Paket adları biraz farklıdır ve sürümü içerir.

Gerekli paketlerin durumunu kontrol ediyoruz (komut birleştirildi, örnek çıktı kısaltıldı ve 32 bit paketler filtrelendi):

apt list libncurses? libicu?? libtommath? 
gzip tar curl wget |
grep -v i386
curl 7.65.3-1
gzip 1.10-0 [upgradable…]
libicu63 63.2-2 [installed]
libncurses5 6.1
libncurses6 6.1 [installed,automatic]
libtommath1 1.1.0
tar 1.30 [installed]
wget 1.20.3 [installed]

Köşeli parantezlerin gösterdiği paketler installed/upgradable - Kurulmuş. Mevcut ancak kurulmadı ncurses5yerine curl ayarlamak wget. Eksik paketleri yükleyin:

sudo apt‑get install 
libncurses5 libtommath1

Sembolik bağlantılar oluşturma

Beri libtommath.so.1 и libncurses.so.6 geriye doğru uyumlu libtommath.so.0 и libncurses.so.5, Firebird için kütüphanelerin mevcut sürümlerine sembolik bağlantılar oluşturmak yeterlidir.

Buluruz libtommath.so.1 (libncurses.so.? aynı dizinde bulunur):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

Ubuntu:

/usr/lib/x86_64-linux-gnu/libtommath.so.1

Sembolik bağlantılar oluşturuyoruz.

CentOS:

sudo ln -s libtommath.so.1 
/usr/lib64/libtommath.so.0
sudo ln -s libncurses.so.6 
/usr/lib64/libncurses.so.5

Ubuntu:

sudo ln -s libtommath.so.1 
/usr/lib/x86_64-linux-gnu/libtommath.so.0

Sonucu kontrol edelim (komut karmaşıktır, çıktı örnekleri kısaltılmıştır):

ls -lhF 
$(dirname `find /usr -name libtommath.so.1`) |
grep "lib(ncurses|tommath).so."

CentOS:

libncurses.so.5 -> libncurses.so.6*
libncurses.so.6 -> libncurses.so.6.1*
libncurses.so.6.1*
libtommath.so.0 -> libtommath.so.1*
libtommath.so.1 -> libtommath.so.1.1.0*
libtommath.so.1.1.0*

Ubuntu:

libncurses.so.5 -> libncurses.so.5.9
libncurses.so.5.9
libncurses.so.6 -> libncurses.so.6.1
libncurses.so.6.1
libtommath.so.0 -> libtommath.so.1
libtommath.so.1 -> libtommath.so.1.1.0
libtommath.so.1.1.0

Firebird DBMS dağıtım kitini indirme.

Firebird projesinin resmi web sitesi (firebirdsql.org), "resmi" sürümlerin ve "günlük" yapıların (anlık görüntü derlemeleri) dağıtımlarına bağlantılar yayınlar.

Resmi Linux sürümleri arşiv (tar.gz) ve deb/rpm paketleri olarak mevcuttur, ancak derlemeler yalnızca arşiv olarak mevcuttur. "Genel yükleyiciyi" (tar.gz'den genel yükleyici) ele alacağız.

Derleme arşivinin indirilmesi ve paketinin açılması gerekiyor, ancak her iki süreci de birleştireceğiz. Paket açma şu tarihte yapılır: /tmp,URL indirilebilir arşivin bağlantısını belirtir.

kıvrılmak:

curl -L URL | tar -zxC /tmp

:

wget -O– URL | tar -zxC /tmp

Varsayılan olarak curl indirilen verileri stdout'a gönderir ancak yeniden yönlendirmeleri işlemez ve şunu ekleriz: "‑L"Ve wget, tam tersine: yeniden yönlendirmeleri yönetir, ancak verileri bir dosyaya yazar ve biz "‑O‑" İçin tar kullanımı belirtmek gzip-filter ve paketin açılmasının gerçekleştirileceği dizin. İşlem tamamlandığında aşağıdaki gibi bir dizin görünecektir Firebird‑3.0.5.33220‑0.amd64 üç dosyayla: install.sh, buildroot.tar.gz и manifest.txt.

Firebird'ü yükleme

Ön hazırlık sırasında sistem parametresinin değerini ayarladık vm.max_map_count, kullanılabilirliği kontrol etti ve ICU, ncurses ve tommath kitaplıklarını yükledi. Ncurses ve Tommath sürümlerinin doğru olduğundan emin olun (libncures.so.5 и libtommath.so.0) ve gerekli sembolik bağlantıları oluşturdum.

Gerçek kurulum çok basittir. Firebird dağıtım arşivinin açıldığı dizine gidin, kontrol edin ve gerekirse komut dosyası için "yürütülebilir" bayrağını ayarlayın install.sh:

chmod +x install.sh

kurulum komut dosyasını çalıştırın:

sudo ./install.sh

Enter tuşuna basarak kurulumun başladığını onaylıyoruz ve talebi aldıktan sonra sysdba şifresini giriyoruz.

Kurulum betiği otomatik olarak başlar systemd-birim firebird-superserver (sessiz Firebird 3.0 mimarisi). Firebird hizmeti, süper sunucu için varsayılan parametrelerle çalışacaktır: 2048 sayfalık bir sayfa önbelleği (veritabanı başına), 64 MB'lık bir sıralama arabelleği (paylaşılan) ve yalnızca sürüm XNUMX istemcilerine bağlanma. Seçenekleri gör firebird.conf:

grep -v ^# firebird.conf | grep -v ^$

Lütfen yeni değerlerin firebird.conf yalnızca Firebird hizmeti yeniden başlatıldıktan sonra etkinleştirilecektir.

Parametre değerlerini seçerken, üç ana "tüketici" olduğu dikkate alınmalıdır: sayfa önbelleği (veritabanı için), sıralama arabelleği (paylaşılan) ve sunucu tarafından istemci bağlantıları için ayrılan bellek. Yalnızca ilk ikisini yönetebilirsiniz; istemci bağlantıları için bellek miktarı, önbelleğe alınan sorguların sayısına ve metnine, bunların planlarına ve sorgularda yer alan veritabanı nesnelerine bağlıdır. İstemci bağlantı belleği tahminleri yalnızca ampirik olarak yapılır ve istemci uygulamaları ve/veya veritabanı nesneleri değiştikçe değişebilir.

Az miktarda belleğe (12-16 GB'a kadar) sahip ana bilgisayarlardaki bir süper sunucu için, sayfa önbelleği ve sıralama arabelleği için toplam RAM miktarının üçte birinden veya dörtte birinden fazlasını ayırmamalısınız.

Veritabanı sayısı sabit değilse ve değişebiliyorsa, toplam sayfa önbellek miktarının sunucuda bulunabilecek maksimum veritabanı sayısına bölünmesi gerekir. Sayfa önbelleğinin boyutu sayfalarda belirtilir ve ayrı olarak baytlara dönüştürülmesi gerekir.

Klasik mimariye geçmek için en azından açıkça belirtmeniz gerekir. ServerMode в firebird.conf, oradaki sayfa önbelleğini azaltın (en fazla 2K), sıralama arabelleğini azaltın (her türden izin verilen toplam hacmin maksimum bağlantı sayısına bölünmesiyle), üniteyi devre dışı bırakın ve durdurun firebird-superserver, üniteyi etkinleştirin ve başlatın firebird-classic.socket.

Firebird 3.0'da süper klasik mimariyi kullanmak pek mantıklı değil: "güvenilirlik" bir süper sunucuya ve aynı genel sıralama arabelleğine benzer. Ortak bir sayfa önbelleği yoktur ve farklı bağlantıları birbirleriyle senkronize etmenin "kayıpları" klasik olanla aynıdır.

Firebird 3.0'da bazı parametrelerin (sayfa önbelleği, kilit dosyası boyutları, karma tabloları ve diğerleri) ayarlanabileceği unutulmamalıdır. databases.conf Her veritabanı için ayrı ayrı. Bir süper sunucu için örneğin küçük bir değer ayarlamak faydalıdır DefaultDbCachePages в firebird.conf ve gerekli veritabanları için ayrı sayfa önbelleklerini yükleyin databases.conf.

Yorumlarda makale hakkında sorular sorun veya destek adresimize mektup yazın [e-posta korumalı].

Kaynak: habr.com

Yorum ekle