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 (
En sabırsızlar için doğrudan savaşa girin:
Hızlı kurulum
dosyayı düzenleme /etc/sysctl.conf
satı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 (
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ı ncurses5
yerine 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