পোস্টগ্রেএসকিএল ডেটা বিভিন্ন ড্রাইভে সরানো হচ্ছে


20

আমি আমার মেঘের পরিবেশ হিসাবে AWS ব্যবহার করছি। আমি আমার রুট উদাহরণ ভলিউমের মতো একই ড্রাইভে পোস্টগ্র্রেএসকিউএল ইনস্টল করেছি। আমি আমার দৃষ্টান্তের সাথে দ্বিতীয় ড্রাইভটি সংযুক্ত করে রেখেছি। এখন আমি আমার পোস্টগ্রিজ এসকিউএল ডেটা আলাদা ড্রাইভে স্থানান্তর করতে চাই। আমি এখনও ডেভলপমেন্ট মোডে রয়েছি তাই আমি যদি পুরানো ডেটা এই সময়ে স্থানান্তরকে আরও সহজ করে তোলে তবে মুছতে পারি। এই কাজ করতে সবচেয়ে ভালো উপায় কি?

পোস্টগ্রাইএসকিউএল টেবিলস্পেস এমন কিছু যা আমার দিকে নজর দেওয়া উচিত?


1
আপনি যদি আপনার ডাটাবেসের ( অংশ ) অংশটিকে একটি পৃথক ড্রাইভে স্থানান্তর করতে চান তবে টেবিলস্পেসগুলি যাওয়ার উপায় হবে ।
এরউইন ব্র্যান্ডস্টেটার

এই উত্তরটি সূচিত করে যে কোনও বাহ্যিক হার্ড ড্রাইভে যাওয়া tablespacesউচিত নয় : dba.stackexchange.com/a/62037/41823 নিশ্চিত না আপনি ঝুঁকিটি বুঝতে পেরেছেন যদি আপনি ইতিমধ্যে কোনও বাহ্যিকটিতে ডেটা রাখছেন ?
স্ট্যাটওয়ঙ্ক

উত্তর:


19

নিম্নলিখিতটি এটি করা উচিত:

  1. PostgreSQL বন্ধ করুন
  2. নিশ্চিত করুন যে PostgreSQL আর আর চলবে না
  3. পোস্টগ্রেএসকিউএল সত্যিই বন্ধ হয়ে গেছে কিনা পরীক্ষা করুন
  4. পুরানো ডেটা ডিরেক্টরিটি নতুন ড্রাইভে অনুলিপি করুন
    এটি সাধারণত -Dআপনার পরিষেবার জন্য বা PGDATAপরিবেশের ভেরিয়েবলের মাধ্যমে কমান্ডলাইন প্যারামিটার ( ) এর মাধ্যমে সংজ্ঞায়িত হয় ।
  5. নতুন ডেটা ডিরেক্টরিতে নির্দেশ করতে আপনার পোস্টগ্রিএসকিউএল কনফিগারেশন (পরিষেবা, পরিবেশগত সংস্করণ) আপডেট করুন।
  6. আপনি যদি ডেটা অনুলিপি করেন তবে পোস্টগ্রিএসকিউএল এটি আর খুঁজে পাবে না তা নিশ্চিত করার জন্য পুরাতন ডেটা ডিরেক্টরিটির নামকরণ করুন। আপনি যদি কনফিগারেশনটি সঠিকভাবে না পান তবে আপনি একটি ত্রুটি বার্তা পাবেন।
  7. পরিষেবাটি শুরু করুন
  8. যদি সবকিছু ঠিকঠাক হয় তবে আপনি পুরানো ডিরেক্টরিটি মুছতে পারেন।

৪ র্থ দফায়, 'কমান্ডলাইন প্যারামিটারের মাধ্যমে এটি সাধারণত সংজ্ঞায়িত হয় ...' বলতে কী বোঝেন?
কোডেকুল

@ কোডেকুল: এটি কীভাবে সংজ্ঞায়িত করা যায় তার বিভিন্ন উপায় রয়েছে। সাধারণত এটি পরিষেবা সংজ্ঞার অংশ। তবে এটি আপনার অপারেটিং সিস্টেম, বিতরণ এবং ব্যক্তিগত পরিবর্তনের উপর নির্ভর করে।
a_horse_with_no_name

এটি কাজ করেছে তবে আমি উইন্ডোজের জন্য কমান্ড লাইনের পরিবর্তে রিজেডিট ব্যবহার করেছি। রক্ষে। আমার ডিস্কটি কেবলমাত্র জায়গার বাইরে চলে যাচ্ছিল তবে এখন আমি এটিকে পর্যাপ্ত স্থান সহ নিরাপদে অন্য কোথাও পরিচালনা করছি।
খাঁজ

এখানে নির্দিষ্ট বিবরণ সহ সুন্দর ধাপে ধাপে ব্লগ পোস্টটি দেওয়া হয়েছে, আদর্শ উবুন্টু এবং 9.5 ডিবি সংস্করণটির জন্য আপ টু ডেট:
ডিজিটালওশন

