PostgreSQL Tablespace Taşımak

PostgreSQL Tablespace Taşımak,

Postgresql tablespace kavramını önceki yazımda paylaşmıştım bu yazdımda oluşturulan tablespace’i farklı  bi yerde oluşturulup taşımak gerektiği durumda tek tablo veya bütün tabloları  yeni tablespace’ e aktarabiliriz fakat  taşıma işlemi sırasında tablolarda lock olacaktır ve o sırada işlem yapılamayacaktır.

İlk olarak  tablespaceleri ve tablespace boyutlarını listeleyelim.

select spcname
      ,pg_tablespace_location(oid) ,pg_size_pretty(pg_tablespace_size (oid)) as tablespace_size
from   pg_tablespace;

Görüldüğü gibi iki adet tablespace bulunmaktadır.Tmp_d2 içerisinde bulunan t_random isminde ki tablomuzu movespace1 tablespace  taşıyalım.

alter table t_random  set tablespace movespace1;

Yukarıdaki işlemi yaptık ve tablomuz movespace1 tablespace taşındı.

Yukarıda belirttiğim sorgu ile kontrol edelim.

Yukarıdaki resimde görüldüğü gibi tablomuz movespace1 tablespace taşındı.

Tablespace de tek tablo için bu işlemi yaptık fakat veritabanı içerisinde ki bütün tabloları taşımak istediğimiz de nasıl yapacağız?

alter table all in tablespace değiştirilmek_istenen set tablespace aktarılmak_istenen;

Yukarıdaki komut yardımı ile  bütün tabloları yeni tablespace taşıyabilirsiniz.

Tablespace içerisinde ki  objeleri görüntülemek için aşağıdaki scripti kullanabilirsiniz.

select relname from pg_class where reltablespace=(select oid from pg_tablespace where spcname='tmp_d2');

 

Loading