Tips Teknologi: Bagaimana cara mencadangkan dan mengembalikan basis data Postgres?

Karan Singh

19 Jun 2013

Email

1 min read

Tips Teknologi: Bagaimana cara mencadangkan dan mengembalikan basis data Postgres?

Poin Penting

    • Cadangan PostgreSQL dapat menargetkan satu tabel, satu database, atau semua database tergantung pada kebutuhan Anda.

    • pg_dump membuat file teks SQL yang berisi DDL dan data yang diperlukan untuk membangun kembali tabel atau database yang ditargetkan.

    • pg_dumpall mencadangkan setiap database di instance Postgres.

    • Pemulihan dilakukan dengan psql, yang mengeksekusi dump SQL kembali ke database yang ditargetkan.

    • Pemulihan tingkat tabel memerlukan memastikan bahwa tabel belum ada untuk menghindari konflik.

    • Ketika mencadangkan tabel individu, perhatikan ketergantungan relasional.

    • Dump dapat diambil dari lokal dan dipulihkan ke instance Postgres remote.

    • Cadangan mencakup perintah CREATE, ALTER, dan COPY tergantung pada apa yang diekspor.

    • Strategi cadangan yang tepat tergantung pada pemahaman tentang hubungan tabel, penggunaan skema, dan lingkungan penempatan.

    • Selalu pastikan integritas data dengan mengambil cadangan yang mencakup tabel yang direferensikan jika diperlukan.

Sorotan Tanya jawab

  • Apa sebenarnya yang dilakukan pg_dump?

    pg_dump menghasilkan file SQL berbasis teks yang berisi seluruh rangkaian perintah yang diperlukan untuk merekonstruksi tabel atau basis data persis seperti saat backup dilakukan.

  • Bisakah saya mencadangkan hanya satu tabel saja daripada seluruh basis data?

    Ya. Gunakan pg_dump --table NAMA_TABEL untuk mengekspor tabel tertentu. Jika tabel dengan nama yang sama ada di berbagai skema, gunakan --schema untuk menentukan yang benar.

  • Haruskah saya khawatir tentang tabel terkait saat mencadangkan tabel tunggal?

    Tentu saja. PostgreSQL adalah relasional, jadi tabel lain mungkin merujuk pada tabel yang Anda cadangkan. Jika Anda hanya memulihkan satu tabel tanpa tabel terkait, Anda mungkin akan merusak integritas referensial.

  • Bagaimana cara mencadangkan database penuh?

    Jalankan perintah seperti:

    pg_dump -U <user> <database> -f <output.sql>

    Ini mengekspor semua tabel, definisi skema, indeks, dan data untuk database tersebut.

  • Apa yang dilakukan pg_dumpall?

    pg_dumpall mencadangkan setiap basis data di server ke dalam satu file SQL. Ini berguna saat memigrasi atau mengambil snapshot seluruh instance Postgres.

  • Bisakah saya mengembalikan tabel ke dalam database yang sudah ada?

    Ya. Gunakan psql -U <user> -f <file.sql> <database>.

    Namun pastikan tabel tidak sudah ada — jika tidak, Anda akan mendapatkan kesalahan “sudah ada” selama pemulihan.

  • Apa yang terjadi selama pemulihan basis data penuh?

    File pemulihan dijalankan:

    • Buat Tabel

    • Ubah Tabel

    • Salin (untuk data tabel)
      mengembalikan database ke kondisi persisnya pada saat dump.

  • Bisakah saya mengembalikan ke server yang berbeda dari yang saya lakukan pencadangan?

    Ya. Dump bersifat portabel. Anda dapat melakukan cadangan secara lokal dan mengembalikannya ke instance Postgres jarak jauh, asalkan versinya kompatibel.

  • Apakah pg_dump mempengaruhi database yang sedang berjalan?

    Tidak. Ini berfungsi melalui query SQL dan tidak mengunci seluruh database. Ini dengan aman menangkap snapshot yang konsisten.

  • Bagaimana cara mengembalikan semua database dari file pg_dumpall?

    Gunakan:

    psql -U <user> -f all_dump.sql

    Ini akan membuat ulang setiap database yang ditemukan dalam dump.

