Memigrasikan data antara SQL Server 2008 dan Cloud SQL untuk SQL Server menggunakan file cadangan


Dalam tutorial ini, Anda akan memigrasikan data dari SQL Server 2008 ke Cloud SQL untuk SQL Server 2017 Enterprise. Tutorial ini menunjukkan cara mengekspor data dari SQL Server 2008, mengimpor data ke Cloud SQL untuk SQL Server 2017, dan memvalidasi bahwa data berhasil diimpor.

Jika Anda ingin memigrasikan data dari SQL Server 2017, lihat Memigrasikan data antara SQL Server 2017 dan Cloud SQL untuk SQL Server menggunakan file cadangan.

Tutorial ini berguna jika Anda merupakan admin sistem, developer, engineer, admin database, atau engineer DevOps yang ingin memigrasikan data dari SQL Server 2008 ke Cloud SQL untuk SQL Server 2017 atau yang ingin mengupgrade dari SQL Server 2008 ke SQL Server 2017.

Tutorial ini mengasumsikan bahwa Anda memiliki lisensi SQL Server 2008 dan sudah mengetahui hal-hal berikut:

Tujuan

  • Membuat instance Cloud SQL untuk SQL Server.
  • Membuat bucket Cloud Storage.
  • Cadangkan database Anda.
  • 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:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

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

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    BUKA HALAMAN Pemilih PROYEK

  2. Pastikan penagihan diaktifkan untuk project Google Cloud Anda. Pelajari cara mengonfirmasi bahwa penagihan diaktifkan untuk project Anda.

  3. Mengaktifkan Cloud Storage dan Cloud SQL API.

    AKTIFKAN API

  4. Instal dan inisialisasi Google Cloud CLI di server yang menjalankan SQL Server 2008.

  5. Di konsol Google Cloud, buka Cloud Shell.

    BUKA Cloud Shell

    Di bagian bawah Google Cloud Console, sesi Cloud Shell 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. Perlu waktu beberapa detik hingga sesi dimulai.

Membuat instance Cloud SQL dan bucket Cloud Storage

  1. 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 default sqlserver12@. Untuk tutorial ini, Anda akan membuat instance di zona us-central1-f. Untuk mengetahui informasi selengkapnya tentang zona, lihat Lokasi Cloud.

  2. Buat bucket Cloud Storage untuk menyimpan file cadangan sebelum data diimpor ke Cloud SQL:

    gsutil mb -b off -l US "gs://bucket-name"
    

    Ganti bucket-name dengan nama unik untuk bucket Cloud Storage.

Mencadangkan database Anda

Di bagian ini, Anda akan terhubung ke server Windows yang menjalankan SQL Server 2008, membuat cadangan database, dan mengupload database cadangan ke Cloud Storage.

  1. Hubungkan ke server Windows yang menjalankan SQL Server 2008 menggunakan RDP. Server tersebut dapat berupa server utama atau replika.

  2. Luncurkan alat command line PowerShell.

  3. Di terminal tempat Anda menginstal gcloud CLI, buat folder cadangan:

    mkdir c:\backup
    
  4. Buat cadangan database di folder pencadangan:

    osql -E -Q "BACKUP DATABASE db-name TO DISK='c:\backup\db-name.bak'"
    

    Ganti db-name dengan nama database yang ingin Anda migrasikan ke Cloud SQL.

  5. Salin file cadangan ke bucket Cloud Storage:

    $PROJECT_ID = (gcloud sql instances describe target --format='value(project)' )
    gsutil cp -n c:\backup\db-name.bak gs://bucket-name
    

Mengimpor file cadangan ke Cloud SQL

  1. 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.

  2. Tambahkan akun layanan ke daftar kontrol akses (ACL) bucket Cloud Storage dengan izin penulis:

    gsutil acl ch -u ${SVC_EMAIL_ADDRESS}:W gs://bucket-name
    
  3. Tambahkan akun layanan ke file impor dengan izin pembaca:

    gsutil acl ch -u $SVC_EMAIL_ADDRESS:R gs://bucket-name/db-name.bak
    
  4. Impor file cadangan ke database Cloud SQL:

    gcloud beta sql import bak target \
        gs://bucket-namedb-name.bak \
        --database db-name
    

Memvalidasi impor data

Di bagian ini, Anda akan memeriksa apakah data berhasil diimpor.

  1. Di Cloud Shell, instal toolkit SQL Server:

    sudo apt-get install -y mssql-tools
    

    Jika Anda menyetujui persyaratan lisensi, masukkan yes saat diminta.

  2. 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
    
  3. Mulai proxy Cloud SQL:

    CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)')
    ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
    
  4. Jalankan kueri untuk memvalidasi data di satu atau beberapa tabel:

    /opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "query-string"
    

    Ganti query-string dengan kueri SQL yang ingin Anda jalankan.

    Saat diminta, masukkan sandi sqlserver12@.

Pembersihan

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project Google Cloud yang Anda buat untuk tutorial.

Menghapus project

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya