Langkah-langkah untuk memigrasikan semua data antar server di SQL Server

Tanggal pembuatan halaman :

lingkungan

SQL Server
  • SQL Server 2019
  • SQL Server 2012

Bagaimana migrasi data dimigrasikan dan kelebihan dan kekurangan masing-masing

Ada beberapa cara untuk memigrasikan data database SQL Server ke SQL Server di server lain secara massal: Masing-masing memiliki kelebihan dan kekurangan selama migrasi, jadi pilihlah metode yang paling sesuai dengan lingkungan Anda.

Metode Migrasi Konektivitas jaringan antar server Otentikasi sinkron tata letak tabel ukuran file selama migrasi ke versi sebelumnya
Mencadangkan dan memulihkan database Tidak diperlukan (memindahkan file) Buruk biasa Tidak diperlukan (penggantian penuh otomatis) tidak perlu
Data output sebagai SQL Tidak diperlukan (memindahkan file) Lumayan besar Diperlukan atau dihapus ke tabel tidak perlu
Gunakan alat Impor dan Ekspor Data indispensability Lumayan tanpa Bergantung pada setelan migrasi Anda kebutuhan

Prasyarat

  • Asumsikan bahwa sql server dan SQL Server Management Studio diinstal pada setiap server.
  • Tips ini berani membuat versi sql server berbeda.

Membuat data sampel

Saat mendiskusikan migrasi data, Anda melakukannya dalam database dengan konfigurasi tabel berikut:

Sumber migrasi data

SQL Server 2012

  • Tabel 1 (Kolom:Kunci, Nilai)
  • Tabel 2 (Kolom:Kunci, Nilai, Komentar)
  • Tabel 3 (Kolom:Kunci, Nilai)

Berikut ini adalah skrip pembuatan database. Ubah jalan tepat waktu.

USE [master]
GO

CREATE DATABASE [SampleDatabase]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'SampleDatabase', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SampleDatabase.mdf' , SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'SampleDatabase_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SampleDatabase_log.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

Di bawah ini adalah skrip pembuatan tabel.

USE [SampleDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル1](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル2](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
	[備考] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル2] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル3](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル3] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

Berikut ini adalah skrip rekaman tambahan:

USE [SampleDatabase]
GO
INSERT [dbo].[テーブル1] ([キー], [値]) VALUES (1, N'1aaa')
GO
INSERT [dbo].[テーブル1] ([キー], [値]) VALUES (2, N'1bbb')
GO
INSERT [dbo].[テーブル2] ([キー], [値], [備考]) VALUES (1, N'2aaa', N'2remarks')
GO
INSERT [dbo].[テーブル2] ([キー], [値], [備考]) VALUES (2, N'2bbb', N'2remarks')
GO
INSERT [dbo].[テーブル3] ([キー], [値]) VALUES (1, N'3aaa')
GO
INSERT [dbo].[テーブル3] ([キー], [値]) VALUES (2, N'3bbb')
GO

Migrasi data ke

SQL Server 2019

  • Tabel 1 (Kolom:Kunci, Nilai)
  • Tabel 2 (Kolom:Kunci, Nilai)

Catatan di setiap tabel kosong.

Berikut ini adalah skrip pembuatan database. Ubah jalan tepat waktu.

USE [master]
GO

CREATE DATABASE [SampleDatabase]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'SampleDatabase', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\SampleDatabase.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'SampleDatabase_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\SampleDatabase_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
 WITH CATALOG_COLLATION = DATABASE_DEFAULT
GO

Di bawah ini adalah skrip pembuatan tabel.

USE [SampleDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル1](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル2](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

Bagaimana database mencadangkan dan memulihkan migrasi

Metode ini adalah untuk mencadangkan seluruh database sebagai file di server sumber, menyalinnya ke server tujuan, dan menelannya. Oleh karena itu, semua konfigurasi tabel diatur ke tujuan, yang semuanya sama dengan sumbernya.

Selain itu, metode ini tidak memungkinkan Anda untuk bermigrasi dari versi SQL Server yang lebih baru ke versi yang lebih lama. (Jika perbedaan versinya kecil, itu mungkin))

Prosedur

Mulai SQL Server Management Studio dari sumbernya. Pilih folder yang cocok dengan versi SQL Server Anda.

Masuk ke server target. PC yang menggunakan SQL Server Management Studio baik-baik saja di PC lain, tetapi Tips ini memungkinkan Anda semua beroperasi di server Anda sendiri.

Dari Object Explorer, klik kanan database dan pilih Backup for Tasks.

Hapus jalur pencadangan awal dalam daftar tujuan cadangan di sudut kanan bawah.