Pertama, sebuah penafian. Postingan ini memberikan panduan umum tentang cara mencadangkan tabel Basis Data Postgres. Contoh yang disediakan tidak merujuk pada tabel atau basis data tertentu. Jika Anda mencoba untuk mencadangkan tabel tertentu, Anda juga harus mencadangkan tabel yang merujuk pada tabel asli. Karena Postgres adalah basis data relational, selalu ada referensi antara sejumlah tabel.

Ini adalah dokumen 'cara' yang hanya memberikan contoh perintah, bagaimana sebenarnya dilakukan sepenuhnya tergantung pada orang yang melakukannya dan kasus penggunaan tertentu. Selalu jaga integritas data yang Anda coba cadangkan. Mencadangkan seluruh basis data selalu merupakan opsi yang aman, tetapi saat mencadangkan tabel tertentu, seseorang harus berhati-hati.

Pertama, sebuah penafian. Postingan ini memberikan panduan umum tentang cara mencadangkan tabel Basis Data Postgres. Contoh yang disediakan tidak merujuk pada tabel atau basis data tertentu. Jika Anda mencoba untuk mencadangkan tabel tertentu, Anda juga harus mencadangkan tabel yang merujuk pada tabel asli. Karena Postgres adalah basis data relational, selalu ada referensi antara sejumlah tabel.

Ini adalah dokumen 'cara' yang hanya memberikan contoh perintah, bagaimana sebenarnya dilakukan sepenuhnya tergantung pada orang yang melakukannya dan kasus penggunaan tertentu. Selalu jaga integritas data yang Anda coba cadangkan. Mencadangkan seluruh basis data selalu merupakan opsi yang aman, tetapi saat mencadangkan tabel tertentu, seseorang harus berhati-hati.

Pertama, sebuah penafian. Postingan ini memberikan panduan umum tentang cara mencadangkan tabel Basis Data Postgres. Contoh yang disediakan tidak merujuk pada tabel atau basis data tertentu. Jika Anda mencoba untuk mencadangkan tabel tertentu, Anda juga harus mencadangkan tabel yang merujuk pada tabel asli. Karena Postgres adalah basis data relational, selalu ada referensi antara sejumlah tabel.

Ini adalah dokumen 'cara' yang hanya memberikan contoh perintah, bagaimana sebenarnya dilakukan sepenuhnya tergantung pada orang yang melakukannya dan kasus penggunaan tertentu. Selalu jaga integritas data yang Anda coba cadangkan. Mencadangkan seluruh basis data selalu merupakan opsi yang aman, tetapi saat mencadangkan tabel tertentu, seseorang harus berhati-hati.

SQL-dump/pg_dump:

Ide di balik metode SQL-dump adalah untuk menghasilkan file teks dengan perintah SQL yang, ketika dimasukkan kembali ke server, akan membuat ulang database dalam keadaan yang sama seperti saat dump dilakukan. PostgreSQL menyediakan program utilitas pg_dump untuk tujuan ini.

pg_dump adalah alat yang efektif dan komprehensif untuk mengambil cadangan database Postgres dan menggunakan cadangan tersebut untuk memulihkan database postgres. Namun, alat ini tidak terbatas hanya pada Database. Kita dapat menggunakan pg_dump untuk mencadangkan tabel dan kemudian menggunakannya untuk memulihkan tabel individu juga. Menggunakan pg_dump, Anda dapat mencadangkan database lokal dan memulihkannya di database jarak jauh.

Ide di balik metode SQL-dump adalah untuk menghasilkan file teks dengan perintah SQL yang, ketika dimasukkan kembali ke server, akan membuat ulang database dalam keadaan yang sama seperti saat dump dilakukan. PostgreSQL menyediakan program utilitas pg_dump untuk tujuan ini.

