በዚህ ጽሑፍ ውስጥ የFirebird DBMS ስሪት 3.0ን በአዲስ ሊኑክስ ስርጭቶች ላይ በጥሩ ሁኔታ ለመጫን የሚያስፈልጉትን አነስተኛ የእርምጃዎች ስብስብ እንገልፃለን። CentOS 8 እና Ubuntu 19 ለአብነት ተመርጠዋል።
የFirebird ስርጭትን ወደ ዒላማው ስርዓት "ለማድረስ" በዚህ መመሪያ ውስጥ የ tar.gz ማህደርን የማውረድ አማራጭ ከኦፊሴላዊው የፕሮጀክት ድህረ ገጽ አገናኝ በመጠቀም ይመረጣል (
በጣም ትዕግስት ለሌላቸው፣ በቀጥታ ወደ ጦርነት ይሂዱ፡-
ፈጣን ጭነት
ፋይሉን በማስተካከል ላይ /etc/sysctl.conf
መስመሩን በማከል፡-
vm.max_map_count = 256000
ፋይሉን ያስቀምጡ እና ቅንብሩን ይተግብሩ:
sudo sysctl -p /etc/sysctl.conf
ተጨማሪ መመሪያዎች ለ CentOS 8 እና Ubuntu 19 ይለያያሉ ፣ ግን ССЫЛКА
и КАТАЛОГ
ስርጭቱን ለማውረድ እና በማውረድ ሂደት ስርጭቱ የሚከፈትበትን ማውጫ ለማውረድ ከኦፊሴላዊው የፋየርበርድ ፕሮጀክት ድህረ ገጽ አገናኝ ያመልክቱ።
በአሁኑ ጊዜ (ማርች 2020) የአሁኑ የተለቀቀው ፋየርበርድ 3.0.5 ነው (
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