From 06e072b5c756538d087e1cc5ca21f97c1909f8ba Mon Sep 17 00:00:00 2001 From: Ali Najmabadi Date: Wed, 20 Nov 2024 12:32:25 +0330 Subject: [PATCH] docs: update redis restore docs --- .../restore-redis-using-rdb-cli-tool.cast | 117 ++++++++++ .../dbaas/redis/how-tos/restore-backup.mdx | 209 +++++++++++++++++- 2 files changed, 316 insertions(+), 10 deletions(-) create mode 100644 public/casts/restore-redis-using-rdb-cli-tool.cast diff --git a/public/casts/restore-redis-using-rdb-cli-tool.cast b/public/casts/restore-redis-using-rdb-cli-tool.cast new file mode 100644 index 00000000..66a6057c --- /dev/null +++ b/public/casts/restore-redis-using-rdb-cli-tool.cast @@ -0,0 +1,117 @@ +{"version": 2, "width": 202, "height": 20, "timestamp": 1732089987, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}} +[0.11661, "o", "\u001b[?2004h\u001b]0;~\u0007\u001b[01;32m\u001b[00m\u001b[01;34m~ \u001b[00m "] +[0.359251, "o", "s"] +[0.392304, "o", "h"] +[0.464803, "o", " "] +[0.568997, "o", "s"] +[0.668851, "o", "e"] +[0.714219, "o", "t"] +[0.827976, "o", "up.sh "] +[1.161842, "o", "\r\n\u001b[?2004l\r/usr/bin/wget\r\nInstalling prerequisites...\r\n"] +[1.168519, "o", "[sudo] password for liara: "] +[1.502454, "o", "\r\n"] +[1.562716, "o", "\u001b[33m\r0% [Working]\u001b[0m"] +[1.728385, "o", "\u001b[33m\r0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com] [Connected to repo.mongodb.org (18.66.161.107)] [Connecting to packages.microsoft.com] [Connecting to deb.nodesource.com] [Conn\u001b[0m"] +[1.755822, "o", "\r \rErr:1 https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 InRelease\r\n 403 Forbidden [IP: 18.66.161.107 443]\r\n\u001b[33m\r0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com] [Connecting to packages.microsoft.com] [Connecting to deb.nodesource.com] [Connecting to nvidia.github.io] [Connecting to ppa.l\u001b[0m"] +[1.767876, "o", "\r \rErr:2 https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 InRelease\r\n 403 Forbidden [IP: 18.66.161.107 443]\r\n\u001b[33m\r0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com] [Connecting to packages.microsoft.com] [Connecting to deb.nodesource.com] [Connecting to nvidia.github.io] [Connecting to ppa.l\u001b[0m"] +[1.935409, "o", "\u001b[33m\r0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com] [Connected to packages.microsoft.com (13.107.246.63)] [Waiting for headers] [Connecting to nvidia.github.io] [Connecting to ppa\u001b[0m"] +[1.946573, "o", "\r \rHit:3 https://deb.nodesource.com/node_21.x nodistro InRelease\r\n\u001b[33m\r0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com] [Connected to packages.microsoft.com (13.107.246.63)] [Connecting to nvidia.github.io] [Connecting to ppa.launchpadcontent.net]\u001b[0m"] +[1.971113, "o", "\u001b[33m\r \r0% [Connecting to archive.ubuntu.com] [Connecting to security.ubuntu.com] [Waiting for headers] [Connecting to nvidia.github.io] [Connecting to ppa.launchpadcontent.net (185.125.190.80)]\u001b[0m"] +[2.023593, "o", "\r \rHit:4 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease\r\n\u001b[33m\r \r0% [Connecting to archive.ubuntu.com (185.125.190.82)] [Connecting to security.ubuntu.com] [Connecting to nvidia.github.io] [Connected to ppa.launchpadcontent.net (185.125.190.80)]\u001b[0m"] +[2.064436, "o", "\r \rHit:5 http://archive.ubuntu.com/ubuntu jammy InRelease\r\n\u001b[33m\r \r0% [Waiting for headers] [Connecting to nvidia.github.io (185.199.109.153)] [Waiting for headers]\u001b[0m"] +[2.076083, "o", "\u001b[33m\r0% [Waiting for headers] [Waiting for headers] [Connecting to nvidia.github.io (185.199.109.153)] [Waiting for headers]\u001b[0m"] +[2.088619, "o", "\r \rGet:6 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]\r\n\u001b[33m\r0% [Waiting for headers] [6 InRelease 2466 B/129 kB 2%] [Connected to nvidia.github.io (185.199.109.153)] [Waiting for headers]\u001b[0m"] +[2.094962, "o", "\r \rGet:7 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]\r\n\u001b[33m\r0% [7 InRelease 2468 B/128 kB 2%] [6 InRelease 13.6 kB/129 kB 11%] [Connected to nvidia.github.io (185.199.109.153)] [Waiting for headers]\u001b[0m"] +[2.110288, "o", "\r \rIgn:8 https://ppa.launchpadcontent.net/phalcon/stable/ubuntu jammy InRelease\r\n\u001b[33m\r \r0% [7 InRelease 15.0 kB/128 kB 12%] [6 InRelease 13.6 kB/129 kB 11%] [Connected to nvidia.github.io (185.199.109.153)]\u001b[0m"] +[2.114505, "o", "\u001b[33m\r0% [7 InRelease 15.0 kB/128 kB 12%] [6 InRelease 13.6 kB/129 kB 11%] [Connected to nvidia.github.io (185.199.109.153)] [Waiting for headers]\u001b[0m"] +[2.142555, "o", "\r \rHit:9 https://ppa.launchpadcontent.net/redislabs/redis/ubuntu jammy InRelease\r\n\u001b[33m\r \r0% [7 InRelease 37.2 kB/128 kB 29%] [6 InRelease 41.3 kB/129 kB 32%] [Waiting for headers]\u001b[0m"] +[2.165622, "o", "\r \rHit:10 https://nvidia.github.io/libnvidia-container/stable/deb/amd64 InRelease\r\n\u001b[33m\r0% [7 InRelease 60.8 kB/128 kB 47%] [6 InRelease 66.3 kB/129 kB 51%] [Waiting for headers]\u001b[0m"] +[2.174888, "o", "\u001b[33m\r0% [7 InRelease 77.4 kB/128 kB 60%] [6 InRelease 80.2 kB/129 kB 62%] [Waiting for headers] [Waiting for headers]\u001b[0m"] +[2.177025, "o", "\r \rErr:11 https://ppa.launchpadcontent.net/phalcon/stable/ubuntu jammy Release\r\n 404 Not Found [IP: 185.125.190.80 443]\r\n\u001b[33m\r \r0% [7 InRelease 77.4 kB/128 kB 60%] [6 InRelease 83.0 kB/129 kB 64%] [Waiting for headers]\u001b[0m"] +[2.192087, "o", "\r \rGet:12 https://nvidia.github.io/libnvidia-container/experimental/deb/amd64 InRelease [1489 B]\r\n\u001b[33m\r0% [7 InRelease 107 kB/128 kB 83%] [6 InRelease 118 kB/129 kB 91%] [12 InRelease 1489 B/1489 B 100%]\u001b[0m"] +[2.192332, "o", "\u001b[33m\r \r0% [7 InRelease 107 kB/128 kB 83%] [6 InRelease 118 kB/129 kB 91%]\u001b[0m"] +[2.197222, "o", "\u001b[33m\r0% [7 InRelease 116 kB/128 kB 91%] [6 InRelease 127 kB/129 kB 99%]\u001b[0m"] +[2.19843, "o", "\u001b[33m\r \r0% [7 InRelease 127 kB/128 kB 99%]\u001b[0m"] +[2.201164, "o", "\u001b[33m\r \r0% [Waiting for headers]\u001b[0m"] +[2.216859, "o", "\u001b[33m\r0% [Waiting for headers]\u001b[0m"] +[2.230483, "o", "\r \rGet:13 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]\r\n\u001b[33m\r0% [13 InRelease 2468 B/127 kB 2%]\u001b[0m"] +[2.247282, "o", "\u001b[33m\r0% [13 InRelease 96.9 kB/127 kB 76%]\u001b[0m"] +[2.253463, "o", "\u001b[33m\r \r0% [Working]\u001b[0m"] +[2.279415, "o", "\u001b[33m\r0% [Working]\u001b[0m"] +[2.310483, "o", "\u001b[33m\r99% [Working]\u001b[0m\r \r"] +[2.389011, "o", "\rReading package lists... 0%\r"] +[2.39139, "o", "\rReading package lists... 0%\r"] +[2.399802, "o", "\rReading package lists... 0%\r"] +[2.416624, "o", "\rReading package lists... 3%\r\rReading package lists... 3%\r"] +[2.423213, "o", "\rReading package lists... 4%\r\rReading package lists... 4%\r"] +[2.425457, "o", "\rReading package lists... 4%\r"] +[2.425962, "o", "\rReading package lists... 4%\r"] +[2.427433, "o", "\rReading package lists... 5%\r"] +[2.429428, "o", "\rReading package lists... 5%\r"] +[2.621828, "o", "\rReading package lists... 34%\r\rReading package lists... 34%\r"] +[2.635465, "o", "\rReading package lists... 38%\r"] +[2.670056, "o", "\rReading package lists... 48%\r"] +[2.670374, "o", "\rReading package lists... 48%\r"] +[2.675123, "o", "\rReading package lists... 48%\r\rReading package lists... 48%\r"] +[2.67631, "o", "\rReading package lists... 49%\r\rReading package lists... 49%\r"] +[2.715454, "o", "\rReading package lists... 54%\r\rReading package lists... 54%\r"] +[2.733138, "o", "\rReading package lists... 58%\r\rReading package lists... 58%\r"] +[2.773588, "o", "\rReading package lists... 65%\r\rReading package lists... 65%\r"] +[2.786624, "o", "\rReading package lists... 69%\r"] +[2.787057, "o", "\rReading package lists... 69%\r"] +[2.805328, "o", "\rReading package lists... 73%\r\rReading package lists... 73%\r"] +[2.810032, "o", "\rReading package lists... 74%\r"] +[2.810681, "o", "\rReading package lists... 74%\r"] +[2.811223, "o", "\rReading package lists... 74%\r"] +[2.811518, "o", "\rReading package lists... 74%\r"] +[2.811896, "o", "\rReading package lists... 74%\r"] +[2.812536, "o", "\rReading package lists... 74%\r"] +[2.81356, "o", "\rReading package lists... 74%\r"] +[2.813909, "o", "\rReading package lists... 74%\r"] +[2.814248, "o", "\rReading package lists... 74%\r"] +[2.814295, "o", "\rReading package lists... 74%\r"] +[2.814985, "o", "\rReading package lists... 74%\r\rReading package lists... 74%\r"] +[2.815549, "o", "\rReading package lists... 74%\r"] +[2.816595, "o", "\rReading package lists... 74%\r"] +[2.832672, "o", "\rReading package lists... 79%\r\rReading package lists... 79%\r"] +[2.842761, "o", "\rReading package lists... 83%\r\rReading package lists... 83%\r"] +[2.864762, "o", "\rReading package lists... 90%\r\rReading package lists... 90%\r"] +[2.869292, "o", "\rReading package lists... 91%\r"] +[2.877498, "o", "\rReading package lists... 94%\r"] +[2.87781, "o", "\rReading package lists... 94%\r"] +[2.886743, "o", "\rReading package lists... 97%\r\rReading package lists... 97%\r"] +[2.890338, "o", "\rReading package lists... 97%\r\rReading package lists... 97%\r"] +[2.890974, "o", "\rReading package lists... 98%\r\rReading package lists... 98%\r"] +[2.891376, "o", "\rReading package lists... 98%\r"] +[2.891442, "o", "\rReading package lists... 98%\r"] +[2.893236, "o", "\rReading package lists... 98%\r"] +[2.893495, "o", "\rReading package lists... 98%\r"] +[2.89677, "o", "\rReading package lists... 98%\r\rReading package lists... 98%\r"] +[2.897181, "o", "\rReading package lists... 98%\r\rReading package lists... 98%\r"] +[2.897641, "o", "\rReading package lists... 98%\r"] +[2.897858, "o", "\rReading package lists... 98%\r"] +[2.903169, "o", "\rReading package lists... 99%\r\rReading package lists... 99%\r"] +[2.904286, "o", "\rReading package lists... 99%\r"] +[2.904688, "o", "\rReading package lists... 99%\r"] +[2.907853, "o", "\rReading package lists... 99%\r"] +[2.908125, "o", "\rReading package lists... 99%\r\rReading package lists... 99%\r\rReading package lists... 99%\r"] +[2.908347, "o", "\rReading package lists... 99%\r"] +[2.908399, "o", "\rReading package lists... 99%\r"] +[2.908771, "o", "\rReading package lists... 99%\r"] +[2.908956, "o", "\rReading package lists... 99%\r"] +[2.909267, "o", "\rReading package lists... 99%\r\rReading package lists... 99%\r"] +[2.909424, "o", "\rReading package lists... 99%\r"] +[2.909731, "o", "\rReading package lists... 99%\r"] +[2.9275, "o", "\rReading package lists... 99%\r"] +[2.927624, "o", "\rReading package lists... 99%\r"] +[2.949763, "o", "\rReading package lists... Done\r\r\n"] +[2.95557, "o", "\u001b[1;31mE: \u001b[0mFailed to fetch https://repo.mongodb.org/apt/ubuntu/dists/jammy/mongodb-org/6.0/InRelease 403 Forbidden [IP: 18.66.161.107 443]\u001b[0m\r\n\u001b[1;31mE: \u001b[0mThe repository 'https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 InRelease' is no longer signed.\u001b[0m\r\n\u001b[33mN"] +[2.955848, "o", ": \u001b[0mUpdating from such a repository can't be done securely, and is therefore disabled by default.\u001b[0m\r\n\u001b[33mN: \u001b[0mSee apt-secure(8) manpage for repository creation and user configuration details.\u001b[0m\r\n\u001b[1;31mE: \u001b[0mFailed to fetch https://repo.mongodb.org/apt/ubuntu/dists/jammy/mongodb-org/8.0/InRelease 403 Forbidden [IP: 18.66.161.107 443]\u001b[0m\r\n\u001b[1;31mE: \u001b[0mThe repository 'https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 InRelease' is no longer signed.\u001b[0m\r\n\u001b[33mN: \u001b[0mUpdating from such a repository can't be done securely, and is therefore disabled by default.\u001b[0m\r\n\u001b[33mN: \u001b[0mSee apt-secure(8) manpage for repository creation and user configuration details.\u001b[0m\r\n\u001b[1;33mW: \u001b[0mhttps://packages.microsoft.com/ubuntu/22.04/prod/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.\u001b[0m\r\n\u001b[1;31mE: \u001b[0mThe repository 'https://ppa.launchpadcontent.net/phalcon/stable/ubuntu jammy Release' does not have a Release file.\u001b[0m\r\n\u001b[33mN: \u001b[0mUpdating from such a repository can't be done securely, and is therefore disabled by default.\u001b[0m\r\n\u001b[33mN: \u001b[0mSee apt-secure(8) manpage for repository creation and user configuration details.\u001b[0m\r\n"] +[2.956472, "o", "Downloading redis-rdb-cli...\r\n"] +[3.291001, "o", "Extracting redis-rdb-cli...\r\n"] +[3.327607, "o", "Enter Redis URI: "] +[3.994024, "o", "redis://:NPV7xtPXWxCk5DqNLz2Xq0l8@cho-oyu.liara.cl"] +[3.995092, "o", "oud:30829/0"] +[4.329226, "o", "\r\nUsing file: ./2024-11-17T04-26-01-1731804961472.dump\r\n"] +[4.663554, "o", "\r\\[ 5 B| 3 B/s]"] +[4.680757, "o", "\r\n"] diff --git a/src/pages/dbaas/redis/how-tos/restore-backup.mdx b/src/pages/dbaas/redis/how-tos/restore-backup.mdx index f986c0ba..7742025d 100644 --- a/src/pages/dbaas/redis/how-tos/restore-backup.mdx +++ b/src/pages/dbaas/redis/how-tos/restore-backup.mdx @@ -23,18 +23,207 @@ import Head from "next/head"; # بازیابی فایل پشتیبان در دیتابیس
+ +

