تلميحات ونصائح حول استخدام الأداة Azure Application Consistent Snapshot

توفر هذه المقالة تلميحات ونصائح قد تكون مفيدة عند استخدام AzAcSnap.

إعدادات التجاوز العمومي للتحكم في سلوك azacsnap

قدم AzAcSnap 8 ملف إعدادات عمومية جديد (.azacsnaprc) يجب أن يكون موجودا في نفس الدليل (العمل الحالي) حيث يتم تنفيذ azacsnap فيه. اسم الملف هو .azacsnaprc وباستخدام الحرف النقطة '.' كبداية لاسم الملف يجعلها مخفية في إدخالات القوائم القياسية للدليل. يسمح الملف بتعيين الإعدادات العمومية التي تتحكم في سلوك AzAcSnap. التنسيق هو إدخال واحد لكل سطر مع متغير تخصيص مدعوم وقيمة تجاوز جديدة.

الإعدادات، والتي يمكن التحكم فيها عن طريق إضافة/تحرير ملف إعدادات التجاوز العمومي أو عن طريق تعيينها كمتغيرات البيئة هي:

  • MAINLOG_LOCATION الذي يخصص موقع ملف الإخراج "main-log"، والذي يسمى azacsnap.log وتم تقديمه في AzAcSnap 8. يجب أن تكون القيم مسارات مطلقة والقيمة الافتراضية = '.' (وهو دليل العمل الحالي). على سبيل المثال، للتأكد من أن ملف الإخراج "main-log" ينتقل إلى /home/azacsnap/bin/logs إضافة ما يلي إلى .azacsnaprc الملف:
    • MAINLOG_LOCATION=/home/azacsnap/bin/logs
  • AZURE_MANAGEMENT_ENDPOINT لتخصيص موقع نقطة نهاية إدارة Azure التي سيقوم AzAcSnap بإجراء استدعاءات Azure REST API لها تم تقديمها في AzAcSnap 9a. يجب أن تكون القيم مسارات URL والقيمة الافتراضية = 'https://management.azure.com'. على سبيل المثال، لتكوين AzAcSnap لضمان انتقال جميع استدعاءات الإدارة إلى نقطة نهاية إدارة Azure ل US Govt Cloud (ref: Azure Government Guidance للمطورين) أضف ما يلي إلى .azacsnaprc الملف:
    • AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net

إشعار

اعتبارا من AzAcSnap 9a يمكن تعيين جميع هذه القيم كمتغيرات بيئة سطر الأوامر أيضا، أو بدلا من .azacsnaprc الملف. على سبيل المثال، على Linux AZURE_MANAGEMENT_ENDPOINT يمكن تعيين مع export AZURE_MANAGEMENT_ENDPOINT=https://management.usgovcloudapi.net قبل تشغيل AzAcSnap.

تحليل السجل الرئيسي

قدم AzAcSnap 8 "سجلا رئيسيا" جديدا لتوفير تحليل أبسط لتشغيلات AzAcSnap. الإلهام لهذا الملف هو كتالوج النسخ الاحتياطي SAP HANA، والذي يظهر وقت بدء تشغيل AzAcSnap، والمدة التي استغرقها، وما هو اسم اللقطة. باستخدام AzAcSnap، تم اتخاذ هذه الفكرة بشكل أكبر لتضمين معلومات لكل أمر من أوامر AzAcSnap، وتحديدا -c الخيارات، ويحتوي الملف على العناوين التالية:

DATE_TIME,OPERATION_NAME,STATUS,SID,DATABASE_TYPE,DURATION,SNAPSHOT_NAME,AZACSNAP_VERSION,AZACSNAP_CONFIG_FILE,VOLUME

عند تشغيل AzAcSnap فإنه يلحق إلى السجل المعلومات المناسبة اعتمادا على -c الأمر المستخدم، أمثلة على الإخراج هي كما يلي:

