MySQL - 덤프 입력 혹은 대량 인서트시 속도 저하.

원인은 인덱스 재구성.

bin/mysqld_safe --delay-key-write-for-all-tables --user=mysql &

LOCK 건 테이블에 대해서 해제될 때까지 키 체크 모류.

by overdose | 2009/10/30 19:01 | LINUX | 트랙백 | 덧글(0)

리눅스 RSA 인증키 정보

/root/.ssh/known_hosts

by overdose | 2009/08/12 14:30 | LINUX | 트랙백 | 덧글(0)

bash 스크립트에서 mysql 쿼리 결과 변수에 저장하기

TEMP_VAR=$(exec /usr/bin/mysql --socket=/tmp/mysql.sock -u root -p"password" dbname -N -s -e "select min(columnname) from TAB_NAME where CONDITION = 57")

-N (--skip-column-names) : 결과화면에 컬럼 이름을 없애주는 옵션
-s (--silent) : 결과화면에서 격자를 제거하는 옵션

1. 결과는 라인 별로 저장된다.
2. 결과가 여러 라인일 경우에도 for in 명령을 사용해서 분류해낼 수 있다.
3. 컬럼의 분리는 구분자로 파싱해내는 수 밖에 없는듯하다.

ex) 모든 데이터베이스의 모든 테이블에 대한 덤프를 추출하는 방법. -출처:http://www.nanzoa.com/
      CentOS 5.2에서는 부분적으로 문법을 수정해주지 않으면 동작하지 않았다.

db_root_pw='비밀번호'

db_list=`echo "show databases;" | mysql -N -uroot -p"$db_root_pw"`
 for db in $db_list ;do
  table_list=`echo "show tables" | mysql -N -uroot -p"$db_root_pw" $db`
  for table in $table_list ; do
    mysqldump -uroot -p"$db_root_pw" $db $table > $db.${table}.sql
  done
 done

by overdose | 2009/07/24 14:55 | 트랙백 | 덧글(0)

Linux - 커널 스택 크기 제한

cat /usr/include/linux/sched.h
------------------------------------
#define _STK_LIM  (8*1024*1024) // 8M

리눅스에서는 커널 레벨에서 각 프로세스에 할당 가능한 스택 사이즈에 제한을 둔다.

(사이즈는 위와 다를 수 있다. 여하간 제한을 둔다.)

그 사이즈를 넘어 메모리를 할당하면 세그멘테이션 에러를 내며 프로세스가 죽는다.

뭐... 내가 그렇게 할당했다는건 아니다.

malloc()을 이용해 메모리를 동적으로 할당하면 그냥 편하다.

그리고 새로운 문제로 머리가 좀 아플것 같다.

by overdose | 2009/06/19 19:54 | LINUX | 트랙백 | 덧글(0)

bash 스크립트 - 스크립트 리턴값

vi /home/test/test1.sh


#!/bin/bash

if [ -z "$1" ]
then
  echo "usage: `basename $0` queryfilename"
  exit 111
fi
exit 0

vi /home/test/test2.sh


#!/bin/bash
/home/test/test1.sh
echo $?            // 도스 스크립트에서는 echo %ERRORLEVEL%



./test2.sh

by overdose | 2009/03/31 14:13 | LINUX | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