বিভিন্ন বড় সংস্করণ (যেমন 9.1 থেকে 9.3) থেকে পোস্টগ্রিএসকিউএল আপগ্রেড করার মূলত তিনটি উপায় রয়েছে।
Pg_dump দিয়ে আপগ্রেড করা হচ্ছে
প্রথমটি, এবং যদি সম্ভব হয় তবে সুপারিশ করা হয়, নতুন (9.3) সংস্করণের বাইনারি ব্যবহার করে পুরানো (9.1) সংস্করণের একটি ডাম্প করা এবং এটি নতুন সংস্করণের তৈরি নতুন ক্লাস্টারে পুনরুদ্ধার করা।
এই পদ্ধতিরটি সাধারণত ধীর হয় তবে এটি সর্বাধিক সম্ভাব্য। এটিকে আরও দ্রুত তৈরি করার জন্য একটি পরামর্শ, সমঝোতা ব্যবহার করছে। সমান্তরাল কাজের সাথে ডাম্প করতে, আপনি এটি করতে পারেন:
$ pg_dump --format=directory --jobs=4 --no-synchronized-snapshots --file=/path/to/mydump mydatabase
আপনার কাছে থাকা প্রতিটি ডাটাবেসের জন্য আপনাকে এটি করতে হবে, --jobs=4
যে কোনও মানের সাথে মান সমন্বয় করুন (কিছু মানের 2 থেকে কোনও সংখ্যার কোরের টেস্ট করুন এবং দেখুন যে আরও ভাল গতি দেয়)। এছাড়াও, এই ধাপের সময়, কাউকে ডেটাবেসে সংক্রামিত করা উচিত নয়, যে কোনও সংশোধনীর ফলে কলুষিত ডাম্প হবে (অনিরাপদ বিকল্পের কারণে --no-synchronized-snapshots
)।
এর পরে, আপনি নতুন উদাহরণে ডাম্পগুলি পুনঃস্থাপন করতে পারবেন pg_restore
:
$ createdb <options> -T template0 mydatabase
$ pg_restore --exit-on-error --jobs=4 --dbname=mydatabase /path/to/mydump
এর পরে, এটি ANALYZE
আপনার ডাটাবেসে চালিত হওয়ার পরামর্শ দেওয়া হচ্ছে :
$ vacuumdb --analyze-only mydatabase
(যদি আপনি সময় সামর্থ, শুধুমাত্র চালানো --analyze
এছাড়াও VACUUM
ডাটাবেস এবং আপডেট দৃশ্যমানতা মানচিত্র)
পিজি_আপগ্রেড দিয়ে আপগ্রেড করা হচ্ছে
অন্য বিকল্প, অবদানpg_upgrade
ব্যবহার করা হয় । --link
পদ্ধতিটি ব্যবহার করে এটি পোস্টগ্র্যাস এসকিউএল আপগ্রেড করার সত্যিই দ্রুত উপায় সরবরাহ করে।
ব্যবহারের আগে আপনাকে পুরো ডেটা ডিরেক্টরিতে একটি ব্যাকআপ তৈরি করতে হবে, কারণ --link
মোডে কিছু ভুল হয়ে গেলে আপনি উভয় ডেটা (নতুন এবং পুরানো) আলগা করতে পারেন। এছাড়াও, পুরো দস্তাবেজগুলি এবং নীচে বিশেষত নোটগুলি পড়ুন (পিজি_আপগ্রেডের জন্য কিছু সীমাবদ্ধতা রয়েছে)।
আপডেট: দয়া --check
করে নির্দিষ্ট আদেশটি চালানোর আগে বিকল্পটি ব্যবহার করুন । এছাড়াও, বৃহত ডাটাবেসের জন্য একটি স্ক্রিন সেশনে এই কমান্ডটি চালানো বাঞ্ছনীয়।
ট্রিগার ভিত্তিক প্রতিলিপি সরঞ্জাম ব্যবহার করে আপগ্রেড করুন
একটি সংস্করণ আপগ্রেড করার আরেকটি বিকল্প হ'ল ট্রিগার ভিত্তিক একটি প্রতিরূপ সরঞ্জাম ব্যবহার করছে। স্লোনি, বুকার্ডো এবং লন্ডিস্টের মতো।
এটি এমন বিকল্প যাটির পক্ষে কমপক্ষে ডাউনটাইম সম্ভব হওয়া প্রয়োজন তবে এটি কাজ করা সবচেয়ে কঠিন।
এটি করার জন্য আপনাকে মাস্টার-স্লেভ তৈরি করতে হবে যেখানে মাস্টারটি আপনার বর্তমান সংস্করণ (9.1) এবং দাসটি নতুন সংস্করণ (9.3)। তারপরে আপনি প্রথম সিঙ্কটি অপেক্ষা করুন (সিস্টেমটি এখনও উত্পাদনের সাথে রয়েছে), এর পরে আপনি ডাটাবেসের সাথে সংযুক্ত সবাইকে বন্ধ করে দিন (ডাউনটাইমটি এখানেই শুরু হয়), দাসকে ধরার জন্য অপেক্ষা করুন, এটি (দাস) মাস্টার হিসাবে প্রচার করুন এবং সমস্ত ক্লায়েন্ট / অ্যাপ্লিকেশনগুলি এই নতুন সংস্করণে পুনর্নির্দেশ করুন। এবং তুমি করে ফেলেছ.
স্লনি ডকুমেন্টেশন স্লোনি ব্যবহার করে পোস্টগ্র্যাস এসকিউএল আপগ্রেড করার জন্য একটি ধাপে ধাপে সরবরাহ করে ।
কোনটি নির্বাচন করতে হবে
ঠিক আছে, সর্বদা নির্ভর করে, আবার শুরু হচ্ছে:
- ডাম্প + রিস্টোর সর্বাধিক নির্ভরযোগ্য, তবে সাধারণত সবচেয়ে ধীর এক (সমান্তরালতা যদিও বেশ ভাল ফলাফল দিতে পারে)
- পিজি_আপগ্রেড অল্প ডাউনটাইমের জন্য সেরা বিকল্পগুলির মধ্যে একটি (যদি আপনি ব্যবহার করতে পারেন তবে সীমাবদ্ধতাগুলি দেখুন), এটি প্রায় কয়েক মিনিট সময় নেয় এমনকি বড় ডেটাবেসগুলিতেও
- ট্রিগার অনুলিপিটি নিঃসন্দেহে একটাই যে কমপক্ষে ডাউনটাইম সম্ভব (শূন্যের কাছাকাছি) দেয় তবে এটি অর্জন করা সত্যিই কঠিন এবং আমি কেবল অভিজ্ঞ ব্যক্তিদের জন্যই পরামর্শ দিই (পোস্টগ্রিসএসকিউএল এবং প্রতিলিপি সরঞ্জাম উভয়)।
আমি সাহায্য করতে পারে আশা করি। শুভকামনা।