pg_dump adalah alat yang efektif dan komprehensif untuk mengambil cadangan database Postgres dan menggunakan cadangan tersebut untuk memulihkan database postgres. Namun, alat ini tidak terbatas hanya pada Database. Kita dapat menggunakan pg_dump untuk mencadangkan tabel dan kemudian menggunakannya untuk memulihkan tabel individu juga. Menggunakan pg_dump, Anda dapat mencadangkan database lokal dan memulihkannya di database jarak jauh.

Ide di balik metode SQL-dump adalah untuk menghasilkan file teks dengan perintah SQL yang, ketika dimasukkan kembali ke server, akan membuat ulang database dalam keadaan yang sama seperti saat dump dilakukan. PostgreSQL menyediakan program utilitas pg_dump untuk tujuan ini.

pg_dump adalah alat yang efektif dan komprehensif untuk mengambil cadangan database Postgres dan menggunakan cadangan tersebut untuk memulihkan database postgres. Namun, alat ini tidak terbatas hanya pada Database. Kita dapat menggunakan pg_dump untuk mencadangkan tabel dan kemudian menggunakannya untuk memulihkan tabel individu juga. Menggunakan pg_dump, Anda dapat mencadangkan database lokal dan memulihkannya di database jarak jauh.

Cara Membackup Basis Data Postgres:

Ikhtisar Opsi Cadangan Postgres

Ruang lingkup cadangan

Alat yang digunakan

Berkas keluaran

Apa yang disertakan

Kapan digunakan

Satu tabel

pg_dump

.sql

DDL tabel + data

Pemulihan atau migrasi tabel terisolasi

Satu basis data

pg_dump

.sql

Semua tabel, skema, data

Cadangan basis data penuh

Semua basis data

pg_dumpall

.sql

Setiap basis data di instansi

Cadangan atau migrasi seluruh server


Cadangkan Tabel Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

Perintah di atas adalah contoh tentang cara mencadangkan tabel spesifik dari basis data Postgres. Menggunakan perintah di atas, kami mencadangkan tabel ‘orgs’ dalam skema ‘maincontrol’ dari basis data ‘pe’ ke berkas ms_table.sql. Untuk mencadangkan tabel spesifik, gunakan opsi –table TABLENAME dalam perintah pg_dump. Jika ada nama tabel yang sama dalam skema yang berbeda, maka gunakan opsi –schema SCHEMANAME.

  1. Cadangkan basis data Postgres tertentu:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Ini adalah contoh mencadangkan basis data Postgres tertentu. Menggunakan perintah di atas, kami mencadangkan basis data untuk Message Central ‘pe’ ke berkas pe_dump.sql. Berkas cadangan ini memiliki perintah buat tabel, ubah tabel, dan salin untuk semua tabel dalam basis data ‘pe’.

  2. Cadangkan semua Basis Data Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Anda dapat mencadangkan semua basis data menggunakan perintah pg_dumpall. Perintah di atas akan membuat dump dari semua basis data yang berada di instansi Postgres yang berjalan di server tertentu. Untuk mencantumkan semua basis data yang telah dicadangkan, gunakan perintah grep “^[\]connect” all.sql.

Ikhtisar Opsi Cadangan Postgres

Ruang lingkup cadangan

Alat yang digunakan

Berkas keluaran

Apa yang disertakan

Kapan digunakan

Satu tabel

pg_dump

.sql

DDL tabel + data

Pemulihan atau migrasi tabel terisolasi

Satu basis data

pg_dump

.sql

Semua tabel, skema, data

Cadangan basis data penuh

Semua basis data

pg_dumpall

.sql

Setiap basis data di instansi

Cadangan atau migrasi seluruh server


Cadangkan Tabel Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

