በዘመናዊ የሊኑክስ ስሪቶች ላይ Firebird 3 ን በመጫን ላይ፡ CentOS8 እና Ubuntu 19

በዚህ ጽሑፍ ውስጥ የFirebird DBMS ስሪት 3.0ን በአዲስ ሊኑክስ ስርጭቶች ላይ በጥሩ ሁኔታ ለመጫን የሚያስፈልጉትን አነስተኛ የእርምጃዎች ስብስብ እንገልፃለን። CentOS 8 እና Ubuntu 19 ለአብነት ተመርጠዋል።

የFirebird ስርጭትን ወደ ዒላማው ስርዓት "ለማድረስ" በዚህ መመሪያ ውስጥ የ tar.gz ማህደርን የማውረድ አማራጭ ከኦፊሴላዊው የፕሮጀክት ድህረ ገጽ አገናኝ በመጠቀም ይመረጣል (firebirdsql.org).

በጣም ትዕግስት ለሌላቸው፣ በቀጥታ ወደ ጦርነት ይሂዱ፡-

ፈጣን ጭነት

ፋይሉን በማስተካከል ላይ /etc/sysctl.confመስመሩን በማከል፡-

vm.max_map_count = 256000

ፋይሉን ያስቀምጡ እና ቅንብሩን ይተግብሩ:

sudo sysctl -p /etc/sysctl.conf

ተጨማሪ መመሪያዎች ለ CentOS 8 እና Ubuntu 19 ይለያያሉ ፣ ግን ССЫЛКА и КАТАЛОГ ስርጭቱን ለማውረድ እና በማውረድ ሂደት ስርጭቱ የሚከፈትበትን ማውጫ ለማውረድ ከኦፊሴላዊው የፋየርበርድ ፕሮጀክት ድህረ ገጽ አገናኝ ያመልክቱ።
በአሁኑ ጊዜ (ማርች 2020) የአሁኑ የተለቀቀው ፋየርበርድ 3.0.5 ነው (ሊንኩ ይኸው ነው። ወደ 64-ቢት ስሪት)።

CentOS 8

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

ኡቡንቱ 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 ትክክለኛ ጭነት፡-

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

እነዚህ ድርጊቶች የሚያደርጉትን የበለጠ ለመረዳት ከፈለጉ ያንብቡ።

ዋናው ክፍል

አጭር መግቢያ

ስርዓተ ክወናው አስቀድሞ በትንሹ ስሪት እንደተጫነ እና የህዝብ ማከማቻዎች ወይም የአካባቢ ቅጂዎቻቸው እንደተዋቀሩ ይታሰባል።

አንባቢው የሊኑክስ እና የፋየርበርድ ዲቢኤምኤስ መሰረታዊ እውቀት እንዳለው ይታሰባል።

እቅድ

በዲቢኤምኤስ አገልጋይ ላይ ለጊዜያዊ ፋይሎች የተለያዩ ክፍሎችን ለመመደብ ይመከራል (/tmp), የውሂብ ጎታ ፋይሎች እና የአካባቢ ምትኬዎች.

ጊዜያዊ የመቆለፊያ ፋይሎችን፣ ፋይሎችን መደርደር፣ የአለም አቀፍ ጊዜያዊ ሰንጠረዦችን (ጂቲቲ) እና የክትትል ሰንጠረዦችን “ቁሳቁሶች” ፋይሎችን ያካትታሉ። የመደርደር ፋይሎች እና አለምአቀፍ ጊዜያዊ ሰንጠረዦች በ ውስጥ ይገኛሉ /tmp, mon$-ሠንጠረዥ ፋይሎች እና መቆለፊያ-ፋይሎች - ውስጥ /tmp/firebird.

ፋይሎችን መደርደር "ተሰርዘዋል" (unlink) ከተፈጠሩ በኋላ ወዲያውኑ በማውጫው ዝርዝር ውስጥ "ሊታዩ" አይችሉም - በሂደቱ እጀታዎች ዝርዝር ውስጥ ብቻ (እንደ ምልክት ተደርጎበታል). deleted):

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

በሐሰት ማውጫ ዝርዝር ውስጥ /proc/…/fd/ ሲምሊንኮች ይታያሉ፣ እና ስለፋይሉ ትክክለኛ መረጃ የሚሰጠው በ፡

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

የት НОМЕР - የፍላጎት ፋይል ገላጭ (ገላጭ)።

