database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 14874 게시물 읽기
No. 14874
mysql문제[myisamchk,processlist등]
작성자
솔비
작성일
2002-01-21 15:05
조회수
1,167

저번에 mysqld프로세스 증가에 대해서 질문드렸던 솔비예요..

 

다름 아니라 원인은 밝혀냈는데 이유를 모르겠습니다.

 

우선 상황설명부터드리겠습니다.

 

1. 문제발생

mysqld프로세스 이상증가(회원이 거의 없어 동시접속자수가 늘어날

이유없음)

 

2. mysqladmin으로 프로세스상태 확인

 

+----+---------+-----------+---------+---------+------+--------------+------------------------------------------------------------------------------------------------------+

| Id | User | Host | db | Command | Time | State | Info |

+----+---------+-----------+---------+---------+------+--------------+------------------------------------------------------------------------------------------------------+

| 9 | root | localhost | hnarang | Query | 278 | Sending data | select id, replace(title, \김문주\, \김문주\) as title,name,reg_date ,(UNIX_TIMESTAMP(now())-UNIX_TI |

| 13 | root | localhost | hnarang | Query | 87 | Sending data | select id, replace(title, \김문주\, \김문주\) as title,

name,reg_date ,

count,mail, depth ,user_file |

| 18 | root | localhost | hnarang | Query | 0 | NULL | show processlist |

| 19 | hnarang | localhost | hnarang | Query | 30 | Locked | LOCK TABLES board WRITE |

+----+---------+-----------+---------+---------+------+--------------+------------------------------------------------------------------------------------------------------+

 

위와 같이 query가 60개이상이 발생

locked된 프로세스도 발생

 

이와 같이 지속적인 문제 발생하여

 

3. myisamchk체크

 

첫번째

myisamchk -er /usr/local/mysql/data/hnarang/board

- recovering (with sort) MyISAM-table \/usr/local/mysql/data/hnarang/board.MYI\

Data records: 291

- Fixing index 1

Found block with too small length at 29444; Skipped

Found link that points at 7318349401423872 (outside data file) at 85380

Found block with too small length at 99516; Skipped

Found block with too small length at 121224; Skipped

Found link that points at 3602894228300904244 (outside data file) at 154760

Found block that points outside data file at 168152

Found block that points outside data file at 169172

Found block that points outside data file at 171760

Found block that points outside data file at 172652

Found block that points outside data file at 185480

Found block that points outside data file at 188312

 

두번째 실시

정상 복구

 

4. 다시 위와 같은 문제 발생

 

발생장소 : 게시판

발생원인 : 검색부분이상

-검색시 검색안되고 계속 쿼리시간만 증가

-검색후 게시판 리스트보기 하면 볼 수없음, 하지만 mysql데몬 죽이고

처음시 게시판 리스트 보기 가능..

 

결국, 처음 문제발생전 즉, 검색을 사용하지않고 리스트 보기는 정상적이나

검색사용한후 데몬프로세스의 시간증가 발생시 리스트보기기능 불가능

 

즉, 위에서 문제발생후 리스트보기하면 테이블 locked발생

이상황에서 mysqld stop시 stop안됨

 

Killing mysqld with pid 21925

Wait for mysqld to exitc

.c

.c

.c

.c

.c

 

위와 같은 증상보임

 

다시 myisamchk시 이상없음, 에러없음

 

5. 문제 쿼리 직접실행

select id, replace(title, \김문주\, \김문주\) as title,

name,reg_date ,

(UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(reg_date))/3600,

count,mail, depth ,user_file,image,hits

from board

where title like \%김문주%\

order by pos

 

replace(title, \김문주\, \김문주\)이 문제 일으킴

원래 sql의도는 프로그램어가 coolbbs소스에서

글자색깔을 바꾸려고 했던 것을 그냥 빼고 이부분을 그냥 집어넣은채로

게시판 운영

 

이부분을 제거한 후 정상적인 검색가능했음

 

의문점

1. myisamchk체크 시 아래와 같은 내용이 무엇을 뜻하는지요

 

첫번째

myisamchk -er /usr/local/mysql/data/hnarang/board

- recovering (with sort) MyISAM-table \/usr/local/mysql/data/hnarang/board.MYI\

Data records: 291

- Fixing index 1

Found block with too small length at 29444; Skipped

Found link that points at 7318349401423872 (outside data file) at 85380

Found block with too small length at 99516; Skipped

Found block with too small length at 121224; Skipped

Found link that points at 3602894228300904244 (outside data file) at 154760

Found block that points outside data file at 168152

Found block that points outside data file at 169172

Found block that points outside data file at 171760

Found block that points outside data file at 172652

Found block that points outside data file at 185480

Found block that points outside data file at 188312

 

2. 문제가 생긴 mysql버젼은 3.23.32

문제생긴 데이타베이스를 백업받아 상위버젼 3.23.41(리눅스) 그리고 3.23.46(윈도우)

에서는 문제가 생기지 않음

 

같은 버젼(3.23.32)을 설치하여 동일한 명령을 내린 결과 동일한 문제 발생하였습니다.

물론 3.23.41(리눅스)에 문제있는 데이타베이스를 백업하여 설치한 결과 동일 명령결과에

이상없이 쿼리가 가능했습니다.

 

프로그램어는 예전에 검색이 되었다고 말은 하는데

제입장에서 보면

 

우선, 문제있는 테이블을 백업하여 동일한 mysql버젼을 설치한 후 복원후 쿼리시 동일문제

발생 그리고 상위버변에 문제있는 테이블 백업하여 복원후 동일 쿼리시 문제발생되지 않음

의 결과로 볼때는 처음부터 이쿼리가 3.23.32에서 되지 않았다고 볼 수밖에 없었습니다.

 

하지만, 원래 소스가 정진호씨의 책의 내용으로 만든것으로 보아 당시버젼이(책의 인스톨과정)

으로 보아 mysql-3.22.23b버젼 이었고, 여기서 테스트해서 나온 책이므로 mysql버젼상의

문제라고 보기도 어렵습니다..

 

또한, 쿼리방식도 물론 replace함수(용도 글자체 또는 색깔 변환) 쓰는 것이 이 게시판에서

필요없기는 하지만 틀리지는 않는 구문이므로 쿼리의 잘못이라고도 볼 수가 없는 상황입니다.

 

또한, 테이블이 깨진 상태에서 복구(myisamchk)는 하였으나, 새로운 동일한 버젼mysql을 설치

하여 백업테이블을 복원하여 동일한 문제 발생도 사실은 데이타 베이스 자체문제라고 보기도

어려운 상황이라 생각합니다..

 

굳이 제가 생각한 것은 문제있는 테이블을 백업하여 복원한 것도 결국은 문제있는 테이블이라고

생각할 수밖에 없습니다. 하지만, 이것도 문제있는 테이블백업파일을 상위버젼인 3.23.41(리눅스)

에서 문제가 발생하지 않기때문에 테이블에 이상이 있어서 안된다고 보기도 어려운 상황이죠

 

여러분의 많은 질타와 의견을 부탁드립니다.

감사합니다.

 

 

[참고 query문]

 

select id, replace(title, \김문주\, \김문주\) as title,

name,reg_date ,

(UNIX_TIMESTAMP(now())-UNIX_TIMESTAMP(reg_date))/3600,

count,mail, depth ,user_file,image,hits

from board

where title like \%김문주%\

order by pos

 

[문제있는 버젼의 정보]

./configure --prefix=/usr/local/mysql\

--localstatedir=/usr/local/mysql/data \

--with-charset=euc_kr

 

mysql Ver 11.12 Distrib 3.23.32, for pc-linux-gnu (i686)

 

Connection id: 422

Current database: hnarang

Current user: root@localhost

Current pager: stdout

Using outfile: \

Server version: 3.23.32-log

Protocol version: 10

Connection: Localhost via UNIX socket

Client characterset: euc_kr

Server characterset: euc_kr

UNIX socket: /tmp/mysql.sock

Uptime: 3 hours 24 sec

 

Threads: 1 Questions: 2565 Slow queries: 0 Opens: 82 Flush tables: 1 Open tables: 64 Queries per second avg: 0.237

 

 

+--------------------------+----------+

| Variable_name | Value |

+--------------------------+----------+

| Aborted_clients | 0 |

| Aborted_connects | 1 |

| Bytes_received | 131656 |

| Bytes_sent | 41129015 |

| Connections | 424 |

| Created_tmp_disk_tables | 0 |

| Created_tmp_tables | 0 |

| Created_tmp_files | 0 |

| Delayed_insert_threads | 0 |

| Delayed_writes | 0 |

| Delayed_errors | 0 |

| Flush_commands | 1 |

| Handler_delete | 1 |

| Handler_read_first | 95 |

| Handler_read_key | 572 |

| Handler_read_next | 353 |

| Handler_read_prev | 200 |

| Handler_read_rnd | 119172 |

| Handler_read_rnd_next | 176915 |

| Handler_update | 211 |

| Handler_write | 3 |

| Key_blocks_used | 63 |

| Key_read_requests | 1542 |

| Key_reads | 63 |

| Key_write_requests | 62 |

| Key_writes | 28 |

| Max_used_connections | 1 |

| Not_flushed_key_blocks | 0 |

| Not_flushed_delayed_rows | 0 |

| Open_tables | 64 |

| Open_files | 129 |

| Open_streams | 0 |

| Opened_tables | 82 |

| Questions | 2569 |

| Select_full_join | 0 |

| Select_full_range_join | 0 |

| Select_range | 4 |

| Select_range_check | 0 |

| Select_scan | 831 |

| Slave_running | OFF |

| Slave_open_temp_tables | 0 |

| Slow_launch_threads | 0 |

| Slow_queries | 0 |

| Sort_merge_passes | 0 |

| Sort_range | 4 |

| Sort_rows | 119172 |

| Sort_scan | 606 |

| Threads_cached | 0 |

| Threads_created | 423 |

| Threads_connected | 1 |

| Threads_running | 1 |

| Uptime | 10850 |

+--------------------------+----------+

 

 

 

[문제없는 버젼의 정보]

 

cd mysql-3.23.41

./configure --prefix=/usr/local/mysql --with-charset=euc_kr

 

/usr/local/mysql/bin/mysql Ver 11.15 Distrib 3.23.41, for pc-linux-gnu (i686)

 

Connection id: 7

Current database: hnarang

Current user: root@localhost

Current pager: stdout

Using outfile: \

Server version: 3.23.41

Protocol version: 10

Connection: Localhost via UNIX socket

Client characterset: euc_kr

Server characterset: euc_kr

UNIX socket: /tmp/mysql.sock

Uptime: 18 min 46 sec

 

Threads: 1 Questions: 464 Slow queries: 0 Opens: 34 Flush tables: 1 Open tables: 18 Queries per second avg: 0.412

 

 

+--------------------------+--------+

| Variable_name | Value |

+--------------------------+--------+

| Aborted_clients | 0 |

| Aborted_connects | 0 |

| Bytes_received | 244902 |

| Bytes_sent | 39951 |

| Connections | 26 |

| Created_tmp_disk_tables | 0 |

| Created_tmp_tables | 0 |

| Created_tmp_files | 0 |

| Delayed_insert_threads | 0 |

| Delayed_writes | 0 |

| Delayed_errors | 0 |

| Flush_commands | 1 |

| Handler_delete | 0 |

| Handler_read_first | 42 |

| Handler_read_key | 23 |

| Handler_read_next | 0 |

| Handler_read_prev | 0 |

| Handler_read_rnd | 19 |

| Handler_read_rnd_next | 487 |

| Handler_update | 0 |

| Handler_write | 302 |

| Key_blocks_used | 9 |

| Key_read_requests | 483 |

| Key_reads | 1 |

| Key_write_requests | 306 |

| Key_writes | 306 |

| Max_used_connections | 1 |

| Not_flushed_key_blocks | 0 |

| Not_flushed_delayed_rows | 0 |

| Open_tables | 18 |

| Open_files | 36 |

| Open_streams | 0 |

| Opened_tables | 34 |

| Questions | 464 |

| Select_full_join | 0 |

| Select_full_range_join | 0 |

| Select_range | 0 |

| Select_range_check | 0 |

| Select_scan | 20 |

| Slave_running | OFF |

| Slave_open_temp_tables | 0 |

| Slow_launch_threads | 0 |

| Slow_queries | 0 |

| Sort_merge_passes | 0 |

| Sort_range | 0 |

| Sort_rows | 19 |

| Sort_scan | 13 |

| Table_locks_immediate | 397 |

| Table_locks_waited | 0 |

| Threads_cached | 0 |

| Threads_created | 25 |

| Threads_connected | 1 |

| Threads_running | 1 |

| Uptime | 1160 |

+--------------------------+--------+

54 rows in set (0.00 sec)

[Top]
No.
제목
작성자
작성일
조회
14877mysql 설치시 나타나는 현상
이해정
2002-01-21
435
14876[질문]primay key를 조건으로 하는 검색이 느린 이유? [1]
이연호
2002-01-21
466
14875mysql_connect 에러입니다... [1]
박정수
2002-01-21
675
14874mysql문제[myisamchk,processlist등]
솔비
2002-01-21
1167
14872LAST_INSERT_ID()에 대한 질문입니다. 꼭좀 알려주세요 [3]
박정우
2002-01-21
991
14871지성합니당.apache1.3.22+tomcat4.0+mysql
자바처버
2002-01-21
379
14870지성합니당.apache1.3.22+tomcat4.0+mysql
자바처버
2002-01-21
368
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다