Perintah di atas adalah contoh tentang cara mencadangkan tabel spesifik dari basis data Postgres. Menggunakan perintah di atas, kami mencadangkan tabel ‘orgs’ dalam skema ‘maincontrol’ dari basis data ‘pe’ ke berkas ms_table.sql. Untuk mencadangkan tabel spesifik, gunakan opsi –table TABLENAME dalam perintah pg_dump. Jika ada nama tabel yang sama dalam skema yang berbeda, maka gunakan opsi –schema SCHEMANAME.

  1. Cadangkan basis data Postgres tertentu:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Ini adalah contoh mencadangkan basis data Postgres tertentu. Menggunakan perintah di atas, kami mencadangkan basis data untuk Message Central ‘pe’ ke berkas pe_dump.sql. Berkas cadangan ini memiliki perintah buat tabel, ubah tabel, dan salin untuk semua tabel dalam basis data ‘pe’.

  2. Cadangkan semua Basis Data Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Anda dapat mencadangkan semua basis data menggunakan perintah pg_dumpall. Perintah di atas akan membuat dump dari semua basis data yang berada di instansi Postgres yang berjalan di server tertentu. Untuk mencantumkan semua basis data yang telah dicadangkan, gunakan perintah grep “^[\]connect” all.sql.

Ikhtisar Opsi Cadangan Postgres

Ruang lingkup cadangan

Alat yang digunakan

Berkas keluaran

Apa yang disertakan

Kapan digunakan

Satu tabel

pg_dump

.sql

DDL tabel + data

Pemulihan atau migrasi tabel terisolasi

Satu basis data

pg_dump

.sql

Semua tabel, skema, data

Cadangan basis data penuh

Semua basis data

pg_dumpall

.sql

Setiap basis data di instansi

Cadangan atau migrasi seluruh server


Cadangkan Tabel Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

Perintah di atas adalah contoh tentang cara mencadangkan tabel spesifik dari basis data Postgres. Menggunakan perintah di atas, kami mencadangkan tabel ‘orgs’ dalam skema ‘maincontrol’ dari basis data ‘pe’ ke berkas ms_table.sql. Untuk mencadangkan tabel spesifik, gunakan opsi –table TABLENAME dalam perintah pg_dump. Jika ada nama tabel yang sama dalam skema yang berbeda, maka gunakan opsi –schema SCHEMANAME.

  1. Cadangkan basis data Postgres tertentu:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Ini adalah contoh mencadangkan basis data Postgres tertentu. Menggunakan perintah di atas, kami mencadangkan basis data untuk Message Central ‘pe’ ke berkas pe_dump.sql. Berkas cadangan ini memiliki perintah buat tabel, ubah tabel, dan salin untuk semua tabel dalam basis data ‘pe’.

  2. Cadangkan semua Basis Data Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Anda dapat mencadangkan semua basis data menggunakan perintah pg_dumpall. Perintah di atas akan membuat dump dari semua basis data yang berada di instansi Postgres yang berjalan di server tertentu. Untuk mencantumkan semua basis data yang telah dicadangkan, gunakan perintah grep “^[\]connect” all.sql.

Cara Memulihkan Basis Data Postgres

Opsi Pemulihan Postgres

Ruang lingkup pemulihan

Alat yang digunakan

File input

Persyaratan kunci

Jebakan umum

Tabel tunggal

psql

Dump tabel .sql

Tabel tidak boleh sudah ada

Kesalahan “sudah ada”

Database tunggal

psql

Dump database .sql

DB target harus ada

Menimpa data yang tidak dimaksudkan

Semua database

psql

Dump penuh .sql

Akses superuser disarankan

