DBA

개인 학습, 작업 기록용입니다. 올바르지 않은 정보가 있다면 댓글주시면 감사하겠습니다!

전체 글 40

[Oracle] NUM_INDEX_KEYS 힌트 사용시 INDEX 힌트 함께 사용하기

인덱스 구성된 컬럼을 사용할때 IN 조건절로 사용하게 되는 경우가 있음 인덱스 구성 컬럼 중 IN 조건절로 쓰이는 컬럼이 액세스 조건으로 사용되는지 필터조건으로 사용되는지에 따라 성능이 다르며 사용되는 경우에 따라 유리한 방법이 있다. ( ex) in 조건 개수가 많지않고 데이터가 여러 블록에 존재하는 경우, 액세스 조건으로 사용시 유리할 수 있음 ) 이럴때 num_index_keys 힌트를 사용하여 in 조건 컬럼을 액세스 조건으로 사용할지 필터 조건으로 사용할지 제어가능하다. -- 인덱스의 n번째 컬럼까지 액세스 조건으로 사용 /*+ num_index_keys(t ix_01 n) */ 개인 운영 노트) num_index_keys 힌트만으론 사용한 인덱스를 강제로 고정하지 않음 얼마전, 속도 저하 쿼리..

DATABASE/Oracle 2023.12.20

[Linux] SSH 접속 오류 해결하기 ( Host key verification failed )

기존 사용하던 서버를 밀고 다시 리눅스를 설치한 상황 scp 활용하여 원격지 서버로 파일이동하려하니 Host key verification failed. 뜸 OS가 새로 깔리면서 기존 서버의 키 정보가 변경됨 해결법 1) /.ssh/known_hosts 파일 직접 수정 해당 파일에서 기존에 남아있던 정보를 지운다. 2) ssh-keygen -R [IP] 명령어 실행하여 키 값 초기화 시킴 초기화 후 재 진행시 잘진행된다.

Linux 2023.12.19

[Oracle] DB 링크 생성, 조회, 사용 및 삭제

오라클 DB 링크 : 로컬 DB와 원격 DB 간 데이터 작업시 사용 로컬 서버 tnsnames.ora 파일에 원격지 DB 접속 정보 추가하여 사용하거나 추가없이 직접 접속 정보를 기술하여 사용할 수 있다. 1. DATABASE LINK 생성 create [public] database link [DBLINK명] connect to [USER NAME] identified by "[USER PASSWORD]" using '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.0)(PORT= 1521)) (CONNECT_DATA=(SERVICE_NAME=[서비스명])))'; * DB 구성에 따라 service_name = [서비스명] 또는 sid = [sid명] 을 사..

DATABASE/Oracle 2023.11.21

[Oracle] 통계정보 백업 및 복구, 자동통계정보 수집 기능 비활성화

--테이블 자동통계정보 수집 기능 테이블 단위 비활성화 begin DBMS_STATS.LOCK_TABLE_STATS('TEST_USER','TBL_PRICE'); end; --테이블 통계잠금해제 begin DBMS_STATS.UNLOCK_TABLE_STATS('TEST_USER','TBL_PRICE'); end; -- 통계정보 확인 select table_name, num_rows, blocks, empty_blocks, chain_cnt, avg_row_len, stale_stats, last_analyzed, sample_size from user_tab_statistics where table_name = 'XTMP_MBER'; select index_name, blevel, leaf_blocks,..

DATABASE/Oracle 2023.11.14

[Oracle] database shutdown hang ( ora-01013: user requested cancel of current )

오라클 서버 구축하는 과정에서 여러번의 shutdown 과정이 필요한데, shutdown immediate는 잘되나 shutdown 시 hang 걸림을 확인 shutdown 명령어 날렸는데 오랫동안 반응이 없음 /engn/oracle/diag/rdbms/orcldev/ORCLDEV/trace alert_sid.log trace 확인 결과, 활성화된 프로세스가 존재하여 대기중인 상태 60분간 대기하다 ora-01013: user requested cancel of current 에러 뱉고 shutdown 중단 다른 세션에서 shutdown abort 로 해결함 --롤백없이 모든 명령 종료 shutdown abort; --제한모드로 시작, DB정상시작 & 다른 유저 접속 불가 startup restrict;..

DATABASE/Oracle 2023.10.05

[Oracle] INDEX 생성 모니터링, REBUILD 와 DROP CREATE 시 차이

