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 memuatnya dengan contoh data, lihat codelab Database Pertama Anda.
Buat database
Contoh berikut menunjukkan cara membuat database dalam instance yang ada.
Untuk database dialek GoogleSQL, Anda dapat menentukan skema database pada saat pembuatan database, maupun setelah database dibuat. Untuk database dialek PostgreSQL, Anda harus menentukan skema setelah dibuat.
Skema ditentukan menggunakan Database Definition Language, yang didokumentasikan untuk GoogleSQL dan PostgreSQL. Buka 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
Buka halaman Instance di Konsol Google Cloud.
Pilih instance untuk membuat database.
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, Anda dapat menyediakan kumpulan pernyataan DDL yang menentukan skema Anda. Gunakan template DDL untuk mengisi elemen umum secara otomatis. Jika terdapat error dalam pernyataan DDL Anda, konsol Google Cloud akan menampilkan error saat Anda mencoba membuat database.
- Secara opsional, pilih kunci enkripsi yang dikelola pelanggan yang akan digunakan untuk 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 dari Database Spanner. Harus
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 terjadi error dalam suatu pernyataan, database tidak akan dibuat. Tanda ini akan 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 terjadi error dalam suatu pernyataan, 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 untuk digunakan saat membuat database, sertakan opsi berikut:
--kms-key=KMS_KEY
- ID kunci atau ID yang sepenuhnya memenuhi syarat untuk kunci tersebut.
Flag ini harus ditetapkan 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 tersebut.
--kms-project=KMS_PROJECT
- ID project Google Cloud untuk kunci tersebut.
Klien (GoogleSQL)
C++
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk mengautentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk mengautentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk mengautentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk mengautentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk mengautentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk mengautentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Spanner, lihat library klien Spanner.
Untuk mengautentikasi ke Spanner, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 query optimizer, 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 mengetahui informasi selengkapnya tentang opsi yang didukung, lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau
PostgreSQL.
Untuk mengetahui informasi tentang pembaruan skema, lihat Membuat pembaruan skema.
Konsol
Buka halaman Instance di Konsol Google Cloud.
Pilih instance berisi database yang akan diubah.
Pilih database.
Klik Spanner Studio.
Klik
Tab baru atau gunakan tab editor kosong. Kemudian, masukkan pernyataan DDL untuk diterapkan.Klik Run untuk menerapkan update. Jika terjadi error dalam DDL Anda, Google Cloud Console 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 pembaruan database ke perintah dengan flag --ddl
, atau
flag --ddl-file
. Jika file DDL ditentukan, flag --ddl
akan diabaikan.
Lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau
PostgreSQL untuk pernyataan DDL yang 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 Operations 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.
Dapatkan 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
pada output menunjukkan persentase operasi yang 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
Dapatkan 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 berlangsung 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 sebuah database, Anda tidak dapat menghapus database tersebut hingga Anda menonaktifkan perlindungan penghapusannya.
Cadangan yang ada tidak akan dihapus saat database dihapus. Untuk mengetahui informasi selengkapnya, lihat Pencadangan dan pemulihan.
Konsol
Buka halaman Instance di Konsol Google Cloud.
Pilih instance 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 mengetahui detail selengkapnya, lihat
referensi gcloud
.
DDL
DDL tidak mendukung sintaksis penghapusan database.
Langkah selanjutnya
- Membuat database dan memuatnya dengan data sampel.
- Pelajari referensi DDL GoogleSQL lebih lanjut.
- Pelajari referensi DDL PostgreSQL lebih lanjut.
- Pelajari cara mencadangkan dan memulihkan database.
- Pelajari cara mencegah penghapusan database secara tidak sengaja.
- Pelajari cara membuat pembaruan skema.