Firebird 2.5 தரவுத்தளங்களை ODS12 வடிவத்திற்கு ஸ்ட்ரீமிங் மாற்றுதல் (Firebird 3.0)

ஃபயர்பேர்டின் ஒவ்வொரு பதிப்பும் அதன் சொந்த தரவுத்தள வட்டு கட்டமைப்பு வடிவமைப்பைக் கொண்டுள்ளது, 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% வேகமானது. இதை எப்படி சரியாக செய்வது (விண்டோஸின் கீழ் மற்றும் லினக்ஸின் கீழ்), வெட்டு கீழ் படிக்கவும்.

விஷயங்களை விரைவுபடுத்த பைப்லைனைப் பயன்படுத்துவோம் என்பது பொதுவான கருத்து:

gbak -b … база25 stdout | gbak -c … stdin база30

Gbak இலிருந்து 2.5 ஒரு நேர்கோட்டு வடிவத்தில் காப்புப்பிரதியை உருவாக்கி அதை stdout க்கு அனுப்புகிறது, இது உடனடியாக 3.0 இலிருந்து stdin வழியாக gbak ஐ எடுத்து புதிய தரவுத்தளத்தை உருவாக்குகிறது.

நெட்வொர்க் அணுகல் (லோக்கல் ஹோஸ்ட் மூலமாகவும்) செயல்முறையை கணிசமாகக் குறைக்கும் என்பதால், உள்ளூர் (கோப்பு) அணுகல் முறையுடன் அத்தகைய பைப்லைனை ஒழுங்கமைக்க வேண்டியது அவசியம்.

கீழே உள்ள விண்டோஸ் மற்றும் லினக்ஸின் விவரங்களைப் பார்க்கிறோம்.

விண்டோஸ்

விண்டோஸைப் பொறுத்தவரை, ஃபயர்பேர்டை முற்றிலும் தனித்தனியாக உருவாக்குவதே எளிதான வழி. இதற்காக நாங்கள் எடுத்துக்கொள்கிறோம் embed-archive Firebird 2.5, 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.conf இல் Firebird 3.0 சேர்க்க பரிந்துரைக்கப்படுகிறது:

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 ஜிபி ரேம் இருந்தால், நீங்கள் வைக்கலாம்

TempCacheLimit=6G

நிச்சயமாக, இந்த மதிப்பை 64-பிட் ஃபயர்பேர்ட் 3 க்கு மட்டுமே அமைக்க முடியும், ஏனெனில் எந்த 32-பிட் செயல்முறையும் 2 ஜிகாபைட்களுக்கு மேல் நினைவகத்தை ஒதுக்க முடியாது.

2.5 இல், இந்த அளவுருவை மாற்ற வேண்டிய அவசியமில்லை - இது எப்படியும் 2 ஜிகாபைட்களுக்கு மேல் இருக்க முடியாது, மேலும் இது காப்புப்பிரதியின் போது வேகத்தை பாதிக்காது.

செயல்பாட்டைச் செய்வதற்கு முன், தரவுத்தள தலைப்பில் உள்ள பக்க தற்காலிக சேமிப்பு 0 (கட்டளை) என அமைக்கப்பட்டுள்ளதா என்பதை நீங்கள் சரிபார்க்க வேண்டும். gstat -h databasename, பக்க இடையக வரியைப் பார்க்கவும்).

தரவுத்தள தலைப்பில் கேச் வெளிப்படையாக அமைக்கப்பட்டால், அது firebird.conf (மற்றும் 3.0 இல் databases.conf) இலிருந்து மதிப்புகளை மேலெழுதுகிறது, மேலும் போதுமான அளவு பெரிய மதிப்புகள் இல்லாவிட்டால், அது அதிகப்படியான நினைவக நுகர்வு மற்றும் பரிமாற்றத்திற்கு வழிவகுக்கும்.

அடுத்து, கோப்புகளை இலக்கு அமைப்புக்கு நகலெடுக்கவும்.

உள்ளூர் நிர்வாகிக்கு (எடுத்துக்காட்டு) உயர்ந்த உரிமைகளுடன் கட்டளை வரியில், "சிஸ்டம்" ஃபயர்பேர்ட் 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

