Mengonfigurasi flag database

Halaman ini menjelaskan tentang cara mengonfigurasi flag database untuk Cloud SQL, dan menampilkan daftar flag yang dapat disetel pada instance Anda. Anda dapat menggunakan flag database untuk berbagai macam operasi, seperti menyesuaikan parameter PostgreSQL, menyesuaikan opsi, serta mengonfigurasi dan melakukan tuning pada sebuah instance.

Dalam beberapa kasus, menyetel sebuah flag mungkin akan mengharuskan Anda menyetel flag lain untuk mengaktifkan fungsionalitas yang diinginkan secara penuh.

Ketika Anda menyetel, menghapus, atau memodifikasi flag untuk sebuah instance database, database tersebut mungkin akan dimulai ulang. Nilai flag lalu akan tetap tersimpan untuk instance tersebut sampai Anda menghapusnya. Jika instance tersebut merupakan sumber (source) dari sebuah replika, lalu instance tersebut dimulai ulang, maka replika tersebut juga akan dimulai ulang untuk menyelaraskannya dengan konfigurasi instance yang terbaru.

Mengonfigurasi flag database

Menetapkan flag database

Konsol

  1. Di Konsol Google Cloud, pilih project yang berisi instance Cloud SQL yang ingin Anda tetapkan flag database-nya.
  2. Buka instance, lalu klik Edit.
  3. Scroll ke bawah sampai ke bagian Flag.
  4. Untuk menetapkan flag yang belum ditetapkan pada instance sebelumnya, klik Tambahkan item, pilih flag dari menu drop-down, lalu tetapkan nilainya.
  5. Klik Simpan untuk menyimpan perubahan.
  6. Konfirmasi perubahan Anda di bagian Flag di halaman Ringkasan.

gcloud

Edit instance-nya:

gcloud sql instances patch INSTANCE_NAME --database-flags=FLAG1=VALUE1,FLAG2=VALUE2

Perintah ini akan menimpa semua flag database yang telah ditetapkan sebelumnya. Untuk tetap menjaga yang telah disetel dan menambahkan yang baru, sertakan nilai ke semua flag yang ingin Anda setel pada instance; flag yang tidak diberi nilai akan ditetapkan kembali ke nilai defaultnya. Untuk flag yang tidak mempunyai nilai, tentukan nama flag dan tambahkan tanda sama dengan ("=").

Sebagai contoh, untuk menyetel flag log_connections and log_min_error_statement, Anda dapat menggunakan perintah berikut:

gcloud sql instances patch INSTANCE_NAME \
  --database-flags=log_connections=on,log_min_error_statement=error

Terraform

Untuk menambahkan flag database, gunakan resource Terraform.

