Halaman ini menjelaskan cara mengelola database Spanner, termasuk cara membuat database, mengubah opsi database, dan menghapus database. Untuk mempelajari cara memperbarui skema database, lihat Membuat pembaruan skema.
Untuk berlatih membuat database dan memuat data contoh, lihat codelab Database Pertama Anda.
Buat database
Contoh berikut menunjukkan cara membuat database di instance yang ada.
Untuk database dialek GoogleSQL, Anda dapat menentukan skema database pada saat pembuatan database, atau setelah database dibuat. Untuk database dialek PostgreSQL, Anda harus menentukan skema setelah pembuatan.
Skema ditentukan menggunakan Database Definition Language, yang didokumentasikan untuk GoogleSQL dan PostgreSQL. Lihat link berikut untuk mengetahui informasi selengkapnya tentang cara membuat dan memperbarui skema:
Setelah membuat database, Anda dapat mengamankan database yang penting untuk aplikasi dan layanan Anda dengan mengaktifkan perlindungan penghapusan database. Untuk mengetahui informasi selengkapnya, lihat Mencegah penghapusan database secara tidak sengaja.
Konsol
Di konsol Google Cloud, buka halaman Spanner Instances.
Pilih instance tempat database akan dibuat.
Klik Buat database.
Masukkan nilai berikut:
- Nama database yang akan ditampilkan di konsol Google Cloud.
- Dialek yang akan digunakan untuk database ini.
- Untuk database dialek GoogleSQL, secara opsional berikan kumpulan pernyataan DDL yang menentukan skema Anda. Gunakan template DDL untuk mengisi otomatis elemen umum. Jika ada error dalam pernyataan DDL, konsol Google Cloud akan menampilkan error saat Anda mencoba membuat database.
- Secara opsional, pilih kunci enkripsi yang dikelola pelanggan untuk digunakan pada database ini.
Klik Create untuk membuat database.
gcloud
Gunakan perintah gcloud spanner databases create
.
gcloud spanner databases create DATABASE \
--instance=INSTANCE \
[--async] \
[--database-dialect=DATABASE_DIALECT] \
[--ddl=DDL] \
[--ddl-file=DDL_FILE] \
[--kms-key=KMS_KEY : --kms-keyring=KMS_KEYRING --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
[GCLOUD_WIDE_FLAG …]
Opsi berikut diperlukan:
DATABASE
- ID database atau ID yang sepenuhnya memenuhi syarat untuk database. Jika menentukan ID yang sepenuhnya memenuhi syarat, flag
--instance
dapat dihilangkan. --instance=INSTANCE
- Instance Spanner untuk database.
Opsi berikut bersifat opsional:
--async
- Segera kembali, tanpa menunggu operasi yang sedang berlangsung selesai.
--database-dialect=DATABASE_DIALECT
- Dialek SQL Database Spanner. Harus berupa salah satu dari:
POSTGRESQL
,GOOGLE_STANDARD_SQL
. --ddl=DDL
- Pernyataan DDL (bahasa definisi data) yang dipisahkan titik koma untuk dijalankan
di dalam database yang baru dibuat. Jika ada error dalam pernyataan apa pun, database tidak akan dibuat. Flag ini diabaikan jika
--ddl_file
ditetapkan. Tidak didukung oleh database dialek PostgreSQL. --ddl-file=DDL_FILE
- Jalur file yang berisi pernyataan DDL (bahasa definisi data) yang dipisahkan titik koma untuk dijalankan di dalam database yang baru dibuat. Jika ada error dalam pernyataan apa pun, database tidak akan dibuat. Jika
--ddl_file
ditetapkan,--ddl
akan diabaikan. Tidak didukung oleh database dialek PostgreSQL.
Jika Anda menentukan kunci Cloud Key Management Service yang akan digunakan saat membuat database, sertakan opsi berikut:
--kms-key=KMS_KEY
- ID kunci atau ID yang sepenuhnya memenuhi syarat untuk kunci.
Flag ini harus ditentukan jika ada argumen lain dalam grup ini yang ditentukan. Argumen lainnya dapat dihilangkan jika ID yang sepenuhnya memenuhi syarat diberikan.
--kms-keyring=KMS_KEYRING
- ID key ring Cloud KMS kunci.
--kms-location=KMS_LOCATION
- Lokasi Google Cloud untuk kunci.
--kms-project=KMS_PROJECT
- ID project Google Cloud untuk kunci.
Klien (GoogleSQL)
C++
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk melakukan autentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Memperbarui skema atau opsi database
Anda dapat memperbarui skema dan opsi database menggunakan pernyataan DDL.
Misalnya, untuk menambahkan kolom ke tabel, gunakan pernyataan DDL berikut:
GoogleSQL
ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);
PostgreSQL
ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);
Untuk mengupdate versi pengoptimal kueri, gunakan pernyataan DDL berikut:
GoogleSQL
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
PostgreSQL
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
Untuk informasi selengkapnya tentang opsi yang didukung, lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau PostgreSQL.
Untuk informasi tentang pembaruan skema, lihat Membuat pembaruan skema.
Konsol
Buka halaman Instance di konsol Google Cloud.
Pilih instance yang berisi database yang akan diubah.
Pilih database.
Klik Spanner Studio.
Klik
Tab baru atau gunakan tab editor kosong. Kemudian, masukkan pernyataan DDL yang akan diterapkan.Klik Jalankan untuk menerapkan update. Jika ada error dalam DDL Anda, konsol Google Cloud akan menampilkan error dan database tidak akan diubah.
gcloud
Untuk mengubah database dengan alat command line gcloud
, gunakan
gcloud spanner databases ddl update
.
gcloud spanner databases ddl update \ (DATABASE : --instance=INSTANCE) \ [--async] \ [--ddl=DDL] \ [--ddl-file=DDL_FILE] \
Lihat
referensi gcloud
untuk mengetahui
detail tentang opsi yang tersedia.
Teruskan update database ke perintah dengan flag --ddl
, atau
flag --ddl-file
. Jika file DDL ditentukan, tanda --ddl
akan diabaikan.
Lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau PostgreSQL untuk mengetahui pernyataan DDL yang akan disertakan.
DDL
Lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau PostgreSQL untuk mengetahui detailnya.
Memeriksa progres operasi pembaruan skema
Konsol
Di menu navigasi Spanner, pilih tab Operations. Halaman Operasi menampilkan daftar operasi yang sedang berjalan.
Temukan operasi skema dalam daftar. Jika masih berjalan, status progres di kolom Waktu berakhir akan menampilkan persentase operasi yang selesai, seperti yang ditunjukkan pada gambar berikut:
gcloud
Gunakan gcloud spanner operations describe
untuk memeriksa progres operasi.
Mendapatkan ID operasi:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Ganti kode berikut:
- INSTANCE-NAME dengan nama instance Spanner.
- DATABASE-NAME dengan nama database.
Jalankan
gcloud spanner operations describe
:gcloud spanner operations describe OPERATION_ID\ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
Ganti kode berikut:
- OPERATION-ID: ID operasi dari operasi yang ingin Anda periksa.
- INSTANCE-NAME: Nama instance Spanner.
- DATABASE-NAME: Nama database Spanner.
Bagian
progress
dalam output menunjukkan persentase operasi yang telah selesai. Outputnya terlihat mirip dengan yang berikut ini:done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
REST v1
Mendapatkan ID operasi:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Ganti kode berikut:
- INSTANCE-NAME dengan nama instance Spanner.
- DATABASE-NAME dengan nama database.
Periksa progres operasi.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT-ID: project ID.
- INSTANCE-ID: ID instance.
- DATABASE-ID: ID database.
- OPERATION-ID: ID operasi.
Metode HTTP dan URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Jika operasi membutuhkan waktu terlalu lama, Anda dapat membatalkannya. Untuk mengetahui informasi selengkapnya, lihat Membatalkan operasi database yang berjalan lama.
Menghapus database
Menghapus database secara permanen akan menghapus database tersebut dan semua datanya. Penghapusan database tidak dapat diurungkan. Jika perlindungan penghapusan database diaktifkan di database, Anda tidak dapat menghapus database tersebut hingga Anda menonaktifkan perlindungan penghapusannya.
Cadangan yang ada tidak dihapus saat database dihapus. Untuk informasi selengkapnya, lihat Mencadangkan dan memulihkan.
Konsol
Buka halaman Instance di konsol Google Cloud.
Pilih instance yang berisi database yang akan dihapus.
Pilih database.
Klik Hapus database. Konfirmasi akan muncul.
Ketik nama database, lalu klik Delete.
gcloud
Untuk menghapus database dengan alat command line gcloud
, gunakan
gcloud spanner databases delete
.
gcloud spanner databases delete \ (DATABASE : --instance=INSTANCE)
Opsi berikut diperlukan:
DATABASE
- ID database atau ID yang sepenuhnya memenuhi syarat untuk database. Jika
ID yang sepenuhnya memenuhi syarat diberikan, tanda
--instance
harus dihilangkan. --instance=INSTANCE
- Instance Spanner untuk database.
Untuk detail selengkapnya, lihat
referensi gcloud
.
DDL
DDL tidak mendukung sintaksis penghapusan database.
Langkah selanjutnya
- Membuat database dan memuat data contoh.
- Pelajari lebih lanjut referensi DDL GoogleSQL.
- Pelajari lebih lanjut referensi DDL PostgreSQL.
- Pelajari cara mencadangkan dan memulihkan database.
- Pelajari cara mencegah penghapusan database secara tidak sengaja.
- Pelajari cara membuat pembaruan skema.