আমি কীভাবে পোস্টগ্রিজএসকিউএল টেবিলস্পেস সরিয়ে ফেলব?


12

একটি উপায় আছে শারীরিকভাবে থেকে একটি পোস্টগ্রি 9.3 tablespace- র সরাতে হয় /old/dirকরতে /new/dir? আমি কেবল mvডিরেক্টরিটি করতে এবং পোস্টগ্রাইএসকিউএলকে বলতে চাই যে টেবিল স্পেসটি এখন অবস্থিত /new/dir। দেখে মনে হচ্ছে ALTER TABLESPACEকেবল আপনাকে নতুন নামকরণ করতে দেয়।

আমি একটি নতুন টেবিল স্পেস তৈরি করা এবং এটিতে ডাটাবেস সরিয়ে এড়াতে চাই। আমি ধরে নিই যে এটি একটি ধীর কপি প্রক্রিয়া হবে যার জন্য অনেক সময় এবং ডিস্কের স্থান প্রয়োজন requires আমিও symlinking এড়াতে চান /old/dirকরতে /new/dir


সরান / পুরাতন / দির থেকে খুবোল্ড / দির, মাউন্ট নতুন / দির থেকে ওল্ড / দির, কপি ডেটা অনুলিপি / দির থেকে পুরানো / দির?
সিমপ্লেসিও

উত্তর:


12

আমি ধরে নিলাম যে আপনার টেবিল স্পেসের নাম tblspc

  1. আপনার টেবিল স্পেসের ওড পান
পরীক্ষা = # নির্বাচন করুন, spcname FROM pg_tablespace WHERE spcname = 'tblspc';
  oid | spcname
------- + + ---------
 24580 | tblspc
(1 সারি)
  1. পোস্টগ্রিজ বন্ধ করুন
$ pg_ctl -D $ পিজিডিটিএ স্টপ
  1. পুরানো এক থেকে নতুন ডিরেক্টরিতে সরান
v এমভি / পুরাতন / দির / নতুন / দির

অথবা

$ সিপি -আর / পুরাতন / দির / নতুন / দির
m আরএম-আরএফ / পুরাতন / দির
  1. টেবিলস্পেসের লিঙ্কটি নতুন ডিরেক্টরিতে পরিবর্তন করুন
$ সিডি $ পিজিডিটিএ / পিজি_টিবিএসপিসি
m আরএম 24580
n ln -s / new / dir 24580
  1. পোস্টগ্রিস শুরু করুন
$ pg_ctl -D $ পিজিডিটিএ শুরু

তারপরে, আপনি দেখতে পারবেন টেবিলস্পেসের ডিরেক্টরিটি পরিবর্তিত হয়েছে।

পরীক্ষা = # নির্বাচন pg_tablespace_location (24580);
 pg_tablespace_location
------------------------
 / নতুন / Dir
(1 সারি)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.