resource "google_sql_database_instance" "instance" {
  name             = "postgres-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    database_flags {
      name  = "log_connections"
      value = "on"
    }
    database_flags {
      name  = "log_min_error_statement"
      value = "error"
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Menerapkan perubahan

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.

    Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.

Menyiapkan direktori

Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.

    Salin kode contoh ke dalam main.tf yang baru dibuat.

    Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
    terraform init

    Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi -upgrade:

    terraform init -upgrade

Menerapkan perubahan

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.

Menghapus perubahan

Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:

  1. Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan argumen deletion_protection ke false.
    deletion_protection =  "false"
  2. Terapkan konfigurasi Terraform terbaru dengan menjalankan perintah berikut dan memasukkan yes pada perintah:
    terraform apply
  1. Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan yes pada prompt:

    terraform destroy

REST v1

Untuk menyetel flag pada database yang sudah ada:

Sebelum menggunakan data permintaan manapun, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Jika terdapat beberapa flag yang sudah terkonfigurasi untuk database, maka modifikasi perintah sebelumnya untuk menyertakan flag tersebut. Perintah PATCH akan menimpa flag yang sudah ada dengan flag yang terdaftar di dalam permintaan.

REST v1beta4

Untuk menyetel flag pada database yang sudah ada:

Sebelum menggunakan data permintaan manapun, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Jika terdapat beberapa flag yang sudah terkonfigurasi untuk database, maka modifikasi perintah sebelumnya untuk menyertakan flag tersebut. Perintah PATCH akan menimpa flag yang sudah ada dengan flag yang terdaftar di dalam permintaan.

Menghapus semua flag untuk kembali ke nilai defaultnya

Konsol

  1. Di Konsol Google Cloud, pilih project yang berisi instance Cloud SQL yang semua flagnya ingin Anda hapus.
  2. Buka instance, lalu klik Edit.
  3. Buka bagian Flag Database.
  4. Klik X di samping semua flag yang ditampilkan.
  5. Klik Simpan untuk menyimpan perubahan.

gcloud

Hapus semua flag ke nilai defaultnya pada instance:

gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags

Anda akan diminta untuk mengonfirmasi bahwa instance akan dimulai ulang.

REST v1

Untuk menghapus semua flag untuk instance yang ada:

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "databaseFlags": []
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

REST v1beta4

Untuk menghapus semua flag untuk instance yang ada:

Sebelum menggunakan salah satu data permintaan, buat pengganti berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Meminta isi JSON:

{
  "settings":
  {
    "databaseFlags": []
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Melihat nilai terkini dari flag database

Untuk melihat semua nilai terkini dari setelan PostgreSQL, login ke instance Anda dengan klien psql dan masukkan pernyataan berikut:

 SELECT name, setting FROM pg_settings;

Ingat bahwa Anda dapat mengubah nilai hanya untuk flag yang didukung (seperti yang terdaftar di bawah ini).

Mengetahui apa saja flag database yang telah disetel untuk sebuah instance

Untuk melihat flag apa saja yang telah disetel untuk sebuah instance Cloud SQL:

Konsol

  1. Di Konsol Google Cloud, pilih project yang berisi instance Cloud SQL dengan flag database yang telah ditetapkan yang ingin Anda lihat.
  2. Pilih instance untuk membuka halaman Ringkasan Instance.

    Flag database yang telah ditetapkan tercantum di bagian Flag database.

gcloud

Dapatkan status instance:

gcloud sql instances describe INSTANCE_NAME

Dalam output, flag database dicantumkan di bagian settings sebagai koleksi databaseFlags. Untuk mengetahui informasi selengkapnya tentang representasi flag dalam output, lihat Representasi Resource Instance.

REST v1

Untuk menampilkan daftar flag yang dikonfigurasi untuk instance:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Pada output, cari kolom databaseFlags.

REST v1beta4

Untuk menampilkan daftar flag yang dikonfigurasi untuk instance:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: ID project
  • instance-id: ID instance

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Pada output, cari kolom databaseFlags.

Flag yang didukung

Flag yang tidak disebutkan di bawah ini berarti tidak didukung.

Untuk flag khusus, Cloud SQL mungkin mendukung nilai atau rentang (range) yang berbeda dari parameter atau opsi PostgreSQL yang sama.

A | C | D | E | F | G | H | I | J | L | M | O | P | R | S | T | V | W

Flag Cloud SQL Tipe
Nilai yang Dapat Diterima dan Catatan
Mulai Ulang
Diperlukan?
anon.algorithm String
Defaultnya adalah sha256.
Tidak
anon.maskschema String
Defaultnya adalah mask.
Tidak
anon.restrict_to_trusted_schemas boolean
on | off
Setelan defaultnya adalah nonaktif.
Tidak
anon.salt String
Tidak ada nilai defaultnya.
Tidak
anon.sourceshema String
Defaultnya adalah public.
Tidak
auto_explain.log_analyze boolean
on | off
Setelan defaultnya adalah nonaktif.
Tidak
auto_explain.log_buffers boolean
on | off
Setelan defaultnya adalah nonaktif.
Tidak
auto_explain.log_min_duration Integer
-1 ... 2147483647
Nilai defaultnya adalah -1.
Tidak
auto_explain.log_format String
text|xml|json|yaml
Defaultnya adalah text.
Tidak
auto_explain.log_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|log
Defaultnya adalah log.
Didukung di PostgreSQL 12 ke atas.
Tidak
auto_explain.log_nested_statements boolean
on | off
Setelan defaultnya adalah nonaktif.
Tidak
auto_explain.log_settings boolean
on | off
Defaultnya adalah off.
Didukung di PostgreSQL 12 ke atas.
Tidak
auto_explain.log_timing boolean
on | off
Defaultnya adalah on.
Tidak
auto_explain.log_triggers boolean
on | off
Setelan defaultnya adalah nonaktif.
Tidak
auto_explain.log_wal boolean
on | off
Defaultnya adalah off.
Didukung di PostgreSQL 13 ke atas.
Tidak
auto_explain.log_verbose boolean
on | off
Setelan defaultnya adalah nonaktif.
Tidak
auto_explain.sample_rate Float
0 ... 1
Defaultnya adalah 1.
Tidak
autovacuum boolean
on | off
Defaultnya adalah on.
Untuk mengetahui informasi penggunaan yang mungkin akan memengaruhi SLA, lihat Panduan operasional instance Cloud SQL untuk PostgreSQL.
Tidak
autovacuum_analyze_scale_factor float
0 ... 100
Nilai defaultnya adalah 0,1.
Tidak
autovacuum_analyze_threshold integer
0 ... 2147483647
Defaultnya adalah 50.
Tidak
autovacuum_freeze_max_age integer
100000 ... 2000000000
Defaultnya adalah 200000000.
Untuk mengetahui informasi penggunaan yang mungkin akan memengaruhi SLA, lihat Panduan operasional instance Cloud SQL untuk PostgreSQL.
Ya
autovacuum_max_workers integer
1 ... varies (see note)
Defaultnya adalah 3.
Ya
autovacuum_multixact_freeze_max_age integer
10000 ... 2000000000
Defaultnya adalah 400000000.
Untuk mengetahui informasi penggunaan yang mungkin akan memengaruhi SLA, lihat Panduan operasional instance Cloud SQL untuk PostgreSQL.
Ya
autovacuum_naptime integer
1 ... 2147483s
Defaultnya adalah 60s.
Tidak
autovacuum_vacuum_cost_delay integer
0 ... 100 ms, atau -1 untuk menggunakan nilai vacuum_cost_delay
Untuk PostgreSQL 9.6, 10, dan 11, nilai defaultnya adalah 2 ms.
Tidak
autovacuum_vacuum_cost_limit integer
0 ... 10000, atau -1 untuk menggunakan nilai vacuum_cost_limit
Defaultnya adalah -1.
Tidak
autovacuum_vacuum_insert_scale_factor float
0 ... 100
Defaultnya adalah 0.2.
Tidak
autovacuum_vacuum_insert_threshold integer
-1 ... 2147483647
Defaultnya adalah 1000.
Tidak
autovacuum_vacuum_scale_factor float
0 ... 100
Defaultnya adalah 0.2.
Tidak
autovacuum_vacuum_threshold integer
0 ... 2147483647
Defaultnya adalah 50.
Tidak
autovacuum_work_mem integer
0 ... 2147483647 KB, atau-1 untuk menggunakan nilai maintenance_work_mem
Defaultnya adalah -1.
Tidak
checkpoint_completion_target float
0.0 ... 1.0
Defaultnya adalah 0.9.
Tidak
checkpoint_timeout integer
30 ... 86,400s
Defaultnya adalah 300s.
Untuk mengetahui informasi penggunaan yang mungkin akan memengaruhi SLA, lihat Panduan operasional instance Cloud SQL untuk PostgreSQL.
Tidak
checkpoint_warning integer
0 ... 2147483647s
Defaultnya adalah 30s.
Tidak
cloudsql.allow_passwordless_local_connections boolean
on | off
Defaultnya adalah off.
Tidak
cloudsql.enable_anon boolean
on | off
Defaultnya adalah off.
Tidak
cloudsql.enable_auto_explain boolean
on | off
Defaultnya adalah off.
Ya
cloudsql.enable_maintenance_mode boolean
on | off
Defaultnya adalah off.
Ya
cloudsql.enable_pgaudit boolean
on | off
Defaultnya adalah off.
Ya
cloudsql.enable_pg_bigm boolean
on | off
default: off
Ya
cloudsql.enable_pg_cron boolean
on | off
Defaultnya adalah off.
Didukung di PostgreSQL 10 ke atas
Ya
cloudsql.enable_pg_hint_plan boolean
on | off
Defaultnya adalah off.
Ya
cloudsql.enable_pglogical boolean
on | off
Defaultnya adalah off.
Ya
cloudsql.enable_pg_squeeze boolean
on | off
Defaultnya adalah off.
Ya
cloudsql.enable_pg_wait_sampling boolean
on | off
Ya
cloudsql.iam_authentication boolean
on | off
Defaultnya adalah off.
Tidak
cloudsql.logical_decoding boolean
on | off
Defaultnya adalah off.
Ya
cloudsql.max_failed_attempts_user integer
0 ... 10000
Defaultnya adalah 10.
Ya
cloudsql.pg_authid_select_role string
Tidak
commit_delay integer
0 ... 100000
Defaultnya adalah 0.
Tidak
commit_siblings integer
0 ... 1000
Defaultnya adalah 5.
Tidak
constraint_exclusion enumeration
partition | on | off
Defaultnya adalah partition.
Tidak
cpu_index_tuple_cost float
0.0 ... inf
Defaultnya adalah 0.005.
Tidak
cpu_operator_cost float
0.0 ... inf
Defaultnya adalah 0.0025.
Tidak
cpu_tuple_cost float
0.0 ... inf
Defaultnya adalah 0.01.
Tidak
cron.database_name String.
Didukung di PostgreSQL 10 ke atas.
Ya
cron.log_statement boolean
on | off
Defaultnya adalah on.
Didukung di PostgreSQL 10 ke atas
Ya
cron.log_run boolean
on | off
Defaultnya adalah on.
Didukung di PostgreSQL 10 ke atas
Ya
cron.max_running_jobs Integer
0 ... varies
Defaultnya adalah 5.
Didukung di PostgreSQL 10 ke atas
Ya
cron.log_min_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log|fatal|panic
Defaultnya adalah warning.
Didukung di PostgreSQL 10 ke atas
Tidak
cursor_tuple_fraction float
0.0 ... 1.0
Defaultnya adalah 0.1.
Tidak
deadlock_timeout integer
1 ... 2147483647 ms
Defaultnya adalah 1000ms.
Tidak
default_statistics_target integer
1 ... 10000
Defaultnya adalah 100.
Tidak
default_tablespace string Tidak
default_transaction_deferrable boolean
on | off
Defaultnya adalah off.
Tidak
default_transaction_isolation enumeration
serializable | 'repeatable read' | 'read committed' | 'read uncommitted'
Defaultnya adalah 'read committed'.
Tidak
effective_cache_size integer
Rentang ukurannya adalah 10% - 70% dari memori instance.
Unit berukuran 8 KB.
Defaultnya adalah 40% dari memori VM. Contohnya, untuk memori instance 45GB, nilai defaultnya adalah 18537160 KB.
Tidak
effective_io_concurrency integer
0 ... 1000
Nilai defaultnya adalah 1.
Tidak
enable_bitmapscan boolean
on | off
Nilai defaultnya adalah aktif.
Tidak
enable_hashagg boolean
on | off
Defaultnya adalah on.
Tidak
enable_hashjoin boolean
on | off
Defaultnya adalah on.
Tidak
enable_indexonlyscan boolean
on | off
Defaultnya adalah on.
Tidak
enable_indexscan boolean
on | off
Defaultnya adalah on.
Tidak
enable_material boolean
on | off
Defaultnya adalah on
Tidak
enable_mergejoin boolean
on | off
Defaultnya adalah on.
Tidak
enable_nestloop boolean
on | off
Defaultnya adalah on.
Tidak
enable_seqscan boolean
on | off
Defaultnya adalah on.
Tidak
enable_sort boolean
on | off
Defaultnya adalah on.
Tidak
enable_tidscan boolean
on | off
Defaultnya adalah on.
Tidak
force_parallel_mode enumeration
off | on | regress
Defaultnya adalah off.
Tidak
from_collapse_limit integer
1 ... 2147483647
Defaultnya adalah 8.
Tidak
geqo boolean
on | off
Defaultnya adalah on.
Tidak
geqo_effort integer
1 ... 10
Defaultnya adalah 5.
Tidak
geqo_generations integer
0 ... 2147483647
Defaultnya adalah 0.
Tidak
geqo_pool_size integer
0 ... 2147483647
Defaultnya adalah 0.
Tidak
geqo_seed float
0.0 ... 1.0
Defaultnya adalah 0.
Tidak
geqo_selection_bias float
1.5 ... 2.0
Defaultnya adalah 2.
Tidak
geqo_threshold integer
2 ... 2147483647
Defaultnya adalah 12.
Tidak
gin_fuzzy_search_limit integer
0 ... 2147483647
Defaultnya adalah 0.
Tidak
gin_pending_list_limit integer
64 ... 2147483647KB
Defaultnya adalah 4096KB.
Tidak
hash_mem_multiplier float
1 ... 1000
Defaultnya adalah 2.
Tidak
hot_standby_feedback boolean
on | off
Defaultnya adalah off.
Tidak
huge_pages enumeration
try | off
Defaultnya adalah try.
Ya
idle_in_transaction_session_timeout integer
0 ... 2147483647 ms
Defaultnya adalah 0.
Tidak
ivfflat.probes integer
1 ... varies
Defaultnya adalah 1.
Didukung di PostgreSQL 11 ke atas.
Tidak
join_collapse_limit integer
1 ... 2147483647
Defaultnya adalah 8.
Tidak
lock_timeout integer
0 ... 2147483647 ms
Defaultnya adalah 0.
Tidak
log_autovacuum_min_duration integer
0 ... 2147483647 ms, atau -1 untuk menonaktifkan
Defaultnya adalah 0.
Tidak
log_checkpoints boolean
on | off
Defaultnya adalah off.
Tidak
log_connections boolean
on | off
Defaultnya adalah off.
Tidak
log_disconnections boolean
on | off
Defaultnya adalah off.
Tidak
log_duration boolean
on | off
Defaultnya adalah off.
Tidak
log_error_verbosity enumeration
terse | default | verbose
Defaultnya adalah default.
Tidak
log_executor_stats boolean
on | off
Defaultnya adalah off.
Tidak
log_hostname boolean
on | off
Defaultnya adalah off.
Tidak
log_line_prefix String
String bergaya printf yang ada di awal setiap baris dari sebuah file log.
Defaultnya adalah %m [%p]: [%l-1] db=%d,user=%u (stempel waktu, ID proses, database, dan nama pengguna).
Tidak
log_lock_waits boolean
on | off
Defaultnya adalah off.
Tidak
log_min_duration_statement integer
-1 ... 2147483647 ms
Defaultnya adalah -1.
Tidak
log_min_error_statement enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Defaultnya adalah error.
Tidak
log_min_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log | fatal | panic
Defaultnya adalah warning.
Tidak
log_parser_stats boolean
on | off
Defaultnya adalah off.
Tidak
log_planner_stats boolean
on | off
Defaultnya adalah off.
Tidak
log_replication_commands boolean
on | off
Defaultnya adalah off.
Tidak
log_statement enumeration
none | ddl | mod | all
Tetapkan ke mod untuk mencatat semua pernyataan Bahasa definisi data (DDL), dan pernyataan yang mengubah data seperti INSERT, UPDATE, DELETE, TRUNCATE
Defaultnya adalah none.
Tidak
log_statement_stats boolean
on | off
Disarankan tidak diaktifkan bersama dengan log_parser_stats, log_planner_stats, atau log_executor_stats.
Defaultnya adalah off.
Tidak
log_temp_files integer
0 ... 2147483647 KB, atau -1 untuk menonaktifkan
Defaultnya adalah 0.
Tidak
log_timezone string
Flag ini memberi pengguna Cloud SQL untuk PostgreSQL sebuah cara untuk menyetel zona waktu yang digunakan pada stempel waktu yang tertulis di log server.

Anda dapat menentukan zona waktu dengan nama. Contohnya, Europe/London adalah nama zona waktu untuk London.

Anda harus memperbarui flag ini secara manual, pada instance utama dan pada semua replika baca, untuk memastikannya.

Nama zona waktu tidak peka huruf besar/kecil. Anda dapat menyediakan nama zona waktu dengan huruf besar maupun kecil.

Kami mendukung UTC+X sebagai format yang valid untuk flag ini, di mana X adalah +/-HH:MM.

Ya
logical_decoding_work_mem integer
64 ... 2147483647
Nilai defaultnya adalah 65536.
Tidak
maintenance_io_concurrency integer
0 ... 1000
Defaultnya adalah 10.
Tidak
maintenance_work_mem integer
1024 ... 2147483647 KB
Defaultnya adalah 64 MB.
Tidak
max_connections integer
14 ... varies (see note)
Nilai defaultnya tergantung pada jumlah memori dari instance terbesar di dalam rantai instance primer (instance ini; dan, jika itu adalah replika baca, instance primernya, instance primer dari instance primernya, dst., sampai ke akar (root) pohon replikasi.
Memori (GB) pada instance terbesarNilai default
lebih kecil (~0.5)25
kecil (~1.7)50
dari 3,75 sampai < 6100
dari 6 sampai < 7,5200
dari 7,5 sampai < 15400
dari 15 sampai < 30500
dari 30 sampai < 60600
dari 60 sampai < 120800
>=1201.000

Nilai pada replika harus lebih besar dari atau sama dengan nilai pada replika utama. Perubahan pada instance primer akan diterapkan juga ke instance replika yang memiliki nilai lebih rendah dari nilai baru pada instance primer, atau yang belum diubah dari nilai default. Perubahan pada instance primer seperti itu akan menyebabkan instance replika dimulai ulang.

Ya
max_locks_per_transaction integer
10 ... 2,147,483,647
Nilai defaultnya adalah 64.

Nilai pada instance replika harus lebih besar dari atau sama dengan nilai pada instance primer. Perubahan pada instance primer akan diterapkan juga ke instance replika yang memiliki nilai lebih rendah dari nilai baru pada instance primer, atau yang belum diubah dari nilai default. Perubahan pada instance primer seperti itu akan menyebabkan instance replika dimulai ulang.

Ya
max_logical_replication_workers integer
4 ... 8192
Defaultnya adalah 4.
Didukung di PostgreSQL 10 ke atas
Ya
max_parallel_maintenance_workers integer
0 ... varies
Defaultnya adalah 2.
Didukung di PostgreSQL 11 ke atas.

Nilai pada replika harus lebih besar dari atau sama dengan nilai pada replika utama. Perubahan pada penyebaran utama ke replika yang memiliki nilai lebih rendah dari nilai baru pada nilai utama, atau yang belum diubah dari nilai default.

Jika nilai pada primer adalah default, nilai untuk replika tidak dapat diubah. Untuk mengubah nilai replika, pertama-tama, tetapkan nilai pada primer ke bilangan bulat.

Tidak
max_parallel_workers integer
0 ... varies
Defaultnya adalah 8.
Didukung di PostgreSQL 10 ke atas

Nilai pada replika harus lebih besar dari atau sama dengan nilai pada replika utama. Perubahan pada penyebaran utama ke replika yang memiliki nilai lebih rendah dari nilai baru pada nilai utama, atau yang belum diubah dari nilai default.

Jika nilai pada primer adalah default, nilai untuk replika tidak dapat diubah. Untuk mengubah nilai replika, pertama-tama, tetapkan nilai pada primer ke bilangan bulat.

Tidak
max_parallel_workers_per_gather integer
0 ... varies
Defaultnya adalah 2.

Nilai pada replika harus lebih besar dari atau sama dengan nilai pada replika utama. Perubahan pada penyebaran utama ke replika yang memiliki nilai lebih rendah dari nilai baru pada nilai utama, atau yang belum diubah dari nilai default.

Jika nilai pada primer adalah default, nilai untuk replika tidak dapat diubah. Untuk mengubah nilai replika, pertama-tama, tetapkan nilai pada primer ke bilangan bulat.

Tidak
max_pred_locks_per_page integer
0 ... 2147483647
Defaultnya adalah 2.
Didukung di PostgreSQL 10 ke atas
Ya
max_pred_locks_per_relation integer
-2147483648 ... 2147483647
Defaultnya adalah -2.
Didukung di PostgreSQL 10 ke atas
Ya
max_pred_locks_per_transaction integer
64 ... 1048576
Ya
max_prepared_transactions integer
0 ... varies
Ukuran memori (MB)Nilai maks.
0 - 3.84030.000
3.840 - 7.68085.000
7.680 - 15.360200.000
15.360 ke atas262.000

Nilai pada instance replika harus lebih besar dari atau sama dengan nilai pada instance primer. Perubahan pada instance primer akan diterapkan juga ke instance replika yang memiliki nilai lebih rendah dari nilai baru pada instance primer, atau yang belum diubah dari nilai default. Perubahan pada instance primer seperti itu akan menyebabkan instance replika dimulai ulang.

Ya
max_replication_slots integer
10 ... varies
Defaultnya adalah 10.
Ya
max_standby_archive_delay integer
0 ... 2147483647 ms, atau -1 untuk menunggu selamanya
Tidak
max_standby_streaming_delay integer
0 ... 2147483647 ms, atau -1 untuk menunggu selamanya
Tidak
max_sync_workers_per_subscription integer
2 ... 64
Tidak boleh lebih dari max_logical_replication_workers.
Tidak
max_wal_senders integer
10 ... varies
Defaultnya adalah 10.

Nilai pada instance replika harus lebih besar dari atau sama dengan nilai pada instance primer. Perubahan pada instance primer akan diterapkan juga ke instance replika yang memiliki nilai lebih rendah dari nilai baru pada instance primer, atau yang belum diubah dari nilai default. Perubahan pada instance primer seperti itu akan menyebabkan instance replika dimulai ulang.

Ya
max_wal_size integer
2 ... 2147483647

Unitnya berukuran 16 MB (ukuran file WAL) untuk versi 9.6 dan 1 MB untuk PostgreSQL 10 ke atas.

Nilai defaultnya adalah 1504 MB jika memori instance lebih dari atau sama dengan 3.75 GB. Nilai defaultnya adalah 1 GB jika memori instance kurang dari 3.75 GB.

Untuk informasi penggunaan yang mungkin dapat memengaruhi SLA, lihat Panduan operasional untuk instance Cloud SQL untuk PostgreSQL.
Tidak
max_worker_processes integer
8 ... varies

Nilai pada instance replika harus lebih besar dari atau sama dengan nilai pada instance primer. Perubahan pada instance primer akan diterapkan juga ke instance replika yang memiliki nilai lebih rendah dari nilai baru pada instance primer, atau yang belum diubah dari nilai default. Perubahan pada instance primer seperti itu akan menyebabkan instance replika dimulai ulang.

Ya
min_parallel_relation_size integer
0 ... 715827882
Unit berukuran 8 KB
Hanya didukung di PostgreSQL 9.6.
Tidak
min_wal_size integer
32 ... 2147483647

Unitnya berukuran 16 MB (ukuran file WAL) untuk versi 9.6 dan 1 MB untuk PostgreSQL 10 ke atas.

Tidak
old_snapshot_threshold integer
0 ... 86400 menit, atau -1 untuk menonaktifkan
Defaultnya adalah -1.
Ya
parallel_setup_cost float
0.0 ... inf
Defaultnya adalah 1000.
Tidak
parallel_tuple_cost float
0.0 ... inf
Defaultnya adalah 0.1.
Tidak
password_encryption enumeration
md5 | scram-sha-256

Defaultnya tergantung pada versi PostgreSQL. Untuk PostgreSQL versi 10 sampai 13, defaultnya adalah md5. Untuk PostgreSQL 14 ke atas, defaultnya adalah scram-sha-256.

Tidak
pg_bigm.enable_recheck boolean
on | off
Tidak
pg_bigm.gin_key_limit integer
0 ... 2147483647
Tidak
pg_bigm.similarity_limit float
0.0 ... 1.0
Tidak
pg_hint_plan.enable_hint boolean
on | off
Defaultnya adalah on.
Tidak
pg_hint_plan.debug_print String
off|on|detailed|verbose|0|1||2|3|no|yes|false|true
Setelan default-nya adalah nonaktif.
Tidak
pg_hint_plan.parse_messages String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
Defaultnya adalah info.
Tidak
pg_hint_plan.message_level String
debug5|debug4|debug3|debug2|debug1|debug|
info|notice|warning|error|log
Defaultnya adalah log.
Tidak
pg_hint_plan.enable_hint_table boolean
on | off
Setelan defaultnya adalah nonaktif.
Tidak
pglogical.batch_inserts boolean
on | off
Defaultnya adalah off.
Ya
pglogical.conflict_log_level String
Defaultnya adalah LOG.
Flag ini menerima nilai yang sama dengan log_min_messages.
Tidak
pglogical.conflict_resolution String
error|apply_remote|keep_local|last_update_wins|first_update_wins Defaultnya adalah apply_remote.
Tidak
pglogical.extra_connection_options String
Menerima string koneksi kata kunci/nilai PostgreSQL.
Defaultnya adalah string kosong.
Tidak
pglogical.synchronous_commit boolean
on | off
Defaultnya adalah on.
Ya
pglogical.use_spi boolean
on | off
Defaultnya adalah off.
Ya
pg_stat_statements.max integer
100 ... 2147483647
Defaultnya adalah 5000.
Ya
pg_stat_statements.save boolean
on | off
Defaultnya adalah on.
Tidak
pg_stat_statements.track enumeration
none | top | all
Defaultnya adalah top.
Tidak
pg_stat_statements.track_utility boolean
on | off
Defaultnya adalah on.
Tidak
pgaudit.log enumeration
read | write | function | role | ddl | misc | misc_set | all|none

Anda dapat menyediakan class lebih dari satu menggunakan daftar yang dipisahkan koma, dan mengurangi class dengan mengawali class tersebut dengan tanda -. Defaultnya adalah none.

Tidak
pgaudit.log_catalog boolean
on | off
Nilai defaultnya adalah on.
Tidak
pgaudit.log_client boolean
on | off
Nilai defaultnya adalah off.
Tidak
pgaudit.log_level enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | info | notice | warning | error | log
Defaultnya adalah log. Disamping itu, pgaudit.log_level hanya akan diaktifkan jika pgaudit.log_client aktif.
Tidak
pgaudit.log_parameter boolean
on | off
Nilai defaultnya adalah off.
Tidak
pgaudit.log_relation boolean
on | off
Nilai defaultnya adalah off.
Tidak
pgaudit.log_statement_once boolean
on | off
Nilai defaultnya adalah off.
Tidak
pgaudit.role string
Tidak ada default-nya.
Tidak
pgtt.enabled boolean
on | off
Defaultnya adalah on.
Tidak
pg_wait_sampling.history_period integer
1 ... 2147483647
Tidak
pg_wait_sampling.history_size integer
1 ... 2147483647
Tidak
pg_wait_sampling.profile_period integer
1 ... 2147483647
Tidak
pg_wait_sampling.profile_pid boolean
on | off
Tidak
pg_wait_sampling.profile_queries boolean
on | off
Tidak
random_page_cost float
0.0 ... inf
Defaultnya adalah 4.
Tidak
rdkit.agent_FP_bit_ratio float
0 ... 3
Tidak
rdkit.avalon_fp_size integer
64 ... 9192
Tidak
rdkit.dice_threshold float
0 ... 1
Tidak
rdkit.difference_FP_weight_agents integer
-10 ... 10
Tidak
rdkit.difference_FP_weight_nonagents integer
1 ... 20
Tidak
rdkit.do_chiral_sss boolean
on | off
Tidak
rdkit.do_enhanced_stereo_sss boolean
on | off
Tidak
rdkit.featmorgan_fp_size integer
64 ... 9192
Tidak
rdkit.hashed_atompair_fp_size integer
64 ... 9192
Tidak
rdkit.hashed_torsion_fp_size integer
64 ... 9192
Tidak
rdkit.ignore_reaction_agents boolean
on | off
Tidak
rdkit.init_reaction boolean
on | off
Tidak
rdkit.layered_fp_size integer
64 ... 9192
Tidak
rdkit.morgan_fp_size integer
64 ... 9192
Tidak
rdkit.move_unmmapped_reactants_to_agents boolean
on | off
Tidak
rdkit.rdkit_fp_size integer
64 ... 9192
Tidak
rdkit.reaction_difference_fp_size integer
64 ... 9192
Tidak
rdkit.reaction_difference_fp_type integer
1 ... 3
Tidak
rdkit.reaction_sss_fp_size integer
64 ... 9192
Tidak
rdkit.reaction_sss_fp_type integer
1 ... 5
Tidak
rdkit.sss_fp_size integer
64 ... 4096
Tidak
rdkit.tanimoto_threshold float
0 ... 1
Tidak
rdkit.threshold_unmapped_reactant_atoms float
0 ... 1
Tidak
replacement_sort_tuples integer
0 ... 2147483647
Tidak
session_replication_role enumeration
origin | replica | local
Hanya dapat disetel di sesi saat ini
-
shared_buffers integer
Rentang ukurannya adalah 10% - 60% dari memori instance.
Unit berukuran 8 KB.
Defaultnya adalah sepertiga dari total memori VM instance (dalam MB). Contohnya, untuk memori instance 45 GB, nilai defaultnya adalah 15085MB.
Ya
squeeze.max_xlock_time integer
1 ... 2147483647
Tidak
squeeze.worker_autostart string
Tidak
squeeze.worker_role string
Tidak
ssl_max_protocol_version enumeration
Postgres 14: Menetapkan versi protokol SSL/TLS maksimum yang akan digunakan. Nilai yang valid adalah nilai yang sama untuk ssl_min_protocol_version, dengan penambahan sebuah string kosong, yang memungkinkan semua versi protokol dapat ditentukan.
Didukung di PostgreSQL 12 ke atas.
Tidak
ssl_min_protocol_version enumeration
Postgres 14: Menetapkan versi protokol SSL/TLS minimum yang akan digunakan Nilai yang valid saat ini adalah: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3.
Defaultnya adalah TLSv1.
Didukung di PostgreSQL 12 ke atas.
Tidak
standard_conforming_strings boolean
on | off
Defaultnya adalah on.
Tidak
synchronize_seqscans boolean
on | off
Defaultnya adalah on.
Tidak
tcp_keepalives_count integer
0 ... 2147483647
Defaultnya adalah 5.
Tidak
tcp_keepalives_idle integer
0 ... 2147483647
Defaultnya adalah 60.
Tidak
tcp_keepalives_interval integer
0 ... 2147483647
Defaultnya adalah 60.
Tidak
temp_buffers integer
100 ... 1,073,741,823
Unit berukuran 8 KB
Tidak
temp_file_limit integer
1048576 ... 2147483647 KB
Nilai defaultnya adalah 10% dari ukuran disk awal. Contohnya, untuk disk 100 GB, nilai defaultnya adalah 10262623 KB.
Tidak
TimeZone string
Flag ini memberi pengguna Cloud SQL untuk PostgreSQL sebuah cara menetapkan zona waktu untuk menampilkan dan menganalisis stempel waktu.

Anda dapat menentukan zona waktu dengan nama. Contohnya, Europe/London adalah nama zona waktu untuk London.

Anda harus memperbarui flag ini secara manual, pada instance utama dan pada semua replika baca, untuk memastikannya.

Nama zona waktu tidak peka huruf besar/kecil. Anda dapat menyediakan nama zona waktu dengan huruf besar maupun kecil.

Kami mendukung UTC+X sebagai format yang valid untuk flag ini, di mana X adalah +/-HH.

Ya
trace_notify boolean
on | off
Defaultnya adalah off.
Tidak
trace_recovery_messages enumeration
debug5 | debug4 | debug3 | debug2 | debug1 | log | notice | warning | error
Defaultnya adalah log.
Tidak
trace_sort boolean
on | off
Defaultnya adalah off.
Tidak
track_activities boolean
on | off
Defaultnya adalah on.
Tidak
track_activity_query_size integer
100 ... 102400
Defaultnya adalah 1 KB.
Ya
track_commit_timestamp boolean
on | off
Defaultnya adalah off.
Ya
track_counts boolean
on | off
Defaultnya adalah on.
Tidak
track_functions enumeration
none | pl | all
Defaultnya adalah none.
Tidak
track_io_timing boolean
on | off
Defaultnya adalah off.
Tidak
vacuum_cost_delay integer
0 ... 100 ms
Defaultnya adalah 0.
Tidak
vacuum_cost_limit integer
1 ... 10000
Defaultnya adalah 200.
Tidak
vacuum_failsafe_age integer
0 ... 2100000000
Nilai defaultnya adalah 1600000000.
Tidak
vacuum_freeze_min_age integer
0 ... 1000000000
Defaultnya adalah 50000000.
Tidak
vacuum_freeze_table_age integer
0 ... 2000000000
Nilai defaultnya adalah 150000000.
Tidak
vacuum_multixact_failsafe_age integer
0 ... 2100000000
Nilai defaultnya adalah 1600000000.
Tidak
vacuum_multixact_freeze_min_age integer
0 ... 1000000000
Nilai defaultnya adalah 5000000.
Tidak
vacuum_multixact_freeze_table_age integer
0 ... 2000000000
Defaultnya adalah 150000000.
Tidak
wal_buffers integer
Rentang ukurannya adalah -1 - 5% dari memori instance.
Unit berukuran 8 KB.
Defaultnya adalah 16 MB.
Ya
wal_compression enumeration
off | on | pglz | lz4 | zstd
Defaultnya adalah off.
Tidak
wal_receiver_timeout integer
0 ... 2147483647
Defaultnya adalah 60 detik.

Flag ini memengaruhi pengirim dan penerima WAL. Jika tidak ditetapkan dengan tepat, flag ini akan memengaruhi replikasi logis dan fisik. Flag ini juga memengaruhi performa dan latensi replikasi. Nilai nol akan menonaktifkan mekanisme waktu tunggu. Satuannya adalah milidetik.

Tidak
wal_sender_timeout integer
0 ... 2147483647
Defaultnya adalah 60 detik.

Flag ini memengaruhi pengirim dan penerima WAL. Jika tidak ditetapkan dengan tepat, flag ini akan memengaruhi replikasi logis dan fisik. Flag ini juga akan memengaruhi performa dan latensi replikasi. Nilai nol akan menonaktifkan mekanisme waktu tunggu. Satuannya adalah milidetik.

Tidak
work_mem integer
64 ... 2147483647 KB
Defaultnya adalah 4 MB.
Tidak

Flag khusus

bgwriter

PostgreSQL memiliki sebuah flag penulis latar belakang (bgwriter). Flag ini memulai penulisan shared buffer yang baru atau yang telah dimodifikasi. Shared buffer ini dikenal sebagai buffer kotor. Ketika jumlah shared buffer yang bersih tidak mencukupi, penulis latar belakang akan menulis buffer kotor ke sistem file dan menandai mereka sebagai buffer bersih.

Dua flag yang terkait dengan flag bgwriter adalah bgwriter_delay dan bgwriter_lru_maxpages. bgwriter_delay menentukan waktu tunda setiap putaran aktivitas untuk penulis latar belakang dalam milidetik (ms), dan bgwriter_lru_maxpages menentukan berapa banyak buffer yang akan ditulis oleh penulis latar belakang.

Nilai default untuk flag bgwriter adalah 200 ms. Namun, jika Anda memilih solid state drive (SSD) yang lebih besar dari 500 GB, maka nilai dari flag bgwriter_delay akan ditetapkan menjadi 50, dan nilai Flag bgwriter_lru_maxpages ditetapkan menjadi 200.

Untuk informasi selengkapnya tentang penulis latar belakang, lihat dokumentasi PostgreSQL.

session_replication_role

PostgreSQL memiliki flag session_replication_role, yang dirancang untuk digunakan untuk replikasi logis dan memungkinkan Anda menonaktifkan pemicu batasan dalam setiap sesi.

Terkadang flag ini juga dapat digunakan pada beberapa operasi pemeliharaan untuk menghindari pemeriksaan batasan (paling sering Foreign Key).

Flag ini dapat disetel di sebuah sesi oleh pengguna manapun yang mempunyai properti REPLICATION. Properti REPLICATION untuk pengguna manapun dapat disetel oleh cloudsqlsuperuser ketika salah satu flag cloudsql.enable_pglogical atau cloudsql.logical_decoding telah disetel pada instance.

Flag ini tidak dapat disetel untuk seluruh instance.

Pemecahan masalah

Masalah Pemecahan masalah
Anda menetapkan zona waktu untuk sebuah sesi, tetapi zona waktu berakhir saat Anda log off.

Hubungkan ke database dan setel zona waktu database ke zona yang Anda inginkan, baik per pengguna atau per database.

Di Cloud SQL untuk PostgreSQL, Anda dapat menentukan hal berikut ini. Setelan ini tidak berubah setelah sesi ditutup, mirip seperti konfigurasi .conf:


ALTER DATABASE dbname SET TIMEZONE TO 'timezone';
ALTER USER username SET TIMEZONE TO 'timezone';

Setelan ini hanya berlaku untuk koneksi baru ke database. Untuk melihat perubahan pada zona waktu, putuskan sambungan dari instance, lalu hubungkan kembali sambungan tersebut.

Langkah selanjutnya