- 방문자수
- Best Contents
전체 방문자
오늘 방문자
어제 방문자
인기글
-
[ORACLE] KILL SESSION
오늘은 Oracle Session Kill에대해 글을 써보도록하겠습니다. Database를 운영하다보면 특정 Session 을 Kill해야 하는일이 생기게된다. 자주 발생하는 예로는 Lock이 발생하였을때 Lock 을 유발시킨 Session을 Kill하게 됩니다. Session 확인 USERNAME이 LEE인 USER의 SID,SERIAL#을 확인하였다. SQL> select username,sid,serial#,status from v$session where username='LEE'; USERNAME SID SERIAL# STATUS ------------------------------ ---------- ---------- -------- LEE 191 5 INACTIVE Session KILL..
-
Graylog를 이용한 Syslog 수집 ( 설치 편 )
Log 모니터링을 하다보면 5개 정도의 서버의 Log를 보는 거라면 빠르게 볼수있다. 하지만 10대이상가는 서버의 Log를 매일 모니터링을 하다보면 이 시간또한 많은 시간을 들게된다. 현재 맡고있는 서비스는 40대가 넘는 서버의 일일 Log 모니터링을 하고있는데 이런 시간을 줄이기 위해 Graylog를 공부해보고 적용까지 해보려고한다. ■ Graylog - Graylog는 로그메세지의 적재와 조회, 시각화등의 기능외 많은 기능을 제공하는 오픈 소스 로그 관제 솔루션이다. - Graylog Server / Elasticsearch / MongoDB로 구성된다. 이를 통해 애플리케이션으로 부터 전송되는 로그를 거의 실시간으로 구조화하여 적재 할 수 있다. ■ 구조화된 로그가 필요한 이유 - 왜 구조화된 로그..
-
[ MySQL & Maria ] Innodb_buffer_pool 사용량 조회
MySQL & Maria DB Innodb_buffer_pool 사용량은 성능에 중요한 Point가 된다. 사용량이 높게되면 Disk I/O가 발생하게 되고 성능이 떨어지게된다. Innodb_buffer_pool_size는 DOCS에서는 physical memory의 80%로 하는것을 말하고있지만 Real MySQL에서는 50%로 한후 모니터링하며 바꿔나가는 것이 좋다고 한다. https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_buffer_pool_size MySQL :: MySQL 8.0 Reference Manual :: 15.14 InnoDB Startup Options and System Variables de..
-
[ ORACLE ] ORA-00257 archiver error
얼마 전에 고객사에 ORA-00257 에러가 발생하였다. 해당 고객사는 Crontab으로 7일 이후의 Archive Log는 삭제하는 스크립트를 걸어놨음에도 250G의 +RECO DIskgroup이 Full이 차는 일이 발생하였다. 우서 장애처리를 위해서 Archive log를 5일 치 남기고 삭제하여 해결하기는 하였으니 이후 왜 Archive log가 Full이 찾는지 원인을 찾기 시작하였다. ■ 장애 발생 - RECO DISKGROUP 의 Free_MB가 236이다. - RECO DISKGROUP에서 ARCHIVE LOG가 249G를 차지하고 있다. State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usab..
-
[ Oracle ] Shrink Space 경험
유지보수하고있는 고객사에서 겪었던 Shrink Space에 대해 포스팅할 예정이다. 같은 Table을 같고있는 운영 유저(Lee) / 개발 유저(Lee2) 의 select count(*) 에서 시간 차이가 발생하고있다는 문의를 받아 진행하게되었다. 두개의 Table의 Row수는 운영유저(Lee)가 2배정도 많았지만 시간은 26배 더 오래걸렸다. ■ 운영유저(Lee) Count 시간 - 4G Table 34011 rows를 조회하는데 26초의 시간이 걸렸다. ##COUNT(*) 26초 걸림 SQL> SET TIMING ON; SQL> select count(*) from T_CPN_PTN_SHP; COUNT(*) ---------- 34011 Elapsed: 00:00:26.72 ■ Table Block ..
-
Query Cache
- Query Cache에 결과가 없을때 [Query Parsing] → [Optimization] → [Execution] 등 일련의 과정을 거칩니다. - Query Cache에 존재 Query Cache가 활성화되었으면, Query Cache안에 이전에 실행했던 Query가 존재한다면 위 과정 없이 바로 Query Cache에서 결과를 보내줍니다. - Query Cache 제약사항 * SELECT SQL_NO_CACHE ... * SELECT ... INTO OUTFILE ... * SELECT ... INTO DUMPFILE ... * SELECT ... FOR UPDATE * SELECT * FROM ... WHERE autoincrement_column IS NULL * SELECT ... LO..
-
[ MARIA ] Galera Cluster 구성
■ 갈레라 클러스터 장점 - 진정한 다중 마스터 : 아무 때나 어떤 노드에서도 읽기와 쓰기가 가능하다. - 동기적 복제 : 슬레이브 지연이 없고 노드 충돌 시에 데이터 손실이 없다. - 일관적인 데이터 : 모든 노드는 같은 상태를 유지한다. - 멀티스레드 슬레이브 : 어떠한 워크로드에서도 더 나은 성능을 가능케한다. - 상시 대기 : 장애 극복 시 downtime이 없다. - 읽기와 쓰기 스필릿이 필요 없다 : 읽기와 쓰기 요청을 스플릿할 필요가 없다. - 자동 노드 복제 : 노드를 추가하거나 유지 관리를 위해 종료 할 때 증분 데이터 또는 기본 데이터를 수동 백업할 필요 없시 Galera Cluster는 자동으로 온라인 노드 데이터를 가져온다. ■ 갈레라 클러스터 단점 - 동기적 복제이다 보니 클러스터..
-
[MariaDB] MariaDB Memroy 튜닝가이드
이번에 MariaDB Galera를 사용하고 있는 고객사에서 Memory 관련 문의가 들어오게 되면서 Memory부분을 공부해보게 되었다. ■ MariaDB Memory 종류 - MariaDB Memory는 두가지로 분류가된다. 모든 세션이 공유하고 사용하는 Global Memory 영역과 각각의 세션들별로 사용되는 Session Memory영역이 있다. ■ Global Memory 영역 DB가 최초 기동되었을 때에는 메모리를 최소한만 사용하다가 설정된 값 까지 증가하며 증가한 이후에는 "메모리를 반환하지 않고" 설정 된 값 이내에서 계속 사용됩니다. (오라클의 경우 DB기동시 설정된 값 만큼 메모리를 할당 받고 올라가는 반면 Mariadb 는 기동시 설정된 메모리 값만큼 할당 받는것이 아닌 설정된 값 ..
-
[ Oracle ] Select절 Function 튜닝
오늘은 고객사에서 문의가 들어왔던 Query 튜닝 관련하여 글을 쓸예정이다. 고객사는 기존에 쓰던 Query에 Function이 들어가게되면서 속도저하가 일어나게되었고 튜닝을 해달라고 하였다. TEST환경을 만들어 재구현을 해볼 예정이다. TEST DATA 생성 - 우선 TEST TABLE / Function을 만들었다. ** 1.TEST DATA 생성 ** SQL>CREATE TABLE MAXTEST(COLA VARCHAR2(20), COLB NUMBER, COLC NUMBER, COLD VARCHAR2(30), COLE VARCHAR2(30), COLF VARCHAR2(30), COLG NUMBER, COLH VARCHAR2(30), COLI VARCHAR2(30), COLJ VARCHAR2(30))..
-
[MARIA] Maxscale Replication
기존 MariaDB를 Replication을 걸어두고 윗단에 Maxscale을 두어서 Auto Failover / VIP 접근 / READ & WRITE 분산을 테스트 해보았다. 아직까지 Replication에서 쓰고있는 고객들은 보지 못하였지만 나중을 위해 테스트해본 것을 기록하였다. 0.TEST 환경 Master 172.40.40.189 Slave 172.40.40.188 Maxscale 172.40.40.187 1.MAXSCALE 설치 ** 1.필요 library 설치 ** [root@maxscale ~]# yum -y install libcurl libaio openssl gnutls libatomic ** 2.Maxscale 유저 그룹 생성 ** [root@maxscale ~]# groupadd..