반응형 전체 글205 foreign table(oracle link) 조회 시 OCIEnvCreate failed 에러 발생 postgres 에서 oracle 테이블 조회를 위해 foregin table 생성 후 조회 시 "error connecting to Oracle: OCIEnvCreate failed to create environment handle" 에러 발생하며 실패 oracle_fdw extension 설치 확인 postgres=# select * from pg_catalog.pg_available_extensions where name = 'oracle_fdw' ; name | default_version | installed_version | comment ------------+-----------------+-------------------+-----------------------------------.. 2022. 3. 20. 권한 부여 시 ROLE, PRIVILEGE 차이 DB권한관리는 대부분 업무별 ROLE 을 만들어 적절하게 운영 할 것이다. 운영 중 서비스가 추가되면서 타업무의 테이블을 조회하는 경우가 생길 수 있는데 이 때 신규 권한을 부여 하는 방식에 따른 차이를 알아보자. 요약 : - ROLE 부여 시 기존에 접속되어 있던 세션은 적용이 안된다(신규접속 세션부터 적용 됨). - PRIVILEGE 부여 시 기존/신규 세션 모두 적용 됨 - DEFAULT_ROLE 상태 YES 인 경우만 ROLE 적용 됨 -- SK2 유저에 ROLE 부여 및 확인 SQL> select sid, serial#, username, status, program, logon_time from v$session where username = 'SK2' ; SID SERIAL# USERNAME.. 2022. 3. 14. notepad++ 탭(tab) 크기 변경하기 터미널에서 이쁘게 정렬되어 보이는데 notepad++ 과 같은 에디터에 복사하면 정렬이 안되어 보기 불편한 경우있다. notepad++ 에서는 보기 불편하다 해결방법 - 탭(tab) 크기 차이로 인한 것이니 동일하게 설정해 주면 된다. 1. 리눅스 터미널 tab 크기 확인(8칸) [root@svr1 ~]# echo -e "1234567890\t321\n1\t2\n123\t1" 1234567890321 12 1231 [root@svr1 ~]# 2. notepad++ 에서 탭(tab) 크기 변경 방법 설정 -> 환경설정 -> 탭 크기(기본 4에서) 8로 변경 3. 탭(tab) 크기 변경 후 보기 편해짐 2022. 3. 9. 테이블 OWNER가 아닌 다른 유저로 인덱스 생성 시 필요 권한 SK.T1 테이블이 있고 해당테이블에 SK2 유저가 SK2.T1_IX1 인덱스를 생성하려고 한다. 테이블의 INDEX 권한 부여 시 인덱스 생성 가능 ## SK2 유저가 인덱스 생성 시도 SQL> show user USER is "SK2" -- 조회 가능 확인 SQL> select count(*) from sk.t1 ; COUNT(*) ---------- 72655 SQL> create index t1_ix1 on sk.t1(object_name) ; create index t1_ix1 on sk.t1(object_name) * ERROR at line 1: ORA-01031: insufficient privileges ## 관리자 권한으로 해당 테이블 권한 확인 및 index 권한 sk2 에 부여 SQ.. 2022. 2. 28. APPEND 사용 시 logging / nologging 에 따른 로그 사용량 변화 대량 INSERT 작업에서 로그발생 최소화 및 성능을 위해 APPEND 힌트 사용 시 테이블 logging/nologging 에 의한 로그발생량 차이가 있는가? 요약 : - 테이블 nologging + APPEND 사용 시 로그 발생량 가장 적음(테이블 logging 모드에서 append 힌트만 사용한 경우도 로그발생량 감소 효과는 있음) - 인덱스는 logging / nologging 에 상관없이 무조건 log 사용(인덱스 nologging은 생성 시 적용되는 옵션) - 파티션 구문 추가하여 파티션 단위 작업 시 해당 파티션만 LOCK 잡힘(여러개 파티션 동시 작업 가능) 주의사항 : - APPEND 힌트 사용 시 TABLE LOCK 발생으로 다른 세션에서 DML 불가능 - insert 중에는 segm.. 2022. 2. 27. 테이블 조회 시 다른 세션에서도 uncommit block 을 읽을까? DB 버전 : Oracle Database 11.2.0.1 요약 : 테이블에 commit 되지 않은 데이터가 있고 다른 세션에서 해당 테이블 조회 시 commit 되지 않은 데이터를 읽어 올까? INSERT 만 발생시키고 uncommit 상태에서 다른 세션을 통한 데이터 조회 시 uncommit block 조회 하는 것 확인 됨 RAC 환경에서 commit 되지 않은 데이터를 가진 테이블을 다른 노드에서 조회 시 어떻게 동작 할까? RAC 환경에서 LMS 프로세스가 uncommit block 다른 노드로 전달 해줌 다른 노드에서 두번째 조회 시 buffers 가 올라 가는 것으로 봐서 최초 조회 시 local undo 에 저장 후 재 조회 시 사용 하는 것으로 보임 LMS(Global cache serv.. 2022. 2. 25. oracle index 사이즈 증가 테스트 인덱스는 block을 재사용 하지 않고 계속 늘어난다는 이야기가 있어 테스트 함 DB 버전 : Oracle Database 19.3.0.0 요약 : 인덱스도 사용하지 않는 block 을 재사용 한다. 하지만 한번 늘어난 사이즈는 줄어들지 않아 rebuild 를 통해서만 축소 가능하다. -- 시작 전 인덱스 사이즈 확인 SQL> SELECT owner, segment_name, segment_type, bytes/1024/1024 MB, blocks FROM DBA_SEGMENTS WHERE owner = 'SK' AND segment_name LIKE 'T1%' ; OWNER SEGMENT_NAME SEGMENT_TYPE MB BLOCKS ---------- -------------------- ----.. 2022. 2. 16. ORA-1653 테이블스페이스 여유 공간 있는데 INSERT 실패 테이블 스페이스의 여유공간이 충분한데 INSERT가 안된다. 해결방법 : 할당 가능 extent 사이즈 확인 후 테이블스페이스 사이즈 추가 오류코드 ORA-1653: unable to extend table SK.T1 by 8192 in tablespace TS01 -- 에러코드의 의미상 숫자 8192는 8K의 용량이 아니라 BLOCK의 개수를 의미함 -- 8192 * 8K = 64MB로 만약에 테이블스페이스의 여유공간이 크더라도, 할당 가능한 extent 크기가 64MB 보다 작으면 에러 발생(extent 는 연속된 블록의 집합) 테이블스페이스의 할당 (ALLOCATION)은 옵션에 따라 두 가지 종류로 나뉜다. - AUTOALLOCATE : 오라클 내부 로직에 의해 64KB / 1MB / 8MB/ 6.. 2022. 2. 16. ORACLE EOS 확인 아래 주소 PDF 파일에서 확인 가능 https://www.oracle.com/support/lifetime-support/resources.html 2022. 2. 16. oracle 테이블 변경(alter table) 후 트리거 invalid 상태 변화 DBMS : Oracle 19.3 - 트리거 관련된 테이블 속성 변경 시 invalid 되지만 정상동작 가능하면 실행 시 valid 상태로 자동 변경됨 테스트 오브젝트 생성 -- 소스/타겟 테이블 생성 SQL> CREATE TABLE sk.t1 (c1 varchar(100), c2 varchar(200)) ; Table created. SQL> CREATE TABLE sk.t1_his (c1 varchar(100), c2 varchar(200),flag varchar(10)) ; Table created. -- 트리거 생성 SQL> create or replace trigger sk.tri1 AFTER INSERT OR UPDATE OR DELETE ON sk.t1 FOR EACH ROW BEGIN if.. 2022. 2. 16. 이전 1 ··· 11 12 13 14 다음 반응형