இந்த உதாரணம் மேற்கோள்களில் "முன்னோக்கி சாய்வு" (செல்லுபடியாகும் "யூனிக்ஸ்-ஸ்டைல்") பயன்படுத்துகிறது, மேலும் "தொப்பி" ("^" எழுத்து) புதிய வரி எழுத்திலிருந்து தப்பிக்கிறது, இது நீண்ட கட்டளைகளைத் தட்டச்சு செய்யும் போது பயனுள்ளதாக இருக்கும். -st(atus) விருப்பம் Firebird 2.5.8 இல் தோன்றியது மற்றும் gbak செயல்முறை இயங்கும் நேரத்தைப் பற்றிய தரவைப் பதிவு செய்ய உங்களை அனுமதிக்கிறது (விவரங்களுக்கு, ஆவணத்தைப் பார்க்கவும்).

லினக்ஸ்

Linux இல் Firebird 3 டோமத் நூலகத்தைப் பொறுத்தது. CentOS (RHEL) இல் இந்த நூலகம் எபெல் களஞ்சியத்தில், உபுண்டுவில் (டெபியன்) கணினி களஞ்சியத்தில் அமைந்துள்ளது.

CentOS க்கு, நீங்கள் முதலில் எபல் களஞ்சியத்தை இணைக்க வேண்டும், பின்னர் மட்டுமே செய்ய வேண்டும்

yum install libtommath

உபுண்டு கூடுதல் களஞ்சியங்களைச் சேர்க்கத் தேவையில்லை, ஆனால் Ubuntu 16 மற்றும் Ubuntu 18 ஆகியவை முறையே libtommath0 மற்றும் libtommath1 தொகுப்புகளின் வெவ்வேறு பதிப்புகளை நிறுவுகின்றன.

Firebird 3.0 tommath.so.0 ஐ தேடுகிறது மற்றும் Ubuntu 18 க்கு tommath.so.0 இலிருந்து tommath.so.1 க்கு ஒரு இணைப்பை (symlink) உருவாக்க வேண்டும். இதைச் செய்ய, நீங்கள் முதலில் tommath.so.1 ஐக் கண்டுபிடிக்க வேண்டும்.

உபுண்டுவில் தேடிய பாதை - /usr/lib/x86_64-linux-gnu/, ஆனால் மற்ற டெபியன் அடிப்படையிலான விநியோகங்கள் வேறுபட்டிருக்கலாம்.

இரண்டாவது சிக்கல் Firebird 3.0.1 வரை, இரண்டு வெவ்வேறு சர்வர் பதிப்புகளை நிறுவ எளிதான வழி இல்லை என்ற உண்மையுடன் தொடர்புடையது. "மூலத்திலிருந்து தேவையான முன்னொட்டுடன் தொகுத்தல்" என்ற விருப்பத்தை அதன் ஒப்பீட்டு சிக்கலின் காரணமாக நாங்கள் கருத்தில் கொள்ளவில்லை.

Firebird 3.0.2 மற்றும் அதற்கு மேல் செயல்படுத்தப்பட்டது --enable-binreloc உடன் உருவாக்கவும் மற்றும் ஒரு தனி நிறுவி விருப்பம் (-பாதை பாதை).

tommath நூலகம் மற்றும், தேவைப்பட்டால், tommath.so.0 க்கான சிம்லிங்க் கணினியில் சேர்க்கப்பட்டுள்ளது என்று வைத்துக் கொண்டால், தற்போதைய (இதை எழுதும் போது) Firebird 3.0.4 விநியோகத்தை நீங்கள் நிறுவலாம், எடுத்துக்காட்டாக, /opt /fb3:

./install.sh -path /opt/fb3

அதன் பிறகு, நீங்கள் Firebird அமைப்பு சேவையை நிறுத்தி ஸ்ட்ரீமிங் மாற்றத்தைத் தொடங்கலாம்.

Firebird ஐ நிறுத்தும்போது, ​​Classic பயன்முறையில் Firebid 2.5 செயல்முறைகள் பொதுவாக xinetd ஆல் தொடங்கப்படும் என்பதை நினைவில் கொள்ளுங்கள் - எனவே நீங்கள் xinetd க்கான firebird சேவையை முடக்க வேண்டும் அல்லது xinetd ஐ முழுமையாக நிறுத்த வேண்டும்.

