چگونه دیتابیس SQL Server را در داکر بازیابی کنیم؟

چگونه دیتابیس SQL Server را در داکر بازیابی کنیم؟

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۲۸ آبان ۱۴۰۱
آخرین بروزرسانی: 10 آذر 1403
زمان مطالعه: 10 دقیقه
۴.۸
(۶)

بازیابی دیتابیس در داکر از مباحث مهم در بخش Back Up گیری در SQL Server است. در این مقاله قصد داریم درمورد نحوه بازیابی (Restore) دیتا‌بیس در داکر صحبت کنیم. به‌بیان‌دیگر تصمیم داریم بگوییم که چطور می‌توان SQL Server نصب‌شده روی داکر را بازیابی کرد که روی ویندوز و سیستم‌عامل لینوکس کار می‌کند. پیشنهاد میکنیم برای درک بهتر مفاهیم آموزش جامع SQL Server را مطالعه کنید.

دوره کوئری نویسی نیک آموز

نصب دیتابیس 

به‌عنوان دیتا‌بیس نمونه از دیتا‌بیسی استفاده کردیم که مایکروسافت دیتا‌بیس نمونه آن را در گیت هاب (GitHub) به اشتراک گذاشته است. در خصوص دیتا‌بیس نمونه می‌توانید از لینک زیر اقدام به دانلود کنید.

https://github.com/Microsoft/sql-server-samples/releases/

جهت انجام عملکرد‌هایمان روی ویندوز سرور:

  • یک دیتا‌بیس نمونه را در دایرکتوری سرور دانلود کردیم (به‌عنوان‌مثال: C:\SQL Backup)
  • پس از پایان دانلود وضعیت کانتینر (container) را با پاور شل (PowerShell) بررسی می‌کنیم. اگر فعال نبود شروع می‌کنیم. جهت کنترل، از فرمان “docker ps – a”استفاده می‌کنیم. چنانچه پارامتر “-a”به ما فهرستی از کانتینر‌هایی می‌دهد که راه‌اندازی نمی‌شوند، ما کانتینر را با فرمان “docker start DockerID”  راه‌اندازی می‌کنیم.در اینجا کانتینر ما به ‌نام WinDockerSQL فعال است.

بازیابی دیتابیس در داکر

  • پس از فعال کردن کانتینر نیاز به ایجاد مسیری است که بک‌آپ فایل به کانتینر انتقال یابد. به این منظور ابتدا پاور شل (PowerShell) روی کانتینر را راه‌اندازی می‌کنیم و یک فولدر ایجاد می‌کنیم.
docker exec -it WinDockerSQL powershell

 

پس‌ از اینکه صفحه پاور شل (PowerShell) بالا آمد به‌کمک گزینه ”Get-Location” موقعیت را بررسی می‌کنیم.

 

Get-Location

 

در این قسمت یک فولدر به ‌نام DockerSQLBACKUP در دایرکتوری c ایجاد می‌کنیم.

 

New-Item -ItemType directory -Path C:\DockerSQLBACKUP

اکنون ما فولدر را ایجاد کردیم و باید بک‌آپ دیتا‌بیس C:\SQLBackup را که روی ویندوز سرور دانلود کرده

docker cp C:\SQLBACKUP\AdventureWorks2017.bak WinDockerSQL:/C:/DockerSQLBACKUP

در‌ واقع با کد بالا فایل را از این محل به جایی که در داکر مسیر داده‌ایم، کپی می‌کنیم.

 

بک‌آپ دیتا‌بیس

 

اینک بک‌آپ دیتا‌بیس تمام شده است و با اجرای فرمان “docker inspect” می‌توان به ip address در SQL سرور دسترسی یافت.

 

docker inspect

 

سپس روش کلاسیک باز‌یابی دیتا‌بیس را اجرا می‌کنیم.

 

روش کلاسیک باز‌یابی دیتا‌بیس

 

