পোস্টগ্রিসে প্রতি ঘন্টা কীভাবে ইনক্রিমেন্টাল ব্যাকআপ করবেন?


18

একটি একক পোস্টগ্রিস সার্ভারের এক ঘন্টা বাড়া বাড়ানোর ব্যাকআপ করার চেষ্টা করছে (Win7 64)।

আমার নিম্নলিখিত সেটআপ আছে postgresql.conf:

max_wal_senders = 2
wal_level       = archive
archive_mode    = on
archive_command = 'copy "%p" "c:\\postgres\\foo\\%f"'

(আবার শুরু)

আমি একটি বেস ব্যাকআপ দিয়েছিলাম pg_basebackup -U postgres -D ..\foo -F t -x

যা ফোল্ডারে একটি বড় base.tarফাইল তৈরি করেছে fooএবং কিছু 16,384 কেবি ফাইল যুক্ত করেছে, যা আমি ধরে নিই ওয়ালগুলি।

আমি যা বুঝতে পারি না তা হ'ল ওয়ালগুলি কেন fooপরিবর্তন হয় না । ওয়ালগুলি data/pg_xlogপরিবর্তিত। Pg এগুলি অনুলিপি করার কথা নয়? কীভাবে এটি করার সিদ্ধান্ত নেয়?

সম্ভবত আমার সেট করা দরকার archive_timeout=3600?

আমি বেশ কয়েকটি সাইট (পিজির মেইলিং তালিকা, ব্যাকুলার পোস্টগ্রিজ পৃষ্ঠা) দেখেছি যা বলে যে আপনাকে পিজি_স্টার্ট_ব্যাকআপ () এবং পিজি_স্টপ_ব্যাকআপ () কল করতে হবে, তবে আমি বিশ্বাস করি যে সেগুলি প্রয়োজনীয় নয়। এটা কি সত্যি?

দ্বিতীয় প্রশ্ন:

  1. ওয়ালগুলি কতবার data/pg_xlogলিখিত হয়? একটি লেখার ট্রিগার কি?

    মনে হয় একটি ওয়াল আপডেট হয় যদি আমি কিছু ডিএমএল করি তবে \qপিএসএইচএল-তে in বা পিজিএডমিনে একটি টেবিল সম্পাদনা করুন তারপরে উইন্ডোটি বন্ধ করুন। আমি ভেবেছিলাম এটি প্রতিশ্রুতিতে লিখবে।

  2. সেরা অনুশীলন? pg_basebackup সপ্তাহে একবার? পিজি বা রিমোট মেশিন হিসাবে একই মেশিনে ওয়াল আর্কাইভ?

উত্তর:


5

আপনি সংরক্ষণাগার ফোল্ডারের দূরবর্তী স্টোরেজে একটি বর্ধিত ব্যাকআপ করতে চান।

আপনার যদি ব্যাকআপ থেকে পুনরুদ্ধার করা দরকার, তবে প্রাথমিক দৃষ্টিকোণটি হ'ল আপনার প্রাথমিক ব্যাক ব্যাকআপটি আরম্ভ পয়েন্ট হিসাবে এবং আর্কাইভ ফোল্ডারের পুরো বিষয়বস্তু প্রারম্ভিক পয়েন্ট এবং ক্রাশের মধ্যে ঘটে যাওয়া লেনদেনমূলক ক্রিয়াকলাপটি পুনরায় খেলতে দরকার to

সংরক্ষণাগার ফোল্ডারে ফাইলগুলি চিরতরে পাইলিং এড়ানোর জন্য, আপনি সময়ে সময়ে একটি নতুন বেস ব্যাকআপ করতে এবং নতুন বেস ব্যাকআপের আগে সংরক্ষণাগারভুক্ত ফাইলগুলি মুছতে চান।


ধন্যবাদ। কয়েকটি প্রশ্ন: ১. আমি কি পিজি_স্টার্ট_ব্যাকআপ () করি, ডেটা অনুলিপি করি, তারপরে পিজি_স্টপ_ব্যাকআপ (), বা পিজি_স্টার্ট_ব্যাকআপ (); pg_stop_backup (), তারপরে কপি করবেন?
নিল ম্যাকগুইগান

@ নীল: ১ এবং ২ আপনি ব্যবহার করার সময় প্রয়োগ করবেন না pg_basebackup, এটি ইতিমধ্যে এটি যত্ন করে। ৩. পোস্টগ্রাগগুলি ওয়াল ফাইলগুলি pg_logযখন আর প্রয়োজন হয় না তখন স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে। ম্যানুয়ালি আপনার কিছু করা উচিত নয় pg_log। অন্যথায় wal_keep_segmentsপ্যারামিটারটি দেখুন
ড্যানিয়েল ভ্যারিট

"সংরক্ষণাগার" ফোল্ডার দ্বারা আপনি পিজি_এক্সলগ বোঝাচ্ছেন, হ্যাঁ?
নীল ম্যাকগুইগান

@ নীলম্যাকগুইগান: মোটেও নয়। সংরক্ষণাগার ফোল্ডারটি আপনার সংরক্ষণাগার কমান্ডের গন্তব্য ফোল্ডার, উদাহরণস্বরূপ এখানে "c:। Postgres \ foo"। pg_xlogপুরোপুরি পোস্টগ্রিজ দ্বারা স্বয়ংক্রিয়ভাবে পরিচালিত হয়, যেখানে সংরক্ষণাগার ফোল্ডারটি পুরোপুরি ডিবিএ দ্বারা পরিচালিত হয়।
ড্যানিয়েল ভ্যারিট

আমি অনুভব করি আমি বিভ্রান্ত হয়েছি কারণ প্রাথমিক pg_basebackup এর পরে ফু-তে ওয়ালগুলি কখনই বদলায় না
নীল ম্যাকগুইগান

8

একটি বিদ্যমান সরঞ্জাম রয়েছে যা আপনাকে একটি দুর্দান্ত চুক্তিতে সহায়তা করবে, ওয়াল-ই । এটি পিআইটিআর এর এস 3 এর জন্য archive_commandএবং একটি সরবরাহ করে restore_command

আছে কোন না আদেশগুলি ক্রমবর্ধমান বা ডিফারেনশিয়াল যৌক্তিক ব্যাকআপ। pg_dumpকোনও ইনক্রিমেন্টাল বা ডিফারেন্সিয়াল নিতে পারে না। এটি করার একমাত্র উপায় হ'ল লগ সংরক্ষণাগার।

তত্ত্ব অনুসারে আপনি একটি নতুন পূর্ণ ব্যাকআপ নিতে পারেন, এটির সাথে এবং শেষ ব্যাকআপের মধ্যে একটি বাইনারি ডিফ করতে পারেন এবং ডিফটি আপলোড করতে পারেন। যদিও এটি কাজগুলিকে করার জন্য আমাকে একটি ভঙ্গুর এবং অদক্ষ উপায় হিসাবে আঘাত করেছে এবং আমি সত্যিই এটির প্রস্তাব দেব না।

অতিরিক্তভাবে, পিজবার্মন হুক স্ক্রিপ্টগুলির মাধ্যমে এস 3 এর সাথে সংহতকরণকে সমর্থন করে এবং আপনার জন্য অনেক ব্যাকআপ রোটেশন এবং পরিচালনা স্বয়ংক্রিয় করবে। আবার, এটি উইন্ডোজে কোনও বিকল্প নাও হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.