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

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

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

در این مقاله قصد داریم درمورد نحوه بازیابی (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” موقعیت را بررسی می‌کنیم.

 

 

در این قسمت یک فولدر به ‌نام 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 سرور دسترسی یافت.

 

 

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

 

 

همان‌گونه که ملاحظه می‌کنید یک فولدر DockerSQLBACKUP بک‌آپ در دایرکتوری C و نیز یک بک‌آپ دیتا‌بیس به ‌نام AdventureWorks2017 موجود است که آن را دانلود و کپی کرده‌ایم.

در‌ نتیجه ما بک‌آپ دیتا‌بیس را به کانتینری انتقال دادیم که در آن SQL ‌سرور ۲۰۱۷ در داکر نصب شده و روی سیستم‌عامل ویندوز سرور ۲۰۱۶ راه‌اندازی کردیم.

 

 

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

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

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

قبل از دانلود کردن با “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 توانستم پروسه باز‌یابی کلاسیک را اجرا کنم.

 

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

پس از پایان پروسه باز‌یابی می‌توان اطلاعات ذیل را پس از کنترل آن با SSMS. (مدیریت پایگاه داده SQL ) مشاهده کرد.

 

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

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

اولین نفر باش

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