ALTER DATABASE - Amazon Redshift

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, diperlukan salah satu hak istimewa berikut..

  • Superuser

  • Pengguna dengan hak istimewa ALTER DATABASE

  • Pemilik database

Sintaks

ALTER DATABASE database_name { RENAME TO new_name | OWNER TO new_owner | [ CONNECTION LIMIT { limit | UNLIMITED } ] [ COLLATE { CASE_SENSITIVE | CASE_INSENSITIVE } ] [ ISOLATION LEVEL { SERIALIZABLE | SNAPSHOT } ] | 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 untuk diubah. Biasanya, Anda mengubah database yang saat ini tidak terhubung dengan Anda; dalam hal apapun, 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 pengidentifikasi. Anda tidak dapat mengganti nama database dev, padb_harvest, template0, template1, atau sys:internal, dan Anda tidak dapat mengganti nama database saat ini. Hanya pemilik database atau yang superuser dapat mengganti nama database; pemilik non-superuser juga harus memiliki hak istimewa CREATEDB.

new_name

Nama database baru.

PEMILIK UNTUK

Mengubah pemilik database yang ditentukan. Anda dapat mengubah pemilik database saat ini atau beberapa database lainnya. Hanya superuser yang bisa mengubah pemiliknya.

new_owner

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

BATAS KONEKSI {limit | UNLIMITED}

Jumlah maksimum koneksi database pengguna diizinkan untuk membuka secara bersamaan. Batas tidak diberlakukan untuk pengguna super. Gunakan kata kunci UNLIMITED untuk memungkinkan 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 tampilan STV_SESSIONS sistem.

catatan

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

COLLATE {CASE_SENSITIVE | CASE_INSENSITIVE}

Klausa yang menentukan apakah pencarian string atau perbandingan bersifat case-sensitive atau case-insensitive.

Anda dapat mengubah sensitivitas kasus dari database saat ini yang kosong.

Anda harus memiliki hak istimewa untuk database saat ini untuk mengubah sensitivitas kasus. Superuser atau pemilik database dengan hak istimewa CREATE DATABASE juga dapat mengubah sensitivitas kasus database.

TINGKAT ISOLASI {SERIALIZABLE | SNAPSHOT}

Sebuah klausa yang menentukan tingkat isolasi yang digunakan ketika query dijalankan terhadap database.

  • Isolasi SERIALIZABLE — menyediakan serialisasi penuh untuk transaksi bersamaan. Untuk informasi selengkapnya, lihat Isolasi yang dapat diserialisasi.

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

Untuk informasi lebih lanjut tentang tingkat isolasi, lihatBUAT BASIS DATA.

Pertimbangkan item berikut saat mengubah tingkat isolasi database:

  • Anda harus memiliki superuser atau CREATE DATABASE privilege 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 tingkat isolasi alter gagal jika pengguna lain terhubung ke database.

  • Perintah tingkat isolasi alter dapat mengubah pengaturan tingkat isolasi sesi saat ini.

INTEGRASI

Mengubah database integrasi nol-ETL.

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

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

Untuk informasi selengkapnya, lihat Integrasi nol-ETL di Panduan Manajemen Pergeseran Merah Amazon. Untuk informasi selengkapnya 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 nol-ETL hanya dapat ditanyakan dalam status. Synced

ACCEPTINVCHARS [=] {TRUE | FALSE}

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

REFRESH_INTERVAL <interval>

Klausa REFRESH_INTERVAL menetapkan perkiraan interval waktu, dalam detik, untuk menyegarkan data dari sumber nol-ETL ke database target. intervalDapat diatur 0-432.000 detik (5 hari) untuk integrasi nol-ETL yang tipe sumbernya adalah Aurora MySQL, Aurora PostgreSQL, atau RDS untuk MySQL. Untuk integrasi Amazon DynamoDB Zero-ETL, dapat diatur 900—432.000 detik (15 interval menit —5 hari).

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

TRUNCATECOLUMNS [=] {TRUE | FALSE}

Klausa TRUNCATECOLUMNS menetapkan apakah tabel integrasi nol-ETL berlanjut dengan konsumsi ketika nilai untuk kolom VARCHAR berada di luar batas. KapanTRUE, nilainya terpotong agar sesuai dengan kolom.

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

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

Klausa HISTORY_MODE dapat diatur ke atau. TRUE FALSE Default-nya adalah 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 Pergeseran Merah Amazon.

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 kasus database 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 database schema2.sample_table2 sample_integration_db dalam integrasi nol-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 nol-ETL Anda.

ALTER DATABASE sample_integration_db INTEGRATION REFRESH ALL tables;

Contoh berikut menetapkan interval refresh untuk integrasi nol-ETL ke 600 detik..

ALTER DATABASE sample_integration_db INTEGRATION SET REFRESH_INTERVAL 600;

Contoh berikut menyegarkan semua tabel yang ada di ErrorState dalam skema. sample_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