WAL-G: PostgreSQL DBMS හි උපස්ථ සහ ප්‍රතිසාධනය

උපස්ථ SQL ඩම්ප් බවට පත් කිරීම (භාවිතා කිරීම) බව බොහෝ කලක සිට දන්නා කරුණකි pg_dump හෝ pg_dumpall) හොඳ අදහසක් නොවේ. PostgreSQL DBMS උපස්ථ කිරීමට, විධානය භාවිතා කිරීම වඩා හොඳය pg_basebackup, WAL ලොග වල ද්විමය පිටපතක් සාදනු ලබයි. නමුත් ඔබ පිටපතක් සෑදීමේ සහ ප්‍රතිසාධනය කිරීමේ සම්පූර්ණ ක්‍රියාවලිය අධ්‍යයනය කිරීමට පටන් ගත් විට, මෙය ක්‍රියාත්මක වීමට අවම වශයෙන් ත්‍රිරෝද රථ කිහිපයක්වත් ලිවිය යුතු බවත් ඔබට ඉහළින් සහ පහළින් වේදනාවක් ඇති නොවන බවත් ඔබට වැටහෙනු ඇත. දුක් වේදනා සමනය කිරීම සඳහා, WAL-G සංවර්ධනය කරන ලදී.

WAL-G PostgreSQL දත්ත සමුදායන් උපස්ථ කිරීම සහ ප්‍රතිසාධනය කිරීම සඳහා Go හි ලියා ඇති මෙවලමකි (සහ වඩාත් මෑතකදී MySQL/MariaDB, MongoDB සහ FoundationDB) එය Amazon S3 ආචයනය (සහ ඇනලොග්, උදාහරණයක් ලෙස, Yandex Object Storage), මෙන්ම Google Cloud Storage, Azure Storage, Swift Object Storage සහ සරලව ගොනු පද්ධතිය සමඟ වැඩ කිරීමට සහාය වේ. සම්පූර්ණ සැකසුම සරල පියවරයන් දක්වා පැමිණේ, නමුත් ඒ පිළිබඳ ලිපි අන්තර්ජාලය පුරා විසිරී ඇති නිසා, ආරම්භයේ සිට අවසානය දක්වා සියලුම පියවර ඇතුළත් සම්පූර්ණ ආකාරය අත්පොතක් නොමැත (හබ්රේ හි පළ කිරීම් කිහිපයක් ඇත, නමුත් බොහෝ කරුණු එහි මග හැරී ඇත).

WAL-G: PostgreSQL DBMS හි උපස්ථ සහ ප්‍රතිසාධනය

මෙම ලිපිය ලියා ඇත්තේ මූලික වශයෙන් මගේ දැනුම ක්‍රමවත් කිරීමටය. මම DBA කෙනෙක් නොවන අතර මට කොහේ හරි ගිහි භාෂාවෙන් මාව ප්‍රකාශ කළ හැකිය, එබැවින් ඕනෑම නිවැරදි කිරීමක් සාදරයෙන් පිළිගනිමු!

වෙනමම, Ubuntu 12.3 හි PostgreSQL 18.04 සඳහා පහත සෑම දෙයක්ම අදාළ වන අතර පරීක්ෂා කර ඇති බව මම සටහන් කරමි, සියලුම විධානයන් වරප්‍රසාද ලත් පරිශීලකයෙකු ලෙස ක්‍රියාත්මක කළ යුතුය.

ස්ථාපනය

මෙම ලිපිය ලියන අවස්ථාවේදී, WAL-G හි ස්ථාවර අනුවාදය වේ v0.2.15 (මාර්තු 2020). අපි භාවිතා කරන්නේ මෙයයි (නමුත් ඔබට එය ප්‍රධාන ශාඛාවෙන් ගොඩනගා ගැනීමට අවශ්‍ය නම්, github ගබඩාවේ මේ සඳහා සියලු උපදෙස් ඇත) බාගත කර ස්ථාපනය කිරීමට ඔබ කළ යුත්තේ:

#!/bin/bash

curl -L "https://github.com/wal-g/wal-g/releases/download/v0.2.15/wal-g.linux-amd64.tar.gz" -o "wal-g.linux-amd64.tar.gz"
tar -xzf wal-g.linux-amd64.tar.gz
mv wal-g /usr/local/bin/

මෙයින් පසු, ඔබ මුලින්ම WAL-G වින්‍යාස කළ යුතු අතර, පසුව PostgreSQL ම වින්‍යාසගත කළ යුතුය.