+ در حال حاضر، به صورت رسمی، از نسخه redis 7 به بعد، ابزاری برای بازیابی + فایل پشتیبان، وجود ندارد. اما ابزارهای زیادی توسط جامعه فعال redis توسعه داده شده است + که می‌توان از آن‌ها استفاده کرد. +

+
-

- برای بازیابی فایل پشتیبان با استفاده از - rdbtools و redis-cli، می‌توانید مشابه دستور زیر، عمل کنید: -

-
-
- - {`rdb -c protocol /path/to/backup-file.dump | redis-cli -p REDIS_PORT -h REDIS_HOST -a REDIS_PASSWORD --pipe`} - -
+ += 7"]} + content={[ + <> +

+ برای بازیابی فایل پشتیبان با استفاده از + rdbtools و redis-cli، می‌توانید مشابه دستور زیر، عمل کنید: +

+
+
+ + {`rdb -c protocol /path/to/backup-file.dump | redis-cli -p REDIS_PORT -h REDIS_HOST -a REDIS_PASSWORD --pipe`} + +
+ , + <> + برای بازیابی فایل پشتیبان در redis 7 به بعد، پیشنهاد برنامه‌نویسان redis، + استفاده از ابزار غیر رسمی redis-rdb-cli است. + شما می‌توانید برای استفاده از این ابزار و سهولت در استفاده از آن، از اسکریپت‌های + از پیش نوشته شده لیارا، استفاده کنید. + برای این کار تنها کافیست تا مراحل زیر را قدم به قدم، جلو بروید: + + + +

