본문 바로가기
반응형

DBMS/ORACLE73

[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] 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.
[oracle] windows 오라클 설치 시 setup.exe 무반응 해결방법 OS: Windows Server 2016  DBMS: oracle 19.3 setup.exe 무반응윈도우 버전 oracle 설치 시 setup.exe 실행 후 아무런 반응 없이 실행도 안 되는 상황이 있습니다에러메시지가 발생하는 것도 아니고 아주 답답한 상황에 마주하게 됩니다 경로 변경오라클 설치 파일 경로 확인 시 아래처럼공백이 있는지 확인해주세요아래 경로처럼 많은 공백이 있는 경우C:\ora_image\Oracle Database 19.3.0.0.0 for Microsoft Windows x64 (64-bit) 공백이 없도록 경로를 변경해 주세요-> C:\ora_image\oracle_19.3 경로 변경 후 setup.exe 실행하시면두둥!! 속 시원하게 실행됩니다 2024. 5. 7.
[oracle]alter user ... replace 구문 (ORA-28221) DBMS: oracle 19.3  - ALTER USER 권한이 없고 PASSWORD_VERIFY_FUNCTION 사용중인 경우 REPLACE 구문 필요- ORA-28221 에러 발생- 본인 계정 패스워드 변경 시 (alter user 권한이 없으면 다른계정 패스워드는 변경할 수 없음)alter user usr1 identified by {new 패스워드} replace {old 패스워드} ; [목차여기] PASSWORD_VERIFY_FUNCTION 없음, ALTER USER 특권 없음PASSWORD_VERIFY_FUNCTION 기능을 사용하지 않는 경우 alter user 권한이 없어도 본인 비밀번호는 변경가능 합니다SQL> create user usr1 identified by "usr123" ;Us.. 2024. 4. 30.
[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.
반응형