본문 바로가기
반응형

전체 글205

테이블 nologging / append insert 복구 불가(ORA-26040) DBMS : oracle 19.3 - RMAN 백업 -> nologging 테이블에 append 힌트사용하여 데이터 적재 -> 백업데이터 restore / recover 작업 후 해당 테이블 조회에러 발생(ORA-26040)- nologging append 상태의 데이터는 복구불가지만  해당 테이블 정상화 시키는 방법 테이블 생성SQL> CREATE TABLE tab1 tablespace ts01 AS SELECT * FROM dba_objects ;Table created.SQL> SELECT count(*) FROM tab1 ; COUNT(*)---------- 73067SQL> ALTER TABLE tab1 nologging ;Table altered.SQL> SELECT table_nam.. 2023. 7. 5.
oracle hint 위치별 적용여부 테스트 DBMS : oracle 19.3 힌트없음 SQL> SELECT * FROM sk.tab1 a, sk.tab2 b WHERE a.object_id = b.object_id AND a.owner = 'SK' ; --------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 2705 | 697K| 790 (1)| 00:00:01 | |* 1 | H.. 2023. 7. 4.
ORDER BY 컬럼명이 가리키는 컬럼은? ORDER BY 컬럼명이 가리키는 위치는 실제 컬럼명일까? alias 일까? - 먼저 SELECT 절 컬럼명(alias)을 찾아보고 없으면 실제 컬럼을 찾아간다 테이블 데이터 조회 SELECT * FROM sk.t1 ; C1 C2 ---------- ---------- 1 5 2 4 3 3 4 2 5 1 alias 명으로 정렬 alias (c1 -> c2, c2 ->b) 라고 선언 후 order by c2 실행 SELECT c1 c2 , c2 b FROM sk.t1 ORDER BY c2 ; C2 B ---------- ---------- 1 5 2 4 3 3 4 2 5 1 실제 컬럼명 정렬 alias (c1 -> a, c2 ->b) 라고 선언 후 order by c2 실행 SELECT c1 a, c2 b.. 2023. 7. 3.
펑션 위치별 실행 횟 수 - 스칼라서브쿼리와 달리 펑션은 실행 시점의 데이터를 가져와서 타세션에서 데이터 변경시 데이터가 달라질 수 있음 - 펑션 위치별 실행 횟수의 차이를 알아본다 select 절 펑션 : 메인 쿼리의 모든 결과만큼 수행 SELECT owner, object_name, sk.sel_d(object_id) FROM sk.tab10 call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 4862 1.12 1.60 0 6185 0 72914 -.. 2023. 7. 2.
ASM, spfile 환경 control file 다중화 ASM, spfile 환경에서 control file 다중화 1. shutdown 2. nomount 후 현재 컨트롤파일 restore(RMAN) 3. spfile 파라미터 수정 4. shutdown 후 startup -- 현재설정 확인 SQL> show parameter control NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_file_record_keep_time integer 7 control_files string +FRA/db1/controlfile/backup.256.779279155 1. shutdown SQL> shut immediate Databa.. 2023. 7. 1.
INLIST ITERATOR 성능개선(where 절 in 조건) INLIST ITERATOR 오퍼레이션은 인덱스 수직 탐색으로 인해 과도한 블록 I/O를 발생할 수 있다. 조회 범위가 넓지 않다면 RANGE SCAN 후 FILTER 처리로 I/O를 줄일 수 있다. 1. 테스트 테이블 생성 DROP TABLE T1 PURGE; CREATE TABLE T1 AS SELECT ROWNUM AS c1, LPAD ('X', 10, 'X') AS c2 FROM XMLTABLE ('1 to 1000000'); CREATE INDEX T1_IX01 ON t1 (c1, c2); 2. 아래 쿼리는 IN 절로 10개의 행을 조회했다. 실행 계획 2번 Starts에서 t1_x1 인덱스가 10번 액세스된 것을 확인할 수 있다. 이로 인해 14개의 블록 I/O가 발생했다. SELECT * F.. 2023. 6. 29.
스칼라서브쿼리 실행계획 순서 및 실행통계 스칼라 서브쿼리 실행계획 - 스칼라 서브 쿼리는 실행 계획 상단에 별도로 표시된다. - 스칼라 서브 쿼리는 최종 SELECT 목록 순서로 표시되며, 중첩 스칼라 서브 쿼리 안쪽부터 표시된다. 스칼라 서브쿼리의 buffers 와 수행시간 메인쿼리 실행통계에 포함 여부 - 일반적으로 스칼라 서브 쿼리의 수행 시간과 블록 I/O는 메인쿼리 실행 통계에 포함되지 않는다. - 인라인뷰와 같은 뷰머징이 발생하지 않을 경우 전체 실행통계에 포함되어 보인다. 메인쿼리 row 여러 개일 때 스칼라 서브쿼리 실행계획 - 일반상황 시 스칼라서브쿼리 실행통계는 메인쿼리와 별도로 보여짐 - 인라인뷰로 변경 시 메인쿼리 실행계획에 스칼라서브쿼리 시간 및 buffer 포함됨 아래 쿼리는 인라인 뷰(t2)와 메인 쿼리(t3)에 스칼.. 2023. 6. 28.
SELECT 절 펑션 수행 횟수 확인 단순 조회와 집계함수(SUM,MAX) 사용 시 SELECT 절 펑션 몇 번 실행 횟 수 차이 요약 SELECT LV, F_SQLP(LV) FROM SQLP GROUP BY LV ; -- 위 SQL은 아래와 같이 작동한다. SELECT LV, F_SQLP(LV) FROM ( SELECT LV FROM SQLP GROUP BY LV ) ; -- SUM과 같은 함수는 위 SQL처럼 동작할 수 없다 SELECT LV, SUM(F_SQLP(LV)) FROM SQLP GROUP BY LV; 테스트 함수 생성CREATE OR REPLACE FUNCTION F_SQLP(p_num NUMBER) RETURN NUMBER IS BEGIN DBMS_OUTPUT.PUT_LINE(TO_CHAR(p_num)||':리턴'); RE.. 2023. 6. 26.
nmon for linux AIX 모니터링 시 유용하게 사용했던 nmon 리눅스에서도 사용 가능 리눅스 서버 버전 확인 [root@svr1 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.5 (Maipo) [root@svr1 ~]# 다운로드 nmon 다운로드 주소 https://nmon.sourceforge.net/pmwiki.php?n=Site.Download nmon for Linux | Site / Download POWER: nmon_power_64_centos6, nmon_power_64_rhel7, nmon_power_64le_linux ,nmon_power_64le_sles12, nmon_power_64_centos7, nmon_power_6.. 2023. 6. 24.
MobaXterm 에서 GUI 프로그램 실행 실패 터미널프로그램(mobaxterm)에서 gui 구동 시 root 에서는 잘 되지만 다른 계정에서는  권한 문제로 에러 발생하며 실행 불가Xlib: connection to "localhost:12.0" refused by serverXlib: MoTTY X11 proxy: Unsupported authorisation protocol터미널에서 GUI 프로그램 실행 테스트-- 보통 아래와 같이 체크표시 되어있을 경우 특별한 문제 없이 GUI 프로그램 구동됨-- firefox 브라우저 실행 테스트 에러 발생-- oracle 에서 GUI 실행 실패[ora11std@svr1 ~]$ firefoxXlib: connection to "localhost:12.0" refused by s.. 2023. 6. 22.
DBCA delete database 작업 시 목록 안보이는 경우 DBCA 사용하여 delete database 작업 시 해당 DB가 목록에 안보이는 경우 /etc/oratab 파일 수정 dbca 실행 [root@svr2 ~]# dbca -- ora19c DB가 목록에 없다 ora19c DB 확인 -- ora19c 정상 동작 중이다 [oracle@svr2 ~]$ ps -ef | grep smon grid 4262 1 0 17:30 ? 00:00:00 asm_smon_+ASM2 oracle 4480 1 0 17:31 ? 00:00:00 ora_smon_racdb2 oracle 7025 1 0 17:42 ? 00:00:00 ora_smon_ora19c oracle 15691 15640 0 18:26 pts/0 00:00:00 grep --color=auto smon [or.. 2023. 6. 22.
RAC VIP 변경 OS : oracle linux 7.5 DBMS : oracle 19.3 RAC 환경에서 svr2-vip 를 192.168.56.65 -> 192.168.56.67 로 변경 [목차여기] 순서 1. 변경대상 노드 vip 서비스 중지 2. 모든노드 /etc/hosts 파일 변경 3. 변경대상 노드 vip 서비스 시작 0. 작업 전 현황 -- RAC 네트워크 확인 [root@svr1 ~]# oifcfg getif enp0s3 192.168.56.0 global public enp0s8 192.168.57.0 global cluster_interconnect,asm -- hosts 파일 확인 IP 정보 [root@svr1 ~]# cat /etc/hosts ##Public 192.168.56.61 svr1 192.. 2023. 6. 20.
RAC 환경 VIP Failover 테스트 OS : oracle linux 7.5 DBMS : oracle 19.3 RAC 환경 vip failover 테스트 - node#1 에서 작업 진행 시 vip 가 node#2 로 넘어가는 상황 테스트 1. 인스턴스 shutdown 2. 리스너 stop 3. crs stop 요약 : crs stop 상황에서만 vip 가 다른 노드로 넘어간다 0. 테스트 전 현황 [root@svr1 ~]# ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_.. 2023. 6. 19.
RAC 노드 추가(OUI) OS : oracle linux 7.5 DBMS : oracle 19.3 RAC 2노드(svr1, svr2) 환경에서 svr3 노드 추가 1. 작업 전 설정(svr3) -- hosts 파일, 계정, 디렉토리 등 [root@svr1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 ##Public 192.168.56.61 svr1 192.168.56.62 svr2 192.168.56.66 svr3 ##Private 192.168.57.61 svr1-priv #1.. 2023. 6. 18.
RAC 노드 제거(GUI) 시나리오 : 3개 노드(svr1, svr2, svr3) 중 svr3 노드 제거 버전 : 19c 1. 작업 전 확인 [root@svr1 ~]# olsnodes -s -t svr1 Active Unpinned svr2 Active Unpinned svr3 Active Unpinned [root@svr1 ~]# crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local .. 2023. 6. 10.
반응형