새싹 DBA/Oracle 47

[오라클] UNDO Tablespace 재사용과 RETENTION GUARANTEE/NOGUARANTEE 완전 정리

UNDO 테이블스페이스가 자동으로 재사용되는 원리RETENTION GUARANTEE와 NOGUARANTEE 차이사용량/상태/설정값 확인용 원샷 쿼리 예제✅ 1️⃣ UNDO 테이블스페이스의 재사용 개념UNDO 테이블스페이스(undotbs)는 커밋되지 않은 트랜잭션의 롤백을 위해, 그리고 쿼리 일관성을 위해 변경 전 데이터를 저장👉 UNDO는 공간을 순환(recycle)해서 재사용하도록 설계되어 있음.커밋되면 undo 블록은 expired 상태로 전환expired undo는 새 트랜잭션이 필요하면 재사용 가능✅ 하지만 재사용이 안 되는 경우ACTIVE 상태: 현재 트랜잭션이 사용 중UNEXPIRED 상태: retention 기간이 지나지 않음 + 공간 여유가 있어 유지✅ 2️⃣ RETENTION GUARA..

새싹 DBA/Oracle 2025.06.30

[오라클] Temp/Undo 실시간 모니터링 쉘 스크립트

-- Temp 테이블스페이스 조회 스크립트-- temp.sqlset timing offset feedback offset lines 1000set pages 1000col session_info heading "SID,Serial#" format a20col "SIZE" format 99,999,999col tablespace_name format a15col module format a50set heading offselect '------[[ 각 User Session별 사용량 ]] --------' from dual;set heading onselect tablespace tablespace_name , to_char(s.sid) || ',' || to_char(s.serial#) sessi..

새싹 DBA/Oracle 2025.06.30

[오라클] Asm 영역에 Expdp 덤프 내리기

파일서버에 용량이 없을때 Asm에 dump를 내리는 방법.✅ 1. grid 계정으로 서버 접속 - Asm 영역의 서버 유저는 grid이므로✅ 2. ASM에 디렉토리 생성 (ASMCMD)방법 ①: asmcmd 사용(서버) —추천asmcmdASMCMD> cd +DATA/DIGWDB/ASMCMD> mkdir dpdump방법 ②: SQL에서 DBMS_DISKGROUP 사용 (11g 이상)-- SYS 권한 필요exec dbms_diskgroup.create_directory('DATA/DIGWDB','dpdump');✅ 3. Oracle에서 DIRECTORY 객체 생성 (SQL)CREATE OR REPLACE DIRECTORY dp_dir AS '+DATA/DIGWDB/dpdump';—권한 있을시 생략가능GRA..

새싹 DBA/Oracle 2025.06.20

[오라클] app 계정 profile 설정

app와 같은 응용 관련 계정같은 경우 한번 password를 정하게되면 바꾸기도 힘들고 계속 운용되어야하기 때문에 거의 모든 프로젝트에서 profile을 별도로 생성하고 부야하여 관리한다. 보안에 위배될수 있지만 그렇지 않으면 관리하기가 너무 어렵다.profile 중 설정되어야하는 값idle_time = kernel unlimitedpassword_lifetime = password unlimitedpassword_reuse_time = password unlimited Create Profile Profile_app limitsessions per_user defaultcpu_per_session defaultcpu_per_call defaultconnect_time defaultidle_time u..

새싹 DBA/Oracle 2025.05.27

[오라클] 오라클 RAC scope= spfile sid= '*' 적용안됨

오라클 RAC 환경에서 서버 메모리 증설 작업을 하게되어 sga_max_size, sga_target 파라미터 변경 작업을 하던 중 마주한 문제.ALTER SYSTEM SET SGA_MAX_SIZE=27G scope=spfile sid =‘*’ ;파라미터를 변경했는데도 1번 인스턴스의 파라미터 값이 요지부동인거..이유를 찾아서 pfile 을 열어보니 현재 상황 요약 • DB는 SPFILE로 부팅됨 • ALTER SYSTEM SET sga_max_size = 26G SCOPE=SPFILE SID='*'; 수행했지만 • SPFILE을 PFILE로 내려보니→ *.sga_max_size=...이 아니라→ inst1.sga_max_size=26G 이런 식으로 박힘 • 결과적으로 인스턴스 1만 반영되고 인스턴스 2..

새싹 DBA/Oracle 2025.04.10

[오라클] 메모리 증설 SGA PGA 서버 작업까지

리눅스 서버에서 메모리 증설 후 Oracle SGA/PGA 조정 절차 (완벽 정리)✅ 1. 리눅스 서버에서 할 작업💡 물리적 메모리 증설이 완료된 상태에서 진행 1️⃣ 현재 시스템 메모리 확인free -g # GB 단위로 확인증설전 → 증설후MemTotal: 16384 MB # 기존 16GBMemTotal: 32768 MB # 증설 후 32GB 2️⃣ 리눅스 커널 매개변수 조정 (shmmax, shmall 설정)Oracle은 **공유 메모리(shared memory)**를 사용하므로, shmmax, shmall 값을 조정해야한다. (잘못하면 DB 안올라옴 )vi /etc/sysctl.conf📌 설정 변경 (메모리 32GB 기준 예제)kernel.shmmax = 307698..

새싹 DBA/Oracle 2025.03.21

[오라클] Rman 백업 / 복구 기술

RMAN(Recovery Manager)?오라클에서 제공하는 백업, 복구 유틸리티이다. 예전에는 Begin End 백업을 많이 사용했지만, 요즘 회사 중요 메인 시스템의 경우 오라클을 RAC의 ASM을 많이 사용하는 추세라 RMAN을 이용한 백업은 필수가 되어가고 있다.RMAN의 이점성능백업을 parallel로 병렬 처리가 가능하다.압축백업 압축률을 설정해 중복된 데이터가 많다면 백업 용량을 줄일 수 있다.기본 압축 옵션은 basic이다.증분 백업db의 데이터가 50에서 100 테라가 넘는다면 Incremental 백업을 이용해 하루에 증가되는 데이터만 백업할 수 있다.암호화암호화를 해서 백업이 가능하다.백업하는 내용Data FileControl FileParameter FileArchived Redo ..

새싹 DBA/Oracle 2025.02.12

[오라클] ASM 디스크 추가(oracleasm, AFD tool)

--ASM 디스크 내용 확인SELECT DISK.PATH, DG.NAME "DISKGROUP", DG.STATE, DG.TYPE FROM V$ASM_DISKGROUP DG, V$ASM_DISK DISK WHERE DG.GROUP_NUMBER = DISK.GROUP_NUMBER; -- ASM 인스턴스에 연결되어 있는 DISK GROUPSELECT GROUP_NUMBER, NAME, TYPE, STATE FROM V$ASM_DISKGROUP; -- 각 디스크 그룹 별 세부 정보 SELECT GROUP_NUMBER, DISK_NUMBER, NAME, MOUNT_STATUS, PATH, TOTAL_MB, FREE_MB FROM V$ASM_DISK ORDER BY 1,3;-- 여기서 path 에 /dev/..

새싹 DBA/Oracle 2025.01.22

ASH, AUTO SESSION HISTORY ( feat. v$session, dba_hist_active_sess_history)

ASH는 실시간 세션(Actvie Session)의 활동 정보, SQL 수행 빈도 등의 정보를 1초 간격으로 수집(1초 이상 수행된 SQL)SGA > Shared Pool > ASH Buffer영역에 보관해뒀다가 가득 차게 되면 AWR로 내려씁니다.ASH buffer size (목표:1시간동안의 시스템활동을 저장할수 있도록) select pool,bytes from v$sgastat where name = 'ASH buffers';ASH 정보를 디스크로 내려 쓰는 역할을 담당하는 Background Process는 MMNLASH 최대 보관된 시간 조회 select max(sample_date) - min(sample_date) as interval_time from v$active_session_hi..

새싹 DBA/Oracle 2024.12.10

RMAN 으로 ARCHIVE LOG 삭제

Archivelog 삭제 방법 파일시스템 상에서 직접 Archivelog File을 삭제해도 상관없으나, RMAN에선 파일시스템에서 삭제된 Archivelog File을 아직 보존하고 있는 상태로 인식해서 RMAN Backup 시 아래와 같은 에러가 나타나는 경우가 있다.RMAN-06059: expected archived log not found, lost of archived log compromises recoverability 이러한 경우 아래와 같이 crosscheck 명령어를 이용하여 실제로 존재하지 않는, 만료된 Archivelog File를 정리해주면 해결이 되지만 RMAN 내부에서 Archivelog를 삭제하는것이 제일 바람직하다. 만료된 Archivelog File 정리RMAN> cro..

새싹 DBA/Oracle 2024.11.15