WAL-G පිහිටුවීම

උපස්ථ ගබඩා කිරීමේ උදාහරණයක් ලෙස, Amazon S3 භාවිතා කරනු ඇත (මන්ද එය මගේ සේවාදායකයන්ට සමීප වන අතර එහි භාවිතය ඉතා ලාභදායී වේ) එය සමඟ වැඩ කිරීමට, ඔබට "s3 බාල්දියක්" සහ ප්රවේශ යතුරු අවශ්ය වේ.

WAL-G පිළිබඳ පෙර ලිපි සියල්ලම පරිසර විචල්‍යයන් භාවිතයෙන් වින්‍යාසය භාවිතා කළ නමුත් මෙම නිකුතුව සමඟ සිටුවම් ස්ථානගත කළ හැක .walg.json ගොනුව postgres පරිශීලකයාගේ මුල් නාමාවලියෙහි. එය නිර්මාණය කිරීමට, පහත bash පිටපත ධාවනය කරන්න:

#!/bin/bash

cat > /var/lib/postgresql/.walg.json << EOF
{
    "WALG_S3_PREFIX": "s3://your_bucket/path",
    "AWS_ACCESS_KEY_ID": "key_id",
    "AWS_SECRET_ACCESS_KEY": "secret_key",
    "WALG_COMPRESSION_METHOD": "brotli",
    "WALG_DELTA_MAX_STEPS": "5",
    "PGDATA": "/var/lib/postgresql/12/main",
    "PGHOST": "/var/run/postgresql/.s.PGSQL.5432"
}
EOF
# обязательно меняем владельца файла:
chown postgres: /var/lib/postgresql/.walg.json

මම සියලු පරාමිතීන් ගැන ටිකක් පැහැදිලි කරන්නම්:

  • WALG_S3_PREFIX - උපස්ථ උඩුගත කෙරෙන ඔබගේ S3 බාල්දියට යන මාර්ගය (ඔබට root වෙත හෝ ෆෝල්ඩරයකට යා හැක);
  • AWS_ACCESS_KEY_ID - S3 හි ප්‍රවේශ යතුර (පරීක්ෂණ සේවාදායකයක ප්‍රතිසාධනයකදී, මෙම යතුරුවල කියවීමට පමණක් ප්‍රතිපත්තියක් තිබිය යුතුය! මෙය යථා තත්ත්වයට පත් කිරීම පිළිබඳ කොටසේ වඩාත් විස්තරාත්මකව විස්තර කෙරේ.);
  • AWS_SECRET_ACCESS_KEY - S3 ගබඩාවේ රහස් යතුර;
  • WALG_COMPRESSION_METHOD - සම්පීඩන ක්‍රමය, බ්‍රොට්ලි භාවිතා කිරීම වඩා හොඳය (මෙය අවසාන ප්‍රමාණය සහ සම්පීඩන / විසංයෝජන වේගය අතර රන් මධ්‍යය වන බැවින්);
  • WALG_DELTA_MAX_STEPS - සම්පූර්ණ උපස්ථයක් සෑදීමට පෙර "ඩෙල්ටා" සංඛ්යාව (ඒවා කාලය සහ බාගත කළ දත්ත ප්රමාණය ඉතිරි කරයි, නමුත් ප්රතිසාධන ක්රියාවලිය තරමක් මන්දගාමී විය හැක, එබැවින් විශාල අගයන් භාවිතා කිරීම යෝග්ය නොවේ);
  • PGDATA - ඔබගේ දත්ත සමුදා දත්ත සමඟ නාමාවලිය වෙත මාර්ගය (විධානය ක්‍රියාත්මක කිරීමෙන් ඔබට එය සොයාගත හැකිය pg_lsclusters);
  • PGHOST - දත්ත සමුදායට සම්බන්ධ කිරීම, දේශීය උපස්ථයක් සමඟ මෙම උදාහරණයේ ඇති පරිදි unix-socket හරහා එය කිරීම වඩා හොඳය.

වෙනත් පරාමිතීන් ලේඛනවල සොයාගත හැකිය: https://github.com/wal-g/wal-g/blob/v0.2.15/PostgreSQL.md#configuration.

PostgreSQL පිහිටුවීම