2023-03-29T16:10:57.8643546+13:00,about,started,,,,,8,azacsnap.json,
2023-03-29T16:10:57.8782148+13:00,about,SUCCESS,,,0:00:00.0258013,,8,azacsnap.json,
2023-03-29T16:11:55.7276719+13:00,backup,started,PR1,Hana,,pr1_hourly__F47B181A117,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;
2023-03-29T16:13:03.3774633+13:00,backup,SUCCESS,PR1,Hana,0:01:07.7558663,pr1_hourly__F47B181A117,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;
2023-03-29T16:13:30.1312963+13:00,details,started,PR1,Hana,,,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;(other)HANALOGBACKUP_P;
2023-03-29T16:13:33.1806098+13:00,details,SUCCESS,PR1,Hana,0:00:03.1380686,,8,PR1.json,(data)HANADATA_P;(data)HANASHARED_P;(data)VGvol01;(other)HANALOGBACKUP_P;

يجعل هذا التنسيق الملف قادرا على تحليل أوامر watchLinux و tailgrepheadو و column و للحصول على تحديثات مستمرة للنسخ الاحتياطية ل AzAcSnap. مثال على تركيبة من هذه الأوامر في برنامج نصي shell واحد لمراقبة AzAcSnap كما يلي:

#!/bin/bash
#
# mainlog-watcher.sh
# Monitor execution of AzAcSnap backup commands
#
# These values can be modified as appropriate.
# Mainlog header fields:
#       1. DATE_TIME,
#       2. OPERATION_NAME,
#       3. STATUS,
#       4. SID,
#       5. DATABASE_TYPE,
#       6. DURATION,
#       7. SNAPSHOT_NAME,
#       8. AZACSNAP_VERSION,
#       9. AZACSNAP_CONFIG_FILE,
#       10. VOLUME
FIELDS_TO_INCLUDE="1,2,3,5,4,6,7"
SCREEN_REFRESH_SECS=2
#
# Use AzAcSnap global settings file (.azacsnaprc) if available,
# otherwise use the default location of the current working directory.
AZACSNAP_RC=".azacsnaprc"
if [ -f ${AZACSNAP_RC} ]; then
    source ${AZACSNAP_RC} 2> /dev/null
else
    MAINLOG_LOCATION="."
fi
cd ${MAINLOG_LOCATION}
echo "Changing current working directory to ${MAINLOG_LOCATION}"
#
# Default MAINLOG filename.
HOSTNAME=$(hostname)
MAINLOG_FILENAME="azacsnap.log"
#
# High-level explanation of how commands used.
# `watch` - continuously monitoring the command output.
# `grep` - filter only backup runs.
# `head` and `tail` - add/remove column headers.
# `sed` to remove millisecs from date.
# `awk` format output for `column`.
# `column` - provide pretty output.
FIELDS_FOR_AWK=$(echo "${FIELDS_TO_INCLUDE}" | sed 's/^/\\\$/g' | sed 's/,/,\\\$/g')
PRINTOUT="{OFS=\\\",\\\";print ${FIELDS_FOR_AWK}}"
#
echo -n "Parsing '${MAINLOG_FILENAME}' for field #s ${FIELDS_TO_INCLUDE} = "
bash -c "cat ${MAINLOG_FILENAME} | grep -e \"DATE\" | head -n1 -  | awk -F\",\" \"${PRINTOUT}\" "
#
watch -t -n ${SCREEN_REFRESH_SECS} \
  "\
  echo -n \"Monitoring AzAcSnap on '${HOSTNAME}' @ \" ; \
  date ; \
  echo ; \
  cat ${MAINLOG_FILENAME} \
    | grep -e \"DATE\" -e \",backup,\" \
    | ( sleep 1; head -n1 - ; sleep 1; tail -n+2 - | tail -n20 \
      | sed 's/\(:[0-9][0-9]\)\.[0-9]\{7\}/\1/' ; sleep 1 ) \
    | awk -F\",\" \"${PRINTOUT}\" \
    | column -s\",\" -t \
  "
exit 0

