음머어's 까망별

블로그 이미지
무지 인간의 첫 걸음..
by 까망별 음머어
  • 283,229Total hit
  • 24Today hit
  • 55Yesterday hit


오라클 세션에서 Lock을 확인하고, 그것을 죽이고자 할때 아래와 같이 사용하면 땡큐다.
물론, 중간에 죽는 넘들에 대한 안정성은 보장하지 못하지만.......

그래도 죽일넘은 죽여야 않겄어?

-- 락 걸린 쿼리 확인 및 sid, serial# 를 추출하기 위한 쿼리
select b.osuser, b.sid, b.serial#, c.sql_text, a.*
from  V$lock a, v$session b, v$sql c
where a.sid = b.sid
      and b.sql_id = c.sql_id;

-- 위의 결과에 나오는 sid, serial# 를 가지고 아래 쿼리를 수행하면....
-- 그토록 죽이고 싶던 넘을 잔인하게 죽일 수 있다. -0-/

alter system kill session 'sid, seraial#';


참고로, 시스템 운영함에 있어 v$lock, v$session, v$sql 과 같은 뷰는 상당히 유용하므로,
필요할 때 마다 한번씩 조인해보고 살펴보는 센스를 발휘한다면,
이역시 땡큐라눙~

난,.. 그래서 sql developer 에 저 같은 쿼리들을 , 사용자 정의 보고서에 등록해 놓고 5초 갱신으로 자주 살펴보고 있돵~
저작자 표시 비영리
신고
TRACKBACK 0 AND COMMENT 0


MySQL 테이블 스페이스가 정상적으로 디스크 영역을 잡아가고 있는지,
로그에 기록이 어떻게 싸여 가고 있는지... 등등을 보고 싶지만,
1초 주기로 화살표 위로 올리고 엔터치기 귀찮으신 분들(나 포함 --;;)......

이 명령어 하나만 써보시면, 체증이 확 풀릴 수 있다. (-0-)/
---------------------------------------------------------------------------------
[um@localhost /] watch --help
Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] [--no-title] [--version] <command>
  -d, --differences[=cumulative]        highlight changes between updates
                (cumulative means highlighting is cumulative)
  -h, --help                            print a summary of the options
  -n, --interval=<seconds>              seconds to wait between updates
  -v, --version                         print the version number
  -t, --no-title                        turns off showing the header

---------------------------------------------------------------------------------

라고 나와 있다.

뭐.... 사용방법은 간단하게...... 아래와 같다..
*********************************************************************************************************
watch -n갱신주기(단위:초) "명령어"
*********************************************************************************************************


대충 내가 써먹는 것을 예로 들자면.... 이런거 -0-?
---------------------------------------------------------------------------------
[um@localhost /] watch -n1 "df -h"

Every 1.0s: df -h                         Thu Jul  2 11:27:55 2009

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             4.0G  2.5G  1.3G  67% /
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda2              61G   25G   34G  43% /my1
---------------------------------------------------------------------------------

기껏해야 이정도지만,
머리가 좋으신 분들은 여러모로 다르게 사용하실 수 있으실 거라 믿는다.. ^^;;








저작자 표시 비영리
신고
TRACKBACK 0 AND COMMENT 1

mysql bin-log 가 많이 쌓여서, 디스크를 꾹꾹 채워가는 것이 마음에 걸린다.

로그를 자동으로 지우고 싶다...

그래서 고수님이 일전에 가르쳐 주신, 리눅스 명령어를 이용해 크론탭을 걸어주었다.

## CRONTAB ##########################################################################
0 0 * * * (find /db/mysql/mysqllog/mysql-bin.* -ctime +14 -exec rm -rf {} \;)
#######################################################################################

의미인 즉슨,

 0 0 * * *  매일 자정에
 find /db/mysql/mysqllog/mysql-bin.*  /db/mysql/mysqllog/ 에 있는 mysql-bin 이란 이름을 갖는 모든 파일 중
 -ctime +14  최종 수정시간이 14일이 넘는다면
 rm -rf {} \;  지우시오~



흠... 이제 디스크 풀났다구 걱정할 필요는 없다.

***** 추가 ********************************************************
아.. MySQL 리퍼런스를 백날 읽고, 서버 스테이터스랑 베리어블을 백날 봐도 무슨 소용인가 ㅠ,.ㅠ
무식하면 3대가 내리 고생한다고...

MySQL 에서 글로벌 변수 logs를 찾아보자.

mysql> SHOW GLOBAL VARIABLES LIKE '%logs%';
+------------------+-------+
| Variable_name    | Value   |
+------------------+-------+
| expire_logs_days | 60       |
+------------------+-------+
1 row in set (0.03 sec)


MySQL에서는 로그가 오래되면 자동으로 삭제하게 해주는, expire_logs_days 가 있다.

동적으로 변경이 가능한 변수이므로,
1.     SET GLOBAL expire_logs_days = 60;
라고 입력해도 바로 적용 되고,

2.     my.cnf 의 [mysqld] 영역에 
-----------------------------------------------
        [mysqld]
        # generic configuration options
        port            = 3306
        socket          = /tmp/mysql.sock
        skip-character-set-client-handshake
        character-set-filesystem = utf8
        default-character-set = utf8
        skip-locking
        expire_logs_days = 60
        federated
------------------------------------------------
라고 추가해 주고 mysql을 재시작해도 된다.

mysql의 로그는 예민한 영역이 될 수 있으므로,
시스템이 권장하는 방식으로 로그를 관리하도록 하자.











저작자 표시 비영리
신고
TRACKBACK 0 AND COMMENT 5

ARTICLE CATEGORY

모든 이야기 (77)
독백 (22)
MySQL (25)
Oracle (7)
영화 (6)
Linux (3)
DW(Data Warehouse) (0)
(7)
음악 (1)
Python (3)
Postgresql (2)

ARCHIVE