<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های sajjad shahcheraghean</title>
        <link>https://virgool.io/feed/@shgninc</link>
        <description>Devops Engineer</description>
        <language>fa</language>
        <pubDate>2026-06-16 12:09:12</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/10721/avatar/PiUedT.jpeg?height=120&amp;width=120</url>
            <title>sajjad shahcheraghean</title>
            <link>https://virgool.io/@shgninc</link>
        </image>

                    <item>
                <title>آپدیت گیت لب از 13.11.3 به آخرین نسخه</title>
                <link>https://virgool.io/@shgninc/%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%DA%AF%DB%8C%D8%AA-%D9%84%D8%A8-%D8%A7%D8%B2-13113-%D8%A8%D9%87-%D8%A2%D8%AE%D8%B1%DB%8C%D9%86-%D9%86%D8%B3%D8%AE%D9%87-vkmstkyk6csj</link>
                <description>Update Gitlabمقدمهما برای نگهداری کد  برنامه های از برنامه گیت به صورت &#x60;docker&#x60; ای استفاده می کنیم. حدود ۵۰۰ پروژه، ۱۰۰ کاربر روی آن هست.نسخه فعلی که استفاده می شود، gitlab-ce 13.11.3 می باشد. آخرین نسخه ارائه شده گیت gitlab-ce 15.0.2 هست، که ما قصد داریم به این نسخه مهاجرت کنیم.برای انجام این مهاجرت چندین مرحله است که باید نسخه به نسخه گیت لب را ارتقاع داد تا در نهایت بتوان به آخرین نسخه رسید.قبل از شروع یک نکته خیلی مهم وجود دارد که نمی تونیم از آن چشم پوشی کنیم، مدل ذخیره سازی کد ها و ضمیمه ها در گیت لب به دو صورت انجام می گیرد: ۱- hashed، ۲- lagecy که مدل  lagecy از نسخه ۱۴ به بعد گیت لب پشتیبانی نمی شود، پس باید حتما قبل شروع تمامی ذخیره سازی ها را به مدل hashed تبدیل کرد.پیش فرض هاهمانطورکه پیش تر بیان شد، گیت لب را با داکر راه اندزی کرده ایم، پس docker-compose.yml آن به این صورت می باشد:version: &amp;quot3&amp;quot
