DATABASE11 오라클 엔터프라이즈 매니저(Oracle Enterprise Manager) 애플리케이션 관리에 많은 시간이 소요 되십니까? 다양한 이종 환경의 통합적 모니터링이 필요하다면 소수의 관리자로 다양한 이종 시스템들을 관리하는데 어려움을 겪고 계신가요? 다수의 시스템 모니터링을 위해 다양한 관리 솔루션들을 사용하고 계신가요? 관리자의 기술력 부족으로 인해 원활하게 관리 되지 못하고 있는 시스템들이 존재하나요? 장애 원인을 파악할 수 없거나 분석에 많은 시간이 소요 된다면 장애 전 사전 예방 방법은 없을까 고민하고 계신가요? 장애 시점의 기록이 남지 않아 장애 원인 파악에 어려움을 겪고 계신가요? 복잡하게 얽혀 있은 애플리케이션, 어디가 문제인지, 원인 파악이 어려우신가요? 잘 돌아가던 애플리케이션, 분명 무언가 변경된 것 같은데, 아무도 변경한 것이 없다고 하진 않나요? 다수의 시스템.. DATABASE/ORACLE 2022. 10. 13. MySql 엔진 성능 최적화 방안 MySql 성능 최적화 방안 (옵션 설정값 설명 포함) 1. 기본 설정 Basic Settings에서 생각해 볼 것은 tmpdir을 어디에 둘 것인지 여부입니다. 기본으로는 하드디스크인 /tmp에 설정되어 있습니다. 여러 번 시행 착오 끝에 리눅스 tmpfs 파일시스템은 일부 임시 파일생성을 허용하지 않기 때문에 에러가 발생하다는 사실을 확인하고 임시 파일 폴더를 메모리에 올리는 것을 포기 했습니다. 제가 받은 에러 메세지는 리눅스 커널에서 MariaDB가 tmpfs 파일시스템에서 일부 임시 파일 생성하는 것을 허용하지 않아 에러가 발생, mariadbd: O_TMPFILE is not supported on /dev/shm (disabling future attempts). . skip-external.. DATABASE/MYSQL 2022. 10. 13. [성능 튜닝] 대규모 데이터 처리(메모리와 디스크, 웹 애플리케이션의 부하) 대규모 서비스의 데이터 규모 한 서비스의 데이터 규모는 다음과 같습니다. 한 테이블당 레코드 건수가 1,500만이나 5,000만 정도가 됩니다. 데이터 크기로는 entry라는 테이블이 3GB, bookmark라는 테이블이 5.5GB, tag 테이블이 4.8GB, 그리고 HTML 텍스트 데이터도 압축해서 저장하고 있는데, 이것이 200GB를 넘고 있습니다. 전체적으로 기가바이트 단위가 됩니다. Google이나 Yahoo!가 사용하고 있는 규모가 되면 더 나아가 테라바이트, 페타바이트가 되므로 이는 초대규모입니다. 보통 웹 애플리케이션을 만들면서 좀처럼 기가바이트 단위의 DB는 나오지 않으므로 일반적인 웹 애플리케이션이라는 관점에서 보면 큰 규모인 것입니다. 레코드 수 데이터 크기 entry 테이블: 1,5.. DATABASE/MYSQL 2022. 10. 11. [오라클] 업그레이드 #4 - Oracle database upgrade (11.2.x to 19.x) 4. 업그레이드 4.1 preupgrade_fixup 실행 preupgrade_fixups 수행 및 데이터베이스 중지 1 2 3 4 SET ECHO ON; SET SERVEROUTPUT ON; @/u01/app/oracle/cfgtoollogs/orcl/preupgrade/preupgrade_fixups.sql shutdown immediate; 더보기 [oracle@orcl ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 5 11:19:11 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterp.. DATABASE/ORACLE 2022. 10. 10. [오라클] 업그레이드 #3 - Oracle database upgrade (11.2.x to 19.x) 3.4 Oracle Application Express 업그레이드 19c의 APEX 경로로 이동 1 cd /apex 더보기 [oracle@orcl ~]$ echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/db_1 [oracle@orcl ~]$ cd /u01/app/oracle/product/19c/db_1/apex APEX 신버전 설치 1 2 select COMP_NAME, STATUS, VERSION from DBA_REGISTRY where COMP_NAME='Oracle Application Express'; @apexins SYSAUX SYSAUX TEMP /i/ [oracle@orcl apex]$ sqlplus / as sysdba SQL*Plus: Rele.. DATABASE/ORACLE 2022. 10. 10. [오라클] 업그레이드 #2 - Oracle database upgrade (11.2.x to 19.x) 3. 업그레이드 준비 작업 3.1 파라미터 변경 프로세스 300 이상으로 변경 1 2 3 4 select NAME, VALUE from V$PARAMETER where NAME = 'processes'; alter system set processes=300 scope=spfile; shutdown immediate; startup [oracle@orcl ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Thu Mar 5 10:33:08 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition.. DATABASE/ORACLE 2022. 10. 10. [오라클] 업그레이드 #1 - Oracle database upgrade (11.2.x to 19.x) 1. 개요 11.2.0.4 버전에서 19c(19.6)으로 업그레이드하는 작업입니다. 업그레이드를 수행한 VM 환경(Virtual Box 사용)은 다음과 같습니다. CPU 2 Core를 VM에 할당 OS Oracle Linux 7.6 Memory 2048MB Source DB 11.2.0.4 (별도 패치 안함) Disk 30GB (기본 DB만 생성) Target DB 19.6 (19.3에 RU 적용) 2. 사전 조사 사전 조사 preupgrade.jar 실행 [oracle@orcl ~]$ echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/db_1 [oracle@orcl ~]$ $ORACLE_BASE/product/19c/db_1/jdk/bin/java -jar $ORA.. DATABASE/ORACLE 2022. 10. 10. [MySQL] 인덱스 #2 - 인덱스(INDEX) 정리 및 설계 1. 개요 MySQL 스키마 설계는 자주 해보았지만 효율적인 데이터타입, 인덱스 설계에 대한 부분은 이해도가 낮은 것 같아 조사 후 남기는 포스팅이다. 2. 인덱스의 개념 인덱스는 테이블의 동작속도(조회)를 높여주는 자료구조이다. 인덱스로 데이터의 위치를 빠르게 찾아주는 역할이고 쉽게 예를 들어보면 책 뒷편에 '색인'이 인덱스의 역할과 동일하다고 볼 수 있다. (예를들어 '홍길동'이라는 단어를 찾고싶으면 색인페이지에서 '홍'으로 시작하거나 'ㅎ'으로 시작하는 색인을 찾아보면 빠르게 찾을 수 있다.) 인덱스는 MYI(MySQL Index)파일에 저장되며, 인덱스가 설정되지 않았다면 Table Full Scan이 일어나 성능이 저하되거나 치명적인 장애가 발생한다. 조회속도는 빨라지지만 UPDATE, INSE.. DATABASE/MYSQL 2022. 10. 9. [MySQL] 인덱스 #3 - INDEX의 종류 MySQL이 지원하는 index MySQL에서 지원하는 인덱스는 B+Tree와 Hash가 있습니다. B+tree MySQL에서 사용하는 B+tree에 대해서 이해하려면, 먼저 B-tree에 대해서 알아야 합니다. 왜냐하면 B+tree는 B-tree에서 한 단계 발전한 버전이기 때문입니다. B-tree는 이름에서도 알 수 있듯이 자료구조 중 tree구조로 이루어져 있습니다. Binary search를 떠올려보면 검색 속도가 O(logN)으로 매우 빨랐던 것을 떠올릴 수 있습니다. 어떻게 이게 가능한가? 하면 ‘이미 데이터가 정렬되었기 때문’입니다 아래 그림을 보겠습니다. 위 그림이 B-Tree의 구조입니다. 기존의 BST와 연관하여 생각하면 구조를 빠르게 파악할 수 있습니다. 여기서 핵심은 트리 구조로 이.. DATABASE/MYSQL 2022. 10. 9. [MySQL] 대량 데이터 INSERT 시 속도 개선 방법 1. LOAD DATA - Bulk Insert방법중 최대 속도인 처리방법 - 데이터를 파일로 로드해서 insert 하는 방법 - my.cnf에서 local-infile=1 설정이 되어 있어야 사용가능 - 단 데이터 내용안에 특수문자가 누락되는 경우가 많아서 특문을 별도 처리해야 함 LOAD DATA LOCAL INFILE '/work/data.txt' INTO TABLE TEST (c1,c2,c3,c4); 2. MULTI-VALUE INSERTS - 쿼리문 하나에 n개의 데이터를 입력해야함 - 단 데이터 갯수가 너무 많아져서 쿼리길이기 길어지는 경우를 대비하여 max-allowed-packet 길이를 조절해야 함. INSERT INTO [Table Name] VALUES (1,...), (2,...),.. DATABASE/MYSQL 2022. 10. 9. [MySQL] 데이터베이스에서 데드락(Deadlock) 두개 이상의 트랜잭션들이 동시에 진행될때 서로가 서로에 대한 락을 소유한 상태로 대기 상태로 빠져서 더이상 진행하지 못하는 상황을 데드락(deadlock)이라고 한다. 데드락은 트랜잭션을 지원하는 데이터베이스에서는 자주 발생하는 문제이다. 멀티 스레드(Multi-threaded) 어플리케이션에서 발생하는 데드락은 해당 어플리케이션을 완전히 멈추게 해버리기 때문에 위험하다. 하지만 일반적인 DBMS (Database Management System)에서는 데드락 탐지(Deadlock detection) 기능을 제공하기때문에 데드락이 발견되면 자동으로 해소시켜준다 (실제 데드락 상황이 아닐지라도 락에 대한 대기시간이 설정된 시간을 초과하면 이것도 데드락으로 처리된다) 이 과정에서 작업중이던 트랜잭션들 중 일.. DATABASE/MYSQL 2022. 10. 4. 이전 1 다음