Showing posts with label Postgres. Show all posts
Showing posts with label Postgres. Show all posts

16 December 2024

Setting pgsql_tmp di Windows 11

Ketika process data besar di Postgres seperti Insert maka postgres akan membuat table sementara sebelum mengupdate table sebenarnya. Table sementara ini di simpan dalam hardisk dan memakan cukup banyak storage di dalam hardisk. Tentu saja bila drive C: kurang ruang bebas (free space) maka akan muncul error: 

could not write to file "base/pgsql_tmp/pgsql_tmp47268.175": No space left on device 

Untuk mengatasinya maka perlu memindahkan defaut pgsql_tmp ke drive lain yang lebih besar, misal di drive f: 

Berikut langkah-langkahnya: 

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