본문 바로가기
반응형

oracle33

[oracle] 테이블 nologging 모드여도 특정 상황에서만 로깅함 (로그마이너) nologging 테이블 생성> CREATE TABLE sk.tab1 (c1 NUMBER) nologging 0 row(s) modified. > SELECT table_name, logging FROM dba_tables WHERE owner = 'SK' TABLE_NAME|LOGGING| ----------+-------+ TAB1 |NO | P_TAB2 | | 2 row(s) fetched. -- 아카이브 모드 확인 > SELECT * FROM v$instance INSTANCE_NUMBER|INSTANCE_NAME|HOST_NAME|VERSION |VERSION_LEGACY|VERSION_FULL|STARTUP_TIME |STATUS|PARALLEL|THREAD#|ARCHIVER|LOG_SWITC.. 2024. 10. 18.
[oracle] ASM disk 추가 rebalance 시간 비교 rebalance 시간은 움직이는 데이터량에 비례한다compact 단계는 memory disk 환경에서는 불필요하므로 비활성 현재 사용중인 데이터 사이즈 및 compact 옵션별 add disk 시 rebalance 시간 테스트 진행 6GB 데이터, 20GB disk 1개씩 추가, compact 포함> select group_number, disk_number, name, mount_status, header_status, state, path, os_mb, total_mb, cold_used_mb, free_mbfrom v$asm_diskWHERE 1=1order by 1,3 GROUP_NUMBER|DISK_NUMBER|NAME |MOUNT_STATUS|HEADER_STATUS|STATE |PA.. 2024. 10. 12.
[oracle] 계정 만료(expired) 시 account_status 상태 변경 시점 account_status 상태는 신규 로그인 시 변경된다. 로그인 전까지 직전 상태 유지account_status 상태 변화: OPEN -> EXPIRED(GRACE) -> EXPIRED만료일 이전, OPEN계정 상태 OPEN이고 만료일 이전-- 현재 상태 확인> SELECT username, account_status, expiry_date, profile, last_login, password_change_Date FROM dba_users WHERE ORACLE_MAINTAINED != 'Y'-- 계정 open 상태USERNAME|ACCOUNT_STATUS|EXPIRY_DATE |PROFILE|LAST_LOGIN |PASSWORD_CHANGE_D.. 2024. 9. 26.
[oracle] WITH GRANT OPTION 회수 grant option 만 회수할 수 있는 방법은 없음해당 권한 회수 후 with grant option 없이 동일 권한 재부여해당 옵션을 가지고 있는 상위 유적의 권한을 회수하면 하위 권한도 자동 회수됨role 에는 with grant option 부여 불가 USR1에 SELECT 및 WITH GRANT OPTION 부여> GRANT SELECT ON sk.tab1 TO usr1 WITH GRANT OPTION0 row(s) modified.> SELECT * FROM dba_tab_privsWHERE table_name = 'TAB1'GRANTEE|OWNER|TABLE_NAME|GRANTOR|PRIVILEGE|GRANTABLE|HIERARCHY|COMMON|TYPE |INHERITED|-------+.. 2024. 9. 6.
[oracle] RU 패치 적용/롤백 시 기존 interim 패치 상태는? RU 패치 시 기존 interim 패치가 포함된다면 비활성화되며 신규 RU 패치만 확인됨RU rollback 시 기존 interim 패치 활성화되며 다시 보임 RU 패치 적용현재 버전 확인19.13 버전에 33121934 interim 패치가 적용되어 있습니다[oracle@svr1 36582781]$ opatch lspatches33121934;IAD E23POD LIBRARY CACHE LOCK / LOAD LOCK / MUTEX X DURING CONNECTION STORM33192793;Database Release Update : 19.13.0.0.211019 (33192793)29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)OPatch succeeded. .. 2024. 8. 29.
[oracle] RMAN 백업 스크립트 로컬영역에 RMAN을 이용하여 백업 진행 시 스크립트crontab에 등록하여 매일 full backup 진행 RMAN 백업 스크립트14일 이전 백업파일 삭제database full backuparchive log 백업control file 백업#!/bin/bash. ~/.bash_profileexport BACKDIR="/home/ora19ent/back"if [ ! -d $BACKDIR ]; then mkdir -p $BACKDIRfirman target /  crontab 등록매일 01시 백업 진행rman 로그는 불필요하므로 /dev/null 2>&1 구문을 넣어줍니다[ora19ent@svr ~]$ crontab -l0 1 * * * /home/ora19ent/bck.sh >/dev/null 2>.. 2024. 7. 11.
[oracle] deadlock 테스트 ORA-00060 - deadlock 발생 시 오라클은 마지막 deadlock 발생 명령문만 롤백함(교착상태만 풀림)  트랜잭션이 종료된 것이 아니기 때문에 commit/rollback을 진행해줘야 함- insert, update, delete 모든 상황에서 발생 가능- deadlock 을 예방하기 위해서는 insert, update, delete 대상이 되는 테이블들의 작업순서를 동일하게 해 주는 게 좋음  모듈 1은 tab1 -> tab2로, 모듈 2는 tab2 -> tab1 이런 식으로 하면 deadlock 발생 가능성 있음 테스트 테이블 생성SQL> create table sk.tab1(c1 number, c2 number);Table created.SQL> insert into sk.tab1 values(1 ,.. 2024. 6. 13.
[oracle] TRANSACTION 모드, ISOLATION LEVEL 테스트 SET TRANSACTION READ ONLY ;-- transaction-level 읽기 일관성-- 트랜잭션 시작 시점의 데이터를 보여준다SET TRANSACTION READ WRITE ;-- statement-level 읽기 일관성-- SQL 실행 시점의 데이터를 보여준다SET TRANSACTION ISOLATION LEVEL SERIALIZABLE ;-- 트랜잭션 시작 시점의 읽기 일관성-- 시작 이후 다른 세션에서 변경한 값을 변경하려고 하면 에러 발생 - SYS 유저로 조회 시 READ ONLY 에서도 최신값을 보여주므로 다른 계정으로 테스트- SYS 유저는 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE 명령시 에러 발생 SET TRANSACTION READ O.. 2024. 5. 29.
[oracle] COLD BACKUP 이후 발생한 아카이브 로그 적용 방법 DBMS: oracle 19.3 - cold backup에서 recover 적용 시 using backup controlfile 옵션 없으면 아카이브 적용 안됨- 백업 이후 발생한 아카이브 적용하려면 using backup controlfile 옵션 필수 [목차여기] 테스트 준비COLD BACKUP 수행SQL> select count(*) from sk.tab1 ;  COUNT(*)----------     72373SQL> shut immediate Database closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 19c Enterprise Edition Release 19.0.0... 2024. 5. 19.
[oracle] data pump 작업 시 trigger 주의 DBMS: oracle 19.3 - 테이블 및 트리거 생성된 상태에서 data pump 사용한 import 작업 시 트리거 작동한다 - 작업 전 트리거 비활성 후 작업 진행 등 검토해야함 - TABLE_EXISTS_ACTION 옵션 기본값: SKIP CONTENT=DATA_ONLY 지정 시 기본값: APPEND [목차여기] 테스트 오브젝트 생성 tab1 테이블에 IDU 발생 시 tri_tab1 작동하여 tab1_log 테이블에 데이터 insert SQL> CREATE TABLE SK.TAB1 (C1 number(10)) ; Table created. SQL> CREATE TABLE SK.TAB1_LOG (DT DATE, CMD VARCHAR(10), C1 number(10)) ; Table created.. 2024. 4. 2.
[oracle] index unusable DML 테스트 DBMS: oracle 19.3 - unusable index를 사용하지 않으면 조회 및 DML 가능 - unique index가 unusable인 경우 : insert 불가능 : 인덱스에 해당하는 컬럼 아닌 경우 update 가능 - 세션레벨에서 unusable index를 사용 안 하도록 설정 : ALTER SESSION SET SKIP_UNUSABLE_INDEXES = TRUE ; [목차여기] non-unique index SQL> SELECT count(*) FROM sk.t1 ; COUNT(*) ---------- 71968 SQL> CREATE INDEX sk.t1_ix1 ON sk.t1(owner,object_name) ; Index created. SQL> SELECT owner, inde.. 2024. 3. 17.
[oracle] 스케줄러(dbms_scheduler) 실행 시간대(time zone) - 오라클 스케줄러(dbms_scheduler) JOB 생성 시 시간대는 무엇인가 - JOB 등록시 세션 시간대로 등록되며 DBA_SCHEDULER_JOBS에서 시간대가 포함된 시간 확인 가능 - 스케줄 JOB 실행 시간대는 OS time zone 기준 참고: oracle 리스너 timezone 설정 oracle alert.log 시간대(time zone) 기준은 무엇인가 oracle 오브젝트 생성시간은 어떤 시간대(time zone) 세션 시간대 KST에서 JOB 생성 세션 시간대 KST로 설정 후 TEST_KST JOB 생성합니다 -- 세션 시간대 KST로 변경 SQL> ALTER SESSION SET TIME_ZONE = '+09:00'; Session altered. -- 세션 시간대 확인 SEL.. 2024. 2. 22.
[oracle] alert.log 시간대(time zone) 기준은 무엇인가 OS: linux 7.5 DBMS: oracle 19.3 [목차여기] - 오라클 alert.log의 시간대는 어떤설정을 기준으로 적용되는지에 대한 테스트 - OS시간대 기준으로 alert.log 시간이 적용된다 : 정확히는 DB 기동하는 세션의 시간대 참고: oracle 오브젝트 생성시간은 어떤 시간대(time zone) 현재설정(UTC) 현재설정은 UTC(sysdate 확인)로 되어있고 alert.log도 동일한 시간대로 찍히는것으로 확인됩니다 SQL> SELECT dbtimezone, sessiontimezone, sysdate, current_date FROM dual ; DBTIME SESSIONTIMEZONE SYSDATE CURRENT_DATE ------ --------------------.. 2024. 2. 18.
[oracle] 오브젝트 생성시간은 어떤 시간대(time zone) OS: linux 7.5 DBMS: oracle 19.3 오라클에서 오브젝트 생성일시를 확인하려면 DBA_OBJECTS 테이블의 CREATED을 조회합니다. 여기저기 여러 곳에서 오브젝트를 생성하는 경우는 없겠지만 해당 컬럼에 들어가는 시간은 어떤 기준으로 들어가는지에 대한 테스트입니다. [목차여기] - DB time zone, session time zone, OS time zone 3개의 값을 비교하여 어떤 시간대를 기준으로 데이터가 들어가는지 테스트 - 생성시간 기준시간대는 OS Time Zone 시간대(sysdate, systimestamp 시간) 참고 oracle alert.log 시간대(time zone) 기준은 무엇인가 DB TZ: KST, SESS TZ: KST, OS TZ: UTC 세션1.. 2024. 2. 17.
[oracle] 테이블 LOB Object 이름 지정 DBMS: oracle 19.3 오라클은 테이블에 LOB컬럼 포함 시 기본적으로 SYS_LOBxxx(데이터), SYS_ILxxx(인덱스)와 같은 이름으로 자동생성됩니다. 이름을 지정하여 생성하는 방법과 변경방법 그리고 특이사항에 대한 내용 입니다. [목차여기] 테이블 생성 LOB명 지정/미지정(기본) 2개 테이블 생성 -- LOB 이름지정 CREATE TABLE SK.LOBTEST1 ( C1 VARCHAR2(255) NOT NULL, LOB1 CLOB NULL ) TABLESPACE TS_DATA LOB(LOB1) STORE AS LD_LOBTEST1_LOB1 (TABLESPACE TS_LOB INDEX LI_LOBTEST1_LOB1 (TABLESPACE TS_LOB)) ; -- 기본 CREATE TAB.. 2024. 2. 8.
반응형