전체 글 83

[ORACLE] ASM 아카이브로그 삭제

1. nmon을 먼저 확인하자. nmon은 모니터링 툴로 서버의 cpu, memory를 볼 수 있다. cpu, memory 사용량이 얼마 되지 않는데 db 접속이 안된다면 99.9 % 확률로 아카이브 로그에 문제가 있는거다.(쉘에서 df -h 명령어로 사용량을 볼 수 있지만 ASM 환경은 조회되지 않는다.) 2. alert.log 확인alert.log 확인 방법은 두가지가 있는데,   1) 직접 파일이 있는곳으로 찾아 들어가서 보는거 (보통 설치시 엔지니어분이 alias = alert (알러트로그 경로) 로 등록해심)  2) ADRCI 접속 후 조회  > adrci >help(명령어보기) >show alert 3. (백업 받고) 아카이브로그 지우기 ASM 환경에서 아카이브 로그를 지우는 것 역시 두가지 ..

새싹 DBA/Oracle 2024.08.30

[오라클] ASM 확인

1. 유저 확인ASM 환경에서는 보통 Clusterware 계정(grid) , DBMS(oracle) 계정 2개가 있다. 2. bash_profile 확인clusterware, DBMS 엔진은 별도의 디스크를 할당하고 각각의 base와 home이 있다. # su - grid> cat .bash_profileGRID_SID=+ASMGRID_BASE=/grid/dbGRID_HOME=/grid/db/product/19.0.0... 경로가 잘 잡혀있는지 보고--만약 클러스터웨어 계정명이 생각나지 않으면 > cat /etc/passwd3. 환경 확인$ora> env| grep ORA환경 설정이 잘못되어있으면 바꿔주자. 나같은 경우 grid 계정의 HOME 주소가 이 오라클계정 home 으로 되어있는걸 확인했고 바..

새싹 DBA/Oracle 2024.08.22

[오라클] 휴지통 비우기

-- 휴지통 비우기SELECT 'PURGE '||TYPE||' '||OWNER||'."'||OBJECT_NAME||'";' DML FROM DBA_RECYCLEBIN A WHERE A.OWNER LIKE 'OBT%' AND A.TYPE 'LOB' ORDER BY SPACE DESC; --휴지통 내용 SHOW RECYCLEBIN; -- 테이블 복원FLASHBACK TABLE 테이블명 TO BEFORE DROP; -- 휴지통에서 완전 삭제-- 테이블 완전 삭제 PURGE TABLE OWNER.테이블명 ; --인덱스 완전 삭제PURGE INDEX OWNER.인덱스명;--특정 테이블스페이스의 전체 객체 삭제PURGE TABLESPACE [TBS명];-- 특정 테이블스페이스의 특정 스키마 삭제PURGE..

새싹 DBA/Scripts 2024.08.19

[오라클] 락 정보 조회 및 kill session 스크립트

오라클 락 정보 조회 및 kill sessiondbms_datapump 패키지를 사용하면서 펌프 작업중 발생하는 에러를 출력하려다 lock 걸려있는 impdp 작업 조회, kill session 후 락테이블 삭제하는 작업을 진행함.>>간단조회 select * from v$locked_object;SELECT /*+ ordered */ LEVEL lvl, NVL (s.blocking_session, s.sid) lck_hold, CASE WHEN s.blocking_session IS NOT NULL THEN s.sid END ..

새싹 DBA/Scripts 2024.08.16

DATAPUMP LOG 파일 읽기 API

DATAPUMP LOG 파일 읽기 API서버 들어가서 로그파일 확인할 필요 없이데이터 펌프 로그를 읽는 패키지를 써서 툴로 로그파일 읽는 스크립트.DECLARE V1 VARCHAR2(200); --32767F1 UTL_FILE.FILE_TYPE; BEGIN F1 := UTL_FILE.FOPEN('DATA_PUMP_DIR','INIT_BK_TB_RC_JEJU_12_20190910.LOG','R'); Loop BEGIN UTL_FILE.GET_LINE(F1,V1); dbms_output.put_line(V1); EXCEPTION WHEN No_Data_Found THEN EXIT; END;end loop;IF UTL_FILE.IS_OPEN(F1) THEN dbms_output.put_line..

새싹 DBA/Scripts 2024.08.16

[ORACLE] INDEX 의 모든것 (PARTITION INDEX GLOBAL LOCAL PREFIXED)

1. Partitioned Index / Non - Partitioned Index  Non-Partitioned Index는 하나의 루트 노드에서 리프 노드까지 전체적인 균형을 유지하는 구조를 갖고 있다.반면, Partitioned Index는 각 파티션이 독립적인 루트 노드와 리프 노드를 가지며, 각 파티션이 자체적으로 균형을 유지 이로 인해 대용량 테이블에서 Global Index의 깊이는 매우 깊어질 수 있는 반면,Partitioned Index는 파티션별로 관리되므로 인덱스의 깊이가 얕아지고,파티션 단위로 인덱스를 관리할 수 있어 병렬 처리에 의한 인덱스 관리에 매우 효과적이다. Partitioned Index는 검색 조건에 인덱스 파티션 키가 포함된 경우에만 해당 인덱스 파티션을 검색하여 성능..

새싹 DBA/Oracle 2024.08.12

select_catalog_role 과 select any dictionary 차이

select_catalog_role , select any dictionary 차이select_catalog_role 을 dba_sys_privs, dba_role_privs 해도 안나오는거임 ㅠㅠ  일단 젤 중요한거 SELECT_CATALOG_ROLE 은 롤이다.SELECT ANY DICTIONARY 는 시스템권한 system privilege 이다.  select_catalog_role 에는 hs_admin_select_role 이라는 롤이 한번 더 부여되있고dba_tab_privs 뷰에서 grantee = hs_admin_select_role 을 조회해보면 sys 가 가지고 있는 object 를 조회할 수 있는 select 권한이 object 딴에 부여되어있다. (롤에 시스템 권한을 부여하는 것이 ..

새싹 DBA/Oracle 2024.08.06