خطوات ترحيل كافة البيانات بين الخوادم في SQL Server

تاريخ إنشاء الصفحة :

وسط

خادم SQL
  • SQL Server 2019
  • SQL Server 2012

كيفية ترحيل البيانات ومزايا وعيوب كل منها

هناك عدة طرق لترحيل بيانات قاعدة بيانات SQL Server إلى SQL Server على ملقمات أخرى بشكل مجمع: لكل منها مزاياها وعيوبها أثناء الترحيل ، لذا اختر الطريقة التي تناسب بيئتك.

طريقة الترحيل مسبقا
اتصال الشبكة بين الخوادمالمالمالمالمةالمصادقة المتزامنة لتخطيطات جدول حجم الملف أثناء الترحيل إلى الإصدارات السابقة
النسخ الاحتياطي لقواعد البيانات واستعادتها غير مطلوب (نقل الملفات) سيئ عادي غير مطلوب (استبدال كامل تلقائي) لا لزوم لها
إخراج البيانات ك SQL غير مطلوب (نقل الملفات) السير كبير مطلوب أو محذوف إلى الجدول لا لزوم لها
استخدام الأداة استيراد وتصدير البيانات لا غنى عنه السير بدون بناء على إعدادات الترحيل حاجة

الشرط المسبق

  • افترض أن يتم تثبيت ملقم SQL و SQL Server إدارة Studio على كل ملقم.
  • تجرؤ هذه النصائح على جعل إصدارات خادم SQL مختلفة.

إنشاء نموذج بيانات

عند مناقشة ترحيل البيانات، يمكنك القيام بذلك في قاعدة البيانات باستخدام تكوين الجدول التالي:

مصدر ترحيل البيانات

SQL Server 2012

  • الجدول 1 (العمود: المفتاح، القيمة)
  • الجدول 2 (العمود: المفتاح، القيمة، الملاحظات)
  • الجدول 3 (العمود: المفتاح، القيمة)

فيما يلي برنامج نصي لإنشاء قاعدة بيانات. تغيير المسار في الوقت المناسب.

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

يوجد أدناه برنامج نصي لإنشاء الجدول.

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

فيما يلي برنامج نصي إضافي للسجلات:

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

ترحيل البيانات إلى

SQL Server 2019

  • الجدول 1 (العمود: المفتاح، القيمة)
  • الجدول 2 (العمود: المفتاح، القيمة)

السجلات في كل جدول فارغة.

فيما يلي برنامج نصي لإنشاء قاعدة بيانات. تغيير المسار في الوقت المناسب.

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

يوجد أدناه برنامج نصي لإنشاء الجدول.

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

كيفية النسخ الاحتياطي لقاعدة البيانات واستعادة الترحيل

تتمثل هذه الطريقة في عمل نسخة احتياطية من قاعدة البيانات بأكملها كملف على الخادم المصدر ونسخها إلى الخادم الوجهة واستيعابها. لذلك، يتم تعيين كافة تكوينات الجدول إلى الوجهة، وكلها هي نفسها المصدر.

أيضا، لا تسمح لك هذه الطريقة بالترحيل من إصدار أحدث من SQL Server إلى إصدار أقدم. (إذا كان فرق الإصدار صغيرا ، فقد يكون ذلك ممكنا))

إجراء

بدء تشغيل SQL Server إدارة Studio من المصدر. اختر مجلدا يطابق إصدار SQL Server الخاص بك.

قم بتسجيل الدخول إلى الخادم الهدف. أجهزة الكمبيوتر التي تستخدم SQL Server Management Studio جيدة على أجهزة الكمبيوتر الأخرى ، ولكن هذه التلميحات تتيح لك جميعا العمل على الخوادم الخاصة بك.

من "مستكشف الكائنات"، انقر بزر الماوس الأيمن فوق قاعدة البيانات وحدد النسخ الاحتياطي للمهام.

احذف مسار النسخ الاحتياطي الأولي في قائمة وجهات النسخ الاحتياطي في الزاوية السفلية اليسرى.

عند حذفه، انقر فوق الزر إضافة.

انقر فوق الزر تغيير المسار.

أعتقد أنه يتم تحديد مجلد "النسخ الاحتياطي" افتراضيا ، لذا أدخل اسم الملف للنسخ الاحتياطي في اسم الملف أدناه وانقر فوق الزر موافق. اسم الملف اختياري ، لذا اجعله سهل الفهم.

انقر فوق الزر موافق ( OK) .

تحقق من إضافته إلى القائمة، ثم انقر فوق الزر موافق.

نظرا لأنه تم إنشاء ملف النسخ الاحتياطي في المجلد التالي ، سآخذ هذا الملف إلى الخادم الذي أريد ترحيله إليه. يعتمد مسار المجلد على إصدار SQL Server واسم المثيل، لذا تحقق منه في الوقت المناسب.

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