دانلود ریپازیتوری

+

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

+
+
+ + {`git clone https://github.com/liara-cloud/redis-rdb-cli.git`} + +
+
+ اگر که امکان دانلود ریپازیتوری را ندارید؛ کافیست تا در مسیر دلخواه، + یک دایرکتوری با نام دلخواه برای خود ایجاد کنید، درون آن یک فایل به اسم setup.sh + ایجاد کنید و قطعه کد موجود در این آدرس را درون آن، قرار دهید. + + + )}, + { + step: "۲", + content: ( + <> +

دانلود فایل پشتیبان

+

طبق مستندات تهیه فایل پشتیبان از دیتابیس خود فایل پشتیبان تهیه کنید. اگر که فایل پشتیبان را + از قبل دانلود کرده‌اید نیازی به انجام این مرحله نیست.

+ + ) + }, + { + step: "۳", + content: ( + <> +

استخراج و بررسی فایل پشتیبان

+

اگر که فایل پشتیبان‌تان درون یک فایل zip قرار دارد باید آن را استخراج کنید. در ادامه، بایستی فایل پشتیبان را در دایرکتوری‌ای قرار دهید + که فایل setup.sh در آن، قرار دارد. حتماً دقت داشته باشید که پسوند فایل پشتیبان، + dump. یا rdb. باشد. +

+ + ) + }, + { + step: "۴", + content: ( + <> +

اعطای دسترسی به فایل setup.sh

+

برای جلوگیری از خطا خوردن فرایند بازیابی فایل پشتیبان، دستور زیر را در مسیر اصلی جایی که فایل setup.sh قرار دارد اجرا کنید تا دسترسی‌های لازم به برنامه، داده شود:

+
+
+ + {`chmod +x setup.sh`} + +
+
+ + ) + }, + { + step: "۵", + content: ( + <> +

بازیابی دیتابیس با فایل پشتیبان

+

در نهایت، دستور زیر را اجرا کنید تا اسکریپت، برای شما اجرا شود. در ادامه، برنامه از شما می‌خواهد که + URI مربوط به دیتابیس Redis را وارد کنید که می‌توانید طبق مستندات راه‌های اتصال، از URI شبکه عمومی، استفاده کنید: +

+
+
+ + {`sh setup.sh`} + +
+
+ + + ) + }, + ]} /> + , + <> + +