ينتج الإخراج التالي الذي يتم تحديثه كل ثانيتين.

Monitoring AzAcSnap on 'azacsnap' @ Thu Sep 21 11:27:40 NZST 2023

DATE_TIME                  OPERATION_NAME  STATUS   DATABASE_TYPE  SID       DURATION         SNAPSHOT_NAME
2023-09-21T07:00:02+12:00  backup          started  Oracle         ORATEST1                   all-volumes__F6B07A2D77A
2023-09-21T07:02:10+12:00  backup          SUCCESS  Oracle         ORATEST1  0:02:08.0338537  all-volumes__F6B07A2D77A
2023-09-21T08:00:03+12:00  backup          started  Oracle         ORATEST1                   all-volumes__F6B09C83210
2023-09-21T08:02:12+12:00  backup          SUCCESS  Oracle         ORATEST1  0:02:09.9954439  all-volumes__F6B09C83210
2023-09-21T09:00:03+12:00  backup          started  Oracle         ORATEST1                   all-volumes__F6B0BED814B
2023-09-21T09:00:03+12:00  backup          started  Hana           PR1                        pr1_hourly__F6B0BED817F
2023-09-21T09:01:10+12:00  backup          SUCCESS  Hana           PR1       0:01:07.8575664  pr1_hourly__F6B0BED817F
2023-09-21T09:02:12+12:00  backup          SUCCESS  Oracle         ORATEST1  0:02:09.4572157  all-volumes__F6B0BED814B

تقييد أذونات كيان الخدمة

قد يكون من الضروري تحديد نطاق كيان خدمة AzAcSnap. راجع وثائق Azure RBAC لمزيد من التفاصيل حول إدارة الوصول الدقيقة لموارد Azure.

فيما يلي مثال على تعريف الدور مع الحد الأدنى من الإجراءات المطلوبة اللازمة ل AzAcSnap للعمل.

az role definition create --role-definition '{ \
  "Name": "Azure Application Consistent Snapshot tool", \
  "IsCustom": "true", \
  "Description": "Perform snapshots on ANF volumes.", \
  "Actions": [ \
    "Microsoft.NetApp/*/read", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/write", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/delete" \
  ], \
  "NotActions": [], \
  "DataActions": [], \
  "NotDataActions": [], \
  "AssignableScopes": ["/subscriptions/<insert your subscription id>"] \
}'

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

az role definition create --role-definition '{ \
  "Name": "Azure Application Consistent Snapshot tool", \
  "IsCustom": "true", \
  "Description": "Perform snapshots and restores on ANF volumes.", \
  "Actions": [ \
    "Microsoft.NetApp/*/read", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/write", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/snapshots/delete", \
    "Microsoft.NetApp/netAppAccounts/capacityPools/volumes/write" \
  ], \
  "NotActions": [], \
  "DataActions": [], \
  "NotDataActions": [], \
  "AssignableScopes": ["/subscriptions/<insert your subscription id>"] \
}'

التقاط اللقطات يدويا

قبل تنفيذ أي أوامر نسخ احتياطي (azacsnap -c backup)، تحقق من التكوين عن طريق تشغيل أوامر الاختبار وتحقق من تنفيذها بنجاح. يمكن أن يتواصل التنفيذ الصحيح لهذه الاختبارات المثبتة azacsnap مع قاعدة بيانات SAP HANA المثبتة ونظام التخزين الأساسي ل SAP HANA على Azure Large Instance أو نظام Azure NetApp Files .

  • azacsnap -c test --test hana
  • azacsnap -c test --test storage

ثم لأخذ نسخة احتياطية يدوية من لقطة قاعدة البيانات، قم بتشغيل الأمر التالي:

azacsnap -c backup --volume data --prefix hana_TEST --retention=1

إعداد النسخ الاحتياطي التلقائي للقطة

من الشائع استخدام أنظمة cron Unix/Linux لأتمتة تشغيل الأوامر على النظام. الممارسة القياسية لأدوات اللقطة هي إعداد المستخدم crontab.