الحالة بعد النسخ إلى الخادم الوجهة. يتم وضعه في المجلد التالي لأنه من الأسهل تحميله إذا قمت بوضعه في مجلد النسخ الاحتياطي من SQL Server. يعتمد هذا أيضا على إصدار SQL Server واسم المثيل ، لذا يرجى التحقق منه في الوقت المناسب.

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

بدء تشغيل SQL Server إدارة Studio على الملقم الذي تقوم بالترحيل إليه. لقد قمت بتسجيل الدخول إلى الخادم الخاص بك هنا.

من "مستكشف الكائنات"، انقر بزر الماوس الأيمن فوق قاعدة البيانات الوجهة، ثم حدد المهام والاستعادة وقاعدة البيانات.

تأكد من تحديد عام في تحديد الصفحة اليسرى ، وحدد "الجهاز" من "المصدر" على اليمين ، وانقر فوق زر التصفح على اليمين.

انقر فوق الزر إضافة.

حدد الملف الذي أحضرته.

حدد "خيارات" من اختيار الصفحة اليسرى وتحقق من الاثنين التاليين. إذا قمت بالتحقق من هذين النظامين ، فيمكنك إجبار بعض الأنظمة الأخرى على التبديل أثناء الاتصال بقاعدة البيانات.

  • الكتابة فوق قاعدة بيانات موجودة
  • إغلاق اتصال موجود بقاعدة البيانات الوجهة

ومع ذلك، يرجى ملاحظة أنه في حالة فشل الاستعادة مع التحقق من "إغلاق الاتصال الحالي بقاعدة البيانات الوجهة"، قد لا تكون قاعدة البيانات الأصلية متوفرة.

عند التحقق، انقر فوق الزر موافق ( OK) .

يمكنك التحقق من ترحيل تكوين الجدول وسجلاته بالكامل.

بالمناسبة، إذا حاولت استعادة إصدار أحدث من قاعدة بيانات SQL Server إلى إصدار أقدم من SQL Server، سترى الخطأ التالي: تعتمد طريقة ترحيل البيانات هذه على نفس الإصدار لبعضها البعض أو إلى إصدار أحدث.

كيفية: إخراج البيانات ك SQL (البرنامج النصي) وتشغيلها على قاعدة البيانات الوجهة

هذه هي كيفية إخراج جميع السجلات في جدول كعبارات إدراج. نظرا لأن عبارات SQL هي نفسها تقريبا، يمكن تطبيقها على أنواع أخرى من قواعد البيانات في بعض الحالات، بغض النظر عن إصدار SQL Server.

ومع ذلك ، نظرا لأن السجلات مكتوبة لإدراج جمل واحدة تلو الأخرى ، يزداد حجم الملف. لذلك ، مع زيادة عدد السجلات ، يكون عديم الفائدة ، لذلك فهي طريقة يمكن استخدامها عندما يكون العدد صغيرا.

كما يقوم بإنشاء SQL للجدول الذي تم ترحيله منه، لذلك لا يتوفر إذا كان مختلفا عن تكوين الجدول الذي تم ترحيله إليه. يمكنك أيضا تضمين إنشاء جدول في SQL، ولكن يجب حذف الجدول مرة واحدة في الوجهة.

إجراء

بدء تشغيل SQL Server إدارة Studio من المصدر. اختر مجلدا يطابق إصدار SQL Server الخاص بك.

قم بتسجيل الدخول إلى الخادم الهدف. أجهزة الكمبيوتر التي تستخدم SQL Server Management Studio جيدة على أجهزة الكمبيوتر الأخرى ، ولكن هذه التلميحات تتيح لك جميعا العمل على الخوادم الخاصة بك.

انقر بزر الماوس الأيمن على قاعدة البيانات المستهدفة وحدد "مهمة" و "إنشاء برنامج نصي".

انقر فوق التالي.

يمكنك اختيار الجداول التي تريد ترحيل البيانات إليها. حدد الكل أو حدد جدولا معينا هنا.

نظرا لأن الإخراج هو SQL ، يمكنك تحديد "ملف" أو "حافظة" أو "إظهار في نافذة". بمجرد تحديده ، انقر فوق الزر "خيارات متقدمة" في أعلى اليمين.

حدد البيانات فقط من "أنواع البيانات لإنشاء البرامج النصية" في المجموعة عام.

بعد ذلك ، حدد "التالي" للتأكيد. يمكنك أن ترى أنه تم إنشاء SQL. كل ما تبقى هو تشغيل SQL هذا على الوجهة.

نظرا لأنه مجرد عبارة إدراج ، إذا كنت تريد أن تكون البيانات هي نفسها ، فأنت بحاجة إلى حذف جميع السجلات في الوجهة مقدما.

ترحيل تكوينات الجدول أيضا

إذا كنت تريد أيضا ترحيل تكوينات الجدول، فقم بتعيين التحديد السابق "نوع البيانات لإنشاء البرامج النصية" إلى المخطط والبيانات.

يتم أيضا إنشاء برنامج نصي لإنشاء جدول على النحو التالي: إذا كنت ترغب في استخدام هذا ، تنفيذه بعد حذف الجدول المراد ترحيله.