ከመደወል ይልቅ "pgrep исполняемый-файл"የፍላጎት ሂደት መለያውን ወዲያውኑ መተካት ይችላሉ።

ጊዜያዊ ፋይሎች በጣም ትልቅ ሊሆኑ ይችላሉ, ስለዚህ /tmp ቢያንስ 20-30 ጂቢ ለመመደብ ይመከራል. የፋይሎች መደርደር መጠን የሚወሰነው በጥያቄው ውስጥ በግልጽ ወይም በተዘዋዋሪ በተደረደሩት የውሂብ መጠን ላይ ብቻ እንደሆነ እና አንድ ተጠቃሚ ጊጋባይት ጊዜያዊ ፋይሎችን "መፍጠር" እንደሚችል ግምት ውስጥ ማስገባት ያስፈልጋል.

የውሂብ ጎታ ፋይሎች ክፍል ሁሉንም የውሂብ ጎታ ፋይሎች ማስተናገድ አለበት። በተጨማሪም, ቢያንስ, ትልቁ የውሂብ ጎታ ፋይል ቅጂ. ለወደፊቱ ለበርካታ አመታት የውሂብ ጎታ ፋይሎችን እድገት ግምት ውስጥ ማስገባት ያስፈልጋል.

የአካባቢያዊ ምትኬዎች ክፍል የሁሉም የውሂብ ጎታዎች ቢያንስ አንድ የመጠባበቂያ ማህደር እና ትልቁን የውሂብ ጎታ መጠባበቂያ መያዝ አለበት። ይህ ክፍል ደግሞ ትልቁን የውሂብ ጎታ ወደነበረበት ለመመለስ ቦታ ቢይዝ ጥሩ ነው። ለወደፊቱ ለብዙ አመታት የመጠባበቂያ እና የመጠባበቂያ ማህደሮች እድገት ግምት ውስጥ መግባት አለበት.

የመጀመሪያ ዝግጅት።

የFirebird 3.0 ዲቢኤምኤስ አገልጋይ የስርዓት ማህደረ ትውስታን በተለዋዋጭ መንገድ ይመድባል እና ነጻ ያወጣል፣ ይህም ወደ መከፋፈል ሊያመራ ይችላል። ለምሳሌ፣ ብዙ ቁጥር ያላቸው ተጠቃሚዎች ከሱፐርሰርቨር በአንድ ጊዜ ከተቋረጡ በኋላ፣ አዲስ ግንኙነት ሲፈጥሩ ስህተቶች ሊከሰቱ ይችላሉ።

የማህደረ ትውስታ መቆራረጥ በስርዓት መለኪያ ይቆጣጠራል vm.max_map_count, ነባሪ 64 ኪ. ዋጋውን በአራት እጥፍ ለመጨመር ይመከራል.

sudo sysctl vm.max_map_count=256000

ስርዓቱ ዳግም በሚነሳበት ጊዜ አዲሱ እሴት እንዲዘጋጅ, ወደ ፋይሉ ያክሉት /etc/sysctl.conf መስመር፡

vm.max_map_count = 256000

ይህንን ግቤት ለመለወጥ ምክንያቱ ግልጽ እንዲሆን አስተያየት መስጠት ጥሩ ነው. መጀመሪያ ፋይሉን ማርትዕ እና ከዚያ በውስጡ የተቀመጡትን መቼቶች መተግበር ይችላሉ፡-

sudo sysctl -p /etc/sysctl.conf

አስፈላጊ ፓኬጆችን በመጫን ላይ

የFirebird 3.0 ሊኑክስ ዲቢኤምኤስ ሊተገበሩ የሚችሉ ፋይሎች በእርግማን ቤተ-መጻሕፍት ላይ ይወሰናሉ (libncurses.so.5), አይሲዩ (ከስሪት ጋር ያልተገናኘ እና በውጤቱ ውስጥ አይታይም). lddእና ቶማት (libtommath.so.0). የመሰብሰቢያ ማህደሩን ለማውረድ እና ለመክፈት መገልገያዎች ያስፈልጉዎታል gzip, tar и curl ወይም wget. አይሲዩ ስሪቶች፣ gzip, tar и curl/wget - ኢምንት ናቸው.

ከጥቅሎች ጋር አብሮ መስራት በስርዓቱ እና በስርዓቱ ውስጥ ጥቅም ላይ በሚውለው የጥቅል አስተዳዳሪ ላይ የተመሰረተ ነው, ስለዚህ አንድ በአንድ እንመለከታቸዋለን.

CentOS 8

