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: 

  • Buar Folder tujuan misal : 
            F:/pgsql_tmp 
  • Buat TABLESPACE temporary melalui query tool : 
            CREATE TABLESPACE temp_space LOCATION 'F:/pgsql_tmp'; 
  • Setting konfigurasi postgres dan ubah temp_tablespaces default lokasinya. 
        Biasanya di windows lokasi default konfigurasi file postgres ada di 
            C:\Program Files\PostgreSQL\\data\postgresql.conf 
            misal :
            C:\Program Files\PostgreSQL\14\data 

        Cari baris yang berisi (bila belum pernah di setting). 
            #temp_tablespaces = '' # a list of tablespace names, '' uses 
        Hilangin comment mark (#) lalu isi nila temp_tablespaces sesuai nama table yang seblumnya kita buat (temp_space). baris konfigurasi tersebut akan menjadi seperti ini:  
        temp_tablespaces = 'temp_space' # a list of tablespace names, '' uses

        Lalu di Save
  • Restart Postgres
 Bila memakai cmd: 
            pg_ctl stop -D "C:\Program Files\PostgreSQL\14\data" 
            pg_ctl start -D "C:\Program Files\PostgreSQL\14\data"


No comments:

Post a Comment