Saat Anda menghapusnya, klik tombol Tambahkan.

Klik tombol ubah jalur.

Saya pikir folder "Backup" dipilih secara default, jadi masukkan nama file untuk mencadangkan di nama file di bawah ini dan klik tombol OK. Nama file bersifat opsional, jadi buatlah mudah dimengerti.

Klik tombol OK.

Verifikasi bahwa itu telah ditambahkan ke daftar, lalu klik tombol OK.

Karena file cadangan telah dibuat di folder berikut, saya akan membawa file ini ke server tempat saya ingin memigrasikannya. Jalur folder tergantung pada versi SQL Server dan nama instans, jadi periksa tepat waktu.

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

Status setelah menyalin ke server tujuan. Ini ditempatkan di folder berikut karena lebih mudah dimuat jika Anda memasukkannya ke dalam folder Cadangan SQL Server. Ini juga tergantung pada versi SQL Server dan nama instans, jadi silakan periksa tepat waktu.

C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\Backup

Mulai SQL Server Management Studio di server tempat Anda bermigrasi. Anda masuk ke server Anda di sini.

Dari Object Explorer, klik kanan database tujuan, lalu pilih Tugas, Pemulihan, dan Database.

Pastikan Umum dipilih dalam pemilihan halaman kiri, pilih "Perangkat" dari "Sumber" di sebelah kanan, dan klik tombol telusuri di sebelah kanan.

Klik tombol Tambahkan.

Pilih file yang Anda bawa.

Pilih "Opsi" dari pemilihan halaman kiri dan periksa dua hal berikut. Jika Anda memeriksa keduanya, Anda dapat memaksa beberapa sistem lain untuk bertukar saat terhubung ke database.

  • Menimpa database yang sudah ada
  • Menutup koneksi yang ada ke database tujuan

Namun, harap dicatat bahwa jika pemulihan gagal dengan "Tutup koneksi yang ada ke database tujuan" diperiksa, database asli mungkin tidak tersedia.

Saat Anda memeriksa, klik tombol OK.

Anda dapat memverifikasi bahwa konfigurasi dan catatan tabel telah sepenuhnya dimigrasikan.

Kebetulan, jika Anda mencoba memulihkan versi database SQL Server yang lebih baru ke versi SQL Server yang lebih lama, Anda akan melihat kesalahan berikut: Metode migrasi data ini didasarkan pada versi yang sama satu sama lain atau ke versi yang lebih baru.

Cara: Output Data sebagai SQL (Script) dan Jalankan di Database Tujuan

Ini adalah cara mengeluarkan semua catatan dalam tabel sebagai pernyataan sisipkan. Karena pernyataan SQL hampir sama, mereka dapat diterapkan ke jenis database lain dalam beberapa kasus, terlepas dari versi SQL Server.

Namun, karena catatan ditulis untuk menyisipkan kalimat satu per satu, ukuran file meningkat. Oleh karena itu, ketika jumlah catatan meningkat, itu tidak berguna, jadi ini adalah metode yang dapat digunakan ketika jumlahnya kecil.

Ini juga menghasilkan SQL untuk tabel dari mana ia dimigrasikan, sehingga tidak tersedia jika berbeda dari konfigurasi tabel yang dimigrasikan. Anda juga dapat menyertakan pembuatan tabel dalam SQL, tetapi Anda harus menghapus tabel sekali di tempat tujuan.

Prosedur

Mulai SQL Server Management Studio dari sumbernya. Pilih folder yang cocok dengan versi SQL Server Anda.

Masuk ke server target. PC yang menggunakan SQL Server Management Studio baik-baik saja di PC lain, tetapi Tips ini memungkinkan Anda semua beroperasi di server Anda sendiri.

Klik kanan pada database target dan pilih "Tugas" dan "Hasilkan Skrip".

Klik Berikutnya.

Anda dapat memilih tabel mana yang akan memigrasikan data. Pilih semua atau pilih tabel tertentu di sini.

Karena outputnya adalah SQL, Anda dapat memilih "File", "Clipboard", atau "Tampilkan di Jendela". Setelah dipilih, klik tombol "Lanjutan" di kanan atas.

Pilih Data hanya dari "Jenis data untuk menghasilkan skrip" di grup Umum.

Setelah itu, pilih "Berikutnya" untuk mengonfirmasi. Anda dapat melihat bahwa SQL dihasilkan. Yang tersisa hanyalah menjalankan SQL ini di tujuan.

Karena ini hanya pernyataan sisipkan, jika Anda ingin datanya sama, Anda perlu menghapus semua catatan di tempat tujuan terlebih dahulu.

Migrasi konfigurasi tabel juga

