Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Migrasi Database SQL dengan Baris Perintah

Bagaimana jika Anda memiliki lusinan database SQL dan secara manual mencadangkan/memulihkan setiap database terlalu memakan waktu untuk proyek Anda? Tidak masalah! Kami dapat membuat skrip metode yang akan mengekspor dan mengimpor semua basis data sekaligus tanpa memerlukan intervensi manual. Untuk bantuan dalam mentransfer Login SQL dan Prosedur &Tampilan Tersimpan, lihat artikel Migrasi MSSQL dengan SSMS kami.

Mencadangkan Database di Server Sumber

1. Buka SSMS (Microsoft SQL Server Management Studio) di server sumber, masuk ke instance SQL dan buka jendela Permintaan Baru. Jalankan kueri berikut:

SELECT name FROM master.sys.databases

Perintah ini akan menampilkan daftar semua database MSSQL di server Anda. Untuk menyalin daftar ini, klik di mana saja di hasil dan gunakan pintasan keyboard CTRL+A (Command + A untuk pengguna Mac) untuk memilih semua database. Setelah menyorot semua database, klik kanan dan pilih salin.

2. Buka Notepad, tempel di hasil Anda dan hapus semua database (dalam teks notepad yang baru disalin) yang TIDAK ingin Anda migrasikan, serta hapus entri berikut:

  • penguasa
  • tempdb
  • model
  • msdb

Entri ini adalah database sistem, dan tidak perlu menyalinnya. Pastikan untuk menghapus semuanya kecuali secara eksplisit database yang perlu Anda migrasikan. Anda sekarang harus memiliki daftar semua database yang diperlukan yang dipisahkan oleh sebuah garis. yaitu

  • PetualanganKerja2012
  • PetualanganKerja2014
  • AdventureWorks2016

3. Simpan hasil ini di komputer sebagai C:\databases.txt .

4. Buat jendela Notepad baru, salin/tempel yang berikut ke dalam dokumen dan simpan sebagai C:\db-backup.bat

mkdir %systemdrive%\dbbackups
for /F "tokens=*" %%a in (databases.txt) do ( sqlcmd.exe -Slocalhost -Q"BACKUP DATABASE %%a TO DISK ='%systemdrive%\dbbackups\%%a.bak' WITH STATS" )

5. Sekarang setelah Anda menyimpan file sebagai C:\db-backup.bat, navigasikan ke Start menu dan ketik cmd dan klik kanan pada Command Prompt untuk memilih Jalankan sebagai Administrator .Ketik perintah berikut:

cd C:\

Dan tekan enter. Setelah itu, ketik db-backup.bat dan tekan enter sekali lagi.

Pada titik ini, database Anda telah mulai mengekspor dan Anda akan melihat persentase kemajuan setiap ekspor database (gambar di bawah).

Catat database yang gagal, karena Anda dapat menjalankan kembali file batch setelah selesai, hanya menggunakan database yang mungkin gagal. Jika database gagal dicadangkan, perhatikan pesan kesalahan yang ditampilkan di prompt perintah, atasi kesalahan dengan memodifikasi file C:\databases.txt yang ada untuk menyertakan hanya database yang gagal dan jalankan kembali db-backup.bat sampai semua database berhasil diekspor.

Memulihkan Database ke Server Tujuan

Sekarang Anda memiliki folder C:\dbbackups\ yang berisi file .bak untuk setiap database yang ingin Anda migrasikan. Anda perlu menyalin folder dan C:\databases.txt Anda file ke server tujuan. Ada banyak cara untuk memindahkan data Anda ke server tujuan; Anda dapat menggunakan USB, Robocopy atau FTP. Folder pada drive C dari server tujuan harus bernama C:\dbbackups . Penting untuk memberi nama file secara akurat karena skrip kami akan mencari file .bak di sini. Pastikan server tujuan memiliki file C:\databases.txt Anda juga, karena skrip kami akan mencari nama database di sini.

1. Buka Notepad dan salin/tempel kode berikut ke dalam dokumen dan simpan sebagai C:\db-restore.bat

for /F "tokens=*" %%a in (C:\databases.txt) do (
sqlcmd.exe -E -Slocalhost -Q"RESTORE DATABASE %%a FROM DISK='%systemdrive%\dbbackups\%%a.bak' WITH RECOVERY"
)

2. Simpan file sebagai C:\db-restore .kelelawar

3. Arahkan ke menu Start dan ketik cmd .

4. Klik kanan pada Command Prompt dan pilih Jalankan sebagai Administrator . Ketik perintah berikut:

cd C:\

dan tekan Enter. Sekarang ketik db-restore.bat dan tekan Enter.

Basis data Anda sekarang telah mulai diimpor. Anda akan melihat persentase pemulihan setiap database dan pesan “KEMBALIKAN DATABASE berhasil diproses ” untuk setiap database yang telah berhasil diproses.

Catat database yang gagal, karena Anda dapat menjalankan kembali file batch setelah selesai, hanya menggunakan database yang gagal. Jika database gagal dicadangkan, catat pesan kesalahan yang ditampilkan di prompt perintah, atasi kesalahan (Anda dapat mengubah file batch seperlunya), ubah C:\databases.txt untuk memasukkan hanya database yang gagal dan ulangi -jalankan db-restore.bat sampai semua database berhasil diekspor.

Selamat, Anda sekarang telah mencadangkan dan memulihkan semua database Anda ke server baru. Jika Anda mengalami masalah login saat menguji koneksi SQL di server tujuan, lihat Migrating Microsoft SQL Logins (anchor link) bagian dari artikel ini dan ikuti langkah-langkah di dalamnya. Untuk memigrasikan tampilan atau prosedur tersimpan, lihat Migrasi Tampilan dan Prosedur Tersimpan bagian. Setiap server SQL akan memiliki konfigurasi dan hambatan yang harus dihadapi, tetapi kami harap artikel ini memberi Anda dasar yang kuat untuk Migrasi Microsoft SQL Server Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pisahkan string dengan cara yang benar – atau cara terbaik berikutnya

  2. ORA-03135 – Duplikat RMAN

  3. SQL Bergabung

  4. Lembar Cheat SQL:Apa itu SQL, Perintah SQL, dan Injeksi SQL

  5. Cara Memperbarui Kolom Berdasarkan Filter Kolom Lain