දත්ත සමුදාය තුළ ඇති ලේඛනාගාරයට WAL ලොග් වලාකුළට උඩුගත කිරීමට සහ ඒවායින් ඒවා ප්‍රතිස්ථාපනය කිරීමට (අවශ්‍ය නම්), ඔබ වින්‍යාස ගොනුවේ පරාමිති කිහිපයක් සැකසිය යුතුය. /etc/postgresql/12/main/postgresql.conf. ආරම්භකයින් සඳහා පමණි ඔබ සහතික විය යුතුයවින්‍යාසය නැවත පූරණය කළ විට, DBMS බිඳවැටීම සිදු නොවන පරිදි, පහත කිසිදු සැකසුම් වෙනත් අගයකට සකසා නොමැත. ඔබට මෙම පරාමිති එකතු කළ හැක්කේ:

#!/bin/bash

echo "wal_level=replica" >> /etc/postgresql/12/main/postgresql.conf
echo "archive_mode=on" >> /etc/postgresql/12/main/postgresql.conf
echo "archive_command='/usr/local/bin/wal-g wal-push "%p" >> /var/log/postgresql/archive_command.log 2>&1' " >> /etc/postgresql/12/main/postgresql.conf
echo “archive_timeout=60” >> /etc/postgresql/12/main/postgresql.conf
echo "restore_command='/usr/local/bin/wal-g wal-fetch "%f" "%p" >> /var/log/postgresql/restore_command.log 2>&1' " >> /etc/postgresql/12/main/postgresql.conf

# перезагружаем конфиг через отправку SIGHUP сигнала всем процессам БД
killall -s HUP postgres

සැකසිය යුතු පරාමිති විස්තරය:

  • wal_level - WAL ලඝු-සටහන් වල ලිවීමට කොපමණ තොරතුරු, "අනුරුව" - සියල්ල ලියන්න;
  • සංරක්ෂිත_ප්‍රකාරය - පරාමිතිය වෙතින් විධානය භාවිතා කරමින් WAL ලොග් බාගත කිරීම සක්‍රීය කරන්න සංරක්ෂිත_විධානය;
  • සංරක්ෂිත_විධානය - සම්පූර්ණ කරන ලද WAL ලොගයක් සංරක්ෂණය කිරීම සඳහා විධානය;
  • සංරක්ෂිත_කාලය අවසන් - ලඝු-සටහන් සංරක්ෂණය කිරීම සිදු කරනු ලබන්නේ එය සම්පූර්ණ වූ විට පමණි, නමුත් ඔබේ සේවාදායකය දත්ත ගබඩාවට වෙනස් / කුඩා දත්ත එකතු කරන්නේ නම්, තත්පර කිහිපයකින් මෙහි සීමාවක් සැකසීම අර්ථවත් කරයි, ඉන්පසු සංරක්ෂිත විධානය බලහත්කාරයෙන් කැඳවනු ලැබේ (මම සෑම තත්පරයකම දත්ත සමුදායට තීව්‍ර ලෙස ලියමි, එබැවින් නිෂ්පාදනයේදී මෙම පරාමිතිය සකස් නොකිරීමට මම තීරණය කළෙමි);
  • ප්‍රතිසාධන_විධානය - "සම්පූර්ණ උපස්ථ" (මූලික උපස්ථ) දත්ත ගබඩාවේ නවතම වෙනස්කම් නොමැති නම්, උපස්ථයකින් WAL ලොගය ප්‍රතිසාධනය කිරීමේ විධානය භාවිතා වේ.

නිල ලියකියවිලි පරිවර්තනය කිරීමේදී ඔබට මෙම සියලු පරාමිතීන් ගැන වැඩිදුර කියවිය හැකිය: https://postgrespro.ru/docs/postgresql/12/runtime-config-wal.

උපස්ථ කාලසටහනක් සැකසීම

යමෙක් කුමක් පැවසුවත්, එය ක්‍රියාත්මක කිරීමට පහසුම ක්‍රමය ක්‍රෝන් ය. උපස්ථ සෑදීමට අපි වින්‍යාස කරන්නේ මෙයයි. සම්පූර්ණ උපස්ථයක් සෑදීමේ විධානය සමඟ ආරම්භ කරමු: wal-g හි මෙය දියත් කිරීමේ තර්කයයි උපස්ථ-තල්ලු. නමුත් පළමුව, සියල්ල හොඳින් ඇති බවට වග බලා ගැනීම සඳහා postgres පරිශීලකයාගෙන් මෙම විධානය අතින් ක්‍රියාත්මක කිරීම වඩා හොඳය (සහ ප්‍රවේශ දෝෂ නොමැත):

#!/bin/bash