Memulihkan lebih dari yang dimaksudkan


  1. Pulihkan tabel Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    Perintah di atas akan menginstal tabel yang dicadangkan dalam file ms_table.sql ke database ‘pe’. Pastikan tabel ini tidak sudah ada, atau Anda akan melihat banyak kesalahan ‘sudah ada’. Perintah ini membuat tabel dan mengekspor semua data ke tabel yang baru dibuat.

  2. Pulihkan Database postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Sama seperti memulihkan tabel, kita dapat menggunakan perintah di atas untuk memulihkan database lengkap. Di sini kita memulihkan database ‘pe’ menggunakan file pe_dump.sql yang telah kita buat saat mencadangkan database di bagian Backup di atas.

  3. Pulihkan semua Database :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Pulihkan semua database menggunakan perintah di atas. ‘all_dump.sql’ adalah file yang dibuat menggunakan pg_dumpall. Perintah di atas akan memberi kita semua database Postgres dalam keadaan persis seperti saat dump diambil dari server database asli.

Opsi Pemulihan Postgres

Ruang lingkup pemulihan

Alat yang digunakan

File input

Persyaratan kunci

Jebakan umum

Tabel tunggal

psql

Dump tabel .sql

Tabel tidak boleh sudah ada

Kesalahan “sudah ada”

Database tunggal

psql

Dump database .sql

DB target harus ada

Menimpa data yang tidak dimaksudkan

Semua database

psql

Dump penuh .sql

Akses superuser disarankan

Memulihkan lebih dari yang dimaksudkan


  1. Pulihkan tabel Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    Perintah di atas akan menginstal tabel yang dicadangkan dalam file ms_table.sql ke database ‘pe’. Pastikan tabel ini tidak sudah ada, atau Anda akan melihat banyak kesalahan ‘sudah ada’. Perintah ini membuat tabel dan mengekspor semua data ke tabel yang baru dibuat.

  2. Pulihkan Database postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Sama seperti memulihkan tabel, kita dapat menggunakan perintah di atas untuk memulihkan database lengkap. Di sini kita memulihkan database ‘pe’ menggunakan file pe_dump.sql yang telah kita buat saat mencadangkan database di bagian Backup di atas.

  3. Pulihkan semua Database :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Pulihkan semua database menggunakan perintah di atas. ‘all_dump.sql’ adalah file yang dibuat menggunakan pg_dumpall. Perintah di atas akan memberi kita semua database Postgres dalam keadaan persis seperti saat dump diambil dari server database asli.

Opsi Pemulihan Postgres

Ruang lingkup pemulihan

Alat yang digunakan

File input

Persyaratan kunci

Jebakan umum

Tabel tunggal

psql

Dump tabel .sql

Tabel tidak boleh sudah ada

Kesalahan “sudah ada”

Database tunggal

psql

Dump database .sql

DB target harus ada

Menimpa data yang tidak dimaksudkan

Semua database

psql

Dump penuh .sql

Akses superuser disarankan

Memulihkan lebih dari yang dimaksudkan


  1. Pulihkan tabel Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    Perintah di atas akan menginstal tabel yang dicadangkan dalam file ms_table.sql ke database ‘pe’. Pastikan tabel ini tidak sudah ada, atau Anda akan melihat banyak kesalahan ‘sudah ada’. Perintah ini membuat tabel dan mengekspor semua data ke tabel yang baru dibuat.

  2. Pulihkan Database postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Sama seperti memulihkan tabel, kita dapat menggunakan perintah di atas untuk memulihkan database lengkap. Di sini kita memulihkan database ‘pe’ menggunakan file pe_dump.sql yang telah kita buat saat mencadangkan database di bagian Backup di atas.

  3. Pulihkan semua Database :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Pulihkan semua database menggunakan perintah di atas. ‘all_dump.sql’ adalah file yang dibuat menggunakan pg_dumpall. Perintah di atas akan memberi kita semua database Postgres dalam keadaan persis seperti saat dump diambil dari server database asli.

Berita lainnya

Baca lebih lanjut dari kategori ini

A person is standing at a desk while typing on a laptop.

Platform AI-native lengkap yang dapat berkembang seiring dengan bisnis Anda.

© 2025 Burung

A person is standing at a desk while typing on a laptop.

Platform AI-native lengkap yang dapat berkembang seiring dengan bisnis Anda.

© 2025 Burung