وفيما يلي مثال crontab azacsnap للمستخدم لأتمتة اللقطات.

MAILTO=""
# =============== TEST snapshot schedule ===============
# Data Volume Snapshots - taken every hour.
@hourly (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume data --prefix hana_TEST --retention=9)
# Other Volume Snapshots - taken every 5 minutes, excluding the top of the hour when hana snapshots taken
5,10,15,20,25,30,35,40,45,50,55 * * * * (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume other --prefix logs_TEST --retention=9)
# Other Volume Snapshots - using an alternate config file to snapshot the boot volume daily.
@daily (. /home/azacsnap/.profile ; cd /home/azacsnap/bin ; azacsnap -c backup --volume other --prefix DailyBootVol --retention=7 --configfile boot-vol.json)

شرح الكرونتاب أعلاه.

  • MAILTO="": من خلال وجود قيمة فارغة، يمنع هذا cron من محاولة إرسال بريد إلكتروني إلى مستخدم Linux المحلي تلقائيا عند تنفيذ إدخال crontab.
  • الإصدارات المختصرة من توقيت إدخالات crontab هي ذاتي التوضيح:
    • @monthly = تشغيل مرة واحدة في الشهر، أي "0 0 1 * *".
    • @weekly = تشغيل مرة واحدة في الأسبوع، أي "0 0 * * 0".
    • @daily = تشغيل مرة واحدة في اليوم، أي "0 0 * * *".
    • @hourly = تشغيل مرة واحدة في الساعة، أي "0 * * * *".
  • يتم استخدام الأعمدة الخمسة الأولى لتعيين الأوقات، راجع أمثلة الأعمدة التالية:
    • 0,15,30,45: كل 15 دقيقة
    • 0-23: كل ساعة
    • * :كل يوم
    • * : كل شهر
    • * : كل يوم من أيام الأسبوع
  • سطر الأوامر المراد تنفيذه مضمن بين قوسين "()"
    • . /home/azacsnap/.profile = اسحب ملف تعريف المستخدم لإعداد بيئته، بما في ذلك $PATH، وما إلى ذلك.
    • cd /home/azacsnap/bin = تغيير دليل التنفيذ إلى الموقع "/home/azacsnap/bin" حيث توجد ملفات التكوين.
    • azacsnap -c ..... = الأمر azacsnap الكامل للتشغيل، بما في ذلك جميع الخيارات.

لمزيد من المعلومات حول cron وتنسيق ملف crontab، راجع cron.

إشعار

المستخدمون مسؤولون عن مراقبة وظائف cron لضمان إنشاء اللقطات بنجاح.

إدارة ملفات سجل AzAcSnap

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

يوفر الإخراج التالي مثالا لتكوين logrotate. يحتفظ هذا التكوين بحد أقصى 31 سجلا (شهر واحد تقريبا)، وعندما تكون ملفات السجل أكبر من 10 آلاف، فإنه يقوم بتدويرها عن طريق إعادة التسمية برقم تمت إضافته إلى اسم الملف وضغطه.

# azacsnap logrotate configuration file
compress

~/bin/azacsnap*.log {
    rotate 31
    size 10k
}

logrotate.conf بعد إنشاء الملف، logrotate يجب تشغيل الأمر بانتظام لأرشفة ملفات سجل AzAcSnap وفقا لذلك. يمكن تنفيذ الأمر تلقائيا logrotate باستخدام cron. الإخراج التالي هو سطر واحد من crontab مستخدم azacsnap، هذا المثال يعمل logrotate يوميا باستخدام ملف ~/logrotate.confالتكوين .

@daily /usr/sbin/logrotate -s ~/logrotate.state ~/logrotate.conf >> ~/logrotate.log

إشعار

في المثال أعلاه ملف logrotate.conf موجود في دليل الصفحة الرئيسية للمستخدم (~).