su - postgres -c '/usr/local/bin/wal-g backup-push /var/lib/postgresql/12/main'

දියත් කිරීමේ තර්ක මඟින් දත්ත නාමාවලියට යන මාර්ගය දක්වයි - ඔබට එය ධාවනය කිරීමෙන් සොයාගත හැකි බව මම ඔබට මතක් කරමි pg_lsclusters.

සෑම දෙයක්ම දෝෂයකින් තොරව සිදු වූ අතර දත්ත S3 ගබඩාවට පටවා තිබේ නම්, එවිට ඔබට ක්‍රොන්ටැබ් හි වරින් වර දියත් කිරීම වින්‍යාසගත කළ හැකිය:

#!/bin/bash

echo "15 4 * * *    /usr/local/bin/wal-g backup-push /var/lib/postgresql/12/main >> /var/log/postgresql/walg_backup.log 2>&1" >> /var/spool/cron/crontabs/postgres
# задаем владельца и выставляем правильные права файлу
chown postgres: /var/spool/cron/crontabs/postgres
chmod 600 /var/spool/cron/crontabs/postgres

මෙම උදාහරණයේ දී, උපස්ථ ක්‍රියාවලිය සෑම දිනකම 4:15 am ට ආරම්භ වේ.

පැරණි උපස්ථ මකා දැමීම

බොහෝ දුරට ඉඩ ඇති පරිදි, ඔබට මෙසෝසොයික් යුගයේ සියලුම උපස්ථ තබා ගැනීමට අවශ්‍ය නැත, එබැවින් ඔබේ ගබඩාව වරින් වර “පිරිසිදු කිරීම” ප්‍රයෝජනවත් වනු ඇත (“සම්පූර්ණ උපස්ථ” සහ WAL ලොග් දෙකම). අපි මේ සියල්ල ක්‍රෝන් කාර්යයක් හරහා කරන්නෙමු:

#!/bin/bash

echo "30 6 * * *    /usr/local/bin/wal-g delete before FIND_FULL $(date -d '-10 days' '+%FT%TZ') --confirm >> /var/log/postgresql/walg_delete.log 2>&1" >> /var/spool/cron/crontabs/postgres
# ещё раз задаем владельца и выставляем правильные права файлу (хоть это обычно это и не нужно повторно делать)
chown postgres: /var/spool/cron/crontabs/postgres
chmod 600 /var/spool/cron/crontabs/postgres

Cron මෙම කාර්යය සෑම දිනකම පෙරවරු 6:30 ට ක්‍රියාත්මක කරනු ඇත, පසුගිය දින 10 සඳහා පිටපත් හැර අනෙකුත් සියල්ල (සම්පූර්ණ උපස්ථ, ඩෙල්ටා සහ WAL) මකා, නමුත් අවම වශයෙන් එක් උපස්ථයක්වත් තබයි. කිරීමට නිශ්චිත දිනය එසේ ඕනෑම කරුණක් после දින PITR හි ඇතුළත් කර ඇත.

උපස්ථයකින් ප්‍රතිසාධනය කිරීම

සෞඛ්‍ය සම්පන්න දත්ත සමුදායක් සඳහා යතුර වරින් වර ප්‍රතිසාධනය කිරීම සහ ඇතුළත දත්තවල අඛණ්ඩතාව තහවුරු කිරීම බව රහසක් නොවේ. මෙම කොටසේ WAL-G භාවිතයෙන් නැවත ලබා ගන්නේ කෙසේදැයි මම ඔබට කියමි, අපි පසුව චෙක්පත් ගැන කතා කරමු.

එය වෙනම සඳහන් කිරීම වටී පරීක්ෂණ පරිසරයක් තුළ ප්‍රතිසාධනය කිරීමට (නිෂ්පාදනය නොවන සෑම දෙයක්ම) ඔබ S3 හි කියවීමට පමණක් ගිණුමක් භාවිතා කිරීමට අවශ්‍ය වන අතර එමඟින් අහම්බෙන් උපස්ථ උඩින් ලිවීම සිදු නොවේ. WAL-G සම්බන්ධයෙන්, ඔබ කණ්ඩායම් ප්‍රතිපත්තියේ S3 පරිශීලකයා සඳහා පහත අයිතිවාසිකම් සැකසීමට අවශ්‍ය වේ (බලපෑම: ඉඩ දෙන්න): s3:GetObject, s3:ListBucket, s3:GetBucketLocation. සහ, ඇත්ත වශයෙන්ම, සැකසීමට අමතක නොකරන්න archive_mode=අක්‍රිය සැකසුම් ගොනුවේ postgresql.conf, එවිට ඔබේ පරීක්ෂණ දත්ත ගබඩාව නිහඬව උපස්ථ කිරීමට අවශ්‍ය නොවේ.