همان‌گونه که ملاحظه می‌کنید یک فولدر DockerSQLBACKUP بک‌آپ در دایرکتوری C و نیز یک بک‌آپ دیتا‌بیس به ‌نام AdventureWorks2017 موجود است که آن را دانلود و کپی کرده‌ایم. پیشنهاد میکنیم برای درک بهتر مفاهیم دوره کوئری نویسی پیشرفته را مطالعه کنید. در‌ نتیجه ما بک‌آپ دیتا‌بیس را به کانتینری انتقال دادیم که در آن SQL ‌سرور ۲۰۱۷ در داکر نصب شده و روی سیستم‌عامل ویندوز سرور ۲۰۱۶ راه‌اندازی کردیم.

 

یک فولدر DockerSQLBACKUP بک‌آپ در دایرکتوری C

 

جهت اجرا روی لینوکس:

از دستورات ذیل در ویندوز استفاده می‌کنیم.

  • ابتدا لازم است بک‌آپ دیتا‌بیس را در لینو‌کس دانلود کنیم.

قبل از دانلود کردن با “pwd” بررسی می‌کنیم که در کدام دایرکتوری در لینو‌کس هستیم؛ به‌عنوان‌مثال در اینجا ما در دایرکتوری  “/home/cozenc” هستیم.

<table class="crayon-table"><tr class="crayon-row"><td class="crayon-code"><div class="crayon-pre"><div class="crayon-line" id="crayon-638db5f0aed7d743610513-1">[code]wget ‘<a href="https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2017.bak">https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2017.bak</a>
 
  • لازم است یک فولدر در کانتینر ایجاد کنیم که فایل بک‌آپ دیتا‌بیس را به آن انتقال دهیم. در‌واقع در این مرحله ابتدا باید به کانتینر دسترسی داشته باشیم.
sudo docker exec -it DockerSQL bash

جهت ایجاد فولدر

mkdir -p /var/opt/mssql/backup
  • زمانی که مرحله ایجاد فولدر به پایان رسید، باید بک‌آپ دیتا‌بیس را که در لینو‌کس دانلود کردیم، به کانتیتر انتقال دهیم.
sudo docker cp /home/cozenc/AdventureWorks2017.bak DockerSQL:/var/opt/mssql/backup
  • اکنون‌که کپی دیتا‌بیس به اتمام رسید، می‌توان اقدام به باز‌یابی کرد. این مرحله شبیه روش باز‌یابی کلاسیک است.

می‌توان از‌ طریق لینو‌کس به sqlcmd دسترسی داشت یا اینکه ریموت  IP از طریق SSMS (مدیریت پایگاه داده SQL ) صورت گیرد. من از طریق برقراری ارتباط با SSMS. (مدیریت پایگاه داده SQL ) و ریموت  IP توانستم پروسه باز‌یابی کلاسیک را اجرا کنم.

سخن پایانی

بازیابی دیتابیس در داکر مبحث مهمی در Backup گیری از اطلاعات در SQL Server است. همچنین بخش‌هایی که در داخل عکس با عبارت “d32bcf0bcc21”نشانه‌گذاری شده، اطلاعات (DockerID) هستند. می‌توانید از طریق فرمان ps، مسیر بک‌آپ و بک‌آپ دیتا‌بیس که در مسیر قرار داده‌ایم، به این اطلاعات دسترسی پیدا کنید. پس از پایان پروسه باز‌یابی می‌توان اطلاعات ذیل را پس از کنترل آن با SSMS. (مدیریت پایگاه داده SQL ) مشاهده کرد. ما در نیک آموز منتظر نظرات ارزشمند شما درباره این مقاله هستیم.

 

چه رتبه ای می‌دهید؟

میانگین ۴.۸ / ۵. از مجموع ۶

اولین نفر باش

title sign
دانلود مقاله
چگونه دیتابیس SQL Server را در داکر بازیابی کنیم؟
فرمت PDF
6 صفحه
حجم 1 مگابایت
دانلود مقاله
گوش به زنگ یلدا
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
401 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
title sign
دیدگاه کاربران

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
close-image