Firebird-ийн хувилбар бүр өөрийн гэсэн мэдээллийн сангийн дискний бүтцийн форматтай байдаг - O(n)D(isk)S(structure). 2.5-ыг багтаасан хувилбар хүртэл Firebird хөдөлгүүр нь өмнөх хувилбаруудын ODS-тэй ажиллах боломжтой, өөрөөр хэлбэл хуучин хувилбаруудын мэдээллийн санг шинэ хувилбараар нээж, нийцтэй горимд ажилладаг байсан боловч Firebird 3.0 хөдөлгүүр нь зөвхөн өөрийн ODS хувилбарын мэдээллийн сантай ажилладаг. 12.0.
3.0 руу шилжихийн тулд 2.5-аас өгөгдлийн санг нөөцлөх/сэргээх замаар шинэ формат руу хөрвүүлэх шаардлагатай. Мэдээжийн хэрэг, бид мэдээллийн баазыг хөрвүүлэхээр өмнө нь бэлтгэсэн гэж үздэг - i.e. мета өгөгдөл болон асуулга Firebird 3.0-тэй нийцэж байгаа эсэхийг шалгасан.
Хэрэв та стандарт аргыг дагавал энэ нь 2.5 хувилбар руу нөөцлөх, дараа нь 3.0 хувилбарыг суулгаж, сэргээх гэсэн үг юм. Хэрэв танд хангалттай цаг байгаа бол энэ процедурыг хүлээн авах боломжтой боловч том мэдээллийн санг шилжүүлэх эсвэл хэдэн арван мэдээллийн санг нэг дор шилжүүлэх үед цаг хугацаа чухал бөгөөд та урсгалын хөрвүүлэлтийг ашиглаж болох бөгөөд энэ нь 30-40% илүү хурдан байдаг. Үүнийг яг яаж хийх вэ (доор) Windows ба доор Linux), зүсэлтийн доор уншина уу.
Ерөнхий санаа бол бид ажлыг хурдасгахын тулд дамжуулах хоолойг ашиглах явдал юм.
gbak -b … база25 stdout | gbak -c … stdin база302.5-аас Gbak нь шугаман форматаар нөөцлөлт үүсгэж, stdout руу илгээдэг бөгөөд тэр даруй stdin-ээр дамжуулан 3.0-аас gbak-ыг авч, шинэ мэдээллийн сан үүсгэдэг.
Сүлжээнд нэвтрэх (localhost-ээр ч) үйл явцыг ихээхэн удаашруулдаг тул дотоод (файл) хандалтын аргыг ашиглан ийм дамжуулах хоолойг зохион байгуулах нь зайлшгүй юм.
Доор бид дэлгэрэнгүй мэдээллийг авч үзье Windows и Linux.
Windows
Тохиолдолд Windows Хамгийн хялбар арга бол Firebird-ийн бүрэн бие даасан бүтцийг үүсгэх явдал юм. Үүнийг хийхийн тулд , fbemded.dll-ийн нэрийг fbclient.dll болгон өөрчилж, архиваас "ердийн" 2.5 хэрэгсэл gbak.exe болон (заавал биш) isql.exe-г нэмнэ үү.
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 эхэлнэ. барилгын индексүүд.
3.0-д индекс үүсгэх үе шатыг хурдасгахын тулд TempCacheLimit параметрийн хэмжээг ~40% RAM хүртэл нэмэгдүүлэхийг зөвлөж байна (хэрэв энэ нь зориулалтын сервер бол мэдээж хэрэг).
Жишээлбэл, хэрэв сервер 16 ГБ RAM-тай бол та тохируулж болно
TempCacheLimit=6GМэдээжийн хэрэг, энэ утгыг зөвхөн 64 битийн Firebird 3-д тохируулж болно, учир нь аливаа 32 битийн процесс нь 2 гигабайтаас илүү санах ойг хуваарилах боломжгүй юм.
2.5-ийн хувьд энэ параметрийг өөрчлөх шаардлагагүй - энэ нь ямар ч байсан 2 гигабайтаас их байж болохгүй, нөөцлөх үед ч энэ нь хурдад нөлөөлдөггүй.
Үйлдлийг гүйцэтгэхийн өмнө та мэдээллийн сангийн толгой хэсэгт байгаа хуудасны кэшийг 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-style") ашигладаг ба "малгай" ("^" тэмдэгт) нь урт командыг бичихэд тохиромжтой мөрний тэжээлийн тэмдэгтээс зайлсхийдэг. -st(atus) сонголт нь Firebird 2.5.8 дээр гарч ирсэн бөгөөд gbak процессын ажиллах хугацааны талаарх мэдээллийг бүртгэх боломжийг олгодог (баримт бичигт байгаа дэлгэрэнгүй).
Linux
дээр Linux Firebird 3 нь Tommath номын сангаас хамаарна. CentOS (RHEL) энэ номын сан нь epel репозиторт байрладаг Ubuntu (Debian) системчилсэн.
Хэрэгтэй CentOS Та эхлээд epel репозиторыг холбох хэрэгтэй бөгөөд зөвхөн дараа нь л үүнийг хийх хэрэгтэй
yum install libtommathUbuntu нэмэлт репозиторуудыг холбох шаардлагагүй, гэхдээ дотор нь 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-д суурилсан тархалтууд өөр байж болно.
Хоёрдахь асуудал нь Firebird 3.0.1 хүртэл серверийн хоёр өөр хувилбарыг суулгах хялбар арга байгаагүйтэй холбоотой юм. Бид "шаардлагатай угтвар бүхий эх сурвалжаас эмхэтгэх" сонголтыг харьцангуй хөдөлмөрийн эрч хүч ихтэй тул авч үзэхгүй.
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-ийг бүрэн зогсоох хэрэгтэй.
3.0 дээр firebird.conf файлд Linux MaxUnflushed параметрүүдийг тохируулах шаардлагагүй (тэд зөвхөн дараах дээр ажилладаг) Windows) мөн Firebird 2.5 тохиргоог өөрчилнө үү.
Линукс дээр 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-ийг цэвэр суулгацыг хийх хэрэгтэй - хамгийн сайн нь хадгалах сангуудаар биш стандарт tar.gz суулгагчаас, учир нь Хадгалах газар дахь хувилбар хоцорч магадгүй.
Мөн BD-г сэргээсний дараа Linux мөн шинэ мэдээллийн сан нь Firebird хэрэглэгчийн эзэмшилд байгаа эсэхийг баталгаажуулахын тулд дахин суулгалтыг шалгах шаардлагатай.
Хэрэв тийм биш бол үүнийг засах шаардлагатай болно
chown firebird.firebird databaseҮр дүн
Цаг хугацаа, дискний зайг хэмнэхээс гадна стрим хөрвүүлэх нь бас нэг чухал давуу талтай - мэдээллийн сангийн хөрвүүлэлт нь одоо байгаа Firebird 2.5-ийг устгахгүйгээр хийгддэг бөгөөд энэ нь хөрвүүлэлт амжилтгүй болсон тохиолдолд (ихэвчлэн зай байхгүй эсвэл зай байхгүйгээс болж) буцаахад хялбар болгодог. шилжих явцад гэнэтийн дахин ачаалах).
Цаг хэмнэж байгаа нь "сонгодог" хөрвүүлэлт нь "нөөцлөх хугацаа" дээр "сэргээх хугацаа"-тай холбоотой юм. Сэргээх нь нөөц файлаас өгөгдлийг унших, индекс үүсгэх гэсэн хоёр хэсгээс бүрдэнэ.
Тасралтгүй хөрвүүлснээр нийт хугацааг "нөөцлөх хугацаа дээр таваас арван хувь" болон "индекс барих хугацаа" гэж авна.
Тодорхой үр дүн нь өгөгдлийн сангийн бүтцээс хамаардаг боловч дунджаар сэргээх хугацаа нь нөөцлөх хугацаанаас хоёр дахин их байна. Тиймээс хэрэв нөөц цагийг нэгж болгон авч үзвэл "сонгодог хөрвүүлэлт" нь цаг хугацааны гурван нэгж, тасралтгүй хувиргалт нь цаг хугацааны хоёр нэгж юм. TempCacheLimit-ийг нэмэгдүүлэх нь цаг хугацааг багасгахад тусална.
Ерөнхийдөө практик дээр шугаман хөрвүүлэлт нь нөөцлөх, сэргээхэд шаардагдах хугацааны 30-40% -ийг хэмнэх боломжийг олгодог.
Асуулт?
Бүх асуултыг сэтгэгдэл дээр бичнэ үү, эсвэл аргачлалын зохиогч, энэ нийтлэлийн хамтран зохиогч - iBase-ийн тэргүүлэх системийн инженер Василий Сидоров, ibase ru дахь bs-д илгээнэ үү.
Зөвхөн бүртгэлтэй хэрэглэгчид санал асуулгад оролцох боломжтой. , гуйя.
Та Firebird-ийн ямар хувилбарыг ашиглаж байна вэ?
Firebird 3.x
Firebird 2.5
Firebird 2.1
Firebird 2.0, 1.5 эсвэл 1.0
16 хэрэглэгч санал өгсөн. 1 хэрэглэгч түдгэлзсэн.
Эх сурвалж: www.habr.com
