Dalam tutorial ini, Anda akan memigrasikan data dari SQL Server 2017 Enterprise yang berjalan di Compute Engine ke Cloud SQL untuk SQL Server 2017 Enterprise. Tutorial ini menunjukkan cara mengekspor data dari SQL Server 2017, mengimpor data ke Cloud SQL untuk SQL Server 2017, dan memvalidasi bahwa data berhasil diimpor.
Jika Anda ingin memigrasikan data dari SQL Server 2008, lihat Memigrasikan data antara SQL Server 2008 dan Cloud SQL untuk SQL Server menggunakan file cadangan.
Tutorial ini berguna jika Anda merupakan sysadmin, developer, engineer, admin database, atau engineer DevOps yang ingin memigrasikan data dari SQL Server 2017 ke Cloud SQL untuk SQL Server.
Tutorial ini mengasumsikan bahwa Anda sudah memahami hal-hal berikut:
- Microsoft SQL Server
- Microsoft PowerShell
- Compute Engine
- Cloud Storage
- Cloud SQL
Tujuan
- Membuat instance virtual machine (VM) SQL Server di Compute Engine untuk menghosting database sampel.
- Membuat instance Cloud SQL untuk SQL Server.
- Membuat bucket Cloud Storage.
- Mencadangkan database sampel.
- Mengimpor database ke Cloud SQL untuk SQL Server.
- Memvalidasi data yang diimpor.
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
- Compute Engine
- Cloud SQL
- Cloud Storage
- SQL Server (premium dengan Compute Engine)
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Storage, Cloud SQL Admin, and Compute Engine.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Aktifkan API Cloud Storage, Cloud SQL Admin, and Compute Engine.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Membuat skrip untuk database sampel
Di bagian ini, Anda akan membuat skrip untuk mengisi database contoh yang telah dimuat sebelumnya. Kemudian, Anda membuat instance SQL Server 2017 pada Compute Engine yang menggunakan database ini.
Di Cloud Shell, buat skrip PowerShell untuk men-deploy sebagai skrip startup:
cat << 'EOF' > startup.ps1 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $dataseturl = "https://opendata.maryland.gov/api/views/ryxx-aeaf/rows.csv?accessType=DOWNLOAD" Invoke-WebRequest -Uri $dataseturl -OutFile c:\dataset.csv Invoke-Sqlcmd -Query "CREATE DATABASE testdb;" Invoke-Sqlcmd -Query "CREATE TABLE testdb.dbo.MarylandZipCodes ( zipcode int NOT NULL PRIMARY KEY, city varchar(255), county varchar(255))" Invoke-Sqlcmd -Query "BULK INSERT testdb.dbo.MarylandZipCodes FROM 'c:\dataset.csv' WITH (DATAFILETYPE='char',FIELDTERMINATOR=',' ,ROWTERMINATOR = '0x0a', FIRSTROW=2);" EOF
Skrip startup ini membuat database lokal bernama
testdb
dengan tabel bernamaMarylandZipCodes
. Kemudian, skrip akan mendownload registry kode pos publik Maryland dan mengimpor registry ke dalam tabel.Buat instance SQL Server 2017 Enterprise untuk Windows Server 2016:
gcloud compute instances create sql-server --machine-type n1-highmem-4 \ --boot-disk-size 50GB \ --image-project windows-sql-cloud --image-family sql-ent-2017-win-2016 \ --zone us-central1-f \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --metadata-from-file windows-startup-script-ps1=startup.ps1
Untuk tutorial ini, Anda membuat instance di zona
us-central1-f
dengan ukuran boot disk sebesar 50 GB. Untuk mengetahui informasi selengkapnya tentang zona, lihat Lokasi Cloud. Flag--metadata-from-file
menetapkan skrip PowerShell menjadi skrip startup untuk instance tersebut.
Membuat instance Cloud SQL dan bucket Cloud Storage
Di Cloud Shell, buat instance Cloud SQL untuk SQL Server 2017 Enterprise yang nantinya akan menjadi tujuan migrasi database:
gcloud beta sql instances create target \ --database-version=SQLSERVER_2017_ENTERPRISE \ --cpu=2 \ --memory=5GB \ --root-password=sqlserver12@ \ --zone=us-central1-f
Diperlukan waktu beberapa menit untuk membuat instance. Nama pengguna root default adalah
sqlserver
dengan sandi defaultsqlserver12@
. Untuk tutorial ini, Anda akan membuat instance di zonaus-central1-f
. Untuk mengetahui informasi selengkapnya tentang zona, lihat Lokasi Cloud.Buat bucket Cloud Storage untuk menyimpan file cadangan sebelum data diimpor ke Cloud SQL:
gsutil mb -l US "gs://${DEVSHELL_PROJECT_ID}-sql-backups"
Mencadangkan database sampel
Di bagian ini, Anda akan terhubung ke mesin virtual (VM) SQL Server, membuat cadangan database, dan mengupload database cadangan ke Cloud Storage.
Di Cloud Shell, reset sandi untuk instance VM SQL Server:
gcloud compute reset-windows-password sql-server --zone=us-central1-f
Catat sandi baru untuk pengguna tersebut.
Instal klien Remote Desktop Protocol (RDP). Untuk informasi selengkapnya, lihat Klien Desktop Jarak Jauh Microsoft.
Di konsol Google Cloud, buka halaman VM instances.
Di bagian Compute Engine pada Konsol Google Cloud, klik menu dropdown RDP dan pilih opsi Download the RDP file untuk mendownload file RDP untuk instance VM SQL Server Anda.
Gunakan file ini untuk terhubung ke instance menggunakan klien RDP. Untuk informasi selengkapnya, lihat Klien Desktop Jarak Jauh Microsoft.
Di browser, minimalkan semua jendela, lalu luncurkan alat command line PowerShell.
Buat folder cadangan:
mkdir c:\backup
Di browser, buat cadangan database di folder cadangan:
osql -E -Q "BACKUP DATABASE testdb TO DISK='c:\backup\testdb.bak'"
Di shell dalam instance, salin file cadangan ke bucket Cloud Storage:
$PROJECT_ID=(gcloud config get-value core/project) gsutil cp -n c:\backup\testdb.bak gs://$PROJECT_ID-sql-backups
Mengimpor file cadangan ke Cloud SQL
Di Cloud Shell, ambil akun layanan yang terkait dengan instance Cloud SQL dan simpan dalam variabel:
SVC_EMAIL_ADDRESS=$(gcloud sql instances describe target \ --format='value(serviceAccountEmailAddress)') echo $SVC_EMAIL_ADDRESS
Google Cloud membuat akun layanan saat Anda membuat instance Cloud SQL. Anda dapat menggunakan akun layanan untuk memberikan izin instance Cloud SQL guna mengakses resource yang diperlukan.
Tambahkan akun layanan ke daftar kontrol akses (ACL) bucket Cloud Storage dengan izin penulis:
gsutil acl ch -u ${SVC_EMAIL_ADDRESS}:W gs://${DEVSHELL_PROJECT_ID}-sql-backups
Tambahkan akun layanan ke file impor dengan izin pembaca:
gsutil acl ch -u $SVC_EMAIL_ADDRESS:R gs://${DEVSHELL_PROJECT_ID}-sql-backups/testdb.bak
Impor file cadangan ke database Cloud SQL:
gcloud beta sql import bak target \ gs://${DEVSHELL_PROJECT_ID}-sql-backups/testdb.bak --database testdb
Memvalidasi impor data
Di bagian ini, Anda akan memeriksa apakah data sampel berhasil diimpor.
Di Cloud Shell, instal toolkit SQL Server:
sudo apt-get install -y mssql-tools
Jika Anda menyetujui persyaratan lisensi, masukkan
yes
saat diminta.Untuk mengakses instance Cloud SQL dengan aman, download proxy Cloud SQL:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
Mulai proxy Cloud SQL:
CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)') ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
Baca jumlah baris dalam tabel Cloud SQL:
/opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "select count(*) from testdb.dbo.MarylandZipCodes"
Saat diminta, masukkan sandi
sqlserver12@
. Pada output, pastikan hasilnya adalah619
.
Pembersihan
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project Google Cloud yang Anda buat untuk tutorial.Menghapus project
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah selanjutnya
- Baca kunci enkripsi yang dikelola pelanggan (CMEK) untuk Cloud SQL untuk SQL Server.
- Baca cara mengonfigurasi konektivitas IP pribadi untuk Cloud SQL untuk SQL Server.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.