services:  gitlab:    container_name: gitlab   image: gitlab/gitlab-ce:13.11.3-ce.0    hostname: &#039;code1.domain.com&#039;    ports:      - 80:80      - 22:22    environment:      GITLAB_ROOT_PASSWORD: &amp;quotpassword&amp;quot      GITLAB_OMNIBUS_CONFIG: |        external_url &amp;quothttp://code1.domain.com&amp;quot     volumes:      - ./config:/etc/gitlab      - ./logs:/var/log/gitlab      - ./data:/var/opt/gitlabتبدیل ذخیره سازیگقتیم قبل شروع ابتدا باید مدل ذخیره سازی را تبدیل کنیم تا بتوانیم نسخه را ارتقاع دهیم. برای این مهم باید دستورات زیر را اجرا کنیم.قبل از شروع به تبدیل حتما از اطلاعات تون بکاپ بگیرید.پروژه هایی که روی مدل ذخیره سازی قدیم هستند را نشان می دهد:docker exec -it gitlab gitlab-rake gitlab:storage:list_legacy_projectsضمایمی که روی مدل ذخیره سازی قدیم هستند را نشان می دهد:docker exec -it gitlab gitlab-rake gitlab:storage:list_legacy_attachmentsدر نهایت با اجرای دستور زیر می توان تبدیل را انجام داد:docker exec -it gitlab gitlab-rake gitlab:storage:migrate_to_hashed
نکته مهمی که باید به آن دقت شود این است که با توج به تعداد پروژه ها و ضمایمی که روی مدل ذخیره سازی قدیم هستند، این دستور طول می کشد. برای مشاهده اجرا دستور از داخل پنل گیت لب از مسیر Admin Area&gt;Monitoring و قسمت Backgroud Jobs از بخش صف کارها hashed_storage:hashed_storage_project_migrate را مشاهده کنید.در انتها بعد از اتمام تبدیل می توانید ارتقاع را شروع کنید.مراحل ارتقاعارتقاع گیت لب از نسخه های قدیم به جدیدتر مرحله به مرحله باید انجام شود و در هر مرحله باید حتما یک بکاپ از اطلاعات گرفته شده، و از صحت ارتقاع به نسخه جدید اطمینان حاصل نمود.در مستندات خود گینت لب مراحل ارتقاع را نسخه به نسخه به ترتیب زیر بیان کرده است:8.11.Z -&gt; 8.12.0 -&gt; 8.17.7 -&gt; 9.5.10 -&gt; 10.8.7 -&gt; 11.11.8 -&gt; 12.0.12 -&gt; 12.1.17 -&gt; 12.10.14 -&gt; 13.0.14 -&gt; 13.1.11 -&gt; 13.8.8 -&gt; 13.12.15 -&gt; 14.0.12 -&gt; 14.3.6 -&gt; 14.9.5 -&gt; 14.10.Z -&gt; 15.0.Z -&gt; latest 15.Y.Z مجددا تأکید می کنم که قبل از انجام هر مرحله آپدیت، از اطلاعات باید بکاپ گرفته شود.بکاپ گیریبرای بکاپ گیری از گیت دستور زیر را اجرا کنید:docker exec gitlab gitlab-backup create GZIP_RSYNCABLE=yes STRATEGY=copyارتقاع از ۱۳.۱۱.۳ به ۱۳.۱۲.۱۵برای ارتقاع، داخل فایل docker-compose.yml بخش ایمیج را به gitlab/gitlab-ce:13.12.15-ce.0 تغییر داده و دستور زیر را اجرا می کنیم:docker-compose -f /path/to/docker-compose/file up -dبعد از اجرای دستور فوق حدود ۵ دقیقه باید صبر کنیم، بعد دستور زیر را برای اطمینان از صحت ارتقاع اجرا می کنیم:docker-compose -f /path/to/docker-compose/file psاگر قسمت status برابر به healthy بود که ارتقاع به درستی انجام شوده و برای مشاهده شماره نسخه جدید از داخل پنل گیت لب قسمت admin area اقدام کنید.در نهایت برای اطمینان بیشتر، یکبار دستور زیر را اجرا میکنیم:docker-compose -f /path/to/docker-compose/file downdocker-compose -f /path/to/docker-compose/file up -dارتقاع از ۱۳.۱۲.۱۵ به ۱۴.۰.۱۲برای ارتقاع، داخل فایل docker-compose.yml بخش ایمیج را به gitlab/gitlab-ce:14.0.12-ce.0 تغییر داده و دستور زیر را اجرا می کنیم:docker-compose -f /path/to/docker-compose/file up -dبعد از اجرای دستور فوق حدود ۵ دقیقه باید صبر کنیم، بعد دستور زیر را برای اطمینان از صحت ارتقاع اجرا می کنیم:docker-compose -f /path/to/docker-compose/file psاگر قسمت status برابر به healthy بود که ارتقاع به درستی انجام شوده و برای مشاهده شماره نسخه جدید از داخل پنل گیت لب قسمت admin area اقدام کنید.docker-compose -f /path/to/docker-compose/file downdocker-compose -f /path/to/docker-compose/file up -dارتقاع از ۱۴.۰.۱۲ به ۱۴.۳.۶برای ارتقاع، داخل فایل docker-compose.yml بخش ایمیج را به gitlab/gitlab-ce:14.3.6-ce.0 تغییر داده و دستور زیر را اجرا می کنیم:docker-compose -f /path/to/docker-compose/file up -dبعد از اجرای دستور فوق حدود ۵ دقیقه باید صبر کنیم، بعد دستور زیر را برای اطمینان از صحت ارتقاع اجرا می کنیم:docker-compose -f /path/to/docker-compose/file psاگر قسمت status برابر به healthy بود که ارتقاع به درستی انجام شوده و برای مشاهده شماره نسخه جدید از داخل پنل گیت لب قسمت admin area اقدام کنید.docker-compose -f /path/to/docker-compose/file downdocker-compose -f /path/to/docker-compose/file up -dارتقاع از ۱۴.۳.۶ به ۱۴.۹.۵برای ارتقاع، داخل فایل docker-compose.yml بخش ایمیج را به gitlab/gitlab-ce:14.9.5-ce.0 تغییر داده و دستور زیر را اجرا می کنیم:docker-compose -f /path/to/docker-compose/file up -dبعد از اجرای دستور فوق حدود ۵ دقیقه باید صبر کنیم، بعد دستور زیر را برای اطمینان از صحت ارتقاع اجرا می کنیم:docker-compose -f /path/to/docker-compose/file psاگر قسمت status برابر به healthy بود که ارتقاع به درستی انجام شوده و برای مشاهده شماره نسخه جدید از داخل پنل گیت لب قسمت admin area اقدام کنید.docker-compose -f /path/to/docker-compose/file downdocker-compose -f /path/to/docker-compose/file up -dارتقاع از ۱۴.۹.۵ به ۱۴.۱۰.۴برای ارتقاع، داخل فایل docker-compose.yml بخش ایمیج را به gitlab/gitlab-ce:14.10.4-ce.0 تغییر داده و دستور زیر را اجرا می کنیم:docker-compose -f /path/to/docker-compose/file up -dبعد از اجرای دستور فوق حدود ۵ دقیقه باید صبر کنیم، بعد دستور زیر را برای اطمینان از صحت ارتقاع اجرا می کنیم:docker-compose -f /path/to/docker-compose/file psاگر قسمت status برابر به healthy بود که ارتقاع به درستی انجام شوده و برای مشاهده شماره نسخه جدید از داخل پنل گیت لب قسمت admin area اقدام کنید.docker-compose -f /path/to/docker-compose/file downdocker-compose -f /path/to/docker-compose/file up -dارتقاع از ۱۴.۱۰.۴ به ۱۵.۰.۲برای ارتقاع، داخل فایل docker-compose.yml بخش ایمیج را به gitlab/gitlab-ce:15.0.2-ce.0 تغییر داده و دستور زیر را اجرا می کنیم:docker-compose -f /path/to/docker-compose/file up -dبعد از اجرای دستور فوق حدود ۵ دقیقه باید صبر کنیم، بعد دستور زیر را برای اطمینان از صحت ارتقاع اجرا می کنیم:docker-compose -f /path/to/docker-compose/file psاگر قسمت status برابر به healthy بود که ارتقاع به درستی انجام شوده و برای مشاهده شماره نسخه جدید از داخل پنل گیت لب قسمت admin area اقدام کنید.docker-compose -f /path/to/docker-compose/file downdocker-compose -f /path/to/docker-compose/file up -dدر تاریخی که این مطلب را ارائه کردیم آخرین نسخه ارائه شده روی hub.docer.com برای گیت لب نسخه ۱۵.۰.۲ هستمنابعRestore for Docker image and GitLab Helm chart installationsMigrate to hashed storageRepository storage typesUpgrading to a new major version</description>
                <category>sajjad shahcheraghean</category>
                <author>sajjad shahcheraghean</author>
                <pubDate>Tue, 14 Jun 2022 12:17:43 +0430</pubDate>
            </item>
                    <item>
                <title>خودکار سازی تولید و دپلوی برنامه ها با Drone CI</title>
                <link>https://virgool.io/@shgninc/%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D9%88-%D8%AF%D9%BE%D9%84%D9%88%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7-%D8%A8%D8%A7-drone-ci-v7h1qbwcyhwk</link>
                <description>Drone CI/CDمقدمهبعید می دونم که کسی به عنوان یک sysadmin یا devops مشغول به کار باشد و با واژه CI/CD و مفهوم آن آشنایی نداشته باشد. در واقع مفاهیمی که در دل devops زاده شده اند برای توسعه و راه اندازی هرچه بهتر و سریعتر برنامه ها در بوده اند.برای درک بهتر سرویس drone لازم است تا با مفاهیمی آشنا باشیم. پس با این مفاهیم شروع می کنیم.واژگانبرنامه gitبرنامه ای کاربردی و پر استفاده برای کنترل و مدیریت کدهای برنامه بین اعضاء یک تیم برنامه نویسی است.واژه CI/CDبه فرایندی که با هماهنگی بین توسعه دهنده برنامه و مدیر سیستمی که قرار است برنامه روی ان اجرا شود، پیاده سازی می گردد. این فرایند کاملا سیستمی و بدون دخالت انسان انجام می شود.CI: continuous integrationCD: continuous delivery/deploymentمعمولا این فرایند به گونه ای دیده می شود که گام های تصویر زیر را انجام دهد:ابزار CI/CDابزارهای &#x27;CI/CD&#x27; برای کمک به تیم توسعه و تیم زیرساخت برای طی فرایند  توسعه برنامه، انتقا و اجرای نهایی آن در بستر مورد نظر می باشد. از جمله این ابزارها می توان موارد زیر را نام برد:jenkinsdronegitlab-cicircle-citravis ciچرا Drone CIدر بین ابزارهایی که در بالا ذکر شدند، در این نوشته قصد داریم تا درباره Drone CI صحبت کنیم. یکی از ویژگی های این ابزار، انجام مراحل Ci در قالب ایمیج  های داکر می باشد. به طور مثال، ممکن برنامه شما از روند گیت مشخصی پیروی کنه که در آن زمانی پروژه باید به اجرای نهایی یا  تجاری رود که توسعه دهنده روی برنچ مستر پوش و یک تگ یا نسخه بزند، در  مرحله بعد باید کدهای برنامه build شوند، سپس تست های مد نظر و لازم روی آن کدها اجرا شوند، در صورتی که مشکلی نبود آن نسخه نهایی روی سرور های نهایی یا تجاری ارسال، جایگزین نسخه قبلی و اجرا شوند.پس همانطور که بیان شد، تمامی مراحل بالا در قالب یک یا چند کانتینر در داکر (خود drone آن کانتینر ها را ایجاد، مدیریت می کند) اجرا خواهند شدنصب سرورنصب drone کار بسیار راحت و ساده ای می باشد. برای انجام آن کافی هست تا کانتینر آن را اجرا کنید. برای اجرا  کافی هست فقط روی سروری که روی آن سرویس docker-engin وجود داشته باشد، یک فایل docker-compose.yml ایجاد  و آن را اجرا نماید:version: &quot;3.5&quot;services:  drone-server:    image: drone:1    container_name: drone-server    ports:      - 8081:80    environment:      DRONE_SERVER_HOST: drone.ci      DRONE_SERVER_PROTO: http      DRONE_RPC_SECRET: 7cd19b43db8d8b9ffg55048c57ecf9fc      DRONE_GITLAB_CLIENT_SECRET: ${GITLAB_CLIENT_SECRET}      DRONE_GITLAB_CLIENT_ID: ${GITLAB_CLIENT_ID}      DRONE_GITLAB_SERVER: ${GITLAB_SERVER}      DRONE_DATABASE_DRIVER: &quot;mysql&quot;      DRONE_DATABASE_DATASOURCE: &quot;usr_drone:123456321@tcp(127.0.0.1:3306)/drone?parseTime=true&quot;    volumes:      - ./db/dronesrv:/data    depends_on:      - mysql_db  mysql_db:    image: mariadb:10.3    restart: always    ports:      - 3306:3306    environment:      MYSQL_ROOT_PASSWORD: p@ssw0rd      MYSQL_DATABASE: drone      MYSQL_USER: usr_drone      MYSQL_PASSWORD: 123456321    volumes:      - ./db/dronesrv:/var/lib/mysqlنکته این که در این سناریو از دیتابیس mariadb برای نگهداری اطلاعات drone استفاده می شود. در نهایت با دستور زیر اجرا می شود:docker-compose up -dدسترسی به سرورزمانی که سرور را راه اندازی می کنید، یک پنل  در آدرس تنظیم شده، برای استفاده مهیا می گردد که از طریق آدرس  تنظیمی در پارامترهای سرور قابل دسترس بوده و ریپوهایی که کاربر شما در گیت لب به آن ها دسترسی دارد، نمایش  داده و یک سری امکانات مدیریت برای drone ci را در اختیار شما قرار می دهد.نمونه از پنل مدیریت drone ciنصب agentاین سرویس صرفا از سرور به طور مستمر در حال سوال پرسیدن هست تا کارهای قابل انجام، را روی خودش دریافت و شروع به انجام آنها کند.  agent یا runner دارای انواع مختلفی به ترتیب زیر، در drone هستند:DockerKubernetesExecSSHDigital OceanMacstadiumدر این سناریو ما از Docker runner استفاده می کنیم. برای این مهم در یک فایل docker-compose.ymlموارد  زیر را ذخیره و اجرا می کنیم.version: &amp;quot3.5&amp;quot
