Oracle
-
-- 30분 이전의 해당 테이블의 데이터 조회 SELECT * FROM T_TABLE AS OF TIMESTAMP ( SYSTIMESTAMP - INTERVAL '30' MINUTE); -- 3시간 이전의 해당 테이블의 데이터 조회 SELECT * FROM T_TABLE AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '3' HOUR); -- 1일 이전의 해당 테이블의 데이터 조회 SELECT * FROM T_TABLE AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY); -- 복구는 플래시백테이블에서 조회하여 INSERT 하면된다. INSERT INTO T_TABLE SELECT * FROM T_TABLE AS OF TIMESTAMP (SY..
오라클 플래쉬백(Oracle flashback) 쿼리-- 30분 이전의 해당 테이블의 데이터 조회 SELECT * FROM T_TABLE AS OF TIMESTAMP ( SYSTIMESTAMP - INTERVAL '30' MINUTE); -- 3시간 이전의 해당 테이블의 데이터 조회 SELECT * FROM T_TABLE AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '3' HOUR); -- 1일 이전의 해당 테이블의 데이터 조회 SELECT * FROM T_TABLE AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY); -- 복구는 플래시백테이블에서 조회하여 INSERT 하면된다. INSERT INTO T_TABLE SELECT * FROM T_TABLE AS OF TIMESTAMP (SY..
2017.11.16 -
- 현재 사용량 select sum(bytes)/1024/1024/1024 GB from dba_segments; - 오라클에 잡혀있는용량 select sum(bytes)/1024/1024/1024 GB from dba_data_files;
[ORACLE] Oracle DB 사이즈 확인- 현재 사용량 select sum(bytes)/1024/1024/1024 GB from dba_segments; - 오라클에 잡혀있는용량 select sum(bytes)/1024/1024/1024 GB from dba_data_files;
2013.05.03 -
tnsnames.ora 파일에 원격 디비를 등록 원격디비접속자 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 아이피) (PORT = 1521) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SID) ) ) 데이터베이스 링크 생성 CREATE PUBLIC DATABASE LINK 링크이름 CONNECT TO 원격디비ID IDENTIFIED BY 원격디비패스워드 using '원격디비접속자'; 데이터베이스 링크 삭제 DROP PUBLIC DATABASE LINK 링크이름; DB link 사용 방법 SELECT * FROM EMP@linkName; DB link 확인 SELECT * FROM all_db_link..
[ORACLE] DBLINK 생성/삭제tnsnames.ora 파일에 원격 디비를 등록 원격디비접속자 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 아이피) (PORT = 1521) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SID) ) ) 데이터베이스 링크 생성 CREATE PUBLIC DATABASE LINK 링크이름 CONNECT TO 원격디비ID IDENTIFIED BY 원격디비패스워드 using '원격디비접속자'; 데이터베이스 링크 삭제 DROP PUBLIC DATABASE LINK 링크이름; DB link 사용 방법 SELECT * FROM EMP@linkName; DB link 확인 SELECT * FROM all_db_link..
2011.05.19 -
1. ASH는? - 세션 히스토리 정보를 볼수 있는 도구 2. ASH 방법 - 오라클은 현재 접속해서 활동 중인 Active 세션 정보를 1초에 한번씩 샘플링해서 ASH 버퍼에 저장한다. - SGA Shared Pool에서 CPU당 2MB의 버퍼를 할당 받아 세션 정보를 기록하며, 1시간 혹은 버퍼의 2/3가 찰 때마다 디스크로 기록한다. 즉, AWR에 저장하는 것이다. - v$active_session_history 뷰를 이용해 ASH 버퍼에 저장된 세션 히스토리 정보를 조회할 수 있다. 출처 : 오라클 클럽 (http://wiki.oracleclub.com/display/CORE/ASH(Active+Session+History))
[ORACLE] ASH (Active Session History)1. ASH는? - 세션 히스토리 정보를 볼수 있는 도구 2. ASH 방법 - 오라클은 현재 접속해서 활동 중인 Active 세션 정보를 1초에 한번씩 샘플링해서 ASH 버퍼에 저장한다. - SGA Shared Pool에서 CPU당 2MB의 버퍼를 할당 받아 세션 정보를 기록하며, 1시간 혹은 버퍼의 2/3가 찰 때마다 디스크로 기록한다. 즉, AWR에 저장하는 것이다. - v$active_session_history 뷰를 이용해 ASH 버퍼에 저장된 세션 히스토리 정보를 조회할 수 있다. 출처 : 오라클 클럽 (http://wiki.oracleclub.com/display/CORE/ASH(Active+Session+History))
2010.05.19 -
0. 툴의 종류(목차) - OWI 다이나믹 뷰 - 기타 중요 다이나믹 뷰 - Extended SQL Trace - Oradebug & dump - Automatic Workload Repository 1. OWI 다이나믹 뷰 - V$EVENT_NAME : 오라클에 정의된 모든 대기 이벤트에 대한 참조성 정보 - V$SYSTEM_EVENT : 인스턴스 기동 후 지금까지 모든 세션에서 발생한 대기이벤트 누적 정보 - V$SESSION_EVENT : 현재 접속되어 있는 각 개별 세션별 대기이벤트의 누적 정보 - V$SESSION_WAIT : 각 세션이 현재 대기하고 있는 이벤트에 대한 상세정보 - V$SESSION_WAIT_HISTORY : V$SESSION_WAIT 정보를 세션별로 최대 10개 까지의 누적 ..
[ORACLE] OWI 툴0. 툴의 종류(목차) - OWI 다이나믹 뷰 - 기타 중요 다이나믹 뷰 - Extended SQL Trace - Oradebug & dump - Automatic Workload Repository 1. OWI 다이나믹 뷰 - V$EVENT_NAME : 오라클에 정의된 모든 대기 이벤트에 대한 참조성 정보 - V$SYSTEM_EVENT : 인스턴스 기동 후 지금까지 모든 세션에서 발생한 대기이벤트 누적 정보 - V$SESSION_EVENT : 현재 접속되어 있는 각 개별 세션별 대기이벤트의 누적 정보 - V$SESSION_WAIT : 각 세션이 현재 대기하고 있는 이벤트에 대한 상세정보 - V$SESSION_WAIT_HISTORY : V$SESSION_WAIT 정보를 세션별로 최대 10개 까지의 누적 ..
2010.05.19 -
1-1. UNDO Segement란? - Rollback과 Undo는 기본적으로는 동의어 입니다. - Oracle 9i 이전엔 Rollback Segement라는 용어를 사용했는데, Oracle 9i 이후버전 부터는 Undo Segment라는 용어를 사용합니다. - Rollback(Oracle 9i 이전 버전) = Undo(Oracle 9i 이후 버전) - Undo 세그먼트는 관리 방식에 있어서 9i 이후 버전에서 자동 관리 모드와 수동 관리 모드를 선택 할 수 있는 기능이 추가 되었고, 트랜잭션 처리를 위한 알고리즘이 개선되었습니다. - Undo 세그먼트는 생성, 할당 및 튜닝을 오라클 서버가 관리하므로 DBA는 더 이상 몇개의 Rollback 세그먼트를 생성 할 것인지, 크기는 어떻게 할 것인지, 트..
[ORACLE] UNDO 와 REDO 그리고 차이점1-1. UNDO Segement란? - Rollback과 Undo는 기본적으로는 동의어 입니다. - Oracle 9i 이전엔 Rollback Segement라는 용어를 사용했는데, Oracle 9i 이후버전 부터는 Undo Segment라는 용어를 사용합니다. - Rollback(Oracle 9i 이전 버전) = Undo(Oracle 9i 이후 버전) - Undo 세그먼트는 관리 방식에 있어서 9i 이후 버전에서 자동 관리 모드와 수동 관리 모드를 선택 할 수 있는 기능이 추가 되었고, 트랜잭션 처리를 위한 알고리즘이 개선되었습니다. - Undo 세그먼트는 생성, 할당 및 튜닝을 오라클 서버가 관리하므로 DBA는 더 이상 몇개의 Rollback 세그먼트를 생성 할 것인지, 크기는 어떻게 할 것인지, 트..
2010.05.19 -
0. 래치와 락의 존재 이유 - 래치(Latch) 와 락(Lock)이라는 두 개의 동기화 메커니즘을 이용하여 리소스를 보호한다. - 래치와 락의 존재 이유는 동시 작업으로부터 오라클의 자원을 보호하는 것이다. - 특정 작업을 수행하기 위해 래치와 락을 획득해야 한다는 사실 자체는 성능과 무관하다. - OWI 를 이용하면 래치와 락에 의한 경합 현상을 가장 직관적으로 파악할 수 있다. - 어떤 종류의 래치와 락이 어떤 상황에서 발생했는지에 대한 "사실" 만을 제공하며, 사실에 대한 해석은 분석자의 몫이다. 1. 차이점 출처 : http://blog.naver.com/kiyoun82?Redirect=Log&logNo=110070186953
[ORACLE] 래치(latch)와 락(lock) 그리고 차이점0. 래치와 락의 존재 이유 - 래치(Latch) 와 락(Lock)이라는 두 개의 동기화 메커니즘을 이용하여 리소스를 보호한다. - 래치와 락의 존재 이유는 동시 작업으로부터 오라클의 자원을 보호하는 것이다. - 특정 작업을 수행하기 위해 래치와 락을 획득해야 한다는 사실 자체는 성능과 무관하다. - OWI 를 이용하면 래치와 락에 의한 경합 현상을 가장 직관적으로 파악할 수 있다. - 어떤 종류의 래치와 락이 어떤 상황에서 발생했는지에 대한 "사실" 만을 제공하며, 사실에 대한 해석은 분석자의 몫이다. 1. 차이점 출처 : http://blog.naver.com/kiyoun82?Redirect=Log&logNo=110070186953
2010.05.18 -
0. 개요 미디어(디스크)나 논리적 또는 소프트웨어에 문제가 있을때 데이터베이스가 손상되었다. 혹은 깨졌다라는 표현을 사용합니다. 이때 손상된 원인을 찾고 대처 할수 있는 능력을 키워야 할것이다. 1. 증상 알기 에러 메시지 ORA-01578 발생 - 손상된 데이터 블록이 발생하였을때 발생 - 손상된 파일번호와 블럭번호를 반환 - 손상된 블럭을 확인한(블럭을 사용한) 세션에게 에러를 반환 - alert.log 에 나타남 2. 손상된 블럭 확인 기능등 - DBVERIFY Utility - ANALYZE - DB_BLOCK_CHECKING - DB_BLOCK_CHECKSUM - EXP 3. 손상된 블럭 복구 관련 기능들 - Flashback - DBMS_REPAIR - Block Media Recovery ..
[ORACLE] 데이터 베이스 손상처리 - ORA-015780. 개요 미디어(디스크)나 논리적 또는 소프트웨어에 문제가 있을때 데이터베이스가 손상되었다. 혹은 깨졌다라는 표현을 사용합니다. 이때 손상된 원인을 찾고 대처 할수 있는 능력을 키워야 할것이다. 1. 증상 알기 에러 메시지 ORA-01578 발생 - 손상된 데이터 블록이 발생하였을때 발생 - 손상된 파일번호와 블럭번호를 반환 - 손상된 블럭을 확인한(블럭을 사용한) 세션에게 에러를 반환 - alert.log 에 나타남 2. 손상된 블럭 확인 기능등 - DBVERIFY Utility - ANALYZE - DB_BLOCK_CHECKING - DB_BLOCK_CHECKSUM - EXP 3. 손상된 블럭 복구 관련 기능들 - Flashback - DBMS_REPAIR - Block Media Recovery ..
2010.05.18 -
직접 그려본 접속구조. 틀린점 있다면 댓글 부탁드려요.
[ORACLE] 오라클 접속 구조직접 그려본 접속구조. 틀린점 있다면 댓글 부탁드려요.
2010.05.14 -
▶ SQL Parser - 사용자가 SQL문을 요청하면... - 오라클은 맨 먼저 Paser엔진이 SQL문을 받아서 parsing 한다. - SQL문장을 개별 구성요소를 분석하고 파싱해서 파싱트리를 만든다. - 그 과정에서 syntax체크(문법적 오류)하고, semantic체크(의미상 오류,즉 존재하지 않은 칼럼, 권한 없는 오 브젝트 사용 여부 등등) 한다. - 해싱 알고리즘(라이브러리 캐시의 위치값을 찾기 위해)을 이용해서 SQL 커서(SQL 구분 및 실행계획등 SQL 이 실행하기 위한 정보가 있는 AREA)가 Shared Pool에 캐시되어 있는지 확인한다. - SQL 커서를 찾았다면 바로 실해단계로 넘어가고, - 최적화가 필요하면 옵티마이저에게 넘긴다. ▶ Optimizer - SQL Transf..
[ORACLE] SQL 실행과정▶ SQL Parser - 사용자가 SQL문을 요청하면... - 오라클은 맨 먼저 Paser엔진이 SQL문을 받아서 parsing 한다. - SQL문장을 개별 구성요소를 분석하고 파싱해서 파싱트리를 만든다. - 그 과정에서 syntax체크(문법적 오류)하고, semantic체크(의미상 오류,즉 존재하지 않은 칼럼, 권한 없는 오 브젝트 사용 여부 등등) 한다. - 해싱 알고리즘(라이브러리 캐시의 위치값을 찾기 위해)을 이용해서 SQL 커서(SQL 구분 및 실행계획등 SQL 이 실행하기 위한 정보가 있는 AREA)가 Shared Pool에 캐시되어 있는지 확인한다. - SQL 커서를 찾았다면 바로 실해단계로 넘어가고, - 최적화가 필요하면 옵티마이저에게 넘긴다. ▶ Optimizer - SQL Transf..
2010.04.28 -
출처 : http://blog.naver.com/daleena?Redirect=Log&logNo=100053271179 /*+ ALL_ROWS */ explicitly chooses the cost-based approach to optimize a statement block with a goal of best throughput (that is, minimum total resource consumption) 전체 RESOURCE 소비를 최소화 시키기 위한 힌트. Cost-Based 접근방식. /*+ CHOOSE */ causes the optimizer to choose between the rule-based approach and the cost-based approach for a SQL st..
[ORACLE] HINT출처 : http://blog.naver.com/daleena?Redirect=Log&logNo=100053271179 /*+ ALL_ROWS */ explicitly chooses the cost-based approach to optimize a statement block with a goal of best throughput (that is, minimum total resource consumption) 전체 RESOURCE 소비를 최소화 시키기 위한 힌트. Cost-Based 접근방식. /*+ CHOOSE */ causes the optimizer to choose between the rule-based approach and the cost-based approach for a SQL st..
2010.04.27 -
1. Rolling forward to recover data that has not been recorded in the datafiles, yet has been recorded in the online redo log, including changes to undo blocks. This phase is called cache recovery. 2. Opening the database. Instead of waiting for all transactions to be rolled back before making the database available, Oracle allows the database to be opened as soon as cache recovery is complete. A..
[ORACLE] Mechanics of Instance and Crash Recovery1. Rolling forward to recover data that has not been recorded in the datafiles, yet has been recorded in the online redo log, including changes to undo blocks. This phase is called cache recovery. 2. Opening the database. Instead of waiting for all transactions to be rolled back before making the database available, Oracle allows the database to be opened as soon as cache recovery is complete. A..
2010.04.19 -
1. 사용되는 파일보기 SQL> select name from v$datafile; 2. 시스템 파일 지우기 (db 망치기) SQL> !rm /u01/app/oracle/oradata/devdb/system_disk/system01.dbf 3. 재시작 해보기 (에러) SQL> startup force 4. 파일복사 (백업본 -> 지운파일) SQL> !cp /u01/app/oracle/oradata/devdb_backup/open_backup/system01.dbf /u01/app/oracle/oradata/devdb/system_disk/system01.dbf 5. 복원 SQL> recover datafile 1;
[ORACLE] 백업 파일로 복원, 복구 하기1. 사용되는 파일보기 SQL> select name from v$datafile; 2. 시스템 파일 지우기 (db 망치기) SQL> !rm /u01/app/oracle/oradata/devdb/system_disk/system01.dbf 3. 재시작 해보기 (에러) SQL> startup force 4. 파일복사 (백업본 -> 지운파일) SQL> !cp /u01/app/oracle/oradata/devdb_backup/open_backup/system01.dbf /u01/app/oracle/oradata/devdb/system_disk/system01.dbf 5. 복원 SQL> recover datafile 1;
2010.04.16 -
LogMiner 는 8I 에서부터 새롭게 제공하는 기능으로 Oracle 8 이상의 Redo log file 또는 Archive log file 분석을 위해 이용된다. 1. logminer로 추출한 로그파일 지정 execute DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME => '/u01/app/oracle/oradata/devdb/redo_a/r1a.log',OPTIONS => DBMS_LOGMNR.NEW); 2. logminer 시작 execute DBMS_LOGMNR.START_LOGMNR (OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); 3. v$logmnr_contents 안의 내용 확인 SELECT username, operation,..
[ORACLE] 로그마이너(logminer) 사용하기LogMiner 는 8I 에서부터 새롭게 제공하는 기능으로 Oracle 8 이상의 Redo log file 또는 Archive log file 분석을 위해 이용된다. 1. logminer로 추출한 로그파일 지정 execute DBMS_LOGMNR.ADD_LOGFILE (LOGFILENAME => '/u01/app/oracle/oradata/devdb/redo_a/r1a.log',OPTIONS => DBMS_LOGMNR.NEW); 2. logminer 시작 execute DBMS_LOGMNR.START_LOGMNR (OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); 3. v$logmnr_contents 안의 내용 확인 SELECT username, operation,..
2010.04.16 -
1. RMAN 설정 SQL> alter system set db_recovery_file_dest_size=2G; SQL> alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area/'; SQL> exit 2. RMAN 접속 OS> rman target sys/qltkdans 3. BACK UP 명령어 RMAN> backup database; RMAN> host; 4. 백업 확인 OS> ls -lR /u01/app/oracle/flash_recovery_area/ ※ job을 이용하여 설정하여 자동 백업을 설정 할수 있다.
[ORACLE] RMAN 사용하여 백업1. RMAN 설정 SQL> alter system set db_recovery_file_dest_size=2G; SQL> alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area/'; SQL> exit 2. RMAN 접속 OS> rman target sys/qltkdans 3. BACK UP 명령어 RMAN> backup database; RMAN> host; 4. 백업 확인 OS> ls -lR /u01/app/oracle/flash_recovery_area/ ※ job을 이용하여 설정하여 자동 백업을 설정 할수 있다.
2010.04.16 -
1. 컨트롤 파일 오픈 백업 SQL> !mkdir /u01/app/oracle/oradata/devdb_backup/open_backup SQL> alter database backup controlfile to trace as '/u01/app/oracle/oradata/devdb_backup/open_backup/control.sql'; SQL> cat /u01/app/oracle/oradata/devdb_backup/open_backup/control.sql 2. 데이터 파일 오픈 백업 SQL> spool open_backup.sql SQL> select 'alter tablespace '||tablespace_name||' begin backup;'||chr(10)|| '!cp '||file_na..
[ORACLE] Open backup1. 컨트롤 파일 오픈 백업 SQL> !mkdir /u01/app/oracle/oradata/devdb_backup/open_backup SQL> alter database backup controlfile to trace as '/u01/app/oracle/oradata/devdb_backup/open_backup/control.sql'; SQL> cat /u01/app/oracle/oradata/devdb_backup/open_backup/control.sql 2. 데이터 파일 오픈 백업 SQL> spool open_backup.sql SQL> select 'alter tablespace '||tablespace_name||' begin backup;'||chr(10)|| '!cp '||file_na..
2010.04.16