بعد عدة أيام، يجب أن تبدو ملفات سجل azacsnap مشابهة لقائمة الدليل التالية.

ls -ltra ~/bin/logs
-rw-r--r-- 1 azacsnap users 127431 Mar 14 23:56 azacsnap-backup-azacsnap.log.6.gz
-rw-r--r-- 1 azacsnap users 128379 Mar 15 23:56 azacsnap-backup-azacsnap.log.5.gz
-rw-r--r-- 1 azacsnap users 129272 Mar 16 23:56 azacsnap-backup-azacsnap.log.4.gz
-rw-r--r-- 1 azacsnap users 128010 Mar 17 23:56 azacsnap-backup-azacsnap.log.3.gz
-rw-r--r-- 1 azacsnap users 128947 Mar 18 23:56 azacsnap-backup-azacsnap.log.2.gz
-rw-r--r-- 1 azacsnap users 128971 Mar 19 23:56 azacsnap-backup-azacsnap.log.1.gz
-rw-r--r-- 1 azacsnap users 167921 Mar 20 01:21 azacsnap-backup-azacsnap.log

مراقبة اللقطات

يجب مراقبة الظروف التالية لضمان وجود نظام صحي:

  1. مساحة القرص المتوفرة. تستهلك اللقطات مساحة القرص ببطء استنادا إلى معدل التغيير على مستوى الكتلة، حيث يتم الاحتفاظ بكتل القرص القديمة في اللقطة.
    1. للمساعدة في أتمتة إدارة مساحة القرص، استخدم الخيارين --retention و --trim لتنظيف اللقطات القديمة وملفات سجل قاعدة البيانات تلقائيا.
  2. التنفيذ الناجح للأدوات اللقطة
    1. تحقق من *.result الملف من نجاح أو فشل آخر تشغيل ل azacsnap.
    2. تحقق من /var/log/messages الإخراج من azacsnap الأمر .
  3. تناسق اللقطات عن طريق استعادتها إلى نظام آخر بشكل دوري.

إشعار

لسرد تفاصيل اللقطة، قم بتنفيذ الأمر azacsnap -c details.

حذف لقطة

لحذف لقطة، استخدم الأمر azacsnap -c delete. لا يمكن حذف اللقطات من مستوى نظام التشغيل. يجب استخدام الأمر الصحيح (azacsnap -c delete) لحذف لقطات التخزين.

هام

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

استعادة لقطة

يمكن استعادة لقطة وحدة تخزين إلى وحدة تخزين جديدة (-c restore --restore snaptovol). بالنسبة إلى Azure Large Instance، يمكن إعادة وحدة التخزين إلى لقطة (-c restore --restore revertvolume).

إشعار

لا يوجد أمر استرداد قاعدة بيانات متوفر.