4
  1. Postgresql পরিষেবা বন্ধ করুন
  2. সিপি -a উত্স_ডাটা_ডাইরেক্টরি গন্তব্য_ডাটা_ডাইরেক্টরি
  3. chown -R postgres_user / গন্তব্য_ডেটা_ ডিরেক্টরি
  4. পিজিডিটিএ = গন্তব্য_ডাটা_ডাইরেক্টরি এক্সপোর্ট করুন
  5. Postgresql.conf এর মধ্যে গন্তব্য_ডাটা_ডাইরেক্টরিতে ডেটা ডিরেক্টরি পরিবর্তন করা
  6. pg_ctl শুরু

আমি খুশি হয়েছি আপনি chownনতুন ফোল্ডারের জন্য আদেশটি মনে রেখেছিলেন।
রোল্যান্ডোমাইএসকিউএলডিবিএ

0

আর্ক লিনাক্সে কীভাবে বিদ্যমান পোস্টগ্রাইএসকিউএল ডাটাবেসকে একটি নতুন স্থানে (ফোল্ডার, পার্টিশন) স্থানান্তরিত করা যায় তার বিবরণ এখানে রয়েছে (অন্যান্য লিনাক্স বিতরণের ক্ষেত্রে এই পদ্ধতিটি একই হওয়া উচিত)।

pg_dumpallক্লাস্টারের সমস্ত PostgreSQL ডাটাবেসকে একটি স্ক্রিপ্ট ফাইলে লেখার জন্য (ডাম্পিং) ইউটিলিটি। ... এটি pg_dumpক্লাস্টারের প্রতিটি ডাটাবেসের জন্য কল করে এটি করে । ...

উদাহরণ স্বরূপ:

## To dump all databases:
$ pg_dumpall > /tmp/db.out               ## backup all postgres databases to file
$ pg_dumpall -Fc dbname > /tmp/outfile   ## backup a database

## To reload database(s) from that file:
$ psql -f /tmp/db.out postgres

টি এল / ডিআর

তোমার দরকার:

  • এক্সপোর্ট ( pg_dumpall) ডাটাবেস
  • নতুন EMPTY ডিরেক্টরি তৈরি করুন
  • postgresql.conf ফাইল সম্পাদনা করুন
  • পোস্টগ্রিজ সার্ভার পরিষেবা পুনরায় চালু করুন
  • নতুন ডাটাবেসে ডাম্প ফাইল থেকে পুরানো ডেটা লোড করুন

কমান্ডের সংক্ষিপ্তসার

আমি আমার শেল প্রম্পটগুলি (হোস্টনাম ...) রেখে যাচ্ছি যে আমি এগিয়ে যাওয়ার সাথে সাথে আমি কী শেলটিতে আছি তা স্পষ্ট করে দিতে।

[victoria@victoria ~]$ postgres --version     ## postgres (PostgreSQL) 11.2
[victoria@victoria claws]$ sudo -u postgres -i
[postgres@victoria ~]$ pg_dumpall > /tmp/db.out
[postgres@victoria ~]$ psql
[postgres]# SHOW data_directory;              ## /var/lib/postgres/data
[postgres]# exit
[victoria@victoria postgres]$ mkdir /mnt/Vancouver/programming/rdb/postgres/postgresdb
## IMPORTANT: dir must be empty:
[victoria@victoria postgres]$ l postgresdb/   ## total 0
[victoria@victoria postgres]$ sudo chown postgres:root /mnt/Vancouver/programming/rdb/postgres/postgresdb/
[victoria@victoria postgres]$ sudo systemctl status postgresql
  ...
  May 02 19:55:21 victoria systemd[1]: Started PostgreSQL database server.
[postgres@victoria ~]$ initdb --locale en_US.UTF-8 -E UTF8 -D '/mnt/Vancouver/programming/rdb/postgres/postgresdb/data'
[postgres@victoria ~]$ exit
[victoria@victoria postgres]$ sudo vim /var/lib/postgres/data/postgresql.conf
  ## added line:
  data_directory = '/mnt/Vancouver/programming/rdb/postgres/postgresdb/data'
[victoria@victoria postgres]$ sudo -u postgres -i
[postgres@victoria ~]$ psql
[postgres]# SHOW data_directory;
  ## /var/lib/postgres/data   ## << Old dir; need to restart postgresql service
[postgres]# \q
[victoria@victoria postgres]$ sudo systemctl restart postgresql
[victoria@victoria postgres]$ sudo -u postgres -i
[postgres@victoria ~]$ psql
[postgres]# SHOW data_directory;
  ## /mnt/Vancouver/programming/rdb/postgres/postgresdb/data
[postgres]# \q
[postgres@victoria ~]$ psql -f /tmp/db.out postgres
  SET
  SET
  SET
  CREATE ROLE
  ALTER ROLE
  [ ... SNIP! ... ]
[postgres@victoria ~]$ exit
## Done!  :-D

উদাহরণ

মন্তব্য করা কোড এবং আউটপুটটির জন্য আমার সাথে থাকা ব্লগ পোস্টটি, আর্চ লিনাক্সে বিদ্যমান পোস্টগ্রিএসকিউএল ডেটাবেস কীভাবে স্থানান্তরিত করতে হয় তা দেখুন -----


তথ্যসূত্র

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