ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MariaDB Replication : Master-Slave
    MariaDB Mysql 2023. 4. 11. 17:23

    마스터서버에서 복제 전용 계정을 새로 추가 or 기존 계정에 복제 관련 권한을 추가


    GRANT REPLICATION SLAVE ON *.* TO ‘userid’@’%’ IDENTIFIED BY ‘비밀번호’;

    FLUSH PRIVILEGES;

    마스터, 슬레이브에서 replication 할 db 의 데이터를 맞춤


    Master server 설정

    # vi /etc/my.cnf.d/server.cnf

    [mariadb]
    log_bin=mysql-bin
    server-id=1

    # systemctl restart mariadb

     

    MariaDB [(none)]> show master status;

    MariaDB [(none)]> show master status;

    file : mysql-bin.000001

    positon : 328

    꼭 기억 !!!

     

     #server id 1로 되어있는지 확인

    SHOW GLOBAL VARIABLES LIKE 'server_id';

     show variables like '%log_bin%';

     

     Slave 서버 설정

    SHOW GLOBAL VARIABLES LIKE 'server_id';

    처음엔 1로 되어있음

     # vi /etc/my.cnf.d/server.cnf

    [mysqld]
    log_bin=mysql-bin
    server-id=2
    relay_log=mysql-relay-bin
    log_slave_updates=1
    read_only=1

    # replicate-do-db='repl'  ==> 하나의 db 만 replication 할 때. 없으면 모든 db 를 replication 함.
    # 몇몇개의 db 만 replication 할 경우 replicate-do-db 항목을 여러개 추가

    # systemctl restart mariadb

    확인

    SHOW GLOBAL VARIABLES LIKE 'server_id';

    SET GLOBAL server_id=2;

     

     

    Slave 접속해서 동기화 받을 DB가 존재하는 Master 서버의 정보를 입력

     

    ​MariaDB [(none)]> STOP SLAVE;

     

    MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='192.168.2.175', MASTER_PORT=23306, MASTER_USER='kpis', MASTER_PASSWORD='kpis2302131!', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=328;

     

    MariaDB [(none)]> START SLAVE;

     

     

    Slave Master에게서 제대로 동기화 받아오는지 확인

    MariaDB [(none)]> SHOW SLAVE STATUS \G;

    *************************** 1. row ***************************
                    Slave_IO_State: Waiting for master to send event
                       Master_Host: 192.168.2.175
                       Master_User: kpis
                       Master_Port: 23306
                     Connect_Retry: 60
                   Master_Log_File: mysql-bin.000001
               Read_Master_Log_Pos: 328
                    Relay_Log_File: mysql-relay-bin.000002
                     Relay_Log_Pos: 555
             Relay_Master_Log_File: mysql-bin.000001
                  Slave_IO_Running: Yes
                 Slave_SQL_Running: Yes
                   Replicate_Do_DB:
               Replicate_Ignore_DB:
                Replicate_Do_Table:
            Replicate_Ignore_Table:
           Replicate_Wild_Do_Table:
       Replicate_Wild_Ignore_Table:
                        Last_Errno: 0
                        Last_Error:
                      Skip_Counter: 0
               Exec_Master_Log_Pos: 328
                   Relay_Log_Space: 864
                   Until_Condition: None
                    Until_Log_File:
                     Until_Log_Pos: 0
                Master_SSL_Allowed: No
                Master_SSL_CA_File:
                Master_SSL_CA_Path:
                   Master_SSL_Cert:
                 Master_SSL_Cipher:
                    Master_SSL_Key:
             Seconds_Behind_Master: 0
     Master_SSL_Verify_Server_Cert: No
                     Last_IO_Errno: 0
                     Last_IO_Error:
                    Last_SQL_Errno: 0
                    Last_SQL_Error:
       Replicate_Ignore_Server_Ids:
                  Master_Server_Id: 1
                    Master_SSL_Crl:
                Master_SSL_Crlpath:
                        Using_Gtid: No
                       Gtid_IO_Pos:
           Replicate_Do_Domain_Ids:
       Replicate_Ignore_Domain_Ids:
                     Parallel_Mode: conservative
                         SQL_Delay: 0
               SQL_Remaining_Delay: NULL
           Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
                  Slave_DDL_Groups: 0
    Slave_Non_Transactional_Groups: 0
        Slave_Transactional_Groups: 0
    1 row in set (0.000 sec)
     
    ERROR: No query specified

     

    정상

    Slave_IO_State:Waiting for master to send event

    Slave_I/O_Running: Yes

    Slave_SQL_Running: Yes

     

     

    MariaDB [(none)]> SHOW SLAVE STATUS \G;

     

    에러 체크

    Last_IO_Errno

    Last_IO_Error

    Last_SQL_Errno

    Last_SQL_Error

     

     

    최종 확인 : insert/update/delete

     

     

     

     

     

    'MariaDB Mysql' 카테고리의 다른 글

    MariaDB 설치, 설정  (0) 2023.04.06
    Database : Mysql  (0) 2022.11.14
Designed by Tistory.