'Database'에 해당되는 글 2건

Posted on 2008/09/08 13:10
Filed Under [1] IT 관련/2. Linux

출처 : phpschool.com 최종우님
http://www.phpschool.com/bbs2/inc_view ··· e%3Dtnt2

MySQL replication

1. 마스터와 슬래이브에 최신 MySQL을 설지한다. 동일 버전으로 설치하라.
(아마 거의 되어 있을것이다)

2. 마스터에서 replication을 위한 사용자를 추가한다
mysql> grant file on *.* to repli@"%" identified by "패스워드" ;
repli대신 자신이 원하는 아이디 사용해도 된다.

3. 마스터의 mysql을 shutdown한다.
[root@www ] mysqladmin -uroot -p shutdown

4. 마스터의 MySQL DB내용을 그대로 슬래이브로 복사한다.
mysql을 설치할 때 어디 설치하느냐에 따라 다른데 나는 /var/lib/mysql밑에 데이터들이 쌓인다.
tar cvfp mysql_db.tar /var/lib/mysql/* 하면 그대로 압축될것이다.

5. 슬래이브에서 마스터로 ftp를 해서 아까 만든 mysql_db.tar를 가지고 온다
가져 와서는 /var/lib/mysql 아래에 풀어주면 된다.

6. 마스터의 /etc/my.cnf파일을 손본다
[mysqld]
log-bin
server-id=1

7. 슬래이브의 /etc/my.cnf파일을 손본다
[mysqld]
master-host=211.57.173.XXX
master-user=repli
master-password=XXXXXXX
master-port=3306
server-id=2

보면 알겠지만 replic는 아까 grant를 줄때 만든 아이디이다.
그리고 master-port는 mysql이 사용하는 포트 3306을 그대로 쓴다.
(nmap localhost 해보면 mysql포트가 나온다)

8. 마스터와 슬래이브의 MySQL을 재가동한다.

물론 이후에 잘 되는지 점검하는것이 있는데

마스터에서는 mysql>show master status 라고 해보면
mysql> show master status;
*************************** 1. row ***************************
File: www-bin.001
Position: 12476
Binlog_do_db:
Binlog_ignore_db:
1 row in set (0.00 sec)

슬래이브에서는 mysql> show slave status
mysql> show slave status;
*************************** 1. row ***************************
Master_Host: 211.57.173.XXX
Master_User: repli
Master_Port: 3306
Connect_retry: 60
Master_Log_File: www-bin.001
Read_Master_Log_Pos: 12476
Relay_Log_File: king-relay-bin.001
Relay_Log_Pos: 12514
Relay_Master_Log_File: www-bin.001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_do_db:
Replicate_ignore_db:
Last_errno: 0
Last_error:
Skip_counter: 0
Exec_master_log_pos: 12476
Relay_log_space: 12518
1 row in set (0.00 sec)

등으로 나온다. 그러면 정상적으로 동작하는것이다.
위에서 12476 이라는 포지션 숫자가 보이는가? 이게 똑같이 나와야 한다.
2008/09/08 13:10 2008/09/08 13:10

Posted on 2008/09/08 12:04
Filed Under [1] IT 관련/2. Linux

root@moon root]# mysqladmin variables -p
Enter password:

접속을 하게되면
+---------------------------------+
| Variable_name | Value
+---------------------------------+--------------------------------------------+
| back_log | 50 | basedir | / | binlog_cache_size | 32768 | bulk_insert_buffer_size |
| 8388608 | character_set | euc_kr 등등

여러 값이 나타납니다.

이 부분에서 | max_connect_errors 값을 수백만.. 수천만으로 수정해주시면 되겠습니다.

###########
수정방법.
###########

/etc/my.cnf 파일에 들어가시면 상단부분에
============================수정해야 할 부분==============
set-variable = safe_show_database=ON
set-variable = key_buffer=128M
set-variable = max_allowed_packet=1M
set-variable = table_cache=256
set-variable = sort_buffer=2M
set-variable = record_buffer=2M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
set-variable = max_connect_errors=1845829 <===이곳에 추가를 하였습니다.
# Try number of CPU's*2 for thread_concurrency
set-variable = thread_concurrency=8
#log-bin
server-id = 1
=========================================================
이부분에 추가를 해주시면 max_connect_errors 값이 수정됩니다.
2008/09/08 12:04 2008/09/08 12:04

About

by Jaehun

Counter

· Total
: 51563
· Today
: 85
· Yesterday
: 106