23 September 2019

Memindahkan Tablespace Postgres

Memindahkan Tablespace Postgres

Memindahkan Tablespace Postgres

Tablespace adalah lokasi pada disk tempat PostgreSQL menyimpan file data yang berisi objek database , misalnya indeks, dan tabel.

PostgreSQL hadir dengan dua tablespace standar:
pg_defaulttablespace menyimpan semua data pengguna.
pg_globaltablespace menyimpan semua data global.

Kedua table space ini lokasinya berada di program instalasi postgreSQL.Tidak bsa di pindah. Atau andai bisa sebaiknya jangan


lalu bagaimana memindahkan Tablespace postgres yang kita buat sendiri menggunakan Query CREATE TABLE SPACE....

1. Periksa OID table space kita. misal:
SELECT oid, * FROM pg_tablespace;
semisal akan mendapatkan hasil berikut:
 oid  |   spcname   | spcowner | spcacl | spcoptions
-------+-------------+----------+--------+------------
  1663 | pg_default  |       10 |        |
  1664 | pg_global   |       10 |        |
 16385 | test_tblspc |       10 |        |
table space yg ingin kita pakai adalah test_tblspc dengan nomor oid 16385

2. Stop postgreSQL service

3. Lalu buat lokasi yang ingin kita set sebagai tablespace
misal:

D:\postgres_Tblspc\test\

4. Pindahkan semua file dan folder yg berada di dalam $PGDATA\16385 ke lokasi yang baru kita buat: ($PGDATA adalah data storage di PostgreSQL instalation)

contoh menggunakan cmd:

xcopy "C:\Program Files (x86)\PostgreSQL\10\data\pg_tblspc\16385\*.*" "D:\postgres_Tblspc\test\" /S /I /R /Y

bila sebelumnya telah di buat tablespace yg di maksud tapi di lokasi yg berbeda maka pindahkan semua file tersebut ke lokasi yg baru ini. misal

xcopy ""D:\postgres_Tblspc\test_old\*.*" "D:\postgres_Tblspc\test\" /S /I /R /Y


5. Buat Simbolik link
delete folder 16385 di $PGDATA

Del "C:\Program Files (x86)\PostgreSQL\10\data\pg_tblspc\16385\" 


lalu buat folder simbolink link

mklink /H /J "C:\Program Files (x86)\PostgreSQL\10\data\pg_tblspc\134489" "D:\process_data\postgres_tablespace\ssd4"


6. Restart PostgresSQL Services








No comments:

Post a Comment