services:
     drone-agent:
     image: drone-runner-docker:1
     container_name: dron-agent
     depends_on:
       - drone-server
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock
       - ./dockerconfig.json:/root/.docker/config.json:ro

     ports:
       - 3000:3000
     environment:
       DRONE_RPC_PROTO: drone.ci
       DRONE_RPC_HOST: http
       DRONE_RPC_SECRET: 7cd19b43db8d8b9ffg55048c57ecf9fc
       DRONE_RUNNER_CAPACITY: 5
       DRONE_RUNNER_NAME: runn-droneنتیجه گیریتا اینجا با هم یک سری مفاهیم اولیه CI/CD و DevOps آشنا شدیم و بعد از آن سرور drone را در بستر  Docker برای Gitlab راه اندازی کردیم و سپس اجرا کننده آن را نیز با Docker و روی Docker راه اندازی شد.منبع: https://shgn.ir/2021-04-13/drone-ci.html </description>
                <category>sajjad shahcheraghean</category>
                <author>sajjad shahcheraghean</author>
                <pubDate>Wed, 16 Jun 2021 15:48:44 +0430</pubDate>
            </item>
                    <item>
                <title>مهاجرت از دیتابیس Mariadb به Galera Cluster</title>
                <link>https://virgool.io/@shgninc/%D9%85%D9%87%D8%A7%D8%AC%D8%B1%D8%AA-%D8%A7%D8%B2-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-mariadb-%D8%A8%D9%87-galera-cluster-p46iranlflqr</link>
                <description>شروع قصهبا سلام به همه، ما معمولا در هر دیتاسنتری که راه اندازی می کنیم، به  خاطر اهمیت و حجم بسیار زیاد اطلاعات، دیتابیس ها را در کلاسترینگ قرار می  دهیم. اما به دلیل اجرای سیاست های عجولانه متأسفانه در یک دیتاسنتر این  مهم اتفاق نیفتاد و خاصا با یک instace دیتابیس mariadb  راه اندازی شده بود که با توجه حساسیت بالا اطلاعات ریسک زیاد داشت. پس  بالاخره تصمیم بر این شد که این یک نود دیتابیس به کلاسترینگ منتقل شود. در  اینجا چند مشئله بود که می توانست مشکل ساز باشه و موجب دغده گروه شده  بود:-1 ماشین های وجازی دیتابیس ها با یک دیسک معمولی کار می کردند و در کنار آن، یک هارد SSD  نیز برای دیتابیس ها به آنها وصل بود که دیتابیس جاری که زیر بار بود نیز  از آن استفاده می کرد. نگرانی آنجایی بود که آن دیسک باید به ماشین کلاستر  شده متصل می شد. چه اتفاقی برای دیتایی که تا کنون جمع آوری شده بود می  افتاد؟   2- آیا این انتقال و مهاجرات باعث از بین رفتن اطلاعات نمی شد؟   3- آیا راهی مطمئن برای انجام این مهم بدون هیچ گونه اشکال وجود داشت؟اینها دغده ها و سوالاتی بود که گروه با آنها سر و کله می زد.نوری در تاریکیبالاخره پس از کلی سرو کله زدن، جسجتو کردن متوجه شدیم که راهی بسیار  بسیار ساده برای رفع تمامی این نگرانی های وجود دارد. راهی که موجب شد تا  به راحتی بتوانیم این مهاجرت را بدون کوچکترین مشکلی انجام دهیم. در آغاز  انجامش به نظر خیلی مشکل و غیر ممکن بود اما وقتی که شیرجه زدیم داخل  راهکار، متوجه شدیم که خیلی هم آسان، ساده و قابل انجام هست.در کنار تمام مزیت ها و ویژگی هایی که Galera_cluster دارد، این راهم  باید به آن اضافه کنیم که به شما این امکان را می دهد تا بتوانید یک نمونه  از دیتابیس mariadb را به راحتی به یکی از نودهای کلاسترینگ خودش تبدیل می کندقدم به قدم تا ریسیدن به نتیجهبرای رفع این مشکل و استفاده از این راهکاری باید گام به گام و با دقت  خیلی زیاد جلو می رفتیم و تا از مراحل قبلی مطمئن نمی شدیم نمی توانستیم به  گام های بعدی برسیم.گام اول: آماده سازیدر گام اول، ما دو ماشین مجازی دیگه نیز به عنوان نودهای دیگر کلاسترینگ گلرا نصب و آماده کردیم. در این مراحل Debian 9  بر روی تمامی ماشین های مجازی نصب گردید. سپس، بعد از انجام تنظیمات شبکه  ای و نصب برنامه اولیه برنامه های مورد نیاز به صورت زیر نصب شدند:sudo apt install software-properties-common