يمكن نسخ لقطة مرة أخرى إلى منطقة بيانات SAP HANA، ولكن يجب عدم تشغيل SAP HANA عند إجراء نسخة (cp /hana/data/H80/mnt00001/.snapshot/hana_hourly.2020-06-17T113043.1586971Z/*).

بالنسبة إلى Azure Large Instance، يمكنك الاتصال بفريق عمليات Microsoft عن طريق فتح طلب خدمة لاستعادة لقطة مطلوبة من اللقطات المتوفرة الموجودة. يمكنك فتح طلب خدمة عبر مدخل Microsoft Azure.

إذا قررت إجراء تجاوز فشل التعافي من الكوارث، azacsnap -c restore --restore revertvolume فإن الأمر في موقع DR يتيح تلقائيا أحدث لقطات وحدة التخزين (/hana/data و /hana/logbackups) للسماح باسترداد SAP HANA. استخدم هذا الأمر بحذر لأنه يكسر النسخ المتماثل بين مواقع الإنتاج والتعافي من الكوارث.

إعداد لقطات لوحدات تخزين "التمهيد" فقط

هام

تنطبق هذه العملية فقط على Azure Large Instance.

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

  1. أكمل الخطوات من 1 إلى 4 من المتطلبات المسبقة للتثبيت.

  2. تمكين الاتصال بالتخزين.

  3. قم بتنزيل المثبت وتشغيله لتثبيت أدوات اللقطة.

  4. إكمال إعداد أدوات اللقطة.

  5. احصل على قائمة وحدات التخزين التي ستتم إضافتها إلى ملف تكوين azacsnap، في هذا المثال، اسم مستخدم التخزين هو cl25h50backup وعنوان IP للتخزين هو 10.1.1.10

    ssh cl25h50backup@10.1.1.10 "volume show -volume *boot*"
    
    Last login time: 7/20/2021 23:54:03
    Vserver   Volume       Aggregate    State      Type       Size  Available Used%
    --------- ------------ ------------ ---------- ---- ---------- ---------- -----
    ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v51_vol aggr_n01_ssd online RW 150GB 57.24GB  61%
    ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v52_vol aggr_n01_ssd online RW 150GB 81.06GB  45%
    ams07-a700s-saphan-1-01v250-client25-nprod t250_sles_boot_sollabams07v53_vol aggr_n01_ssd online RW 150GB 79.56GB  46%
    3 entries were displayed.
    

    إشعار

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

  6. إنشاء ملف تكوين جديد كما يلي. يجب أن تكون تفاصيل وحدة تخزين التمهيد في OtherVolume stanza:

    azacsnap -c configure --configuration new --configfile BootVolume.json
    
    Building new config file
    Add comment to config file (blank entry to exit adding comments): Boot only config file.
    Add comment to config file (blank entry to exit adding comments):
    Add database to config? (y/n) [n]: y
    HANA SID (for example, H80): X
    HANA Instance Number (for example, 00): X
    HANA HDB User Store Key (for example, `hdbuserstore List`): X
    HANA Server's Address (hostname or IP address): X
    Add ANF Storage to database section? (y/n) [n]:
    Add HLI Storage to database section? (y/n) [n]: y
    Add DATA Volume to HLI Storage section of Database section? (y/n) [n]:
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y
    Storage User Name (for example, clbackup25): cl25h50backup
    Storage IP Address (for example, 192.168.1.30): 10.1.1.10
    Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v51_vol
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y
    Storage User Name (for example, clbackup25): cl25h50backup
    Storage IP Address (for example, 192.168.1.30): 10.1.1.10
    Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v52_vol
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]: y
    Storage User Name (for example, clbackup25): cl25h50backup
    Storage IP Address (for example, 192.168.1.30): 10.1.1.10
    Storage Volume Name (for example, hana_data_soldub41_t250_vol): t250_sles_boot_sollabams07v53_vol
    Add OTHER Volume to HLI Storage section of Database section? (y/n) [n]:
    Add HLI Storage to database section? (y/n) [n]:
    Add database to config? (y/n) [n]:
    
    Editing configuration complete, writing output to 'BootVolume.json'.
    
  7. تحقق من ملف التكوين، وارجع إلى المثال التالي:

    استخدم cat الأمر لعرض محتويات ملف التكوين:

    cat BootVolume.json
    
    {
      "version": "5.0",
      "logPath": "./logs",
      "securityPath": "./security",
      "comments": [
        "Boot only config file."
      ],
      "database": [
        {
          "hana": {
            "serverAddress": "X",
            "sid": "X",
            "instanceNumber": "X",
            "hdbUserStoreName": "X",
            "savePointAbortWaitSeconds": 600,
            "hliStorage": [
              {
                "dataVolume": [],
                "otherVolume": [
                  {
                    "backupName": "cl25h50backup",
                    "ipAddress": "10.1.1.10",
                    "volume": "t250_sles_boot_sollabams07v51_vol"
                  },
                  {
                    "backupName": "cl25h50backup",
                    "ipAddress": "10.1.1.10",
                    "volume": "t250_sles_boot_sollabams07v52_vol"
                  },
                  {
                    "backupName": "cl25h50backup",
                    "ipAddress": "10.1.1.10",
                    "volume": "t250_sles_boot_sollabams07v53_vol"
                  }
                ]
              }
            ],
            "anfStorage": []
          }
        }
      ]
    }
    
  8. اختبار نسخة احتياطية من وحدة تخزين التمهيد

    azacsnap -c backup --volume other --prefix TestBootVolume --retention 1 --configfile BootVolume.json
    
  9. تحقق من أنها مدرجة، ولاحظ إضافة خيار للحد من --snapshotfilter قائمة اللقطات التي تم إرجاعها.

    azacsnap -c details --snapshotfilter TestBootVolume --configfile BootVolume.json
    

    إخراج الأمر:

    List snapshot details called with snapshotFilter 'TestBootVolume'
    #, Volume, Snapshot, Create Time, HANA Backup ID, Snapshot Size
    #1, t250_sles_boot_sollabams07v51_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB
    , t250_sles_boot_sollabams07v51_vol, , , Size used by Snapshots, 1.31GB
    #1, t250_sles_boot_sollabams07v52_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB
    , t250_sles_boot_sollabams07v52_vol, , , Size used by Snapshots, 1.31GB
    #1, t250_sles_boot_sollabams07v53_vol, TestBootVolume.2020-07-03T034651.7059085Z, "Fri Jul 03 03:48:24 2020", "otherVolume Backup|azacsnap version: 5.0 (Build: 20210421.6349)", 200KB
    , t250_sles_boot_sollabams07v53_vol, , , Size used by Snapshots, 1.31GB
    
  10. اختياري إعداد النسخ الاحتياطي التلقائي للقطة مع crontab، أو مجدول مناسب قادر على azacsnap تشغيل أوامر النسخ الاحتياطي.

إشعار

إعداد الاتصال مع SAP HANA غير مطلوب.

استعادة لقطة "تمهيد"

هام

هذه العملية مخصصة ل Azure Large Instance ony. ستتم استعادة الخادم إلى النقطة التي تم فيها أخذ اللقطة.

يمكن استرداد لقطة "التمهيد" على النحو التالي:

  1. يحتاج العميل إلى إيقاف تشغيل الخادم.
  2. بعد إيقاف تشغيل الخادم، سيحتاج العميل إلى فتح طلب خدمة يحتوي على معرف الجهاز واللقطة لاستعادتها.

    يمكن للعملاء فتح طلب خدمة عبر مدخل Microsoft Azure.

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

لا توجد خطوات أخرى يجب تنفيذها بعد الاستعادة.

الحقائق الرئيسية التي يجب معرفتها حول اللقطات

السمات الرئيسية للقطات وحدة تخزين التخزين:

  • موقع اللقطات: يمكن العثور على اللقطات في دليل ظاهري (.snapshot) داخل وحدة التخزين. راجع الأمثلة التالية ل Azure Large Instance:

    • قاعده البيانات: /hana/data/<SID>/mnt00001/.snapshot
    • المشتركه: /hana/shared/<SID>/.snapshot
    • سجلات: /hana/logbackups/<SID>/.snapshot
    • التمهيد: لقطات التمهيد ل HLI غير مرئية من مستوى نظام التشغيل، ولكن يمكن إدراجها باستخدام azacsnap -c details.

    إشعار

    .snapshotهو مجلد ظاهري مخفي للقراءة فقط يوفر وصولا للقراءة فقط إلى اللقطات.

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

  • اسم اللقطة: يتضمن اسم اللقطة تسمية البادئة التي يوفرها العميل.

  • حجم اللقطة: يعتمد على الحجم/التغييرات على مستوى قاعدة البيانات.

  • موقع ملف السجل: يتم إخراج ملفات السجل التي تم إنشاؤها بواسطة الأوامر إلى مجلدات كما هو محدد في ملف تكوين JSON، وهو بشكل افتراضي مجلد فرعي ضمن حيث يتم تشغيل الأمر (على سبيل المثال، ./logs).

الخطوات التالية