오라클의 인덱스 리빌드 와 DROP 하고 다시 재생성하는 것에 대해서 각각의 방법이 어떻게 진행되는지, 어떤 장/단점이 있는지 알아보았습니다. 인덱스 생성 모니터링 --temp 테이블스페이스 임시세그먼트 생성 select * from V$SORT_USAGE; --임시 세그먼트 인덱스 테이블스페이스로 이관 select * from DBA_SEGMENTS where segment_type = 'TEMPORARY'; 인덱스 리빌드 테이블스페이스에 임시 인덱스 세그먼트 생성 기존 인덱스의 지정 테이블스페이스에 이관 기존 인덱스 드랍 후 임시 인덱스를 기존 인덱스로 바꿈 ( 이 작업을 위해 테이블스페이스에 2개의 인덱스가 잠시 공존함) => 리빌드를 진행하게 된다면, temp tablespace 와 인덱스 지정 ..

DATABASE/Oracle 2023.08.25

[Oracle] 파라미터 변경 방법

앞서 파라미터 파일에 관하여 알아봤습니다. 이번에는 파일 수정 방법을 알아보겠습니다. DB 서버를 협력회사에 오픈하게 되면서, 특정 테이블의 select 권한만 가진 유저를 생성하였고, AUD$ 테이블에서 해당 유저가 실행한 ddl, dml 문의 sqltext 확인을 위해 audit_trail 파라미터 변경을 진행했습니다. 이때 진행한 파라미터 수정 방법을 기록해보겠습니다. 1. SPFILE, PFILE 인지 확인 우선 운영중인 DB가 SPFILE 방식인지 PFILE 방식인지 확인이 필요합니다. SQL> show parameter pfile; -> value 가 빈 값이면 pfile 방식, 값이 있으면 spfile 방식 2. ALTER SYSTEM 명령어를 통한 변경 여부 확인 SQL> select na..

DATABASE/Oracle 2023.08.25

[Oracle] 파라미터 파일 (spfile, pfile)

오라클 파라미터 파일 오라클의 환경을 설정하는 파일로 정적 파라미터파일과 오라클 9i부터 소개된 동적 파라미터 파일이 존재한다. 데이터베이스 기동 시에 파라미터 파일을 참조하여 SGA 및 기타 필요한 환경 구성함 PFILE 정적 파라미터, 오라클 모든 버전에서 사용가능 $ORACLE_HOME/dbs/initSID.ora 텍스트 형식, vi 편집기로 파라미터 수정가능 SPFILE 동적 파라미터, 오라클 .9i 부터 사용가능 $ORACLE_HOME/dbs/spfileSID.ora 바이너리 형태, 편집기로 변경 불가능 : pfile 수정 후 반영하거나 sql 명령어로 수정 파라미터 설정 변경 spfile 재기동 없이 파일 내용 적용 가능하나 조건에 따라서 아래 명령어를 통해 파라미터 변경 가능하다. spfil..

DATABASE/Oracle 2023.08.25

[Oracle] interval partition table 주기적으로 파티션 삭제하기

인터벌 파티션 테이블로 생성된 테이블의 일정 보관 기간이 지나면 데이터 삭제가 필요. oracle job 통해 배치 생성하여 주기적으로 데이터 관리 진행함 declare cursor c_del_partition is select object_name as tb_nm, subobject_name as partition_nm from ALL_OBJECTS where owner = [스키마명] and object_type = 'TABLE PARTITION' and generated = 'Y' -- 시스템생성여부 : 인터벌파티션의 경우 자동생성되므로 시스템생성여부가 Y임 and ( object_name = [인터벌파티션테이블명] and created < trunc(sysdate)-10 ) ; --10일보관 ; ..

DATABASE/Oracle 2023.07.11

[Oracle] SYS_CONTEXT 오라클 현재 세션 정보 확인

SYS_CONTEXT : 오라클의 세션정보를 얻어오는 함수로 namespace와 관계된 paramater의 값을 반환한다. 주로 사용하는 namespace는 USERENV USERENV : 현재 세션의 환경 정보를 반환하는 네임스페이스 주로 사용하는 USERENV 파라미터 select sys_context('USERENV','ISDBA') as dba권한사용자여부 , sys_context('USERENV','IP_ADDRESS') as 연결된ip주소 , sys_context('USERENV','SESSIONID') as 세션id , sys_context('USERENV','OS_USER') as os_user , sys_context('USERENV','SID') as sid , sys_context('..

DATABASE/Oracle 2023.07.05