Linux இல் 3.0 க்கு firebird.conf இல், நீங்கள் MaxUnflushed அளவுருக்களை அமைக்க தேவையில்லை (அவை விண்டோஸில் மட்டுமே வேலை செய்யும்) மற்றும் 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 இன் சுத்தமான நிறுவலைச் செய்ய வேண்டும் - மேலும் இது வழக்கமான tar.gz நிறுவியிலிருந்து சிறந்தது. களஞ்சியங்கள், ஏனெனில். களஞ்சியங்களில் உள்ள பதிப்பு பின்தங்கியிருக்கலாம்.

மேலும், லினக்ஸில் தரவுத்தளத்தை மீட்டெடுத்து மீண்டும் நிறுவிய பிறகு, புதிய தரவுத்தளம் ஃபயர்பேர்ட் பயனருக்கு சொந்தமானது என்பதை நீங்கள் சரிபார்க்க வேண்டும்.

இது நடக்கவில்லை என்றால், அது சரி செய்யப்பட வேண்டும்.

chown firebird.firebird database

இதன் விளைவாக

நேரத்தையும் வட்டு இடத்தையும் சேமிப்பதோடு, ஸ்ட்ரீமிங் மாற்றமும் மற்றொரு முக்கியமான நன்மையைக் கொண்டுள்ளது - தற்போதுள்ள Firebird 2.5 ஐ நீக்காமல் தரவுத்தள மாற்றம் செய்யப்படுகிறது, இது தோல்வியுற்ற மாற்றத்தின் போது திரும்பப்பெறுவதை பெரிதும் எளிதாக்குகிறது (பெரும்பாலும் இடம் பற்றாக்குறை அல்லது இடம்பெயர்வின் போது எதிர்பாராத மறுதொடக்கம் காரணமாகும். செயல்முறை).

"கிளாசிக்" மாற்றமானது "காப்பு நேரம்" மற்றும் "நேரத்தை மீட்டெடுப்பது" என்பதன் காரணமாக நேர சேமிப்பு ஏற்படுகிறது. மீட்பு இரண்டு பகுதிகளைக் கொண்டுள்ளது: காப்புப் பிரதி கோப்பிலிருந்து தரவைப் படித்து ஒரு குறியீட்டை உருவாக்குதல்.

ஸ்ட்ரீமிங் மாற்றத்துடன், மொத்த நேரம் "காப்பு நேரம் மற்றும் ஐந்து முதல் பத்து சதவிகிதம்" மற்றும் "குறியீட்டு உருவாக்க நேரம்" என பெறப்படுகிறது.

குறிப்பிட்ட முடிவுகள் தரவுத்தளத்தின் கட்டமைப்பைப் பொறுத்தது, ஆனால் சராசரியாக, மீட்பு நேரம் காப்புப்பிரதி நேரத்தை விட தோராயமாக இரண்டு மடங்கு ஆகும். எனவே, காப்புப் பிரதி நேரத்தை ஒரு யூனிட்டாக எடுத்துக் கொண்டால், “கிளாசிக் கன்வெர்ஷன்” என்பது மூன்று யூனிட் நேரம், ஸ்ட்ரீமிங் என்பது இரண்டு யூனிட் நேரம். TempCacheLimit ஐ அதிகரிப்பது நேரத்தை மேலும் குறைக்க உதவுகிறது.

பொதுவாக, நடைமுறையில் ஸ்ட்ரீமிங் மாற்றமானது, மாற்று காப்பு மற்றும் மீட்டமைப்பின் 30-40% நேரத்தைச் சேமிக்க உங்களை அனுமதிக்கிறது.

கேள்விகள்?

தயவு செய்து அனைத்து கேள்விகளையும் கருத்துகளில் எழுதவும் அல்லது இந்த கட்டுரையின் வழிமுறை மற்றும் இணை ஆசிரியருக்கு அனுப்பவும் - Vasily Sidorov, iBase Leading System Engineer, bs at ibase ru.

பதிவு செய்த பயனர்கள் மட்டுமே கணக்கெடுப்பில் பங்கேற்க முடியும். உள்நுழையவும், தயவு செய்து.

Firebird இன் எந்தப் பதிப்பைப் பயன்படுத்துகிறீர்கள்?

  • ஃபயர்பேர்ட் 3.x

  • ஃபயர்பேர்ட் 2.5

  • ஃபயர்பேர்ட் 2.1

  • ஃபயர்பேர்ட் 2.0, 1.5 அல்லது 1.0

16 பயனர்கள் வாக்களித்தனர். 1 பயனர் வாக்களிக்கவில்லை.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்