Oracle Database
-
얼마 전에 고객사에 ORA-00257 에러가 발생하였다. 해당 고객사는 Crontab으로 7일 이후의 Archive Log는 삭제하는 스크립트를 걸어놨음에도 250G의 +RECO DIskgroup이 Full이 차는 일이 발생하였다. 우서 장애처리를 위해서 Archive log를 5일 치 남기고 삭제하여 해결하기는 하였으니 이후 왜 Archive log가 Full이 찾는지 원인을 찾기 시작하였다. ■ 장애 발생 - RECO DISKGROUP 의 Free_MB가 236이다. - RECO DISKGROUP에서 ARCHIVE LOG가 249G를 차지하고 있다. State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usab..
[ ORACLE ] ORA-00257 archiver error얼마 전에 고객사에 ORA-00257 에러가 발생하였다. 해당 고객사는 Crontab으로 7일 이후의 Archive Log는 삭제하는 스크립트를 걸어놨음에도 250G의 +RECO DIskgroup이 Full이 차는 일이 발생하였다. 우서 장애처리를 위해서 Archive log를 5일 치 남기고 삭제하여 해결하기는 하였으니 이후 왜 Archive log가 Full이 찾는지 원인을 찾기 시작하였다. ■ 장애 발생 - RECO DISKGROUP 의 Free_MB가 236이다. - RECO DISKGROUP에서 ARCHIVE LOG가 249G를 차지하고 있다. State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usab..
2021.12.14 -
유지보수하고있는 고객사에서 겪었던 Shrink Space에 대해 포스팅할 예정이다. 같은 Table을 같고있는 운영 유저(Lee) / 개발 유저(Lee2) 의 select count(*) 에서 시간 차이가 발생하고있다는 문의를 받아 진행하게되었다. 두개의 Table의 Row수는 운영유저(Lee)가 2배정도 많았지만 시간은 26배 더 오래걸렸다. ■ 운영유저(Lee) Count 시간 - 4G Table 34011 rows를 조회하는데 26초의 시간이 걸렸다. ##COUNT(*) 26초 걸림 SQL> SET TIMING ON; SQL> select count(*) from T_CPN_PTN_SHP; COUNT(*) ---------- 34011 Elapsed: 00:00:26.72 ■ Table Block ..
[ Oracle ] Shrink Space 경험유지보수하고있는 고객사에서 겪었던 Shrink Space에 대해 포스팅할 예정이다. 같은 Table을 같고있는 운영 유저(Lee) / 개발 유저(Lee2) 의 select count(*) 에서 시간 차이가 발생하고있다는 문의를 받아 진행하게되었다. 두개의 Table의 Row수는 운영유저(Lee)가 2배정도 많았지만 시간은 26배 더 오래걸렸다. ■ 운영유저(Lee) Count 시간 - 4G Table 34011 rows를 조회하는데 26초의 시간이 걸렸다. ##COUNT(*) 26초 걸림 SQL> SET TIMING ON; SQL> select count(*) from T_CPN_PTN_SHP; COUNT(*) ---------- 34011 Elapsed: 00:00:26.72 ■ Table Block ..
2021.11.24 -
오늘은 Oracle Database에서 필수적으로 필요한 Background Process에 대해서 글을 써볼 생각이다. Oracle 필수 Background Process는 Oracle Server가 시작되면서 함께 시작되고 Oracle Server가 종료되면 같이 종료된다. * 필수 Background Process중 하나가 죽게되면 Oracle Server는 죽게된다. DBWR ( Database Writer ) - DBWR은 Database Buffer-Cache에서 변경 완료후 저장되어야하는 블록 ( Dirty Block )을 데이터 파일로 저장하는 역할을 한다. - DBWR은 기본적으로 DBW0 하나가 작동을 하지만 I/O가 많이 추가로 더 필요한 경우 DBW1 ~ DBW9를 동시에 사용하여 ..
[ Oracle ] 필수 Background Process오늘은 Oracle Database에서 필수적으로 필요한 Background Process에 대해서 글을 써볼 생각이다. Oracle 필수 Background Process는 Oracle Server가 시작되면서 함께 시작되고 Oracle Server가 종료되면 같이 종료된다. * 필수 Background Process중 하나가 죽게되면 Oracle Server는 죽게된다. DBWR ( Database Writer ) - DBWR은 Database Buffer-Cache에서 변경 완료후 저장되어야하는 블록 ( Dirty Block )을 데이터 파일로 저장하는 역할을 한다. - DBWR은 기본적으로 DBW0 하나가 작동을 하지만 I/O가 많이 추가로 더 필요한 경우 DBW1 ~ DBW9를 동시에 사용하여 ..
2021.09.11 -
테이블의 데이터를 읽는 방식으로는 크게 Full Table Scan, Index Range Scan으로 나뉜다. 일반적으로 Full Table Scan은 느리다고 생각되어 쓰지 않으려고 하는 경향이 있다. 하지만 DW 용도로 Database를 사용하는 경우 Full Table Scan이 필수적으로 사용되는 경우가 있다고 한다. 그래서 이번에는 Full Table Scan에 대해 공부해보려고한다. FULL TABLE SCAN (FTS) 1) FTS이 발생하는 경우 상황 설명 적용 가능한 인덱스가 없는 경우 적용할 인덱스가 있지만 칼럼 가공, 연산으로 인해 인덱스 사용이 불가능할때 넓은 범위의 데이터 액세스 인덱스 처리 범위가 넓어 전체 테이블 스캔이 더 적은 비용이 들경우 Tull Table Scan을 적..
[ORACLE] Full Table Scan 이해하기테이블의 데이터를 읽는 방식으로는 크게 Full Table Scan, Index Range Scan으로 나뉜다. 일반적으로 Full Table Scan은 느리다고 생각되어 쓰지 않으려고 하는 경향이 있다. 하지만 DW 용도로 Database를 사용하는 경우 Full Table Scan이 필수적으로 사용되는 경우가 있다고 한다. 그래서 이번에는 Full Table Scan에 대해 공부해보려고한다. FULL TABLE SCAN (FTS) 1) FTS이 발생하는 경우 상황 설명 적용 가능한 인덱스가 없는 경우 적용할 인덱스가 있지만 칼럼 가공, 연산으로 인해 인덱스 사용이 불가능할때 넓은 범위의 데이터 액세스 인덱스 처리 범위가 넓어 전체 테이블 스캔이 더 적은 비용이 들경우 Tull Table Scan을 적..
2021.09.10 -
오늘은 고객사에서 문의가 들어왔던 Query 튜닝 관련하여 글을 쓸예정이다. 고객사는 기존에 쓰던 Query에 Function이 들어가게되면서 속도저하가 일어나게되었고 튜닝을 해달라고 하였다. TEST환경을 만들어 재구현을 해볼 예정이다. TEST DATA 생성 - 우선 TEST TABLE / Function을 만들었다. ** 1.TEST DATA 생성 ** SQL>CREATE TABLE MAXTEST(COLA VARCHAR2(20), COLB NUMBER, COLC NUMBER, COLD VARCHAR2(30), COLE VARCHAR2(30), COLF VARCHAR2(30), COLG NUMBER, COLH VARCHAR2(30), COLI VARCHAR2(30), COLJ VARCHAR2(30))..
[ Oracle ] Select절 Function 튜닝오늘은 고객사에서 문의가 들어왔던 Query 튜닝 관련하여 글을 쓸예정이다. 고객사는 기존에 쓰던 Query에 Function이 들어가게되면서 속도저하가 일어나게되었고 튜닝을 해달라고 하였다. TEST환경을 만들어 재구현을 해볼 예정이다. TEST DATA 생성 - 우선 TEST TABLE / Function을 만들었다. ** 1.TEST DATA 생성 ** SQL>CREATE TABLE MAXTEST(COLA VARCHAR2(20), COLB NUMBER, COLC NUMBER, COLD VARCHAR2(30), COLE VARCHAR2(30), COLF VARCHAR2(30), COLG NUMBER, COLH VARCHAR2(30), COLI VARCHAR2(30), COLJ VARCHAR2(30))..
2021.09.09 -
오늘은 Oracle Session Kill에대해 글을 써보도록하겠습니다. Database를 운영하다보면 특정 Session 을 Kill해야 하는일이 생기게된다. 자주 발생하는 예로는 Lock이 발생하였을때 Lock 을 유발시킨 Session을 Kill하게 됩니다. Session 확인 USERNAME이 LEE인 USER의 SID,SERIAL#을 확인하였다. SQL> select username,sid,serial#,status from v$session where username='LEE'; USERNAME SID SERIAL# STATUS ------------------------------ ---------- ---------- -------- LEE 191 5 INACTIVE Session KILL..
[ORACLE] KILL SESSION오늘은 Oracle Session Kill에대해 글을 써보도록하겠습니다. Database를 운영하다보면 특정 Session 을 Kill해야 하는일이 생기게된다. 자주 발생하는 예로는 Lock이 발생하였을때 Lock 을 유발시킨 Session을 Kill하게 됩니다. Session 확인 USERNAME이 LEE인 USER의 SID,SERIAL#을 확인하였다. SQL> select username,sid,serial#,status from v$session where username='LEE'; USERNAME SID SERIAL# STATUS ------------------------------ ---------- ---------- -------- LEE 191 5 INACTIVE Session KILL..
2021.08.27 -
RMAN 백업에서 테이블 및 테이블 파티션 복구 목적 - RMAN을 사용하면 나머지 데이터베이스 개체에 영향을 주지 않고 하나 이상의 테이블 또는 테이블 파티션을 지정된 시점으로 복구할 수 있습니다. 이전에 생성한 RMAN 백업을 사용하여 테이블과 테이블 파티션을 지정된 시점으로 복구할 수 있습니다 테이블 및 테이블 파티션을 복구하는 데 필요한 백업 - 테이블 또는 테이블 파티션을 복구하려면 UNDO, SYSTEM, SYSAUX, 및 테이블 또는 테이블 파티션이 포함된 테이블스페이스 의 전체 백업이 있어야 합니다. RMAN 백업에서 테이블 및 테이블 파티션 복구의 제한 사항 1. SYS스키마에 속한 테이블 및 테이블 파티션 은 복구할 수 없습니다. 2. 테이블과에서 테이블 파티션 SYSTEM과 SYSAU..
[ORACLE] Oracle Cloud Rman Recovery Table ( 테이블 복구 )RMAN 백업에서 테이블 및 테이블 파티션 복구 목적 - RMAN을 사용하면 나머지 데이터베이스 개체에 영향을 주지 않고 하나 이상의 테이블 또는 테이블 파티션을 지정된 시점으로 복구할 수 있습니다. 이전에 생성한 RMAN 백업을 사용하여 테이블과 테이블 파티션을 지정된 시점으로 복구할 수 있습니다 테이블 및 테이블 파티션을 복구하는 데 필요한 백업 - 테이블 또는 테이블 파티션을 복구하려면 UNDO, SYSTEM, SYSAUX, 및 테이블 또는 테이블 파티션이 포함된 테이블스페이스 의 전체 백업이 있어야 합니다. RMAN 백업에서 테이블 및 테이블 파티션 복구의 제한 사항 1. SYS스키마에 속한 테이블 및 테이블 파티션 은 복구할 수 없습니다. 2. 테이블과에서 테이블 파티션 SYSTEM과 SYSAU..
2021.08.25 -
오늘은 Oracle Cloud에서 제공하고 있는 PasS 상품인 ATP에 대해서 써 볼 생각이다. 고객사에서 ATP로 Database를 이관후 Query 성능 Test를 원하고 있어 진행해 보았다. ATP란 ? ATP는 OCI에서 제공하는 완전 관리형 상품( PasS )이다. 이 서비스는 데이터베이스의 프로비저닝, 구성, 튜닝, 확장, 패치, 암호화 및 복구를 자동화합니다. 또한 이 서비스에는 Real Application Clusters(RAC), 다중 테넌트, 파티셔닝, 인 메모리, 고급 보안, 고급 압축과 같은 Oracle의 고급 데이터베이스 옵션이 모두 포함됩니다. 자율 운영 자동 프로비저닝 내결함성과 가용성이 뛰어난 데이터베이스를 몇 분 안에 배포합니다. 자동 확장 다운타임 없이 성능 및 처리량..
[Oracle] Oracle Cloud ATP 생성 & 접속 방법오늘은 Oracle Cloud에서 제공하고 있는 PasS 상품인 ATP에 대해서 써 볼 생각이다. 고객사에서 ATP로 Database를 이관후 Query 성능 Test를 원하고 있어 진행해 보았다. ATP란 ? ATP는 OCI에서 제공하는 완전 관리형 상품( PasS )이다. 이 서비스는 데이터베이스의 프로비저닝, 구성, 튜닝, 확장, 패치, 암호화 및 복구를 자동화합니다. 또한 이 서비스에는 Real Application Clusters(RAC), 다중 테넌트, 파티셔닝, 인 메모리, 고급 보안, 고급 압축과 같은 Oracle의 고급 데이터베이스 옵션이 모두 포함됩니다. 자율 운영 자동 프로비저닝 내결함성과 가용성이 뛰어난 데이터베이스를 몇 분 안에 배포합니다. 자동 확장 다운타임 없이 성능 및 처리량..
2021.08.24