Halaman ini menjelaskan cara mengelola database Spanner, termasuk cara membuat database, mengubah opsi database, dan menghapus database. Halaman ini memiliki informasi untuk database dialek GoogleSQL dan database dialek PostgreSQL. Untuk mempelajari cara memperbarui skema database, lihat Membuat pembaruan skema.
Untuk berlatih membuat database dan memuatnya dengan data contoh, lihat codelab database Spanner.
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 Bahasa Definisi Database, 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.
Google Cloud console
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance untuk membuat database.
Klik Buat database.
Masukkan nilai berikut:
- Nama database untuk ditampilkan di konsol Google Cloud .
- Dialek yang akan digunakan untuk database ini.
- Untuk database dialek GoogleSQL, Anda dapat memberikan serangkaian pernyataan DDL yang menentukan skema Anda. Gunakan template DDL untuk mengisi otomatis elemen umum. Jika ada error dalam pernyataan DDL, konsol akan menampilkan error saat Anda mencoba membuat database. Google Cloud
- Secara opsional, pilih kunci enkripsi yang dikelola pelanggan untuk digunakan bagi database ini.
Klik Buat untuk membuat database.
gcloud
Gunakan perintah gcloud spanner databases create
.
```sh
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, tanda
--instance
dapat dihilangkan. --instance=INSTANCE
- Instance Spanner untuk database.
Opsi berikut bersifat opsional:
--async
- Segera tampilkan, tanpa menunggu operasi yang sedang berlangsung selesai.
--database-dialect=DATABASE_DIALECT
- Dialek SQL Database Spanner. Harus
salah satu dari:
POSTGRESQL
,GOOGLE_STANDARD_SQL
. --ddl=DDL
- Pernyataan DDL (bahasa definisi data) yang dipisahkan dengan titik koma untuk dijalankan
di dalam database yang baru dibuat. Jika ada error dalam pernyataan apa pun, database tidak 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 dari kunci.
--kms-location=KMS_LOCATION
- Google Cloud lokasi kunci.
--kms-project=KMS_PROJECT
- Google Cloud project ID 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 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.
Google Cloud console
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance yang berisi database yang akan diubah.
Pilih database.
Klik Spanner Studio.
Klik
Tab baru atau gunakan tab editor yang 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 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, tanda --ddl
akan diabaikan.
Lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau PostgreSQL untuk pernyataan DDL yang akan disertakan.
DDL
Lihat referensi DDL ALTER DATABASE
untuk GoogleSQL atau
PostgreSQL untuk mengetahui detailnya.
Memeriksa progres operasi update skema
Google Cloud console
Di menu navigasi Spanner, pilih tab Operations. Halaman Operasi menampilkan daftar operasi aktif yang sedang berjalan.
Temukan operasi skema dalam daftar. Jika masih berjalan, status progres di kolom Waktu berakhir menunjukkan persentase operasi yang telah 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 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
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 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 pada database, Anda tidak dapat menghapus database tersebut hingga Anda menonaktifkan perlindungan penghapusannya.
Cadangan yang ada tidak dihapus saat database dihapus. Untuk mengetahui informasi selengkapnya, lihat Mencadangkan dan memulihkan.
Google Cloud console
Di konsol Google Cloud , buka halaman Spanner Instances.
Pilih instance yang berisi database yang akan dihapus.
Pilih database.
Klik Hapus database. Konfirmasi akan muncul.
Ketik nama database, lalu klik Hapus.
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 dihapus. --instance=INSTANCE
- Instance Spanner untuk database.
Untuk mengetahui detail selengkapnya, lihat
referensi gcloud
.
DDL
DDL tidak mendukung sintaksis penghapusan database.
Langkah berikutnya
- Buat database dan muat dengan data sampel.
- 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.