View a markdown version of this page

ALTER DATABASE - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

ALTER DATABASE

Mengubah atribut database.

Hak istimewa yang diperlukan

Untuk menggunakan ALTER DATABASE, salah satu hak istimewa berikut diperlukan..

  • Superuser

  • Pengguna dengan hak istimewa ALTER DATABASE

  • Pemilik database

Sintaksis

ALTER DATABASE database_name { RENAME TO new_name | OWNER TO new_owner | [ CONNECTION LIMIT { limit | UNLIMITED } ] [ COLLATE { CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI } ] [ ISOLATION LEVEL { SNAPSHOT | SERIALIZABLE } ] | INTEGRATION { REFRESH { { ALL | INERROR } TABLES [ IN SCHEMA schema [, ...] ] | TABLE schema.table [, ...] } | SET [ QUERY_ALL_STATES [=] { TRUE | FALSE } ] [ ACCEPTINVCHARS [=] { TRUE | FALSE } ] [ REFRESH_INTERVAL <interval> ] [ TRUNCATECOLUMNS [=] { TRUE | FALSE } ] [ HISTORY_MODE [=] {TRUE | FALSE} [ FOR { {ALL} TABLES [IN SCHEMA schema [, ...] ] | TABLE schema.table [, ...] } ] ] } }

Parameter

database_name

Nama database yang akan diubah. Biasanya, Anda mengubah database yang saat ini tidak terhubung; dalam hal apa pun, perubahan hanya berlaku di sesi berikutnya. Anda dapat mengubah pemilik database saat ini, tetapi Anda tidak dapat mengganti namanya:

alter database tickit rename to newtickit; ERROR: current database may not be renamed
GANTI NAMA MENJADI

Mengganti nama database yang ditentukan. Untuk informasi selengkapnya tentang nama yang valid, lihatNama dan pengenal. Anda tidak dapat mengganti nama dev, padb_harvest, template0, template1, atau sys:internal database, dan Anda tidak dapat mengganti nama database saat ini. Hanya pemilik database atau a yang superuser dapat mengganti nama database; pemilik non-superuser juga harus memiliki hak istimewa CREATEDB.

nama_baru

Nama database baru.

PEMILIK UNTUK

Mengubah pemilik database yang ditentukan. Anda dapat mengubah pemilik database saat ini atau beberapa database lainnya. Hanya pengguna super yang dapat mengubah pemilik.

pemilik baru

Pemilik database baru. Pemilik baru harus pengguna database yang ada dengan hak menulis. Untuk informasi selengkapnya tentang hak pengguna, lihatHIBAH.

BATAS KONEKSI {limit | TIDAK TERBATAS}

Jumlah maksimum koneksi database pengguna diizinkan untuk membuka secara bersamaan. Batas tidak diberlakukan untuk pengguna super. Gunakan kata kunci UNLIMITED untuk mengizinkan jumlah maksimum koneksi bersamaan. Batas jumlah koneksi untuk setiap pengguna mungkin juga berlaku. Untuk informasi selengkapnya, lihat BUAT PENGGUNA. Defaultnya adalah UNLIMITED. Untuk melihat koneksi saat ini, kueri STV_SESSION tampilan sistem.

catatan

Jika batas koneksi pengguna dan database berlaku, slot koneksi yang tidak digunakan harus tersedia yang berada dalam kedua batas saat pengguna mencoba menyambung.

SUSUN {CASE_SENSITIVE | CS | CASE_INSENSITIVE | CI}

Klausa yang menentukan apakah pencarian atau perbandingan string peka huruf besar-kecil atau tidak peka huruf besar-kecil.

Anda dapat mengubah sensitivitas huruf besar dari database saat ini meskipun kosong.

Anda harus memiliki izin ALTER untuk database saat ini untuk mengubah sensitivitas huruf besar/kecil. Superuser atau pemilik database dengan izin CREATE DATABASE juga dapat mengubah sensitivitas huruf besar database.

