본문 바로가기
반응형

DBMS/ORACLE77

[oracle] 인덱스 생성 시 TEMP 사용량 테스트 요약order by 조회 시 보다 인덱스 실제 생성 시 temp를 더 많이 사용함temp 사이즈는 컬럼 평균 사이즈 * 전체 건 보다 최소 2배 이상 필요index 생성 시 nologging 이 빠르다테스트 대상DB noarchivelog 모드데이터 건수: 56,039,932테이블 사이즈: 6,106 MB유형별 테스트 결과※ 괄호()는 인덱스 컬럼 사이즈 대비컬럼 타입datevarcharvarcharvarchar컬럼 평균 사이즈(byte)8388+3컬럼 평균 사이즈 * 전체 건(MB)448168448616order by 조회 시 temp 사이즈(MB)862(2배)647(3배)862(2배)1080(2배)인덱스 생성 시 temp 사이즈(MB)1510(4배)1292(6배)1510(4배)1725(3배)인덱스 사.. 2025. 4. 3.
[oracle] DB LINK에 있는 SYS_HUB DROP and CREATE 방법 oracle 12.2 이후 부터 DB LINK에 기본적으로 생성되어 있는 SYS_HUB는read only 인스턴스에서 DML을 read write 가능한 인스턴스로 라우팅해주는 용도이다.read only / read write 를 별도 구성하여 사용하지 않는 일반적인 환경에서는 불필요한 기능이며 삭제 하여도 영향도가 없음 공식 문서What Is The Use Of DataBase Link SYS.SYS_HUB And Can It Be Deleted (Doc ID 2413797.1)https://support.oracle.com/epmos/faces/DocContentDisplay?id=2413797.1  How to Drop and Create SYS_HUB (Database Link) ? (Doc ID.. 2025. 3. 26.
[oracle] dbca 진행 중 에러 발생. [DBT-50000] Unable to check for available system memory OS: window server 2022DBMS: 19.21 문제dbca 사용하여 DB 생성 진행 중 DBT-50000 에러 발생  해결방법아래 명령어로 dbca 실행(공백없음 주의)dbca -J-Doracle.assistants.dbca.validate.ConfigurationParams=false 2025. 3. 19.
[oracle] 최대 접속 세션 수 변경 시 processes, sessions 파라미터 테스트 processes, sessions 파라미터에 의해 결정됨sessions 최소값은 (processes * 1.5)+22 으로 작은 값 설정 시 해당 값으로 강제된다sessions 파라미터는 그냥 default로 사용하고 processes 값만 변경하면 됨 sessions 최소값 보다 낮게 설정-- 현재 설정 확인SELECT name, value , ISDEFAULTFROM v$parameterWHERE name IN ('processes','sessions');NAME VALUE ISDEFAULT------------------------------ ---------- ---------processes 200 .. 2025. 3. 19.
[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#|.. 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 |P.. 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] ORA-27300 에러 발생 status: 105 에러ORA-00603 에러와 함께 ORA-27300, ORA-27301 등등 에러 발생status: 번호에 따라 원인이 다릅니다.2022-08-13T19:47:55.064852+09:00Errors in file /oracle/app/diag/rdbms/ifis/IVE/trace/IVE_ora_148122.trc (incident=2162789):ORA-00603: ORACLE server session terminated by fatal errorORA-27504: IPC error creating OSD contextORA-27300: OS system dependent operation:sendmsg failed with status: 105ORA-27301: OS failure message: N.. 2024. 7. 26.
[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] 세션 비정상 종료 시 commit/rollback 테스트 exit 등으로 정상 종료 시 commitkill, 네트워크 단절 등으로 비정상 종료 시 rollback 세션 정상 종료SQL> CREATE TABLE sk.tab1 (c1 NUMBER) ;Table created.SQL> INSERT INTO sk.tab1 VALUES(1) ;1 row created.SQL> select * from sk.tab1 ; C1---------- 1-- 정상 종료SQL> exitDisconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - ProductionVersion 19.3.0.0.0-- 신규 접속Connected to:Oracle Database 19c Enterprise Edition R.. 2024. 6. 27.
[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.
반응형