CentOS 8 አዲስ የጥቅል አስተዳዳሪ ይጠቀማል - dnf እና በትእዛዝ "ግልጽነት" ተብሎ ይጠራል yum. ለእኛ ዓላማዎች በመካከላቸው ምንም ልዩነት ስለሌለ - በምሳሌዎቹ ውስጥ ይኖራል yum.

የሜታዳታ መሸጎጫውን ያዘምኑ፡ sudo yum makecache

የሊብቶማህ ፓኬጅ በተለየ ኢ(ተጨማሪ) ፒ(አኬጆች) ኢ(ኢንተርፕራይዝ)ኤል(ኢኑክስ) ማከማቻ ውስጥ ይገኛል፣ ስለዚህ አስቀድሞ የተካተተ መሆኑን እናረጋግጣለን።

yum -C repolist

አማራጭ "ከመሸጎጫ ብቻ"-C ወይም --cache-only) አላስፈላጊ ቼኮችን እና ውርዶችን ለማስወገድ ይጠቅማል፣ ይህም ዩም ፈጣን ያደርገዋል። በዝርዝሩ ውስጥ ምንም የኢፔል ማከማቻ ከሌለ ይጫኑት እና የሜታዳታ መሸጎጫውን ያዘምኑ።

sudo yum install epel-release &&
sudo yum makecache

አስፈላጊ ከሆነ የpgp ቁልፎችን ከታመነ ምንጭ ከሚታወቁት ጋር በመፈተሽ ጥያቄዎችን እናረጋግጣለን።

የማጠራቀሚያ ሜታኢንፎርሜሽን ከhttps ሃብቶች በመጫን ላይ ችግሮች ካሉ ፋይሉን ያርትዑ /etc/yum.repos.d/epel.repo፣ በመተካት። https:// ላይ http:// እና የመሸጎጫ ማሻሻያ ትዕዛዙን ይድገሙት.

የሚፈለጉትን ጥቅሎች ሁኔታ እንፈትሻለን (ትዕዛዙ የተወሳሰበ ነው ፣ በምሳሌው ውስጥ የ 32-ቢት ጥቅል ተጣርቶ)

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

ያንን እናያለን curl, gzip и ncurses በጫኚው የውሸት ማከማቻ ውስጥ ተስተናግዷል (anaconda) ፣ እና tar - ከዝቅተኛው የስርዓት ጭነት የተገለለ። ዋና ስሪቶች libncurses и libtommath ከሚያስፈልገው በላይ፡ 6 እና 1 ከ 5 እና 0 ይልቅ በቅደም ተከተል። ተመሳሳዩ ጥቅል ከተጫነ እና የሚገኝ ከሆነ ዝማኔ ተለቋል። የጎደሉትን ጥቅሎች ይጫኑ፡-

sudo yum install 
libicu libtommath tar

ኡቡንቱ 19

መገልገያዎች ጥቅሎችን ለማስተዳደር የተነደፉ ናቸው። apt, apt‑get и apt‑cache. የመጀመሪያው በይነተገናኝ ሥራ የተነደፈ ሲሆን የመጨረሻዎቹ ሁለቱ በስክሪፕቶች ውስጥ ለመጠቀም የተነደፉ ናቸው። የጥቅል ስሞች ትንሽ የተለያዩ ናቸው እና ስሪቱን ያካትታሉ።

የሚፈለጉትን ጥቅሎች ሁኔታ እንፈትሻለን (ትዕዛዙ ተጣምሯል ፣ የምሳሌው ውጤት አጭር ነው እና 32-ቢት ጥቅሎች ተጣርተዋል)

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]

የካሬው ቅንፎች የሚያመለክቱባቸው እሽጎች installed/upgradable - ተጭኗል። ይገኛል ግን አልተጫነም። ncurses5, ከሱ ይልቅ curl ተጭኗል wget. የጎደሉትን ጥቅሎች ይጫኑ፡-

sudo apt‑get install 
libncurses5 libtommath1

ሲምሊንኮችን መፍጠር

ከመቼ ጀምሮ libtommath.so.1 и libncurses.so.6 ጋር ተኳሃኝ ወደ ኋላ libtommath.so.0 и libncurses.so.5, ከዚያ ለፋየርበርድ አሁን ላሉት የቤተ-መጻህፍት ስሪቶች ሲምሊንኮችን መፍጠር በቂ ነው።

እናገኛለን libtommath.so.1 (libncurses.so.? በተመሳሳይ ማውጫ ውስጥ ይገኛል):

