전체 글 16

timestamp 이용하여 테이블 복구(Table recovery using timestamp)

최근 사이트에서 고객이 특정 테이블의 패스워드컬럼에 DML를 실수로 날리고 commit했다고 하여 DML 전 시점으로 변경을 해달라고 요청이 왔다. 일단 undo_retention 확인하였고 정확히 기억은 안나지만 10시간정도 설정 되어있었던 것 같다. (show parameter undo) 일단 테이블명 확인 후 이 전 값으로 되돌려야하는 테이블의 컬럼명과 특정값 몇개를 제공받았다. 고객이 정확한 DML 시점을 몰라서 30분 단위로 조회해서 값이 틀려지는 부분을 체크하였다. ============================================================================================ 과거 시간별 Values 조회 ===================..

Oracle 2023.07.04

cubrid 백업 스크립트

실제 고객사에서 사용하는 스크립트이다. incre는 받지않고 full 만 받는다. (full backup과 log file(오라클의 archive?)로 최종 log file 시점까지 복구가 가능하다고 들었다 - 실제로 해본적은 없다.) ########################################################################### full ########################################################################### #! /bin/bash #------------------------------------------------------------------------------- # set CUBRID en..

ETC. 2023.07.03

log file parallel write wait event

작년에 log file parallel write wait event 가 alert에 발생하였고, DB가 거의 마비되는 현상이 있었다. 당시 기억이 잘 나진 않지만.. session kill을 했고 redo log를 꽤 많이 추가했었다. 그리고 해당 테이블이 로그성 테이블이고 복구 포인트에서 중요도가 낮은걸 확인하였고, 담당자와 개발자분들과 협의하고 nologging으로 변경하였고 이 후 해당 메세지는 사라졌다. ============================================================================================ ALERTLOG 와 해당 시간대 AWR 확인 ===============================================..

Oracle 2023.07.03

archive log 보관 주기 설정(Set the archive log retention period)

유닉스 계열은 자주 쓰다보니 외우고 있지만 윈도우는 잘 안쓰다보니 찾아볼때가 있다. 보통 작업스케줄러나 crontab에 bat, sh 파일 만들어서 걸어놓고 사용하거나, export, hot backup script에 같이 집어 넣어서 사용을 하는 경우가 많은 것 같다. 윈도우 forfiles /P D:\arch /M *.log /D -30 /C "cmd /c del @file" 유닉스, 리눅스 find /archive -name "*.log" -mtime +30 -exec rm {}\;

Oracle 2023.07.01

오라클 cpu 사용량 높은 프로세스 쿼리 조회 (How to query oracle cpu usage high process query)

가끔 사이트에서 서버 cpu가 높은 쿼리에 대해 알려달라는 경우가 있다. 간단하게 cpu가 높은 쿼리를 추출하는 SQL이다. ============================================================================================ 1. SQL) select c.sql_text , b.SID ,b.SERIAL# , b.machine , b.OSUSER , b.logon_time from v$process a, v$session b, v$sqltext c where a.addr = b.paddr and b.sql_hash_value = c.hash_value and a.spid = '#spid' order by c.PIECE / ==========..

Oracle 2023.06.29

ORACLE 로그마이너 간단한 사용법(how to use ORACLE simplely logminer)

============================================================================================ 1. dbms_logmnr_d.build 프로시저에 정보등록 (그냥 리두로그에 딕셔너리 생성 사용) ============================================================================================ begin dbms_logmnr_d.build(options=>dbms_logmnr_d.store_in_redo_logs) end; / ================================================================================..

Oracle 2023.06.29