كما أنه ينشئ نصا برمجيا لإنشاء قاعدة بيانات إذا تم تضمينه أيضا.

كيفية ترحيل البيانات باستخدام استيراد وتصدير البيانات

أثناء تثبيت SQL Server، يمكنك أيضا تثبيت أداة تسمى استيراد البيانات وتصديرها. يمكنك استخدامه لترحيل البيانات من جدول إلى خادم آخر.

ميزة ترحيل الأداة هذه هي أنه يمكن أيضا ترحيل البيانات إلى الإصدارات القديمة من SQL Server. من الصعب بعض الشيء استخدامه ، ولكن يمكن ترحيله على مستوى عدة دقائق حتى مع وجود حوالي 1 مليون بيانات ، لذلك فهو مناسب أيضا لترحيل البيانات الكبيرة. ومع ذلك ، لاحظ أنه يجب توصيل خوادم المصدر والوجهة على شبكة خاصة ولا يمكن استخدامها بين الخوادم ذات الشبكات المختلفة تماما.

الشرط المسبق

إنشاء مصادقة SQL Server أو مصادقة Windows بحيث يمكنك الوصول إلى كل SQL Server من جهاز كمبيوتر يستخدم هذه الأداة.

تستخدم هذه التلميحات هذه الأداة من الخادم الذي تم ترحيلها منه.

إجراء

حدد استيراد البيانات وتصديرها من قائمة ابدأ. يتم تضمينه في مجلد في SQL Server ، ولكن يختلف اسم المجلد وفقا لإصدار SQL Server ، لذا ابحث عنه في الوقت المناسب.

انقر فوق التالي.

حدد قاعدة البيانات التي تريد الترحيل منها. هذه المرة يتم تشغيله على الخادم المصدر ، بحيث يمكنك المرور عبر مصادقة Windows.

ملاحظات قيمة إعداد اسم المعلمة
مصادر البيانات عميل SQL Server الأصلي 11.0
اسم الخادم (محلي) إذا كان خادما مختلفا أو تم تحديد اسم مثيل ، فيرجى وضع قيمته
المصادقه مصادقة ويندوز
قاعدة بيانات قاعدة بيانات العينات أدخل اسم قاعدة البيانات التي تريد الترحيل منها فعليا

بعد ذلك ، قم بتعيين إعدادات الاتصال لقاعدة البيانات الوجهة. يتم استخدام مصادقة SQL Server لأنه موجود على خادم مختلف.

ملاحظات قيمة إعداد اسم المعلمة
مصادر البيانات عميل SQL Server الأصلي 11.0
اسم الخادم اسم الخادم الهدف (+ \ اسم المثيل)]
المصادقه مصادقة SQL Server
قاعدة بيانات قاعدة بيانات العينات أدخل اسم قاعدة البيانات المراد الترحيل إليها فعليا

حدد "نسخ البيانات من جدول أو طريقة عرض واحدة أو أكثر" وانقر على الزر التالي.

حدد الجدول الذي تريد ترحيله. تعرض هذه القائمة أيضا طريقة العرض، لذا لا تتحقق منها.

إذا كان اسما الجدول المصدر والوجهة متماثلين، تحديد الجدول المراد ترحيله تلقائيا. كما يقوم تلقائيا بتعيين تعيين أسماء الأعمدة إذا كانت أسماء الأعمدة هي نفسها.

فيما يلي بعض الأشياء التي يجب وضعها في الاعتبار:

  • إذا تم ترقيم المفتاح الأساسي تلقائيا ، فستفشل عملية الترحيل إذا لم تتحقق من "السماح بإدراج المعرف" من "تحرير التعيين"
  • إذا لم تكن هناك جداول للترحيل إليها، إنشاء جدول
  • إذا لم يكن للجدول الوجهة نفس اسم العمود، فلن يتم ترحيله. لا تستمر في ترحيل العمود الوجهة أو تغييره.
  • تتم إضافة السجلات بشكل افتراضي. إذا كنت ترغب في استبداله ، فاحذف السجل في الوجهة مقدما ، أو حدد "حذف الصفوف في الجدول الوجهة" من "تحرير التعيين"

في الواقع ، عليك مراعاة ما سبق ، ولكن في هذه النصائح ، لا توجد بيانات في الوجهة ولا يوجد ترقيم تلقائي ، لذلك يمكنك المتابعة دون تعيين أي شيء.

تأكد من تحديد "تشغيل الآن" وانقر فوق "التالي".

انقر على تم.

يبدأ ترحيل البيانات. أغلق عند اكتمال جميع عمليات الترحيل.

إذا نظرت إلى قاعدة البيانات الهدف، يمكنك التحقق من إنشاء جدول لم يكن موجودا. يمكنك أيضا ملاحظة أنه لم يعد هناك أعمدة للجداول الموجودة.

يمكنك التحقق من ترحيل البيانات. لم يتم تعيين أعمدة الملاحظات في الجدول 2 ولم يتم ترحيلها.