find /usr -name libtommath.so.1

CentOS:

/usr/lib64/libtommath.so.1

ኡቡንቱ:

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

ሲምሊንኮችን እንፈጥራለን.

CentOS:

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

ኡቡንቱ:

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

ውጤቱን እንፈትሽ (ትዕዛዙ የተወሳሰበ ነው, የውጤት ምሳሌዎች አጭር ናቸው)

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*

ኡቡንቱ:

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 ማከፋፈያ ኪት በማውረድ ላይ።

የFirebirdsql.org ኦፊሴላዊ ድረ-ገጽ "ኦፊሴላዊ" ልቀቶችን እና "ዕለታዊ" ግንባታዎችን (የቅጽበተ-ፎቶ ግንባታዎችን) ማሰራጫዎችን ያትማል።

ይፋዊ የሊኑክስ ልቀቶች እንደ ማህደር (tar.gz) እና deb/rpm ጥቅሎች ይገኛሉ፣ግን ግንቦች የሚገኙት እንደ ማህደር ብቻ ነው። "አጠቃላይ ጫኚ" (አጠቃላይ ጫኚ ከ tar.gz) እንመለከታለን።

የግንባታ ማህደሩ ማውረድ እና መከፈት አለበት፣ ነገር ግን ሁለቱንም ሂደቶች እናጣምራለን። ማሸግ የሚከናወነው በ ውስጥ ነው። /tmp,ዩአርኤል ወደ ሊወርድ የሚችል ማህደር የሚወስደውን አገናኝ ያመለክታል።

ከርል፡

curl -L URL | tar -zxC /tmp

wget፡

wget -O– URL | tar -zxC /tmp

በነባሪ curl የወረደውን ውሂብ ወደ stdout ይልካል ነገር ግን አቅጣጫ መቀየርን አያስተናግድም እና እንጨምራለን"‑L"፣ ሀ wgetበተቃራኒው አቅጣጫ ማዘዋወርን ይቆጣጠራል, ነገር ግን ውሂብ ወደ ፋይል ይጽፋል እና እናስቀምጠዋለን "‑O‑" ለ tar አጠቃቀምን አመልክት gzip- ማጣሪያ እና ማሸጊያው የሚከናወንበት ማውጫ። ሂደቱ ሲጠናቀቅ, እንደዚህ ያለ ማውጫ ይመጣል Firebird‑3.0.5.33220‑0.amd64 ከሶስት ፋይሎች ጋር; install.sh, buildroot.tar.gz и manifest.txt.

Firebird በመጫን ላይ

በቅድመ ዝግጅት ወቅት የስርዓት መለኪያውን ዋጋ አስተካክለናል vm.max_map_count, መገኘቱን ፈትሸው እና ICU, ncurses እና tommath ላይብረሪዎችን ተጭኗል. የነርሶች እና የቶማት ስሪቶች ትክክል መሆናቸውን ያረጋግጡ (libncures.so.5 и libtommath.so.0) እና አስፈላጊዎቹን ሲምሊንኮች ፈጥሯል.

ትክክለኛው መጫኛ በጣም ቀላል ነው. የFirebird ስርጭት ማህደር ወደተፈታበት ማውጫ ይሂዱ፣ ያረጋግጡ እና አስፈላጊ ከሆነ፣ ለስክሪፕቱ “ተፈፃሚ” የሚለውን ባንዲራ ያዘጋጁ። install.sh:

chmod +x install.sh

የመጫኛ ስክሪፕቱን ያሂዱ;

sudo ./install.sh

Enter ቁልፍን በመጫን የመጫኑን መጀመሪያ እናረጋግጣለን እና ጥያቄው እንደደረሰን የ sysdba ይለፍ ቃል ያስገቡ።

የመጫኛ ስክሪፕት በራስ-ሰር ይጀምራል systemd- ክፍል firebird-superserver (ፀጥታ Firebird 3.0 አርክቴክቸር)። የFirebird አገልግሎት ለሱፐርሰርቨር ከነባሪ መለኪያዎች ጋር ይሰራል፡- የ2048 ገፆች መሸጎጫ(በዳታቤዝ)፣ 64 ሜባ መደርደር (የተጋራ) እና ስሪት XNUMX ደንበኞችን ብቻ የሚያገናኝ። አማራጮችን ይመልከቱ firebird.conf:

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

