Firebird ã®åããŒãžã§ã³ã«ã¯ãç¬èªã®ããŒãžã§ã³ã®ããŒã¿ããŒã¹ ãã£ã¹ã¯æ§é 圢åŒãO(n)D(isk)S(tructure) ããããŸãã ããŒãžã§ã³ 2.5 ãŸã§ã¯ãFirebird ãšã³ãžã³ã¯ä»¥åã®ããŒãžã§ã³ã® ODS ã§åäœã§ããŸãããã€ãŸããå€ãããŒãžã§ã³ã®ããŒã¿ããŒã¹ã¯æ°ããããŒãžã§ã³ã§éãããäºæã¢ãŒãã§åäœããŸããããFirebird 3.0 ãšã³ãžã³ã¯ç¬èªã® ODS ããŒãžã§ã³ã®ããŒã¿ããŒã¹ã§ã®ã¿åäœããŸããã 12.0ã
3.0 ã«ç§»è¡ããã«ã¯ãããã¯ã¢ãã/埩å ã«ãã£ãŠ 2.5 ã®ããŒã¿ããŒã¹ãæ°ãã圢åŒã«å€æããå¿ èŠããããŸãã ãã¡ãããããŒã¿ããŒã¹ã¯äºåã«å€æã®æºåãã§ããŠããããšãåæãšããŠããŸãã ã¡ã¿ããŒã¿ãšã¯ãšãªã¯ Firebird 3.0 ãšã®äºææ§ããã§ãã¯ãããŠããŸãã
æšæºçãªã¢ãããŒãã«åŸãå ŽåãããŒãžã§ã³ 2.5 ã§ããã¯ã¢ãããäœæãããã®åŸ 3.0 ãã€ã³ã¹ããŒã«ããŠåŸ©å
ããå¿
èŠãããããšãæå³ããŸãã ååãªæéãããã°ãã®ãããªæé ã§ãåé¡ãããŸãããã倧èŠæš¡ãªããŒã¿ããŒã¹ã移è¡ããå Žåããæ°åã®ããŒã¿ããŒã¹ãåæã«ç§»è¡ããå Žåãªã©ãæéã足ããªããªã£ãå Žåã¯ãã¹ããªãŒãã³ã°å€æã䜿çšãããš 30 ïœ 40% é«éã«ãªããŸãã ãããæ£ç¢ºã«è¡ãæ¹æ³ (Windows ããã³ Linux ã§) ã¯ãã«ããã®äžããèªã¿ãã ããã
äžè¬çãªèãæ¹ã¯ããã€ãã©ã€ã³ã䜿çšããŠåŠçãé«éåãããšããããšã§ãã
gbak -b ⊠база25 stdout | gbak -c ⊠stdin база30
2.5 ã® Gbak ã¯ãªãã¢åœ¢åŒã§ããã¯ã¢ãããçæããããã stdout ã«éä¿¡ããŸããããã«ãããstdin çµç±ã§ 3.0 ãã gbak ãããã«ååŸãããæ°ããããŒã¿ããŒã¹ãäœæãããŸãã
ãããã¯ãŒã¯ ã¢ã¯ã»ã¹ (localhost çµç±ã§ãã£ãŠã) ã¯ããã»ã¹ã®é床ãå€§å¹ ã«äœäžãããããããã®ãããªãã€ãã©ã€ã³ã¯ããŒã«ã« (ãã¡ã€ã«) ã¢ã¯ã»ã¹æ¹æ³ã§ç·šæããå¿ èŠããããŸãã
以äžã§ Windows ãš Linux ã«ã€ããŠè©³ãã説æããŸãã
Windows
Windows ã®å Žåãæãç°¡åãªæ¹æ³ã¯ãFirebird ã®å®å
šã«ã¹ã¿ã³ãã¢ãã³ ãã«ããäœæããããšã§ãã ãã®ããã«ç§ãã¡ã¯åã
Firebird 3.0 ã®çšé
æãæå°éã®ããŒãžã§ã³ (ã¿ãŒã²ãã ã·ã¹ãã ã« VS2008/VS2010 ã©ã³ã¿ã€ã ã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããå¿ èŠããªã) ã«ã¯ã次ã®ãã¡ã€ã«ãå«ãŸããŠããŸãã
25/gbak.exe
25/fbclient.dll
25/firebird.conf
25/firebird.log
25/firebird.msg
25/ib_util.dll
25/icudt30.dll
25/icuin30.dll
25/icuuc30.dll
25/Microsoft.VC80.CRT.manifest
25/msvcp80.dll
25/msvcr80.dll
30/fbclient.dll
30/firebird.conf
30/firebird.msg
30/gbak.exe
30/ib_util.dll
30/icudt52.dll
30/icudt52l.dat
30/icuin52.dll
30/icuuc52.dll
30/msvcp100.dll
30/msvcr100.dll
30/intl/fbintl.conf
30/intl/fbintl.dll
30/plugins/engine12.dll
çµéšè±å¯ãªç®¡çè ã¯ã2.5 ã« intl/fbintl.dll ããã³ intl/fbintl.conf ãã¡ã€ã«ãå«ãŸããŠããªãããšã«æ°ã¥ããããããŸããã gbak ã¯æ¥ç¶æåã»ããã䜿çšãããæåã»ããéã§ããŒã¿ãå€æããªããããããã¯äºå®ã§ãããFirebird 3.0 ã®ãåä¿¡ãåŽã§ã¯ãã€ã³ããã¯ã¹ãäœæãããšãã«ãããã®ãã¡ã€ã«ãå¿ èŠã«ãªããŸãã
Firebird 3.0 ã§ã¯ãfirebird.conf ã«ä»¥äžãè¿œå ããããšããå§ãããŸãã
MaxUnflushedWrites = -1
MaxUnflushedWriteTime = -1
ãŸãã2.5ãš3.0ã§ã¯ç°ãªãIpcNameå€ãèšå®ããããšãæãŸããã§ãã
firebird.conf ã®ä»ã®ãã©ã¡ãŒã¿ã®å€ãéžæãããšãã¯ãåçŽãªèæ ®äºé ããé²ããŸããããŒã¿è»¢éã®æ®µéã§ãgbak 㯠2.5 ã€ã®ããã»ã¹ã§ 3.0 ãå®è¡ããå¥ã®ããã»ã¹ã§ 2.5 ãå®è¡ããŸãããã®åŸã3.0 ãçµäºããXNUMX ããã«ããéå§ããŸããã€ã³ããã¯ã¹ã
3.0 ã§ã€ã³ããã¯ã¹æ§ç¯ãã§ãŒãºãé«éåããã«ã¯ãTempCacheLimit ãã©ã¡ãŒã¿ã®ãµã€ãºã RAM ã®æ倧 40% ã«å¢ããããšããå§ãããŸã (ãã¡ãããå°çšãµãŒããŒã®å Žå)ã
ããšãã°ããµãŒããŒã« 16 GB ã® RAM ãããå Žåã次ã®ããã«å ¥åã§ããŸãã
TempCacheLimit=6G
ãã¡ããã64 ããã ããã»ã¹ã§ã¯ 3 GB ãè¶ ããã¡ã¢ãªãå²ãåœãŠãããšãã§ããªãããããã®å€ã¯ 32 ããã Firebird 2 ã«ã®ã¿èšå®ã§ããŸãã
2.5 ã§ã¯ããã®ãã©ã¡ãŒã¿ãå€æŽããå¿ èŠã¯ãããŸããããããã«ããŠã 2 GB ãè¶ ããããšã¯ã§ãããããã¯ã¢ããäžã®é床ã«ã¯åœ±é¿ããŸããã
æäœãå®è¡ããåã«ãããŒã¿ããŒã¹ ããããŒã®ããŒãž ãã£ãã·ã¥ã 0 ã«èšå®ãããŠããããšã確èªããå¿
èŠããããŸã (ã³ãã³ã gstat -h databasename
ãããŒãžãããã¡è¡ãåç
§ããŠãã ãã)ã
ãã£ãã·ã¥ãããŒã¿ããŒã¹ ããããŒã§æ瀺çã«èšå®ãããŠããå Žåãfirebird.conf (ããã³ 3.0 ã§ã¯ databases.conf) ã®å€ãäžæžããããå€ãäžé©åã«å€§ããå Žåã¯éå°ãªã¡ã¢ãªæ¶è²»ãšã¹ã¯ãããçºçããå¯èœæ§ããããŸãã
次ã«ããã¡ã€ã«ãã¿ãŒã²ãã ã·ã¹ãã ã«ã³ããŒããŸãã
å€æã¯ããã·ã¹ãã ãFirebird 2.5 ãµãŒãã¹ãåæ¢ããåŸãããŒã«ã«ç®¡çè ãžã®ææ Œãããæš©éãæã€ã³ãã³ã ã©ã€ã³ã§å®è¡ãããŸã (äŸ)ã
set ISC_USER=влаЎелеÑ
"25/gbak" -z -b -g -v -st t -y 25.log база25 stdout|^
"30/gbak" -z -c -v -st t -y 30.log stdin база30
ãã®äŸã§ã¯ãåŒçšç¬Šã§ãã¹ã©ãã·ã¥ãã䜿çšã (æå¹ãªãunix ã¹ã¿ã€ã«ã)ãããããã (ã^ãæå) ã§æ¹è¡æåããšã¹ã±ãŒãããŸããããã¯ãé·ãã³ãã³ããå ¥åãããšãã«äŸ¿å©ã§ãã -st(atus) ãªãã·ã§ã³ã¯ Firebird 2.5.8 ã§ç»å Žããgbak ããã»ã¹ã®å®è¡æéã«é¢ããããŒã¿ããã°ã«èšé²ã§ããããã«ããŸã (詳现ã«ã€ããŠã¯ãããã¥ã¡ã³ããåç §ããŠãã ãã)ã
Linux
Linux ã§ã¯ãFirebird 3 㯠tomath ã©ã€ãã©ãªã«äŸåããŸãã CentOS (RHEL) ã§ã¯ããã®ã©ã€ãã©ãªã¯ epel ãªããžããªã«ãããUbuntu (Debian) ã§ã¯ã·ã¹ãã ãªããžããªã«ãããŸãã
CentOS ã®å Žåã¯ããŸã epel ãªããžããªã«æ¥ç¶ããŠããã次ã®ããšãè¡ãå¿ èŠããããŸãã
yum install libtommath
Ubuntu ã«ã¯è¿œå ã®ãªããžããªãå«ããå¿ èŠã¯ãããŸããããUbuntu 16 ãš Ubuntu 18 ã§ã¯ç°ãªãããŒãžã§ã³ã®ããã±ãŒãž (ãããã libtommath0 ãš libtommath1) ãã€ã³ã¹ããŒã«ãããŸãã
Firebird 3.0 㯠tommath.so.0 ãæ€çŽ¢ããUbuntu 18 ã®å Žåã¯ããã« tommath.so.0 ãã tommath.so.1 ãžã®ãªã³ã¯ (ã·ã³ããªãã¯ãªã³ã¯) ãäœæããå¿ èŠããããŸãã ãããè¡ãã«ã¯ããŸã tommath.so.1 ãèŠã€ããå¿ èŠããããŸãã
Ubuntuã§æ€çŽ¢ããããã¹ - /usr/lib/x86_64-linux-gnu/
ã§ãããä»ã® Debian ããŒã¹ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯ç°ãªãå ŽåããããŸãã
3.0.1 çªç®ã®åé¡ã¯ãFirebird XNUMX ãŸã§ã¯ãXNUMX ã€ã®ç°ãªããµãŒã㌠ããŒãžã§ã³ãã€ã³ã¹ããŒã«ããç°¡åãªæ¹æ³ããªãã£ããšããäºå®ã«é¢é£ããŠããŸãã ãå¿ èŠãªãã¬ãã£ãã¯ã¹ã䜿çšããŠãœãŒã¹ããã³ã³ãã€ã«ããããªãã·ã§ã³ã¯æ¯èŒçè€éã§ãããããèæ ®ããŸããã
Firebird 3.0.2以éãå®è£
ãããŠããå Žå
tommath ã©ã€ãã©ãªãšãå¿ èŠã«å¿ã㊠tommath.so.0 ã®ã·ã³ããªãã¯ãªã³ã¯ãã·ã¹ãã ã«è¿œå ãããŠãããšä»®å®ãããšãçŸåšã® (ãã®èšäºã®å·çæç¹ã§) Firebird 3.0.4 ãã£ã¹ããªãã¥ãŒã·ã§ã³ã /opt ãªã©ã«ã€ã³ã¹ããŒã«ã§ããŸãã /fb3:
./install.sh -path /opt/fb3
ãã®åŸãFirebird ã·ã¹ãã ãµãŒãã¹ãåæ¢ããã¹ããªãŒãã³ã°å€æãéå§ã§ããŸãã
Firebird ãåæ¢ãããšãã¯ãã¯ã©ã·ã㯠ã¢ãŒãã® Firebid 2.5 ããã»ã¹ã¯éåžžãxinetd ã«ãã£ãŠéå§ãããããšã«æ³šæããŠãã ããããããã£ãŠãxinetd ã® Firebird ãµãŒãã¹ãç¡å¹ã«ããããxinetd ãå®å šã«åæ¢ããå¿ èŠããããŸãã
Linux äžã® 3.0 ã® firebird.conf ã§ã¯ãMaxUnflushed ãã©ã¡ãŒã¿ãèšå®ããã (Windows ã§ã®ã¿æ©èœããŸã)ãFirebird 2.5 ã®èšå®ãå€æŽãããããå¿ èŠã¯ãããŸããã
Linux ã§ã¯ãFirebird 2.5 ã®ããŒã«ã« (ãã¡ã€ã«) ã¢ã¯ã»ã¹ã¯ Windows ã®çµã¿èŸŒã¿ããŒãžã§ã³ãšåçã§ã¯ãããŸããã2.5 ãµãŒããŒã¯ gbak ããã»ã¹ (ãããã¯ãŒã¯éšåãªã) ã§åäœããŸãããã¢ã¯ã»ã¹æš©ã¯ãŠãŒã¶ãŒ ããŒã¹ã«å¯ŸããŠãã§ãã¯ãããŸãããã°ã€ã³ã ãã§ãªããã¹ã¯ãŒããå¿ èŠãšãªããŸãã
export ISC_USER=username ISC_PASSWORD=password
/opt/firebird/bin/gbak -b ⊠база25 stdout
|/opt/fb3/bin/gbak -c ⊠stdin база30
å€æãæåãããããŸããè¿œå ãã® Firebird 3.0 ãã¢ã³ã€ã³ã¹ããŒã«ãã次ã«ãã¡ã€ã³ãã® Firebird 2.5 ãã¢ã³ã€ã³ã¹ããŒã«ãããã®åŸ Firebird 2.5 ã®ã¯ãªãŒã³ ã€ã³ã¹ããŒã«ãå®è¡ããå¿ èŠããããŸããããã¯ããªããžããªã ããã§ãã ãªããžããªå ã®ããŒãžã§ã³ãé ããŠããå¯èœæ§ããããŸãã
ãŸããLinux äžã§ããŒã¿ããŒã¹ã埩å ããŠåã€ã³ã¹ããŒã«ããåŸãæ°ããããŒã¿ããŒã¹ã Firebird ãŠãŒã¶ãŒã«ãã£ãŠææãããŠããããšã確èªããå¿ èŠããããŸãã
ããã§ãªãå Žåã¯ãä¿®æ£ããå¿ èŠããããŸãã
chown firebird.firebird database
åèš
æéãšãã£ã¹ã¯å®¹éã®ç¯çŽã«å ããŠãã¹ããªãŒãã³ã°å€æã«ã¯ãã 2.5 ã€ã®éèŠãªå©ç¹ããããŸããæ¢åã® Firebird XNUMX ãåé€ããã«ããŒã¿ããŒã¹å€æãè¡ããããããå€æã倱æããå Žå (ã»ãšãã©ã®å Žåã容éäžè¶³ã移è¡äžã®äºæããªãåèµ·åãåå ã§) ã®ããŒã«ããã¯ãå€§å¹ ã«ç°¡çŽ åãããŸããããã»ã¹ïŒã
æéã®ç¯çŽã¯ããã¯ã©ã·ãã¯ãå€æããããã¯ã¢ããæéãã«ã埩å æéããå ãããã®ã§ããããã§ãã ãªã«ããªã¯ãããã¯ã¢ãã ãã¡ã€ã«ããã®ããŒã¿ã®èªã¿åããšã€ã³ããã¯ã¹ã®æ§ç¯ã® XNUMX ã€ã®éšåã§æ§æãããŸãã
ã¹ããªãŒãã³ã°å€æã®å Žåãåèšæéã¯ãããã¯ã¢ããæé + XNUMX ïœ XNUMX%ããšãã€ã³ããã¯ã¹æ§ç¯æéããšããŠæ±ããããŸãã
å ·äœçãªçµæã¯ããŒââã¿ããŒã¹ã®æ§é ã«ãã£ãŠç°ãªããŸãããå¹³åãããšããªã«ããªæéã¯ããã¯ã¢ããæéã®çŽ XNUMX åã«ãªããŸãã ãããã£ãŠãããã¯ã¢ããæéãåäœãšãããšããã¯ã©ã·ãã¯å€æã㯠XNUMX åäœæéãã¹ããªãŒãã³ã°ã¯ XNUMX åäœæéãšãªããŸãã TempCacheLimit ãå¢ãããšãæéãããã«ççž®ã§ããŸãã
äžè¬ã«ãå®éã®ã¹ããªãŒãã³ã°å€æã«ããã代æ¿ããã¯ã¢ãããšåŸ©å ã«ããââãæéã 30 ïœ 40% ç¯çŽã§ããŸãã
質åã¯ïŒ
ãã¹ãŠã®è³ªåãã³ã¡ã³ãã«èšå ¥ããããæ¹æ³è«ã®èè ã§ãããã®èšäºã®å ±èè ã§ãã Vasily Sidorov (iBase ru ã® bs ã® iBase ãªãŒãã£ã³ã° ã·ã¹ãã ãšã³ãžãã¢) ã«éä¿¡ããŠãã ããã
ç»é²ãŠãŒã¶ãŒã®ã¿ãã¢ã³ã±ãŒãã«åå ã§ããŸãã
Firebird ã®ã©ã®ããŒãžã§ã³ã䜿çšããŠããŸãã?
-
ãã¡ã€ã¢ããŒã 3.x
-
ãã¡ã€ã¢ããŒã2.5
-
ãã¡ã€ã¢ããŒã2.1
-
ãã¡ã€ã¢ããŒã 2.0ã1.5ããŸã㯠1.0
16 人ã®ãŠãŒã¶ãŒãæ祚ããŸããã 1 ãŠãŒã¶ãŒãæ£æš©ããŸããã
åºæïŒ habr.com