전체 글 84

[Admin] ORA-00600[4193] 장애 해결 방안

1. 문제 발생 - Alert.log에 다음과 같은 에러 발생 ORA-00600: internal error code, arguments: [4193], [], [], [], [], [], [], [], [], [], [], [] 2. 문제 확인 - Alert.log에 적힌 trace파일을(예. [SID]_smon_3124_ORA_00600.trc) 확인하면 REDO의 seq와 UNDO의 seq가 다른 것을 확인할 수 있음. - 주로 정상적으로 Oracle이 종료되지 않았을 때 발생함. Error 600 in redo application callback Dump of change vector: TYP:0 CLS:26 AFN:3 DBA:0x00c021c0 OBJ:4294967295 SCN:0x0001.e..

Oracle/Admin 2017.03.16

[Python] Google Map api를 활용한 주소 가져오기

[테스트 환경] - Windows 7 - MariaDB 10.1.12 - Python 3.5 1. Google Map API 사용 방법 - Google Map Api를 활용하여 입력 된 주소의 정확한 주소를 가져 오는 작업을 진행 한다. 2. Google Map 인증키 가져오기 - Python에서 Google API 라이브러리를 사용하기 위해서는 구글계정으로 접속하여 인증키를 받아야 한다. - Url(https://developers.google.com/maps/web-services/client-library?hl=ko )로 접속하여 API키로 검색하면 자세한 설명이 나온다. 3. Google Map 라이브러리 설치 [python@hiwdb01 /home/python/jsh]$pip3.5 install..

Programming 2017.03.16

[MariaDB][SQL]사용자변수를 활용한 DENSE_RANK 분석함수 작성

[테스트 환경] - Windows 7 - MariaDB 10.1.12 1.DENSE_RANK 분석함수 구현하기 - MariaDB(mysql)의 사용자변수를 활용하여 Oracle의 DENSE_RANK분석함수와 동일한 쿼리를 작성 한다. 기존의 사용자변수와 조금 다르게 활용한 것은 SET 사용자변수를 선언하지 않고, 테이블 안쪽에서 사용자변수를 선언하여 쿼리가 수행 될 때마다 사용자변수를 초기화 할 수 있는 장점이 있다. 1.1 테이블 스크립트 CREATE TABLE DA_USER_INFO ( USER_GRP_ID_ID VARCHAR(10) COMMENT '사용자그룹ID', USER_NO BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '사용자번호', USER_SA..

MariaDB/SQL 2017.03.09

[MariaDB]TIMEDIFF 함수를 활용한 시간 계산 SQL

[테스트 환경] - Linux CentOs7 - MariaDB 10.1.12 1. TIMEIDFF,TIME_FORMAT 함수 - TIMEDIFF : 두 개의 시간 값의 차를 계산하여 년월일시분초로 값을 리턴해 주는 함수 - TIME_FORMAT : 시간 값을 원하는 유형으로 포맷을 변경해주는 함수 2. 실습 예제 - 로그인하여 접속을 유지한 시간의 값을 알고 싶을 때 위의 두개의 함수를 사용하여 값을 출력 한다. /*로그인_로그아웃 테이블 생성 */ CREATE TABLE DA_LOGIN_LOGOUT_TB ( LOGIN_LOGOUT_SEQ_NO int(9) NULL , DA_LOGIN_DATE datetime NULL, DA_LOGOUT_DATE datetime NULL, DA_DATE_UNIT varc..

MariaDB/SQL 2017.02.17

[Oracle][Admin] SQL을 활용하여 오라클 데이터 파일 축소 작업

[테스트 환경] OS : windows server 2008 DB : ORACLE 11gR2 오라클 데이터 파일(Data file)은 데이터가 적재 될수록 크기가 점점 늘어나며, 데이터를 삭제 또는 테이블을 DROP 한다고해서 크기가 줄어 들지 않는다. 따라서 데이터 파일의 현재 사용량을 계산하고 RESIZE작업을 해야만 데이터 파일 크기를 변경 할수 있다. SQL을 통하여 현재 데이터 파일의 사용량을 확인하고, 축소 가능한 데이터 파일 용량을 계산하여 최종 변경하는 출력하는 작업을 진행 한다. 1 .현재 데이터 파일 사용량 확인 - 테이블 스페이스 명으로 조회하여 몇 개의 데이터 파일로 구성된 개수와 데이터 파일의 크기 및 사용량을 확인 한다. [조회 쿼리] SELECT SUBSTR(A.TABLESPA..

Oracle/Admin 2017.02.06

[Linux] expect를 사용하여 SSH 자동 생성 Shell Script

[테스트 환경] - Linux CentOs7 1. Linux Expect란? expect는 tenlet이나 ftp와 같은 interactvie한 환경이 필요한 곳에서 특정 문자열을 기다리고(expect), 정해진 문자열을 자동으로 보내는(send)등의 처리를 하는 스크립트 언어 2.expect의 기본 개념 아래 블로그에 매우 상세하게 나와 있으며, 기본 개념 이해 후 아래의 스크립트 확인 (출처 : http://ktdsoss.tistory.com/149) 3. expect 설치 [root@test01 ~]# yum install expect Loaded plugins: fastestmirror base | 3.6 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 ..

Linux 2017.01.18

[에러] [error][/usr/share/perl5/vendor_perl/MHA/ManagerUtil.pm, ln122] Got error when getting node version. Error:

[테스트 환경] OS : CentOS7 64bit DB : MariaDB 10.1.12 1. Error 내용 - Replication 설정 확인 시 다음과 같은 에러 발생[maria@ scripts]$ masterha_check_repl --conf=/maria_mha/[서비스명]/conf/[설정파일명].cnf Mon Aug 8 18:53:33 2016 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping. Mon Aug 8 18:53:33 2016 - [info] Reading application default configuration from /maria_mha/[서비스명]/conf/[설정파일명].cnf..

MariaDB/MHA 2017.01.05

[Admin] 컨트롤파일, 데이터파일, 리두로그파일 경로 변경

# 컨트롤파일 경로 변경 /*1. 파라미터 파일 확인 2. 컨트롤파일 경로 확인 3. DB 종료 4. 컨트롤파일 복사 5. 컨트롤파일 경로 변경 6. 컨트롤파일 경로 변경 확인 */ -- 1. 파라미터 파일 확인show parameter spfile; -- 2. 컨트롤파일 경로 확인 SELECT A.NAME FROM V$CONTROLFILE A; -- 3. DB 종료 shutdown immediate; -- 4. 컨트롤파일 복사 -- 기존 컨트롤파일을 대상 디렉토리로 복사 -- 5. 컨트롤파일 경로 변경 -- 5.1. mount로 시작 startup mount; -- 5.2. controlfile 경로 변경 alter system set control_files ='경로','경로' scope=spfile..

Oracle/Admin 2016.11.01

[MariaDB][성능] 멀티 레인지 리드(multi range read) 최적화

[테스트 환경] OS : CentOS7 DB : MariaDB 10.1.12 멀티 레인지 리드란 ?Multi Range Read(MRR)는 Random I/O를 Sequential I/O로 처리할 수 있도록 도와주는 기능으로, Non-Clustered Index를 통해 Range Scan을 하는 경우, 바로 데이터를 조회하지 않고 어느 정도 rowid(primary key) 값들을 Random 버퍼(mrr_buffer_size)에 채운 다음, 버퍼 내용을 정렬하여 최대한 rowid(primary key) 순서대로 데이터를 접근할 수 있도록 해주는 것이다. 1. rowid 기준 정렬 (Rowid-odered scan) /*파라미터 설정*/ --멀티 레인지 스캔 최적화를 하기 위해서 아래와 같은 파라미터를 ..

MariaDB/SQL Tuning 2016.09.25

[MariaDB][성능] 서브쿼리 최적화

[테스트 환경] OS : CentOS7 DB : MariaDB 10.1.12 # optimizer_switch 파라미터로 optimizer의 최적화를 제어할 수 있다. MariaDB [(none)]> show variables like '%optimizer_switch%' \G *************************** 1. row *************************** Variable_name: optimizer_switch Value: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition..

MariaDB/SQL Tuning 2016.09.25