CASE_SENSITIVE dan CS dapat dipertukarkan dan menghasilkan hasil yang sama. Demikian pula, CASE_INSENSITIVE dan CI dapat dipertukarkan dan menghasilkan hasil yang sama.

Untuk memeriksa kolasi database saat ini, gunakan DB_COLLATION fungsi.

TINGKAT ISOLASI {SNAPSHOT | DAPAT DISERIALKAN}

Klausa yang menentukan tingkat isolasi yang digunakan ketika query dijalankan terhadap database. Untuk informasi lebih lanjut tentang tingkat isolasi, lihatTingkat isolasi di Amazon Redshift.

  • Isolasi SNAPSHOT — menyediakan tingkat isolasi dengan perlindungan terhadap konflik pembaruan dan penghapusan.

  • Isolasi SERIALIZABLE - menyediakan serialisasi penuh untuk transaksi bersamaan.

Pertimbangkan item berikut saat mengubah tingkat isolasi database:

  • Anda harus memiliki hak istimewa superuser atau CREATE DATABASE ke database saat ini untuk mengubah tingkat isolasi database.

  • Anda tidak dapat mengubah tingkat isolasi dev database.

  • Anda tidak dapat mengubah tingkat isolasi dalam blok transaksi.

  • Perintah ubah tingkat isolasi gagal jika pengguna lain terhubung ke database.

  • Perintah ubah level isolasi dapat mengubah pengaturan tingkat isolasi sesi saat ini.

INTEGRASI

Mengubah database integrasi Zero-ETL.

REFRESH {{ALL | INERROR} TABEL [DALAM skema SKEMA [,...]] | TABEL schema.table [,...]}

Klausa yang menentukan apakah Amazon Redshift akan menyegarkan semua tabel atau tabel dengan kesalahan dalam skema atau tabel yang ditentukan. Refresh akan memicu tabel dalam skema atau tabel yang ditentukan untuk sepenuhnya direplikasi dari database sumber.

Untuk informasi selengkapnya, lihat Zero-ETL integrasi di Panduan Manajemen Amazon Redshift. Untuk informasi lebih lanjut tentang status integrasi, lihat SVV_INTEGRATION_TABLE_STATE danSVV_INTEGRASI.

QUERY_ALL_STATES [=] {BENAR | SALAH}

Klausa QUERY_ALL_STATES menetapkan apakah tabel integrasi Zero-ETL dapat ditanyakan di semua status (,,, dan). Synced Failed ResyncRequired ResyncInitiated Secara default, tabel integrasi Zero-ETL hanya dapat ditanyakan dalam status. Synced

ACCEPTINVCHARS [=] {BENAR | SALAH}

Klausa ACCEPTINVCHARS menetapkan apakah tabel integrasi Zero-ETL berlanjut dengan penyerapan ketika karakter tidak valid terdeteksi untuk tipe data VARCHAR. Ketika karakter tidak valid ditemukan, karakter yang tidak valid diganti dengan ? karakter default.

REFRESH_INTERVAL <interval>

Klausa REFRESH_INTERVAL menetapkan perkiraan interval waktu, dalam detik, yang ditunggu Amazon Redshift setelah siklus refresh selesai untuk memulai siklus berikutnya. Setiap siklus menyegarkan data dari sumber integrasi Zero-ETL ke database target, menerapkan semua akumulasi perubahan sejak akhir siklus sebelumnya. Nilai 0 memulai siklus berikutnya segera setelah siklus sebelumnya selesai (replikasi hampir real-time). Nilai ruang yang lebih tinggi berputar lebih jauh, mengurangi overhead penyegaran dengan mengorbankan kesegaran data langsung. Amazon Redshift menunggu di antara siklus hanya ketika konsumsi telah menyusul; ketika perubahan menumpuk lebih cepat daripada yang dapat diterapkan, siklus berjalan tanpa menunggu.

intervalDapat diatur ke 0-432.000 detik (5 hari) untuk integrasi Zero-ETL yang tipe sumbernya adalah Aurora MySQL, Aurora PostgreSQL, atau mesin RDS yang didukung, dan defaultnya adalah 0. Untuk integrasi Amazon DynamoDB Zero-ETL, interval dapat diatur ke 900—432.000 detik (15 menit—5 hari), dan defaultnya adalah 900 detik (15 menit); 0 tidak didukung.

