레이블이 log-error인 게시물을 표시합니다. 모든 게시물 표시
레이블이 log-error인 게시물을 표시합니다. 모든 게시물 표시

2009년 8월 27일 목요일

로그활용2 - 에러로그

log-error(--log-error)

log-error는 실행중의 에러정보와 기동,정지시의 시각을 기록한다.

Unix계의 mysqld는 에러를 표준에러에 출력한다.

출력된 에러는 mysqld_safe와 mysqlmanager가 받아 보존한다.

그러나 mysqld자신이 에러를 파일에 쓰는 옵션이 있다. 다음처럼 지정한다.

log-error[=파일명]

파일명이 생략된 경우 datadir/호스명.err파일이 된다.
FLUSH LOGS를 실행하면 로그는 로테이트가 되어 전에 있던 에러 파일은 로그파일명-old로 이름이 변경된다.

log-warnings(--log-warnings)
log-warnings를 지정하면 에러로그에 쓰여지는 정보가 늘어난다. Replication(복제)를 실행할 때에는 이 옵션을 사용하는 게 좋다.

log-warnings[=level]

[level]에 1이 넘는 숫자를 지정하면 접속이 정상적으로 끊어지지 않았다는 경고메세지 Aborted connections이 출력된다. 기본값은 1이다.




2009년 7월 24일 금요일

mysqlmanager 2

/etc/my.cnf에 복수의 mysqld를 정의하기

my.cnf에 다음처럼 쓰게 되면 그 그룹이 mysqlmanager에 인식된다.

[mysqldn] (n은 1이상의 정수)

[mysqldn]그룹이 한개도 존재하지 않는다면 mysqlmanager는 [mysqld] 그룹만 관리한다.
[mysqld] 및 [mysqldn]그룹내의 기술방법은 보통 mysqld의 my.cnf의 기술과 다르지 않다.

다만 여기에서 한개 주의가 필요하다.
MySQL 5.0.24/5.1.12-beta에서의 mysqlmanager는 다음 파일들만 읽어들일 수 있다.
다른 명령어처럼 my.cnf를 여러개의 디렉토리로 찾아나서는 짓은 하지 않는다.

  • /etc/my.cnf파일 (windows에서는 mysqlmanager.exe가 존재하는 디렉토리에 있는 my.ini파일)
  • --defaults-file=옵션에서 지정된 파일

/etc/my.cnf 파일예

[manager]
run-as-service
default-mysqld-path = /usr/local/mysql/bin/mysqld

#한개째 정의
[mysqld]
datadir=/data0
port=3306
socket=/tmp/mysql.sock
log-error

#두개째 정의
[mysqld2]
nonguarded
mysqld-path = /usr/local/mysql-5.0/bin/mysqld
datadir =/data2
port=3307
socket=/tmp/mysql.sock2
log-error=/data2/debian.err


옵션
mysqld를 정의할 때 각 [mysqld]그룹에 대해서 다음과같은 옵션을 사용할 수 있다.

nonguarded : 이 옵션이 지정되면 mysqlmanager기동시에 mysqld가 자동으로 기동되지 않는다.
또 msyqlmanager정지시에는 mysqld는 정지하지 않는다.
이 옵션이 없으면 mysqlamanager기동시에는 mysqld가 자동으로 기동한다.
mysqlmanager가 정지하면 mysqld도 같이 정지된다.
mysqld-path=패스: mysqld의 패스를 지정한다. manager사용하는 mysqld하고 다른 경우 지정
shutdown-delay=초: mysqld가 정지하기까지 기다리는 초수. 표준은 35초

에러 출력위치
mysqlmanager에서 mysqld를 기동하는 경우는 필요에 따라서 각 [mysqld]그룹에 log-error옵션을 지정한다.
이 옵션이 없으면 mysqld의 에러출력은 mysqlmanager의 로그파일이다.
--help를 보면 tar.gz바이너리 표준에서는 /usr/local/mysql/data/mysqlmanager.log에 쓰여진다.

mysqld에 아무것도 옵션이 없는 경우, mysqld는 에러 메세지를 표준에러 출력에 출력한다.
mysqld_safe는 그것을 호스트명.err파일에 써 넣는다. 이것이 전통적인 mysqld와 에러 메세지 기록방법이었다.

mysqlmanager는 mysqld_safe와는 달리 에러메세지를 자기의 로그 파일에 써 내린다.
그런 운용에 문제가 없는 경우는 신경 쓸 필요는 없다.
그러나 각각 mysqld별로 err로그를 작성하고픈 경우는 mysqld에 log-error옵션을 지정하면 된다.
log-error옵션은 표준 에러 출력에 출력하는 것 대신에 mysqld자신이 에러출력을 지정된 파일에 쓰는 옵션이다. 이것으로 각각 mysqld별로 에러파일이 작성된다.