본문 바로가기

2014/054

UNION과 UNION ALL 의 차이 및 주의 사항 ANSI SQL에서 제안하는 집합 연산 "UNION", "INTERSECT", "MINUS" 중에서 MySQL에서는 UNION 집합 연산만 제공하고 있다. (하지만 MySQL에서 INTERSECT나 MINUS를 다른 형태의 쿼리로 풀어서 사용할 수 있다.) 이 글에서는 UNION 에 대해서 좀 더 자세히 알아 보고자 한다. UNION 집합 연산은 다시 아래와 같이 두가지 종류로 나누어진다. - UNION ALL - UNION DISTINCT 우리가 일반적으로 사용하는 방식인 아무런 추가 키워드 없이 UNION 만 사용하는 것은 UNION DISTINCT 를 줄여서 사용하고 있는 것이다. UNION ALL과 UNION DISTINCT를 레코드가 많은 결과에 대해서 적용해본 사람은 아마도 둘의 처리 방식에 .. 2014. 5. 22.
MYSQL binary log 관리하기 * 바이너리 로그를 남길 날짜 지정 mysql> set global expire_logs_days=14; Query OK, 0 rows affected (0.00 sec) * 바이너리 로그를 남길 날짜 확인 mysql> show variables like "expire%"; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 14 | +------------------+-------+ 1 row in set (0.00 sec) * 바이너리 로그를 남길 날짜 적용 mysql> flush logs; Query OK, 0 rows affected (1.62 sec) * 바이너.. 2014. 5. 9.
mysql binary log를 이용한 복구 DB작업전 반드시 data를 백업 후 작업을 진행하자.# cp -arp /usr/local/mysql/data /usr/local/mysql/data_bak_100406 mysql data 폴더를 보면mysql-bin.000001mysql-bin.000002mysql-bin.000003mysql-bin.000004, ...... 등의 파일이 있다. mysql 을 설치하고 부터 실행하는 모든 명령어들(create, update, delete, alter 등) 이 기록에 남는데이러한 기록을 이용하여 현재까지의 DB를 재작성 할 수 있다. 문제발생 시간을 확인하여 그 전 시간까지만 복구를 하면 된다. 1. mysql 바이너리 로그 파일 확보 # mkdir /usr/local/src/mysql_bin_repai.. 2014. 5. 9.
해킹방지를 위한 fail2ban 설치 개발중에 있던 서버에 burteforce기법으로 해커들이 루트계정을 따서 침투한뒤 네트워크 트래픽을 발생시키는 사건이 발생했다이문제를 해결하기위해 이런저런 방법들을 찾아보다가 몇번이상 계정접근이 실패하면 접근한 IP를 막아버리는 툴이있어서 적용해봤다. 1. fail2ban 다운로드(http://www.fail2ban.org/wiki/index.php/Downloads) 2. 압축풀고 설치#tar xvf fail2ban-0.8.12.tar.gz#cd fail2ban-0.8.12#python setup.py install 3. fail2ban 환경설정/etc/fail2ban/jail.confignoreip : 체크대상에서 제외할 IPbantime : 접근실패횟수가 넘어간 IP에 대해 정해진 시간만큼 접근을 .. 2014. 5. 9.