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');