እባክዎን አዲሶቹ ዋጋዎች ከ firebird.conf የሚነቃው የFirebird አገልግሎትን እንደገና ከጀመረ በኋላ ብቻ ነው።

የመለኪያ እሴቶችን በሚመርጡበት ጊዜ ሶስት ዋና "ሸማቾች" መኖራቸውን ግምት ውስጥ ማስገባት ያስፈልጋል-የገጽ መሸጎጫ (ለዳታቤዝ) ፣ የመለያ ቋት (የተጋራ) እና በአገልጋዩ ለደንበኛ ግንኙነቶች የተመደበው ማህደረ ትውስታ። የመጀመሪያዎቹን ሁለቱን ብቻ ማስተዳደር ይችላሉ - ለደንበኛ ግንኙነቶች የማህደረ ትውስታ መጠን የሚወሰነው በተሸጎጡ መጠይቆች ብዛት እና ጽሑፍ ፣ በእቅዳቸው እና በጥያቄዎች ውስጥ በተካተቱ የውሂብ ጎታ ነገሮች ላይ ነው። የደንበኛ ግንኙነት ማህደረ ትውስታ ግምቶች የሚከናወኑት በተጨባጭ ብቻ ነው እና የደንበኛ መተግበሪያዎች እና/ወይም የውሂብ ጎታ ነገሮች ሲቀየሩ ሊለወጡ ይችላሉ።

አነስተኛ ማህደረ ትውስታ ላለው ሱፐርሰርቨር (እስከ 12-16 ጂቢ) ከጠቅላላው የ RAM መጠን ከሶስተኛ ወይም ሩብ በላይ ለገጹ መሸጎጫ መመደብ እና ቋት መደርደር የለብዎትም።

የውሂብ ጎታዎች ቁጥር ቋሚ ካልሆነ እና ሊለወጥ የሚችል ከሆነ, አጠቃላይ የገጽ መሸጎጫ ማህደረ ትውስታ መጠን በአገልጋዩ ላይ ባለው ከፍተኛ የውሂብ ጎታዎች መከፋፈል አለበት. የገጹ መሸጎጫ መጠን በገጾች ውስጥ ተገልጿል እና በተናጠል ወደ ባይት መቀየር አለበት.

ወደ ክላሲክ አርክቴክቸር ለመቀየር ቢያንስ ቢያንስ በግልፅ መግለጽ አለቦት ServerMode в firebird.confየገጽ መሸጎጫውን እዚያ ይቀንሱ (ከ2 ኪ.ሜ ያልበለጠ)፣ የመደርደር ቋቱን ይቀንሱ (የሁሉም ዓይነቶች አጠቃላይ የሚፈቀደው መጠን በከፍተኛው የግንኙነት ብዛት ይከፈላል) ፣ ክፍሉን ያሰናክሉ እና ያቁሙ። firebird-superserver፣ ክፍሉን አንቃ እና አስጀምር firebird-classic.socket.

በFirebird 3.0 ውስጥ እጅግ በጣም ጥሩውን ስነ-ህንፃ መጠቀም ብዙም ትርጉም አይሰጥም፡ “ተዓማኒነት” እንደ ሱፐርሰርቨር እና ተመሳሳይ አጠቃላይ የመለየት ቋት ነው። ምንም የጋራ ገጽ መሸጎጫ የለም እና የተለያዩ ግንኙነቶችን እርስ በርስ ለማመሳሰል "ኪሳራዎች" ከጥንታዊው ጋር ተመሳሳይ ናቸው.

በFirebird 3.0 ውስጥ አንዳንድ መለኪያዎች (የገጽ መሸጎጫ ፣ የመቆለፊያ ፋይል መጠኖች ፣ የሃሽ ጠረጴዛዎች እና ሌሎች) ሊዘጋጁ እንደሚችሉ መታወስ አለበት ። databases.conf ለእያንዳንዱ የውሂብ ጎታ በተናጠል. ለሱፐርሰርቨር ለምሳሌ ትንሽ እሴት ማዘጋጀት ጠቃሚ ነው DefaultDbCachePages в firebird.conf እና ለሚፈለጉት የውሂብ ጎታዎች የግለሰብ ገጽ መሸጎጫዎችን ይጫኑ databases.conf.

በአስተያየቶቹ ውስጥ ስለ ጽሑፉ ጥያቄዎችን ይጠይቁ ወይም ለድጋፍ አድራሻችን ደብዳቤ ይጻፉ [ኢሜል የተጠበቀ].

ምንጭ: hab.com

አስተያየት ያክሉ