<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مجتبی فاضلی نیا</title>
        <link>https://virgool.io/feed/@Devocker</link>
        <description>Docker , kubernetes</description>
        <language>fa</language>
        <pubDate>2026-06-16 21:52:25</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/1782785/avatar/RXec39.jpg?height=120&amp;width=120</url>
            <title>مجتبی فاضلی نیا</title>
            <link>https://virgool.io/@Devocker</link>
        </image>

                    <item>
                <title>نحوه اجرای master-slave replication در داکر</title>
                <link>https://virgool.io/@Devocker/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-master-slave-replication-%D8%AF%D8%B1-%D8%AF%D8%A7%DA%A9%D8%B1-kfhqwq6qtzld</link>
                <description>SQL replication فرآیندی است که از طریق آن داده‌ها از یک پایگاه داده به پایگاه داده‌های دیگر کپی می‌شود تا سازگاری و تداوم داده‌ها حفظ شود. این فرایند می‌تواند برای افزایش دسترسی به داده‌ها، بهبود عملکرد سیستم و تضمین پشتیبان‌گیری و بازیابی در مواقع خرابی استفاده شود.انواع مختلفی از SQL replication وجود دارد که هر کدام کاربردها و مزایای خاص خود را دارند:Replication (Single-Master Replication)- در این نوع replication، یک پایگاه داده به عنوان منبع اصلی داده (استاد) عمل می‌کند و تغییرات در این پایگاه داده به سایر پایگاه‌های داده (تکرارگرها) منتقل می‌شود.(Replication  (Multi-Master Replication- در این مدل، چندین پایگاه داده به طور همزمان به عنوان استاد عمل می‌کنند و می‌توانند تغییرات را به یکدیگر منتقل کنند. این نوع replication برای توزیع داده‌ها در چندین مکان و افزایش دسترسی بسیار مفید است.(Replication (Synchronous Replication- در این روش، تغییرات به صورت همزمان در هر دو پایگاه داده اصلی و تکرارگر ثبت می‌شوند. این به معنای آن است که تغییرات باید در هر دو پایگاه داده ثبت شود قبل از اینکه تراکنش کامل شود. این روش تضمین می‌کند که داده‌ها در هر دو پایگاه داده همواره یکسان هستند، ولی ممکن است باعث کاهش عملکرد شود.Replication (Asynchronous Replication)- در این روش، تغییرات ابتدا در پایگاه داده اصلی ثبت می‌شوند و سپس در زمان مناسب به پایگاه داده تکرارگر منتقل می‌شوند. این روش می‌تواند باعث افزایش عملکرد شود، ولی ممکن است در برخی موارد منجر به ناهماهنگی داده‌ها شود.Replication (Log-Based Replication)- در این روش، تغییرات از طریق لاگ‌های تراکنش (transaction logs) پایگاه داده اصلی به پایگاه داده تکرارگر منتقل می‌شوند. این روش برای بهبود عملکرد و کاهش بار روی پایگاه داده اصلی مفید است.مزایای SQL Replication- **افزایش دسترسی:** با داشتن نسخه‌های متعدد از داده‌ها، احتمال دسترسی به داده‌ها حتی در صورت خرابی یک سرور افزایش می‌یابد.- **بهبود عملکرد:** بار کاری روی سرورهای پایگاه داده می‌تواند توزیع شود و از یک سرور به چندین سرور منتقل شود.- **پشتیبان‌گیری و بازیابی:** امکان بازیابی سریع‌تر داده‌ها در صورت بروز مشکل.- **موقعیت‌یابی داده‌ها:** داده‌ها می‌توانند در نزدیکی کاربران نهایی قرار گیرند تا زمان تاخیر دسترسی به داده‌ها کاهش یابد. چالش‌ها و معایب- **پیچیدگی مدیریتی:** پیاده‌سازی و مدیریت replication می‌تواند پیچیده باشد.- **هماهنگی داده‌ها:** تضمین هماهنگی داده‌ها در صورت استفاده از روش‌های غیرهمزمان.- **بار اضافی:** ممکن است بار اضافی روی شبکه و سرورها ایجاد شود.به طور کلی، انتخاب روش مناسب replication بستگی به نیازهای خاص سیستم، عملکرد مورد انتظار، و سطح دسترسی و پایداری مورد نیاز دارد.مراحل اجرای replication :1. Setup Docker Composeversion: &amp;quot3&amp;quotservices:mysql-master:image: mysql:latestcontainer_name: mysql-mastercommand: --server-id=1 --log-bin=mysql-bin --binlog-format=rowenvironment:MYSQL_ROOT_PASSWORD: your_super_secure_root_passwordMYSQL_DATABASE: mydatabase # Feel free to change this database nameMYSQL_USER: replication_user # This user will handle replicationMYSQL_PASSWORD: your_super_secure_replication_passwordports:- &amp;quot3306:3306&amp;quotmysql-slave:image: mysql:latestcontainer_name: mysql-slavedepends_on:- mysql-mastercommand: --server-id=2 --log-bin=mysql-bin --binlog-format=rowenvironment:MYSQL_ROOT_PASSWORD: your_super_secure_root_password # Same password for bothMYSQL_DATABASE: mydatabaseMYSQL_USER: replication_userMYSQL_PASSWORD: your_super_secure_replication_passwordports:- &amp;quot3307:3306&amp;quotdocker-compose up -ddocker exec -it mysql-master bashmysql -uroot -pALTER USER &#x27;replication_user&#x27;@&#x27;%&#x27; IDENTIFIED WITH &#x27;mysql_native_password&#x27; BY &#x27;replication_password&#x27;;GRANT REPLICATION SLAVE ON *.* TO &#x27;replication_user&#x27;@&#x27;%&#x27;;FLUSH PRIVILEGES;SHOW MASTER STATUS;4. Configure the Replica ServerCHANGE MASTER TOMASTER_HOST=&#x27;mysql-master&#x27;,MASTER_USER=&#x27;replication_user&#x27;,MASTER_PASSWORD=&#x27;replication_password&#x27;,MASTER_LOG_FILE=&#x27;mysql-bin.xxxxxx&#x27;,MASTER_LOG_POS=xxxx;START SLAVE;show slave status \G;بعد از زدن این دستور باید Seconds_Behind_Master: برابر 0 باشد، این بین معنی است که replication بین master , slave بطور کامل برقرار است</description>
                <category>مجتبی فاضلی نیا</category>
                <author>مجتبی فاضلی نیا</author>
                <pubDate>Tue, 23 Jul 2024 14:41:37 +0330</pubDate>
            </item>
                    <item>
                <title>SSL Certificate docker for registry</title>
                <link>https://virgool.io/@Devocker/ssl-certificate-decoder-for-registry-yiczvife30tw</link>
                <description>ssl Certificateبرای اینکه ریجستری خودمون رو داشته باشیم و بخوایم که pull یا push کنیم لازمه که certificate مناسبی رو ست کنیم . تو پست بعدی نحوه pull و push به repository شخصی رو میزارمopenssl req \  -newkey rsa:4096 -nodes -sha256 -keyout ./key.pem \  -addext &quot;subjectAltName = DNS:hub.shoniz.ir&quot; \  -x509 -days 365 -out ./cert.pem</description>
                <category>مجتبی فاضلی نیا</category>
                <author>مجتبی فاضلی نیا</author>
                <pubDate>Tue, 20 Dec 2022 14:08:59 +0330</pubDate>
            </item>
            </channel>
</rss>