본문 바로가기

전체 글

Oracle - 세션 수집 프로시저 제작 DBA 업무를 수행하다 보니... DB 폐기를 수행하기 전에 유입되는 세션이 있는지 확인요청하는 건이 생겼던 적이 있다. DB접근제어도 없고, 그렇다고 audit을 걸기에는 디스크 공간이 넉넉치 않은 이런 악조건에서 세션 유입이 되는지 확인하려면 어떻게 해야 하는걸까? 바로, v$session에 있는 내용을 주기적으로 수집하면 간단하게 해결된다. 전체적인 프로세스는 다음과 같다. 1. 수집 테이블 생성 2. 세션 수집 프로시저 생성 3. 세션 수집 프로시저 수행 쉘 생성 4. crontab 등록 1. 수집 테이블 생성 CREATE TABLE "SYSTEM"."SESSION_STAT" ( "SD" DATE DEFAULT sysdate, "SADDR" VARCHAR2(4000), "SID" VARCHAR2(.. 더보기
MariaDB MHA 이중화 구성 MariaDB single 구성한 경험은 여러번 있었지만, 이중화 구성은 좀처럼 기회가 없었다. 하지만, 운 좋게도 구성할 기회가 생겨 이번에 정리하게 되었다. 내가 확인한 이중화 구성의 종류에는 6가지 종류가 있다. master - slave의 replication 구조 MHA + replication를 활용한 이중화 구조 MaxScale + replication을 활용한 이중화 구조 공유 볼륨과 클러스터 솔루션(리눅스 클러스터)을 사용한 이중화 구조 Replication과 Galera Cluster를 사용한 이중화 구조 block 복제 솔루션(ArcServe)를 활용한 이중화 구조 일반 replication 이중화 구성의 경우에는 구축이 쉽기도 하고 MHA와 MaxScale을 활용한 이중화 구성에 r.. 더보기
Oracle BBED Utility 사용기 Oracle에는 BBED 유틸리티 (블록 브라우저 및 편집기)라는 유틸리티가 있습니다. Oracle7에서 Oracle10g까지 Oracle DB 버전에서 사용되던 유틸리티로 Oracle 11g에서 바이너리 파일이 엔진상 제거되었지만... make명령어를 통해 BBED를 사용할 수 있습니다. 사용될 make파일은 ins_rdbms.mk로 $ORACLE_HOME/rdbms/lib 디렉토리에 있는데요. 명령어는 아래와 같이 실행하면 됩니다. make -f ins_rdbms.mk BBED=$ORACLE_HOME/bin/BBED $ORACLE_HOME/bin/BBED internal하게 사용되는 BBED 유틸리티는 Oracle 기술 지원시 데이터 블록 손상 문제를 검색, 진단 (및 복구)하는 데 사용하는데 쓰여왔.. 더보기
Tibero RDBMS 소개/제품 타임테이블/정책 탈 오라클화가 가속화되면서 회사마다 오라클을 대체할 수 있는 DBMS를 많이들 도입하고 있는 것 같다. 우리 회사의 경우에도, 신규 시스템 구축 건이 발생될 경우, 오라클로 구축하는 경우는 손에 꼽을 정도인 것 같다. 바야흐로 Tibero DBMS 제품은 적어도 우리나라에서만큼은 hot한 DBMS임에 틀림없다. 오늘은 Tibero DBMS에 대하여 소개를 해보고자 한다. 겸사겸사 LifeCycle과 정책도 언급하려 한다. 1. Tibero RDBMS 소개 설립일 2003년 5월 사장 이희상 임직원 440명 (2020년 1월 기준) 사업 분야 DBMS, BI 솔루션 주요 제품 티베로, 하이퍼데이터, 제타데이터, 프로싱크 등 사업장 본사 : 경기도 성남시 분당구 황새울로258번길 29, BS타워 6층 티맥스.. 더보기
MariaDB SQL튜닝 사례-1 2020년 상반기에는 MariaDB 백업복구, 리플리케이션 테스트를 하면서 경험치를 쌓기 시작했다. 이 부분은 차차 업데이트를 하기로 하고... 오늘은 MariaDB SQL튜닝 사례에 대해 기록하려 한다. 작년 하반기에 기술세미나를 진행하면서 주제를 "MariaDB 성능개선 사례"로 선택했었는데... 혼자 Zabbix MariaDB 개선해보겠다고 야근까지 올려가며 노력했던 기억이 난다. ㅠㅠ 다시 생각해보니 조금 무모했지만...시간이 흐른 지금 돌아보니 피가 되고 살이 되었던 것 같다. Oracle, Tibero에서는 SQL튜닝을 많이 해보았지만, MariaDB에서는 경험이 없어서 막막하기만 했다. 하지만, 사막 가운데서도 살아남는 생물체들이 있지 않는가!! 회사 내에 도움을 줄 수 있는 사람이 없었지만.. 더보기
MariaDB에서 테이블스페이스란? Oracle DBA로 익숙해져 있어서 그런지, MariaDB에서의 Tablespace가 명확히 와닿지 않는다. 오라클은 흔히 알다시피 논리적 개념으로 1개의 테이블스페이스에 1개 이상의 데이터파일들이 매핑될 수 있다. 분명 오라클처럼 Tablespace는 존재하는 것 같은데 MariaDB의 테이블스페이스는 어떻게 다를까? 우리가 트랜잭션을 제대로 관리하기 위해 쓰는 기본 데이터베이스 엔진은 InnoDB이므로 InnoDB에서의 테이블스페이스에 대해 정리해보고자 한다. InnoDB 스토리지 엔진을 사용하는 테이블은 "테이블스페이스"라는 데이터파일 디스크에 기록된다. 각 테이블스페이스는 하나 이상의 InnoDB, 테이블과 관련된 인덱스 데이터를 포함할 수가 있다. InnoDB에서는 아래와 같이 크게 3가지로 .. 더보기
MariaDB - 데이터베이스 및 사용자 생성 1.1 데이터베이스 및 사용자 생성 MariaDB가 설치되면서 자동으로 또는 mysql_install_db라는 유틸리티에 의해서 기본적으로 몇 개의 데이터베이스와 테이블이 생성된다. 또한, 기본 데이터베이스와 함께 처음 MariaDB 서버에 접속할 수 있는 사용자 계정이 생성된다. 오늘은 기본적으로 생성되는 데이터베이스와 테이블 그리고 사용자 계정을 알아보도록 한다. 물론, 데이터베이스와 계정 생성 방법도 말이다. 1.1.1. MariaDB의 사용자 계정 인식과 권한 사용자 계정에 있어 다른 RDBMS와 차이가 조금 있다면 유저 이름 뿐만 아니라 유저가 접속을 시도하는 클라이언트(IP)도 인증의 일부가 된다는 것이다. 또한 이로 인해 MariaDB 서버 연결에서 문제가 발생하기로 하므로 주의하여 관리하도.. 더보기
MariaDB 기동 및 서버 로그인 3.1. 서버 시작 및 종료 3.1.1.1. 리눅스에서 MariaDB 서버의 시작과 종료 MariaDB 서버를 리눅스의 서비스로 등록하는 방법과 그렇지 않고 mysqld_safe 스크립트를 이용해서 직접 기동하는 방법은 실제 MariaDB 서버가 작동하는 방식에 영향을 미치지는 않는다. 하지만, 운영 환경의 MariaDB에서는 서비스로 등록해서 자동으로 MariaDB가 종료되고 시작될 수 있도록 해주는 것이 일반적이다. 3.1.1.1.1. 서비스로 등록된 경우 RPM으로 MariaDB 서버를 설치했다면 자동으로 /etc/init.d/ 디렉토리에 mysql이라는 이름의 MariaDB 서버 초기화 스크립트와 함께 설치된다. 또한 자동으로 각 초기화 레벨(리눅스 init 레벨)에 맞게 MariaDB 서버가 자.. 더보기