ප්රතිෂ්ඨාපනය අතින් සුළු චලනයකින් සිදු කෙරේ සියලුම PostgreSQL දත්ත මකා දැමීම (පරිශීලකයින් ඇතුළුව), එබැවින් ඔබ පහත විධානයන් ක්‍රියාත්මක කරන විට අතිශයින්ම ප්‍රවේශම් වන්න.

#!/bin/bash

# если есть балансировщик подключений (например, pgbouncer), то вначале отключаем его, чтобы он не нарыгал ошибок в лог
service pgbouncer stop
# если есть демон, который перезапускает упавшие процессы (например, monit), то останавливаем в нём процесс мониторинга базы (у меня это pgsql12)
monit stop pgsql12
# или останавливаем мониторинг полностью
service monit stop
# останавливаем саму базу данных
service postgresql stop
# удаляем все данные из текущей базы (!!!); лучше предварительно сделать их копию, если есть свободное место на диске
rm -rf /var/lib/postgresql/12/main
# скачиваем резервную копию и разархивируем её
su - postgres -c '/usr/local/bin/wal-g backup-fetch /var/lib/postgresql/12/main LATEST'
# помещаем рядом с базой специальный файл-сигнал для восстановления (см. https://postgrespro.ru/docs/postgresql/12/runtime-config-wal#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY ), он обязательно должен быть создан от пользователя postgres
su - postgres -c 'touch /var/lib/postgresql/12/main/recovery.signal'
# запускаем базу данных, чтобы она инициировала процесс восстановления
service postgresql start

ප්‍රතිසාධන ක්‍රියාවලිය පරීක්ෂා කිරීමට අවශ්‍ය අය සඳහා, පහතින් කුඩා bash මැජික් කැබැල්ලක් සකස් කර ඇත, එවිට ප්‍රතිසාධනයේදී ගැටළු ඇති විට, ස්ක්‍රිප්ට් ශුන්‍ය නොවන පිටවීමේ කේතයක් සමඟ කඩා වැටෙනු ඇත. මෙම උදාහරණයේ දී, සංඥා ගොනුව මකා දැමුවාද යන්න සොයා බැලීම සඳහා තත්පර 120 ක කල් ඉකුත්වීමකින් (ප්‍රතිසාධනය සඳහා මිනිත්තු 5 ක්) චෙක්පත් 10 ක් සිදු කරනු ලැබේ (මෙයින් අදහස් වන්නේ ප්‍රතිසාධනය සාර්ථක වූ බවයි):

#!/bin/bash

CHECK_RECOVERY_SIGNAL_ITER=0
while [ ${CHECK_RECOVERY_SIGNAL_ITER} -le 120 ]
do
    if [ ! -f "/var/lib/postgresql/12/main/recovery.signal" ]
    then
        echo "recovery.signal removed"
        break
    fi
    sleep 5
    ((CHECK_RECOVERY_SIGNAL_ITER+1))
done

# если после всех проверок файл всё равно существует, то падаем с ошибкой
if [ -f "/var/lib/postgresql/12/main/recovery.signal" ]
then
    echo "recovery.signal still exists!"
    exit 17
fi

සාර්ථක ප්‍රතිසාධනයකින් පසු, සියලුම ක්‍රියාවලි නැවත ආරම්භ කිරීමට අමතක නොකරන්න (pgbouncer/monit, ආදිය).

ප්රකෘතිමත් වීමෙන් පසු දත්ත පරීක්ෂා කිරීම

ප්‍රතිසාධනය කිරීමෙන් පසු දත්ත සමුදායේ අඛණ්ඩතාව පරීක්ෂා කිරීම අත්‍යවශ්‍ය වේ, එවිට කැඩුණු / වක්‍ර උපස්ථයක් සහිත තත්වයක් ඇති නොවේ. සාදන ලද එක් එක් ලේඛනාගාරය සමඟ මෙය කිරීම වඩා හොඳය, නමුත් කොතැනද සහ කෙසේද යන්න රඳා පවතින්නේ ඔබේ පරිකල්පනය මත පමණි (ඔබට පැයකට වරක් තනි සේවාදායකයන් ඉහළ නැංවීමට හෝ CI හි චෙක්පතක් ධාවනය කළ හැකිය). නමුත් අවම වශයෙන්, දත්ත සමුදායේ දත්ත සහ දර්ශක පරීක්ෂා කිරීම අවශ්ය වේ.