sudo apt-key adv --recv-keys --keyserver http://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8نکته ای که باید در نظر داشت در دبیان ۹ به بالا لازم است تا برنامه dirmngr نیز نصب شود.سپس مخزن نصب برنامه Galera Cluster به سیستم عامل اضافه گردید:sudo add-apt-repository &#039;deb [arch=amd64,i386,ppc64el] http://mirror.nodesdirect.com/mariadb/repo/10.2/debian stretch main&#039;
sudo apt updateگام دوم: نصب و راه اندازیدر این مرحله باید برنامه Galera Cluster را به سادگی هر چه تمام بر روی ماشین های مجازی نصب و تنظیمات لازم را انجام می دادیم:sudo apt install -y rsync mariadb-serverالبته مراحل نصب و راه اندازی Galera Cluster در مطلبی به نام نصب Galer Cluster بر روی debian8 که قبلا نوشته شده به سادگی انجام تنظیمات در آن توضیح داد شده است.گام سوم: انتقال نود اولدر این مرحله لازم بود که اولین و مهمتریم نود دیتابیس که حاوی تمامی  اطلاعات مورد بحث بود را به کلاسترینگ اضافه نماییم. برای انجام این مهم،  مراحلی نیز باید انجام می شد:ابتدا لازم بود تا از متصل نشدن این نود به کلاسترینگ مطمئن شویم:sudo service mysql start --wsrep_on=OFFسپس به منظور اطمینان از این که تمامی ساختار دیتابیس در قالب کلاسترینگ گلرا قرار می گیرد باید برنامه زیر اجرا می شد:sudo mysql_upgrade -u root -pاحتمال این که اجرای این برنامه خطاهایی را تولید کند بود، که البته ضمن  توجه به آنها می توان از آنها رد شد. بعد از اجرای این برنامه باید سرویس  دیتابیس متوقف می شد:sudo service mysql stopگام چهارم: شروع کلاسترینگبعد از موفقیت در طی مراحل قبلی به آخرین مرحله که راه اندازی کلاسترینگ  است می رسیم. در این مرحله و برای اطمینان از راه اندازی ابتدا با نود اول  که حاوی اطاعلات است شروع می کنیم:sudo galera_new_clusterبعد از اجرای این دستور و به منظور اطمینان از اجرای صحیح سرویس دیتابیس دستور زیر را اجرا شد:sudo ps aux | grep mysqlکه انتظار خروجی زیر می رفت:mysql 1057 14.0 15.5 1225420 159668 ? Ssl 01:50 0:00 /usr/sbin/mysqld --wsrep-new-cluster --wsrep_start_position=00000000-0000-0000-0000-000000000000:-1گام پنجم: راه اندازی کل کلاستراکنون پس از اطمیان از صحت اجرای نود اول کلاسترینگ، باید نودهای بعدی  را نیز  یکی یکی به کلاسترینگ اضافه می شد،پس بر روی هر کدام از نود های  دستور زیر اجرا شد:sudo service mysql start| نکته قابل توجه این است که با توجه به حجم دیتابیس در نود اول، معمولا  راه اندازی دیگر نودهای گلرا مدتی طول می کشد باید صبور باشید. زیرا گلرا  در حال همسان سازی دیگر نودها با نود اصلی می باشد.####گام ششم: اطمینان از کلاسترینگ  در این مرحله و برای اطمینان کامل از کلاستر شدن تمامی نودها می توان دستور زیر را اجرا نمود:mysql -u root -p -e &amp;quotSHOW STATUS LIKE &#039;wsrep_cluster_size&#039;;&amp;quot
Enter password:
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+در پایاندر پایان بعد از اطمینان از صحت عملکرد تمامی مراحل برنامه اطلاعات،  متوجه شدیم که بعضی وقت ها مشکلات به ظاهر بزرگ با راهکارهایی ساده و دم  دستی قابل حل هستند.برگرفته از: shgn.ir</description>
                <category>sajjad shahcheraghean</category>
                <author>sajjad shahcheraghean</author>
                <pubDate>Thu, 19 Jul 2018 09:16:01 +0430</pubDate>
            </item>
            </channel>
</rss>