Tag Archives: 레드햇

MySQL Replication

MASTER CONFIGURATION (127.0.0.1)

my.cnf 파일에 설정을 추가합니다.
[code]# inodb configurations
log-bin                         = mysql-bin
server-id                       = 1
innodb_data_home_dir            = /theeye/db
innodb_data_file_path           = ibdata1:1000M;ibdata2:1000M:autoextend
innodb_buffer_pool_size         = 1G
innodb_additional_mem_pool_size = 40M
innodb_log_file_size            = 250M
innodb_log_buffer_size          = 8M
innodb_flush_log_at_trx_commit  = 0
innodb_lock_wait_timeout        = 5
relay-log                       = /theeye/db/master-relay-bin


# for master
innodb_flush_log_at_trx_commit  = 1
sync_binlog                     = 1
binlog_ignore_db                = mysql
binlog_ignore_db                = test
binlog_do_db                    = theeye[/code]

슬레이브가 리플리케이션을 위해 접근할 계정을 추가합니다. 원격지에서 접근 가능하도록 합니다.
[code]mysql> GRANT REPLICATION SLAVE ON *.* TO replicator@’%’ IDENTIFIED BY ‘password’;[/code]

마스터의 데이터를 백업하기 위해 쓰기를 금지합니다., innodb의 경우 COMMIT까지 방지됩니다.
[code]mysql> FLUSH TABLES WITH READ LOCK;[/code]

현재 쓰고 있는 마스터 log-bin 파일을 확인합니다.
[code]
mysql > SHOW MASTER STATUS;
+—————+———-+————–+——————+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————+———-+————–+——————+
| mysql-bin.003 | 73       | theeye       | test,mysql       |
+—————+———-+————–+——————+[/code]

마스터 디비를 백업합니다.
[code]# mysqldump –add-drop-table –routines  –triggers –default-character-set=utf8 –master-data theeye > theeye.sql[/code]

디비 락 걸었던것을 해제 합니다. 실제로는 슬레이브로의 이관작업이 끝날때 합니다.
[code]mysql> UNLOCK TABLES;[/code]

SLAVE CONFIGURATION (127.0.0.2)

my.cnf 파일에 설정을 추가합니다.
[code]# inodb configurations
server-id                       = 2
master-host                     = 127.0.0.1
master-user                     = replicator
master-password                 = ‘password’
master-port                     = 3306
innodb_data_file_path           = ibdata1:1000M;ibdata2:1000M:autoextend
innodb_buffer_pool_size         = 1G
innodb_additional_mem_pool_size = 40M
innodb_log_file_size            = 250M
innodb_log_buffer_size          = 8M
innodb_flush_log_at_trx_commit  = 0
innodb_lock_wait_timeout        = 5
relay-log                       = /theeye/db/slave-relay-bin


# for slave
read-only
master-connect-retry            = 60
replicate-do-db                 = theeye[/code]

마스터에서 백업해온 파일로 복원합니다.
[code]shell> mysql theeye < theeye.sql[/code]

연결할 마스터를 정의합니다. 아까 봐둔 마스터 log-bin파일명을 넣어줍니다.
[code]mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST=’127.0.0.1′, MASTER_USER=’replicator’, MASTER_LOG_FILE=’mysql-bin.003′, MASTER_PASSWORD=’password’;
mysql> slave start;[/code]

Slave_IO_Running, Slave_SQL_Running가 둘다 Yes이고 Read_Master_Log_Pos가 마스터의 변화에 따라 올라간다면 정상적으로 작동중인것입니다.
[code]mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 127.0.0.1
                Master_User: replicator
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000004
        Read_Master_Log_Pos: 2288979
             Relay_Log_File: slave-relay-bin.000002
              Relay_Log_Pos: 1267487
      Relay_Master_Log_File: mysql-bin.000004
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB: theeye
        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: 2288979
            Relay_Log_Space: 1267487
            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
1 row in set (0.00 sec)[/code]

기타 슬레이브가 다수가 될 경우에는 위와 같은 방법으로 my.cnf의 server-id값만 다르게 하면 됩니다.
LOAD DATA FROM MASTER등의 명령은 deprecated되었으므로 사용을 자제 합시다.

RHEL 5 AP 구매하였습니다

사용자 삽입 이미지
회사에서 Redhat Enterprise Linux 5 Advanced Platform 을 구매하였다. 미국에서 건너오는 놈이라 이제서야 받게 되었다.

하나의 머신에 여러 OS를 가동시킬수 있는 가상화(Virtualization)라던가 하나의 SAN Pool에 여러 서버를 물려 사용할수 있는 GFS(Global File System)같은것들이 내 관심을 끈다.

이번 리눅스 코리아에서도 레드햇 부스에 방문해 나의 매우큰 관심을 표명하고 싶었지만, 뭐랄까 레드햇코리아에서 엔지니어분이 나왔을줄 알았는데, 다들 기술적인 부분은 잘 모르시는 분들이 나와서 심도있는 이야기는 못하고 추상적인 설명만 듣다가 왔다. 하긴, 이자리는 기술 세미나 혹은 컨퍼런스가 아니라 단지 홍보용의 전시회이라는 것….

첫인상에서 가장 마음에 드는점을 꼽아 보자면, 매우 멋지게 변한 화면들..(붉은색에 RHEL로고 겁나 멋지다)과…

내가 싫어하는 GUI관련 모듈을 설치안하면 드디어 제대로 콘솔에서 부팅이 된다는것! RHEL 4까지만 해도 아무리 그놈이나 KDE를 안깔아도 로그인만큼은 그래픽 화면으로 나오던데 이점이 매우 마음에 들었다^^;;

미디어킷은 생각보다 작은 크기였다. JBOSS 버스카드도 귀엽군…어디 쓸사람 없으신가?-_-;