د Firebird 2.5 ډیټابیسونو تبادله ODS12 بڼه ته (Firebird 3.0)

د Firebird هره نسخه د ډیټابیس ډیسک جوړښت بڼه خپله نسخه لري، O(n)D(isk)S(tructure). تر 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٪ ګړندی دی. دا څنګه په سمه توګه ترسره کړئ (د وینډوز لاندې او د لینکس لاندې)، د کټ لاندې ولولئ.

عمومي نظر دا دی چې موږ به د شیانو ګړندي کولو لپاره پایپ لاین وکاروو:

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

له 2.5 څخه Gbak په خطي شکل کې بیک اپ رامینځته کوي او stdout ته یې لیږي ، کوم چې سمدلاسه د stdin له لارې له 3.0 څخه gbak اخلي او یو نوی ډیټابیس رامینځته کوي.

دا اړینه ده چې دا ډول پایپ لاین د ځایی (فایل) لاسرسي میتود سره تنظیم کړئ ، ځکه چې د شبکې لاسرسی (حتی د لوکل هوسټ له لارې) به پروسه د پام وړ ورو کړي.

موږ لاندې د وینډوز او لینکس لپاره توضیحاتو ته ځو.

Windows

د وینډوز په قضیه کې ، ترټولو اسانه لاره د فایربرډ په بشپړ ډول سټایلون جوړول دي. د دې لپاره موږ اخلو ایمبیډ آرشیف فایربرډ 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 GB رام لري، نو تاسو کولی شئ یې واچوئ

TempCacheLimit=6G

البته، دا ارزښت یوازې د 64-bit Firebird 3 لپاره ټاکل کیدی شي، ځکه چې هر 32-bit پروسه نشي کولی له 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 پروسې وخت په اړه معلومات ولیکئ (د جزیاتو لپاره ، اسناد وګورئ).

لینوکس

په لینکس فایربرډ 3 کې د تومات کتابتون پورې اړه لري. په CentOS (RHEL) کې دا کتابتون د ایپل ذخیره کې موقعیت لري، په اوبنټو (Debian) کې د سیسټم ذخیره کې.

د CentOS لپاره، تاسو باید لومړی د ایپل ذخیره وصل کړئ او یوازې بیا یې وکړئ

yum install libtommath

اوبنټو اړتیا نلري اضافي زیرمې پکې شاملې کړي ، مګر اوبنټو 16 او اوبنټو 18 د کڅوړو مختلف نسخې نصبوي - په ترتیب سره libtommath0 او libtommath1.

Firebird 3.0 د tommath.so.0 په لټه کې دی او د اوبنټو 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.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 کې، تاسو اړتیا نلرئ MaxUnflushed پیرامیټونه تنظیم کړئ (دوی یوازې په وینډوز کار کوي) او د Firebird 2.5 ترتیبات بدل کړئ.

په لینکس کې، د فایربرډ 2.5 محلي (فایل) لاسرسی د وینډوز لاندې د سرایت شوي نسخې سره مساوي ندي - د 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

نتیجه

د وخت او ډیسک ځای خوندي کولو سربیره ، د سټینګ تبادله بله مهمه ګټه لري - د ډیټابیس تبادله د موجوده فایربرډ 2.5 حذف کولو پرته ترسره کیږي ، کوم چې د ناکام تبادلې په صورت کې رول بیک خورا ساده کوي (ډیری وختونه د ځای نشتوالي یا د مهاجرت پرمهال غیر متوقع ریبوټ له امله. پروسه).

د وخت سپما د دې حقیقت له امله ده چې د "کلاسیک" تبادله د "بیک اپ وخت" او د "بیا وخت وخت" دی. بیا رغونه دوه برخې لري: د بیک اپ فایل څخه ډاټا لوستل او د شاخص جوړول.

د سټرینګ تبادلې سره، ټول وخت د "بیک اپ وخت جمع پنځه څخه تر لسو سلنې" او "د شاخص جوړونې وخت" په توګه ترلاسه کیږي.

ځانګړې پایلې د ډیټابیس جوړښت پورې اړه لري، مګر په اوسط ډول، د بیا رغونې وخت د بیک اپ وخت نږدې دوه چنده دی. له همدې امله، که موږ د بیک اپ وخت د یو واحد په توګه واخلو، نو "کلاسیک تبادله" د وخت درې واحدونه دي، سټینګ د وخت دوه واحدونه دي. د TempCacheLimit زیاتوالی د وخت نور کمولو کې مرسته کوي.

په عموم کې ، په عمل کې د سټینګ تبادله تاسو ته اجازه درکوي د بدیل بیک اپ او بیا رغولو وخت 30-40٪ خوندي کړئ.

پوښتنې؟

مهرباني وکړئ ټولې پوښتنې په نظرونو کې ولیکئ، یا یې د میتودولوژۍ لیکوال او د دې مقالې شریک لیکوال ته واستوئ - واسیلي سیدوروف، د iBase مخکښ سیسټم انجنیر، په bs at ibase ru.

یوازې راجستر شوي کاروونکي کولی شي په سروې کې برخه واخلي. ننوزئمهرباني وکړئ

تاسو د Firebird کومه نسخه کاروئ؟

  • Firebird 3.x

  • فائر برډ 2.5

  • فائر برډ 2.1

  • Firebird 2.0، 1.5 یا 1.0

16 کاروونکو رایه ورکړه. 1 کارن پاتې شو.

سرچینه: www.habr.com

Add a comment