දත්ත පරීක්ෂා කිරීම සඳහා, එය ඩම්ප් එකක් හරහා ධාවනය කිරීම ප්‍රමාණවත් වේ, නමුත් දත්ත සමුදාය නිර්මාණය කිරීමේදී චෙක්සම් සක්‍රීය කර තිබීම වඩා හොඳය (දත්ත චෙක්සම්):

#!/bin/bash

if ! su - postgres -c 'pg_dumpall > /dev/null'
then
    echo 'pg_dumpall failed'
    exit 125
fi

දර්ශක පරීක්ෂා කිරීමට - පවතී amcheck මොඩියුලය, අපි ඒකට sql query එක ගමු WAL-G පරීක්ෂණ සහ එය වටා කුඩා තර්කයක් ගොඩනඟන්න:

#!/bin/bash

# добавляем sql-запрос для проверки в файл во временной директории
cat > /tmp/amcheck.sql << EOF
CREATE EXTENSION IF NOT EXISTS amcheck;
SELECT bt_index_check(c.oid), c.relname, c.relpages
FROM pg_index i
JOIN pg_opclass op ON i.indclass[0] = op.oid
JOIN pg_am am ON op.opcmethod = am.oid
JOIN pg_class c ON i.indexrelid = c.oid
JOIN pg_namespace n ON c.relnamespace = n.oid
WHERE am.amname = 'btree'
AND c.relpersistence != 't'
AND i.indisready AND i.indisvalid;
EOF
chown postgres: /tmp/amcheck.sql

# добавляем скрипт для запуска проверок всех доступных баз в кластере
# (обратите внимание что переменные и запуск команд – экранированы)
cat > /tmp/run_amcheck.sh << EOF
for DBNAME in $(su - postgres -c 'psql -q -A -t -c "SELECT datname FROM pg_database WHERE datistemplate = false;" ')
do
    echo "Database: ${DBNAME}"
    su - postgres -c "psql -f /tmp/amcheck.sql -v 'ON_ERROR_STOP=1' ${DBNAME}" && EXIT_STATUS=$? || EXIT_STATUS=$?
    if [ "${EXIT_STATUS}" -ne 0 ]
    then
        echo "amcheck failed on DB: ${DBNAME}"
        exit 125
    fi
done
EOF
chmod +x /tmp/run_amcheck.sh

# запускаем скрипт
/tmp/run_amcheck.sh > /tmp/amcheck.log

# для проверки что всё прошло успешно можно проверить exit code или grep’нуть ошибку
if grep 'amcheck failed' "/tmp/amcheck.log"
then
    echo 'amcheck failed: '
    cat /tmp/amcheck.log
    exit 125
fi

සාරාංශ ගත කිරීමට

ප්‍රකාශනය සකස් කිරීමට ඇන්ඩ්‍රි බොරෝඩින් කළ උපකාරය සඳහා මගේ කෘතඥතාව පළ කිරීමට මම කැමතියි සහ WAL-G හි සංවර්ධනය සඳහා ඔහු දැක්වූ දායකත්වයට විශේෂ ස්තූතිය!

මෙම සටහන අවසන් කරයි. සැකසීමේ පහසුව සහ ඔබේ සමාගම තුළ මෙම මෙවලම භාවිතා කිරීමේ විශාල විභවය ප්‍රකාශ කිරීමට මට හැකි වූ බව මම බලාපොරොත්තු වෙමි. මම WAL-G ගැන බොහෝ දේ අසා ඇත, නමුත් කිසි විටෙකත් වාඩි වී එය තේරුම් ගැනීමට ප්‍රමාණවත් කාලයක් නොතිබුණි. මම එය නිවසේදී ක්‍රියාත්මක කළ පසු, මෙම ලිපිය මගෙන් එළියට ආවේය.

වෙනමම, WAL-G හට පහත DBMS සමඟ ද ක්‍රියා කළ හැකි බව සඳහන් කිරීම වටී:

  • MySQL / MariaDB;
  • MongoDB;
  • පදනම DB;
  • සහ කැපවීම් අනුව විනිශ්චය කිරීම, තවත් කිහිපයක් අපේක්ෂා කෙරේ!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න