본문 바로가기

전체 글176

[Oracle] RAC 개념 1. RAC란?여러 대의 서버(Node)가 하나의 데이터베이스를 공유해서 동시에 서비스하는 구성, 핵심은 "인스턴스 여러개, 데이터베이스는 하나"2. 노드(Node) vs 인스턴스(Instance)구분의미노드물리적/가상 서버 한 대 (하드웨어 레벨)인스턴스서버에서 실행되는 오라클 프로세스 + SGA(소프트웨어 레벨) 3. Shared Storage(공유 스토리지)모든 노드가 동일한 데이터파일, 컨트롤파일, Redolog에 접근(ASM을 주로 사용)4. Interconnect(프라이빗 네트워크)각 노드가 어떤 데이터 블록을 메모리(Buffer Cache)에 가지고 있는지, 누가 그 블록을 수정하려 하는지 등의 정보를 실시간으로 주고받는 노드 간 전용 네트워크5. Thread단일 인스턴스는 thread#=1.. 2026. 8. 24.
[SQL] 옵티마이저 옵티마이저SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리 경로를 생성해 주는 DBMS의 핵심 엔진사용자가 SQL로 결과 집합을 요구하면 처리경로는 DBMS에 내장된 옵티마이저가 실행 계획을 생성 옵티마이저 종류규칙 기반 옵티마이저(RBO, Rule-Based Optimizer): '휴리스틱 옵티마이저' 라고 불리며, 미리 정해 놓은 규칙에 따라 액세스 경로를 평가하고 실행 계획 선택액세스 경로별 우선순위: 인덱스 구조, 연산자, 조건절 형태가 순위를 결정짓는 주 요인비용 기반 옵티마이저(CBO, Cost-Based Optimizer): 비용을 기반으로 최적화를 수행비용(Cost): 쿼리를 수행하는데 소용되는 일량 또는 시간을 의미테이블과 인덱스에 대한 여러 통계 정보를 기초로 오퍼레이션 단.. 2026. 5. 31.
[Linux] 계정 잠금 설정(PAM - faillock) 세션 차단(SSH - MaxAuthTries)과 계정 잠금(PAM - faillock) 비교구분SSH의 MaxAuthTriesPAM의 faillock담당 구역네트워크 원격 접속 창 (ssh 명령)리눅스 운영체제(OS) 자체 (su, 콘솔 등)제어 파일/etc/ssh/sshd_config/etc/security/faillock.conf틀렸을 때 현상접속 세션이 끊어짐 (팅겨나감)계정 자체가 락(Lock)이 걸림해제 방법그냥 ssh 명령을 다시 실행하면 됨root 계정으로 faillock --reset 해야 함PAM 접속 잠금 설정 1. authselect로 베이스 프로필 활성화CentOS 8, Rocky Linux 등 최신 리눅스 환경에서는 /etc/pam.d/system-auth 파일을 손으로 직접 .. 2026. 5. 27.
[Linux] 리눅스 사용자 계정 잠김(PAM/SSH) Oracle DB 작업을 위해서 계정 스위칭을 하다가 비밀번호를 여러 번 틀려 계정이 잠긴 상황[gwon@orcl ~]$ su - oraclePassword:su: Authentication failure또는 SSH 접속 실패로 계정이 잠긴 상황에서 패스워드를 정확히 작성해도 접속이 안되는 상황login as: oracleoracle@192.168.101.101's password:Access deniedoracle@192.168.101.101's password:Access deniedoracle@192.168.101.101's password:Access deniedoracle@192.168.101.101's password:Access deniedoracle@192.168.101.101's pass.. 2026. 5. 27.
[Oracle] RMAN 수정 블록 추적(BCT) 수정 블록 추적이란?Oracle Database에서 증분 백업(Incremental Backup)의 속도를 끌어올리기 위한 기능입니다. BCT의 사용 여부의 차이BCT 없을 때(OFF): RMAN은 Level 1 백업을 시작하면 데이터 파일의 모든 블록을 하나하나 읽고 SCN을 비교한 다음 증분백업을 진행 합니다.BCT 있을 때(ON): Level 1 백업을 진행 시 BCT 파일을 통해 변경된 블록만 읽어 속도가 빠르고 CPU 부하가 적습니다. 수정 블록 추적(BCT) 명령ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/PATH/bct_file.bct';BCT 기능을 켜고, BCT 파일은 '/PATH' 경로에 bct_file.bct로 생성 RAC 환.. 2026. 5. 18.
[Oracle] Data Pump(expdp/impdp) 커맨드 모음 Oracle Data Pump(expdp/impdp) 커맨드 정리 1. EXPORT(expdp) expdp directory= dumpfile= logfile= -- 데이터 필터링 관련 옵션[full={Y | N}] -- 전체 DB 백업 여부[schemas=] -- 특정 스키마(사용자)만 백업 [tables=] -- 특정 테이블만 백업[tablespaces=] -- 특정 테이블스페이스만 백업[content={ALL | DATA_ONLY | METADATA_ONLY}] -- 백업할 데이터 범위 선택[exclude={OBJECT_TYPE | STATISTICS}] -- 제외할 객체[include={OBJECT_TYPE | STATISTICS}] -- 포함할 객체[query="wh.. 2026. 5. 12.
[Oracle] RMAN 커맨드 1. RMAN 접속 TARGET [사용자계정]@[서비스명] AS [권한]-- 로컬에서 바로 접속$ rman target / -- 보조DB 접속$ RMAN AUXILIARY SYS/PWD@AUX_STRING -- 운영자 권한으로 복제를 위한 접속RMAN> TARGET "sbu@prod AS SYSDBA" AUXILIARY "sbu@dupdb AS SYSDBA";-- SYSBACKUP 권한으로 복제를 위한 접속RMAN> TARGET "sbu@prod AS SYSBACKUP" AUXILIARY "sbu@dupdb AS SYSBACKUP"; -- SYSBACKUP 권한으로 접속RMAN> CONNECT TARGET "sbu@inst1 AS SYSBACKUP"; -- SYSDBA 권한으로 접속RMAN> CONN.. 2026. 5. 10.
[Oracle] 락(Lock) 과 래치(Latch) 락(Lock)과 래치(Latch)는 모두 "동시성을 제어하기 위한 잠금 장치"라는 점은 같지만, 그 목적과 작동 방식은 다릅니다.1. 락(Lock)데이터베이스의 무결성을 지키는 것이 주 목적입니다.대상: 테이블, 행(Row) 등 사용자가 관리하는 데이터(Object)지속 시간: 트랜잭션이 시작될 때 걸리고, COMMIT이나 ROLLBACK을 할 때 풀립니다.관리: Database 레벨에서 트랜잭션 단위로 관리되며, 데드락(Deadlock) 감지 메커니즘이 있습니다.공유: 여러 종류(Shared, Exclusive 등)가 있고 복잡한 큐(Queue)를 통해 관리됩니다. 2. 래치(Latch)SGA(System Global Area)와 같은 공유 메모리 구조가 깨지지 않게 보호하는 것이 주 목적입니다.대상:.. 2026. 4. 27.
[Oracle] 테이블 액세스 최소화 테이블 액세스 최소화 전략테이블 액세스는 인덱스를 타고 테이블로 향하는 비용(Cost)입니다. 액세스 최소화는 그 비용을 최대한 줄이게 만드는 것 입니다.클러스터링 팩터(Clustering Factor): 같은 데이터가 모여 있는 정도인덱스 손익분기점: Index Range Scan의 효율이 Table Full Scan보다 떨어지는 지점(CF값과 데이터량에 따라 결정)인덱스 컬럼 추가 & 인덱스만 읽기: 가장 많이 보편적으로 사용되는 SQL 튜닝 기법으로 조회에 필요한 모든 컬럼이 인덱스에 포함인덱스 구조 테이블(오라클IOT): 테이블을 아예 인덱스처럼 만든다면?클러스터 테이블(SQL Server): 인덱스 기준으로 테이블을 만든다면? / 해시 검색이 빨라서 해시 기준으로 테이블을 만들면? 클러스터링 팩.. 2026. 4. 27.