Jika Anda juga ingin memigrasikan konfigurasi tabel, atur pilihan "Jenis data untuk menghasilkan skrip" sebelumnya ke Skema dan Data.

Skrip pembuatan tabel juga dihasilkan sebagai berikut: Jika Anda ingin menggunakan ini, itu akan dieksekusi setelah menghapus tabel yang akan dimigrasikan.

Ini juga menghasilkan skrip pembuatan database jika juga disertakan.

Cara memigrasikan data dengan menggunakan Data Impor dan Ekspor

Saat Anda menginstal SQL Server, Anda juga menginstal alat yang disebut Impor dan Ekspor Data. Anda dapat menggunakannya untuk memigrasikan data dari tabel ke server lain.

Keuntungan dari migrasi alat ini adalah bahwa data juga dapat dimigrasikan ke versi SQL Server yang lebih lama. Ini agak sulit digunakan, tetapi dapat dimigrasikan pada tingkat beberapa menit bahkan dengan sekitar 1 juta data, sehingga juga cocok untuk migrasi data besar. Perhatikan, bagaimanapun, bahwa server sumber dan tujuan harus terhubung pada jaringan pribadi dan tidak dapat digunakan antara server dengan jaringan yang sama sekali berbeda.

Prasyarat

Bangun autentikasi SQL Server atau autentikasi Windows sehingga Anda dapat mengakses setiap SQL Server dari PC yang menggunakan alat ini.

Tips ini menggunakan alat ini dari server tempat ia bermigrasi.

Prosedur

Pilih Impor dan Ekspor Data dari menu Mulai. Ini termasuk dalam folder di SQL Server, tetapi nama folder bervariasi tergantung pada versi SQL Server, jadi carilah tepat waktu.

Klik Berikutnya.

Pilih database tempat Anda ingin bermigrasi. Kali ini berjalan di server sumber, sehingga Anda dapat melewati autentikasi Windows.

nama
Komentar nilai pengaturanparameter
Sumber data Sql Server Native Client 11.0
Nama server (lokal) Jika itu adalah server yang berbeda atau nama instans ditentukan, harap letakkan nilainya
Otentikasi Autentikasi Windows
basis data Basis Sampel Masukkan nama database dari mana Anda ingin benar-benar bermigrasi

Selanjutnya, atur pengaturan koneksi untuk database tujuan. Otentikasi Sql Server digunakan karena berada di server yang berbeda.

nama
Komentar nilai pengaturanparameter
Sumber data Sql Server Native Client 11.0
Nama server Nama server target (+ \nama instans)]
Otentikasi Autentikasi SQL Server
basis data Basis Sampel Masukkan nama database untuk benar-benar bermigrasi ke

Centang "Salin data dari satu atau beberapa tabel atau tampilan" dan klik tombol berikutnya.

Pilih tabel yang ingin Anda migrasikan. Daftar ini juga menunjukkan tampilan, jadi jangan periksa.

Jika nama tabel sumber dan tujuan sama, tabel yang akan dimigrasikan dipilih secara otomatis. Ini juga secara otomatis mengatur pemetaan nama kolom jika nama kolomnya sama.

Berikut adalah beberapa hal yang perlu diingat:

  • Jika kunci utama diberi nomor otomatis, migrasi akan gagal jika Anda tidak memeriksa "Izinkan penyisipan ID" dari "Edit pemetaan"
  • Jika tidak ada tabel untuk bermigrasi, tabel dibuat
  • Jika tabel tujuan tidak memiliki nama kolom yang sama, tabel tersebut tidak akan dimigrasikan. Jangan terus memigrasikan atau mengubah kolom tujuan.
  • Rekaman ditambahkan secara default. Jika Anda ingin menggantinya, hapus catatan di tempat tujuan terlebih dahulu, atau centang "Hapus baris di tabel tujuan" dari "Edit pemetaan"

Sebenarnya, Anda harus mempertimbangkan hal di atas, tetapi dalam Tips ini, tidak ada data di tempat tujuan dan tidak ada penomokan otomatis, sehingga Anda dapat melanjutkan tanpa menetapkan apa pun.

Pastikan "Jalankan Sekarang" diperiksa dan klik "Berikutnya".

Klik Selesai.

Migrasi data dimulai. Tutup saat semua migrasi selesai.

Jika Anda melihat database target, Anda dapat memverifikasi bahwa tabel yang tidak ada telah dibuat. Anda juga dapat melihat bahwa tidak ada lagi kolom untuk tabel yang ada.

Anda dapat memverifikasi bahwa data sedang dimigrasikan. Kolom catatan pada tabel 2 tidak dipetakan dan belum dimigrasikan.