دانلود ریپازیتوری

+

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

+
+
+ + {`git clone https://github.com/liara-cloud/redis-rdb-cli.git`} + +
+
+ اگر که امکان دانلود ریپازیتوری را ندارید؛ کافیست تا در مسیر دلخواه، + یک دایرکتوری با نام دلخواه برای خود ایجاد کنید، درون آن یک فایل به اسم setup.ps1 + ایجاد کنید و قطعه کد موجود در این آدرس را درون آن، قرار دهید. + + + )}, + { + step: "۲", + content: ( + <> +

دانلود فایل پشتیبان

+

طبق مستندات تهیه فایل پشتیبان از دیتابیس خود فایل پشتیبان تهیه کنید. اگر که فایل پشتیبان را + از قبل دانلود کرده‌اید نیازی به انجام این مرحله نیست.

+ + ) + }, + { + step: "۳", + content: ( + <> +

استخراج و بررسی فایل پشتیبان

+

اگر که فایل پشتیبان‌تان درون یک فایل zip قرار دارد باید آن را استخراج کنید. در ادامه، بایستی فایل پشتیبان را در دایرکتوری‌ای قرار دهید + که فایل setup.ps1 در آن، قرار دارد. حتماً دقت داشته باشید که پسوند فایل پشتیبان، + dump. یا rdb. باشد. +

+ + ) + }, + { + step: "۴", + content: ( + <> +

اعطای دسترسی به فایل setup.ps1

+

برای جلوگیری از خطا خوردن فرایند بازیابی فایل پشتیبان، دستور زیر را در مسیر اصلی جایی که فایل setup.ps1 قرار دارد، در PowerShell، اجرا کنید تا دسترسی‌های لازم به برنامه، داده شود:

+
+
+ + {`Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass`} + +
+
+ + ) + }, + { + step: "۵", + content: ( + <> +

بازیابی دیتابیس با فایل پشتیبان

+

در نهایت، دستور زیر را اجرا کنید تا اسکریپت، برای شما اجرا شود. در ادامه، برنامه از شما می‌خواهد که + URI مربوط به دیتابیس Redis را وارد کنید که می‌توانید طبق مستندات راه‌های اتصال، از URI شبکه عمومی، استفاده کنید: +

+
+
+ + {`.\\setup.ps1`} + +
+
+ + ) + }, + ]} /> + , + <> + + ]} + /> + + ]} +/> \ No newline at end of file