catatan

Untuk integrasi penulisan intensif selain DynamoDB yang menghasilkan volume perubahan yang tinggi, atur REFRESH_INTERVAL ke nilai kecil bukan nol (misalnya, 60-120 detik). Mengelompokkan lebih banyak perubahan ke dalam setiap siklus mengurangi keseluruhan overhead komputasi replikasi.

Untuk informasi selengkapnya tentang membuat database dengan integrasi Zero-ETL, lihat Membuat database tujuan di Amazon Redshift di Panduan Manajemen Amazon Redshift.

TRUNCATECOLUMNS [=] {BENAR | SALAH}

Klausa TRUNCATECOLUMNS menetapkan apakah tabel integrasi Zero-ETL berlanjut dengan penyerapan ketika nilai untuk kolom VARCHAR atau atribut kolom SUPER berada di luar batas. KetikaTRUE, nilai-nilai dipotong agar sesuai dengan kolom dan nilai atribut JSON yang meluap dipotong agar sesuai dengan kolom SUPER.

HISTORY_MODE [=] {TRUE | FALSE} [UNTUK {{SEMUA} TABEL [DALAM SKEMA SKEMA [,...]] | TABEL schema.table [,...]}]

Klausa yang menentukan apakah Amazon Redshift akan menyetel mode riwayat untuk semua tabel atau tabel dalam skema tertentu yang berpartisipasi dalam integrasi Zero-ETL. Opsi ini hanya berlaku untuk database yang dibuat untuk integrasi Zero-ETL.

Klausa HISTORY_MODE dapat diatur ke TRUE atau. FALSE Nilai default-nya FALSE. Mengaktifkan dan menonaktifkan mode riwayat hanya berlaku untuk tabel yang berada dalam Synced status. Untuk informasi tentang HISTORY_MODE, lihat Mode Riwayat di Panduan Manajemen Amazon Redshift.

Catatan penggunaan

Perintah ALTER DATABASE berlaku untuk sesi berikutnya bukan sesi saat ini. Anda harus menyambung kembali ke database yang diubah untuk melihat efek perubahan.

Contoh

Contoh berikut mengganti nama database bernama TICKIT_SANDBOX menjadi TICKIT_TEST:

alter database tickit_sandbox rename to tickit_test;

Contoh berikut mengubah pemilik database TICKIT (database saat ini) menjadi DWUSER:

alter database tickit owner to dwuser;

Contoh berikut mengubah sensitivitas huruf besar database dari database sampledb:

ALTER DATABASE sampledb COLLATE CASE_INSENSITIVE;

Contoh berikut mengubah database bernama sampledb dengan tingkat isolasi SNAPSHOT.

ALTER DATABASE sampledb ISOLATION LEVEL SNAPSHOT;

Contoh berikut menyegarkan tabel schema1.sample_table1 dan schema2.sample_table2 dalam database sample_integration_db dalam integrasi Zero-ETL Anda.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH TABLE schema1.sample_table1, schema2.sample_table2;

Contoh berikut menyegarkan semua tabel yang disinkronkan dan gagal dalam integrasi Zero-ETL Anda.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH ALL tables;

Contoh berikut menetapkan interval refresh untuk integrasi Zero-ETL menjadi 600 detik..

ALTER DATABASE sample_integration_db INTEGRATION SET REFRESH_INTERVAL 600;

Contoh berikut menyegarkan semua tabel yang ada di ErrorState dalam skemasample_schema.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH INERROR TABLES in SCHEMA sample_schema;

Contoh berikut mengaktifkan mode riwayat untuk tabelmyschema.table1.

ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true FOR TABLE myschema.table1

Contoh berikut mengaktifkan mode riwayat untuk semua tabel dimyschema.

ALTER DATABASE sample_integration_db INTEGRATION SET HISTORY_MODE = true for ALL TABLES IN SCHEMA myschema