1. 아래의 cd 파일을 가상의 컴퓨터안에 넣고 작동시켜야합니다 2. D 드라이브에 아래의 폴더를 생성합니다. 3. 다음과 같이 설정합니다. 4. 무인설치 건너뛰기를 선택합니다  : 오라클 프로세서들이 공유해서 사용하는 공유 메모리 영역입니다.PGA ( Program Global Area ) : 서버 프로세서가 개별적으로 사용하는 메모리 영역입니다. 이 영역에서 정렬 작업과 해쉬조인이 일어납니다.
위의 작업을 빨리 수행할 수 있도록 스크립트로 저장하겠습니다.아래의 스크립트를 sqldeveloper 에서 수행합니다.ㄴ sql developer에서 돌리기
💡 db에서 발생하는 문제들을 해결하는 역할💡 Shared pool💡 파싱된 SQL의 결과물을 올려놓는 메모리 영역select ename, sal from emp where ename=’SCOTT’;파싱(parsing)문법검사(syntex check): SQL
💡data file에서 읽은 데이터 블럭을 올리는 메모리 영역이 영역에 데이터 블럭을 올리면 다음번에 똑같은 데이터의 요청이 들어오면 메모리에서 바로 데이터를 보여줄 수 있음 💡 LRU(Least Recent Use) 알고리즘select sal from emp
💡 redo(다시하다 —> 다시 작업하다 —> 복구하다) data 를 저장하는 메모리 영역장애가 났을 때 복구를 하기 위한 변경사항들이 적혀있는 메모리 영역update empset sal = 0where ename='SCOTT';parsing : 문법검사, 의미
💡dedicated server : 유저프로세서 하나당 서버프로세서 하나가 할당되는 방식 (default) shared server : 다수의 유져프로세서를 하나의 서버프로세서가 할당하는 방식💡 병렬 작업을 빠르게 수행하게 하려면 라지풀 사이즈를 늘려줘야합니다. e
💡 오라클에서 자바 코드를 컴파일 할 수 있는데\--> 이때 사용하는 메모리 영역이 자바 풀입니다.💡 리두 로그 버퍼
💡 정렬작업과 해쉬조인💡 1\. ORDER BY2\. SORT MERGE JOIN3\. CREATE INDEX 생성문 실행시4\. 데이터 분석함수 사용시💡 개발자들이 과도한 정렬을 일으키는 악성 SQL을 수행하게 되면PGA 영역이 꽉차면서 SQL의 성능이 느려집
💡 백그라운드 프로세서들이 오라클 db를 운영하고 있음scott 으로 접속해서 다음과 같이 emp 를 조회하고 다시 위의 쿼리를 실행하세요.
💡 리스너가 클라이언트들의 접속 요청을 받아서 오라클에 접속을 할 수 있게 해줌서버실에 가야 할 수 있음아니면 putty에서 하면 됨sqlplus scott/tigereasy connect 방식으로 접속sqlplus scott/tiger@192.168.13.69:15
DBWn에서 n의 의미: 0 ~ n번까지 띄울 수 있어서💡 UPDATE 를 하면 데이터 파일에서 해당 데이터를 찾아서 메모리에서 UPDATE 를 합니다.그러면 데이터 파일의 SCOTT의 데이터와 메모리에 올라온 SCOTT의 데이터의 차이가 발생합니다.이 변경된 버퍼를
LGWR: log writerCOMMIT 할 때리두로그 버퍼가 어느정도 찼을 때3초마다checkpoint 이벤트 (메모리의 내용을 database에 일괄적용)
CKPT: checkpoint💡 메모리의 내용을 db로 내려쓰게 하면서메모리와 db 간의 데이터를 일치시켜주는 역할💡 이 이벤트 이름을 "checkpoint event" 라고 함이 작업 주기는 오라클에 의해서 자동으로 관리되고 있음메모리의 변경사항이 많으면 자
SMON: system monitor💡 1. 오라클 startup 시 인스턴스 복구작업 수행 ( 오라클이 비정상적으로 종료 되었을 때) 2\. 사용하지 않는 temporary segment를 정리with 절을 사용하면 템프 테이블이 자동으로 만들어집니다.with 절
클라이언트 pc가 꺼졌을 때 서버에서 작업하고 있던 작업들을 정리해주는 역할 클라이언트 -----------------------------------> 서버 아무것고 안하고 놀고 있으면 그 세션을 끊어버리는 역할※ 오라클 12c 버전부터 리스너에 서비스를 자
💡 오라클에서 다른 데이터베이스에 있는 객체에 접근할 수 있게 해주는 연결 통로💡 DB링크를 이용해서 다른사람의 EMP 테이블을 UPDATE 하고 있는데 갑자기 내 SQL DEVELOPER가 꺼지게 되면 다른사람의 서버에 남아있는 내 세션의 서버프로세서를 정리해주는
💡 redo log file이 다른 내용을 덮기 전에 백업을 받아서archive log file을 생성💡 월요일에 data file을 백업 받았고 아카이브 모드로 운영하고 있어서 매일 archive log file이 생성되고 있었는데, 금요일에 갑자기 data fi
소프트웨어 회사였던 오라클이 하드웨어 회사인 sun을 인수하면서소프트웨어 + 하드웨어 회사로 성장하기 시작했습니다.그러면서 하드웨어 회사의 대항마인 HP에 대항하기 위해서 만든프로그램이 grid infrastructure 입니다.💡 1. ASM(Automatic St
1, 2, 3번 --> 필수4, 5, 6, 7, 8 --> 선택data file : data 를 저장하는 파일redo log file : 변경사항을 기록하는 파일control file : db의 구조정보를 담고 있는 파일 archive log file
ㄴ ⭐ 암기\[oracle@ora19c ~]$ rman target /RMAN> backup tablespace ts01;
💡 테이블이나 인덱스와 같은 논리적 저장소💡 tablespace가 data로 꽉차서 insert가 안되는 현상이 일어나지 않도록 dba가 신경을 쓰고 있어야합니다.테이블 스페이스 공간을 확인하는 쿼리문을 수행합니다.테이블 스페이스에 공간을 추가합니다.
bigfile tablespace: 하나의 테이블 스페이스에 하나의 데이터 파일만 저장할 수 있고, 그 하나의 파일의 크기가 128 테라바이트까지 생성할 수 있음 small file tablespace: 하나의 테이블 스페이스에 여러개의 데이터 파일들을 생성할
\--> offline 상태라서 select가 안됨💡 offline 되기는 하지만 offline 시키면 안됨!system 테이블 스페이스의 역할db를 운영하기 위한 가장 핵심 데이터를 저장하는 공간 ↓
💡 리눅스의 디스크 관리를 자동으로 하게하는 오라클 프로그램ASM: Automatic Storage Management💡1\. ASM을 사용하면 컴퓨터를 끄지 않고 하드 디스크를 추가할 수 있음2\. 디스크를 추가하는 순간, 데이터를 분산 시켜줌 (스트라이핑)3\.
💡 만약 포트 번호가 0으로 나오거나 변경하고 싶다면, 원하는 포트 번호(예: 5500)로 설정합니다.모바텀(MobaXterm)에서\--> firefox 창이 열리면advanced 누르고 accept 누르기sysoracle_4U 로 로그인
export DIAPLAY=:0.0dbca데이터베이스 삭제 클릭비밀번호 입력체크하지 X데이터베이스 삭제완료
1. netca 실행 2. 리스너 삭제 클릭
만약 지우고 다시 하고 싶다면 다음과 같이 하면 됨아래의 명령어를 실행해서 아래 2개의 그룹이 있는지 확인합니다.oracle:x:1000:oracleoinstall:x:54321:이메일 넣지 않음소프트웨어만 설치단일 인스턴스로 설치Enterprise Edition으로
샘플 스키마 추가 선택하기
1. putty 에서 oracle로 접속해서 scott을 생성하고 scott으로 접속해서 demo 를 돌립니다. 2. listener.ora 파일의 내용을 수정하고 리스너를 내렸다 올립니다 3. 다시 서버를 리부트 합니다. 리부트가 되면 다시 db를 startup 하고 리스너도 올립니다. 만약 계속해서 서비스가 안올라온다면 다음과 같이 listene...
💡 오라클 엔진을 설치하는 것임. 엔진 안에 설치 파일들이 있어서 그 파일들을 가지고 네트워크도 구성하고 db도 생성하는 것💡 db성능 모니터링, 에러가 발생했을 때 문제해결, 장애발생시 복구https://www.oracle.com/downloads/💡
자동 생성 → dbca수동 생성 → create database 스크립트로 생성file system : dbca 와 create database 스크립트로 db 생성ASM : dbca 와 create database 스크립트로 db 생성raw device :
🔸 이론1. database를 dbca로 만들지 않고 수동으로 만들어야 하는 이유 💡 스토리지를 raw device 를 쓸거면 수동으로 만들 수밖에 없음 🔸 이론2. database를 만드는 순서 💡 인스턴스를 먼저 띄우고 database를 생성 🔸
잠금해제: alter user hr account unlock;패스워드를 hr로 변경: alter user hr identified by hr;desc v$mystat: 나의 정보를 볼 수 있음db_files : 데이터베이스에서 생성할 수 있는 file들의 총 갯수
💡 인스턴스의 구조 정보를 담고있는 파일💡 파라미터 파일이 없기 때문에 shutdown 했을 때 startup이 되지 않음spfile : 바이너리 파일바이너리 파일로 되어있는 spfile 의 파라미터를 수정하려면 반드시 alter system 명령어로만 수정해야
💡 오라클 메모리인 인스턴스를 시작시킴💡 파라미터 파일💡 수동으로 create database 스크립트로 db생성 작업, controlfile 생성 또는 위치 변경 작업💡 control file💡 db 이름, database에 있는 파일들의 위치와 상태정보💡
오라클을 upgrade 하거나 patch 작업을 수행할 때오라클 데이터베이스를 백업할 때db를 내렸다 올려야지만 적용되는 파라미터 값을 변경할 때가장 많이 사용하는 것 --> shutdown immediate급할 때 shutdown abort 를 하면 되는데 다시 st
💡 1\. 백업과 복구 작업2\. 데이터베이스의 구조를 변경하는 작업3\. data file 의 이름을 변경하거나 다른 위치로 data file을 이동하는 작업
위와 같이 Lock 상황을 만들어놓고 em 으로 접속해서 위의 상황이 모니터링 되는지 확인합니다.
오라클 성능 진단을 위한 데이터가 있는 데이터 사전악성 SQL을 찾을 수 있게 해줍니다. (V$SQL, V$SQLTEXT)지금 현재 작업을 못하고 Waiting 하는 세션들을 조회할 수 있게 해줍니다.( V$SESSION, V$SESSION_WAIT )락(lock)이
alter database close 라는 명령어가 있는데 가급적 사용하지말고 다른 방법으로 사용하기
glogin.sql에 있는set time onset timing on 지우기.bash_profile에 alert 추가하기갑자기 개발자가 emp 테이블에 sal의 길이를 늘려달라고 요청이 들어오면 데이터 사전을 조회해서 정확한 내용을 확인하고 늘려야합니다.💡 sql d
https://www.oracle.com/database/technologies/oracle19c-windows-downloads.html💡 오라클 클라이언트 툴을 설치를 해야 오라클 네트워크 소프트웨어가 설치되고 오라클 네트워크 관련 파일들이 생성이 됩니다
💡 tnsnames.ora💡 1\. 서버로 접속하기 위한 아이피 주소2\. 포트3\. 프로토콜4\. 서비스 이름
https://www.oracle.com/database/technologies/oracle19c-windows-downloads.html계속 next 를 누르고 설치https://www.warevalley.com/ko/support/download-
💡 리스너 💡 tnsnames.ora 를 통하지 않고 아이피주소, 포트, 그리고 서비스 이름을 가지고 접속하는 방식sql developer로 접속할 때는 easy connect 방식으로 접속한 것임💡 대표적으로 orange와 같은 툴💡 오라클 클라이언트의 tns
💡 listener.ora 와 sqlnet.ora 이 있어야됨💡 접속을 허용할 클라이언트의 아이피주소를 등록해줄 수 있습니다.아래의 sqlnet.ora 에 다음의 내용을 셋팅합니다. 💡 정적 서비스 등록으로 변경합니다.그리고 본인 리스너로 잘 접속되는지 확인합니다
위와 같이 에러가 나면 짝꿍(리눅스 서버) 에 sqlnet.ora 에 내 윈도위의 아이피가 안들어있어서입니다.들어있으면 다음과 같이 성공합니다.ping이 안되면 네트워크가 연결 안된 겁니다.위와 같이 ping이 잘 나간다면 네트워크 연결은 문제가 없는 겁니다. 그런데
oracle@ora19c admin$ sqlplus scott/tiger@192.168.13.69:21533/ora19root@ora19c ~successroot@ora19c ~successroot@ora19c ~1521/tcp 5500/tcp 5501/tcp 2155
💡 내가 접속한 인스턴스가 다운되어도 살아있는 인스턴스로 자동으로 접속되게 하는 기능만약 단일 인스턴스 였다면 특정 인스턴스가 다운 되었을때 다음과 같이 에러가 발생합니다.rac 환경에서는 내가 접속한 인스턴스가 다운되어도 failover 기능으로 인해서 살아있는 인
dedicated server 구조shared server 구조dedicated server 구조는 유져 프로세서 하나당 서버프로세서 하나 할당💡 shared server 구조는 유져 프로세서와 서버프로세서 사이에 디스패쳐가 있어서 디스패쳐를 통해서 일거리를 부
💡 shared server 구조에서는 서버 프로세서들끼지 정보를 공유해야합니다.손님이 주문한 주문 메뉴에 대한 정보가 공유가 되어져야합니다.어느 하나의 서버 프로세서만 알고 있으면 안됩니다.서버 프로세서의 pga 영역에 정렬영역, 해쉬영역, 비트맵영역, 유져세션
💡 데이터베이스 간의 데이터 이행을 위해 생성sys 또는 sysdwstartup아래의 hr 계정이 가지고 있는 테이블과 인덱스와 제약과 여러 다른 object들을 깔끔하게 ora19dw 쪽으로 데이터 이행하려면 db링크를 생성해야합니다.
[이론1] 테이블 스페이스 생성시 고려사항 2가지 [실습1] 현재 테이블 스페이스의 extent 관리 방식이 어떻게 되어있는지 확인하시오 [실습2] dictionary 관리방식 테이블스페이스와 local 관리방식 테이블스페이스를 생성하는 문법을 써서 2개 테이
permanent: 영구히 데이터를 저장하기 위한 테이블스페이스 temporary : 정렬작업을 수행하기 위한 공간이며with 절에 의해 만들어지는 임시 테이블을 저장하기 위한 공간 undo : 롤백을 하기 위한 롤백 데이터를 저장하기 위한 공간 💡 1\.
💡 rollback을 가능하게 해주는 변경 전 데이터들이 저장되어 있음💡 대량으로 데이터를 update 하거나 delete 할 때💡 update, delete, insert 할 때 작업이 실패함실습6 다시 현재 undo tablespace 를 undotbs1 로
💡 1\. data file 이름을 변경할 때2\. data file 을 다른 위치로 변경할 때3\. 실수로 data file 을 rm 으로 삭제해서 db 가 안올라올 때4\. data file 이 손상되어서 복구가 필요할 때offline 시켰기 때문에 조회되지
💡 절대로 수정하면 안되고 읽기만 해야하는 테이블들을 저장하는 테이블 스페이스를 생성할 때💡 read only지만 되는 이유: drop은 데이터 사전에서만 지우기 때문에 가능한 것데이터 사전이 있는 테이블 스페이스는 system 테이블 스페이스에 있기 때문에 가능합
데이터 파일 확장자를 .dbf 로 해서 만들었어야 했는데 .bdf 로 생성한 경우입니다.
aaa를 aaaaaaaaaa로 업데이트 하게 되면 해당 블럭에 update를 하지 못하고다른 블럭으로 가서 다시 aaaaaaaaaaaa를 구성하고원래있던 자리에는 어느 블럭으로 이사갔다라고 적어줌varchar2로 데이터 타입을 설정하지않고 char로 설정하면row mi
\--> users 테이블스페이스에 emp 테이블이 존재하는 것 확인\--> EMP 테이블도 USERS에 있고 EMP_SAL 인덱스도 USERS에 있으면해당 데이터 파일에 경합이 발생해서 성능이 느려짐scott에서 옮기는 거라서 hr.을 붙여줘야 됨💡 table과
file systemraw device ASM(Automatic Storage Management)💡 시스템 엔지니어에게 받은 raw device 목록을 갖고 있어야됨✔️ 시스템이 사용하는 부분이 있어서1024m이면 1m정도 여유공간을 남겨둬야함⚠️ 사용했으면 엑셀에
💡 오라클이 알아서 테이블스페이스의 데이터 파일, 컨트롤 파일, 리두로그 파일의 이름과 저장되는 공간, 그리고 사이즈를 알아서 설정하고 관리하겠다는 것💡 데이터베이스를 편하게 사용하면서 오류를 줄이기 위해서\--> 원래는 drop tablespace ts600 i
ㄴ 이런식으로 잘 안함drop tablespace ts02 including contents and datafiles;\--> rm ts02.dbf까지 같이 된 것오렌지에서 하기ORA-02449: 외래 키에 의해 참조되는 고유/기본 키가 테이블에 있습니다위의 경우에는S
최신 버전일수록 default를 옵션으로 해서 생성합니다. 2\. 테이블과 인덱스는 별도의 테이블스페이스에 구성합니다. 3\. undo 테이블스페이스와 temp 테이블스페이스의 크기를 넉넉히 설정합니다. 4\. system tablespace와 sysaux 테이블스페이
[실습1] ora19는 shutdown abort 하고 ora19dw 를 startup 하시오 [문제] 다음의 테이블스페이스 설정을 하나씩 하시오 > 1. TS 로 시작하는 테이블 스페이스를 모두 DROP 하시오 hrdatats 테이블 스페이스를 500mb로 생성
king 유저에서 다음과 같이 합니다.orange에서putty에서
[실습1] sys 계정은 막강한 권한을 가지고 있는데, 그 권한이 몇개인지 조회하시오 문제1. system 유져로 접속해서 system 유져가 가지고 있는 시스템 권한이 몇개인지 조회하시오 [실습2] king2 유져에게 dba 롤을 부여하고 king2 유져로 접속
password 인증방법 : 일반적인 보통의 인증방법external 인증방법 : 가벼운 인증방법 (패스워드 없이 가능)global 인증방법 : 가장 엄격한 인증방법ㄴ 바람직하지 않은 방법💡 패스워드를 변경할 때 해커들이 해킹하지 못하도록 엄격하게 변경해야함특히 특수문
os 인증방법: 원격에서 리스너를 통해서 sys 유저로 접속할 수 없는 인증방법\--> db를 내리려면 서버실을 가거나 putty로 접속해서 내리고 올려야됨 password file 인증방법: 리스너를 통해서 sys 유저로 접속할 수 있는 인증방법💡 exclusiv
💡 유저의 패스워드를 더 엄격하게 관리하고 싶거나 유저의 db 리소스 사용을 제한하고 싶을 때 사용을지로에 있는 모 은행의 사례:업무시간에 악성 SQL이 자꾸 수행 되어서 오라클에 접속한 유져들이 아무것도 못하는 일이 반복되니까그 은행 DBA가 아침 9:00 ~ 저녁
true로 다시 돌려놓기
[실습1] 패스워드를 더 엄격하게 변경해야 하는 것을 강제사항으로 만들도록 설정하시오 sql SYS @ ORA19 > @?/rdbms/admin/utlpwdmg.sql 프로파일이 변경되었습니다. SYS @ ORA19 > SYS @ ORA19 > SYS @ ORA19 > alter user scott 2 identified by ...
💡 데이터를 insert하는 프로시져를 잘못 짜서 무한 루프가 돌면서 insert가 무한발생해서테이블스페이스가 full이 되는 장애상황을 막으려면 할당량을 제한해야함💡 Quota 를 1m 로 할당했기 때문에 ts7000 테이블스페이스를 1m이상 사용할 수 없게 됨
💡 데이터 사전을 select 할 수 있는 권한을 가진 유져가 있어야함💡 위의 데이터 사전을 볼 수 없는 이유는 오라클 파라미터 O7_DICTIONARY_ACCESSIBILITY가 false로 되어있기 때문\--> 이 파라미터를 true로 설정해야 볼 수 있음💡
시스템 권한: 유저가 db에서 특정 작업을 수행할 수 있게 해주는 권한ex. create, alter, drop 등 객체 권한 : 유저가 특정 객체를 select 또는 변경할 수 있는 권한ex. select, update, delete, insertpublic syn
ㄴ scott, joe, emily 유저 창을 각각 엶scott 유저에서 grant create table to joe; 이렇게 하면 joe가 emily에게 권한부여 불가with admin option을 붙여서 grant create table to joe with a
✔️ 객체권한: select on, update on, delete on, insert onㄴ orange에서 emily로 접속
maxguage나 셀파소프트 프로그램을 고객사에 가서 설치하기 전에 미리 고객에게 메일을 보내는데, 아래의 유저를 만들고 권한을 부여해달라고 스크립트를 고객에게 그대로 줍니다.유져명: selfa 패스워드: selfa권한 : select_catalog_role
en: enterenqueue: queue에 들어간다는 의미💡 메모리의 자원과 디스크의 자원을 보호하기 위한 오라클 메커니즘latch : 오라클 메모리(SGA)의 락, latch를 확보한 프로세서만 특정 메모리 영역을 사용할 수 있음 lock : 오라클 객체(테
장시간 동안 commit을 하지 않은 트랜잭션이 없게 해야함락이 자주 발생하는 특정 테이블에 대해서 갱신 작업시간을팀마다 또는 부서마다 별도의 시간으로 나눠서 작업하게 함다음과 같이 높은 레벨로 거는 락을 피하는게 바람직함💡 ocp 시험 문제틀린 답: 하위 레벨의 락
💡 rollback 또는 commit을 해줘야함그래야 waiting 하고있는 다른 트랜잭션이 작업할 수 있음 \--> 실패한 update문은 다시 작업해줘야함💡 alert log file과 trace file을 보고 dead lock 관련 테이블과 update문이
undo data : 취소를 하기 위한 dataundo tablespace에 저장 redo data : 복구를 하기 위한 dataredo log file에 저장rollback을 할 수 있게 해줌flashback을 할 수 있게 해줌instance가 비정상적으로 종료되었
\--> 가능하게 하려면 undo tablespace의 retention을 guarantee 해줘야함alter tablespace 테이블스페이스\_이름 retention guarantee;\--> GUARANTEE로 변경됨update가 더 중요하면 --> noguara
rollback을 가능하게 해줌오라클 인스턴스가 갑자기 shutdown이 되었을 때 instance recovery를 가능하게 해줌flashback table, flashback query 등의 flashback 기능을 가능하게 해줌\--> undo tablespace
💡 scott A 세션이 select 를 했는데 15분 넘게 select 를 하고 있는중입니다. 그런데 그 사이에 scott B 세션이 mucustsum의 120만번째 데이터인 salegb를 B에 K 로 변경했습니다. 그러면 B는 UNDO segment 에 들어가
💡 누군가 db에 접속해서 특정 data를 select 하게 되면 모두 감사(audit) 에 걸려서db에 로그가 남게 됨. 이것을 보안 솔루션을 쓰지 않고 오라클 자체 기능만 이용해서 구현 할 수 있음
💡 누군가 민감한 고객 데이터가 있는 특정 테이블을 조회하면, 누가 조회했고 어떤 쿼리를 수행했는지 로그에 남게 하는 오라클 기본 기능💡 oracle12c 이상부터는 Unified Auditing 기능을 선택적으로 활성화 할 수 있게 되어있음\--> 이 기능이 꺼져
[실습1] sys 유져에서 scott 의 emp 테이블에 대해서 select 를 했을때 감사되게 하시오 scott 유져에서 다음과 같이 emp 테이블을 select 합니다. sys 유져에서 감사로그를 확인합니다. 문제1. scott이 가지고 있는 모든 테이블들에 대해서 select 했을 때 감사가 되게하시오 sys 에서 다음의 작업을 수행합니다. ...
실습1. 상세 감사 기능을 활성화 시키시오 그리고 scott 유져에서 다음과 같이 조회합니다. sys 유져에서 상세 감사 로그를 확인합니다. 문제1. scott 유져에서 allen 의 월급을 6000으로 변경하고 감사되는지 확인하시오 문제2. salgrade
감사옵션을 끄려면 noaudit 이라고 하면 됨
[실습1] sysdba 권한 감사 실습 문제1. 다시 sysdba 감사를 해제하시오
💡 AWR(Automatic Workload Repository)💡 sysaux 테이블 스페이스모바텀에서 html 파일 다운받고 열어보면 됨마우스 우클릭 - kill session 하면putty의 top에서 28913번이 사라짐ㄴ SQL Statistics 클릭
[이론1] alert log file 외에 현재 db 에서 발생하는 큰 이슈를 확인하는 쿼리문 [실습1] 위의 이슈를 해결하시오
AWR : 성능정보를 자동으로 저장해놓은 저장소 (1시간 1번씩 수집) AWR baseline우리회사에 가장 이상적인 db 상태 시간 성능정보 matric누적 통계 변화율💡 logical reads : 메모리에서 읽은 버퍼의 개수위의 값은 누적 데이터이고 이 값
옵티마이져 통계정보: 테이블 통계정보시스템 통계정보 : 컴퓨터의 사양과 성능 정보옵티마이져가 좋은 실행계획을 만들어 낼 수 없음오라클은 기본값으로 매일밤 10시에 테이블 통계정보를 자동으로 수집함. 그런데 현업 dba 중 이 기능을 끄는 사람들이 종종 있음\-->
매일 밤 10시에 테이블 통계정보 수집을 자동으로 하는데 변경이 20% 이상 변경이 일어난 테이블들에 대해서만 수집을 해줌\--> 5% 변경되면 테이블 통계정보가 밤 10시에 수집됨
awr 레포트: 특정 시간에 발생한 성능상의 이슈 확인 (과거에 발생한 악성 SQL 찾을 때 유용)addm 레포트: 성능상의 이슈도 알려주고 해결방법도 알려줌ash 레포트: 최근에 발생한 성능상의 이슈들을 알려줌awr 비교 레포트: 정상적인 시간과 비정상적인 시간을
ASH (Active Session History) : 현재 발생하고 있는 악성 SQL과 성능 이슈에 대한 정보를ASH 메모리 영역에 저장하고 성능 분석 시 사용하는 기능오렌지에서 락 모니터로 확인하기
이상적인 DATABASE 상태와 성능이 안좋았을 때의 상태를상대적으로 비교하기 용이한 레포트오렌지는 startup 타임이 같은거로 넣기SNAP ID 45하드 파싱 유발SNAP ID 46CURSOR_SHARING =FORCE 후 db restart 하고SNAP ID 4
1시간에 한번씩 오라클 메모리의 성능정보를 자동으로 수집하게 하는 파라미터아래쪽에 statistics_level을 all로 하고 단축키 alt + x 를 누르거나저장버튼 옆 세번째 버튼을 누르면 buffer를 볼 수 있음
특정 SQL이 느릴 때 느린 이유를 정확하게 분석할 수 있게 해주는 오라클 툴먼저 ftp가 되게 해줘야해서 root 유져로 접속해서 다음과 같이 설치💡 elapsed time(총 걸린 시간) = cpu time(서비스 시간) + wait time(기다린 시간) \--
[실습1] 아래의 SQL을 오렌지의 SQL 튜닝 어드바이져로 튜닝하시오 위에서 권고한대로 따라하면 실행계획 보기 문제1. 아래의 SQL을 오렌지의 SQL 튜닝 어드바이져로 튜닝하고 튜닝후의 실행계획을 보시오 실행계획
💡 수집주기\--> 1시간에 한번씩 수집하고, 8일동안 보관됨30일 계산: 30일 \* 24시간 \* 60분
db에 문제가 생겼을 때 바로 그 문제를 확인할 수 있음\--> 85%가 경고의 기준이고 97%가 위기 메세지의 기준임
dba_alert_history
다른 코드
\--> 11G에서는 있었는데 12c 이후부터 없어짐. 오렌지나 maxguage 툴에서 확인해야함tools - ASH monitor 클릭
데이터 update를 반복하고 insert와 delete를 반복하다 보면 row migration 현상이 발생함. row migration 현상이 많이 발생하면 검색 성능이 떨어짐.\--> 이를 해결하기 위해서 db reorg 작업을 함테이블을 다른 테이블 스페이스로
Direct load insert : 서브쿼리를 사용한 insert 문SQL\*loader: csv 나 text 파일을 데이터베이스에 이행export / import : 테이블 또는 테이블스페이스를 통째로 이행Direct load insert: high water ma
DB upgrade 때문에💡 위와 같이 만들게 되면 인덱스와 제약을 따로 구성해줘야함ora19쪽에서 테이블 생성 스크립트와 인덱스 생성 스크립트, 제약 스크립트를 추출ora19dw 쪽에 테이블 생성ora19에서 ora19dw 데이터 이행(★중요★) ora19dw 쪽에
AS-IS 쪽의 HR 계정의 모든 데이터를 TO-BE 쪽에 HR_DW 로 이행해야함테이블인덱스제약sequencesynonym프로시져, 함수와 같은 PL/SQL 오브젝트기타 (IOT, MVIEW)as-is 는 하얀색, to-be 는 파란색으로 색깔을 변경해놓기as-is
..먼저 인덱스를 저장하기 위한 테이블 스페이스를 생성합니다.인덱스 생성 스크립트를 수정합니다.메모장 열고갯수 맞는지 확인.
제약을 생성합니다.나머지 시퀀스와 뷰와 트리거를 생성합니다..데이터의 갯수가 정확한지 확인 (★중요)인덱스의 갯수가 정확한지 확인 (★중요)제약의 갯수가 정확한지 확인 (★중요)뷰의 갯수가 정확한지 확인시퀀스의 갯수가 정확한지 확인프로시져의 갯수가 정확한지 확인
19C 교재export / import pump 서브쿼리를 사용한 insert : HWM 위로 병렬로 입력SQL\* Loader 를 이용해서 엑셀 파일을 db의 테이블로 입력export / import dump : 단순하고 빠르게 데이터를 이행할 때 사용export
user level = schema leveluser level을 가장 많이 씀table level : 특정 테이블만 export / import 수행하기user level : scott과 같이 유져가 가지고 있는 모든 객체를 전부 export / import 수행하
다음과 같이 선택하고 export 합니다.
테이블스페이스 레벨 export / import데이터 이관: 테이블스페이스 레벨로 데이터를 옮기는 형태
complete : database 전체를 export incremental: database 전체를 export한 이후에 변경된 부분만 exportcumulative: 변경된 부분만 누적해서 export
hwm 위로 입력하는 서브쿼리를 사용한 insertexport / import dump, export / import pump ( 가장 중요한 기본기술 ) csv 파일을 오라클 테이블 입력 (SQL\*Loader)오라클 골든 게이트(데이터 이행 및 데이터 동기화 툴
[실습1] 유져레벨로 export pump 하시오 [실습2] ora19dw 쪽에 jones2 라는 유져를 생성하고 scott 의 모든 데이터를 jones2 에 임폴트 하시오 [실습3] ora19 쪽에 hr 계정의 데이터를 유져 레벨로 export pump 하시오 [실습4] ora19dw 쪽에 hr2 쪽에 hr_pump.dmp 를 임폴트하시오
asis_create_hr_index_pump.sqlexpdp system/oracle_4U directory=datapump_dir schemas=hr dumpfile=hr_pump2.dmp exclude=index,constraintcp /home/oracle/p
export 할 db의 character set 과 import 할 db의 character set 이 동일해야함mswin949나 ksc5601💡 19c 이전에 예전 버전의 CHARACTERSET이 mswin949나 ksc5601 등으로 되어있음ora19에서이 작업
scp 내\_유저이름.dmp oracle@상대\_리눅스\_ip\_주소:/home/oracle/다 하고 검증 스크립트 돌리기
pump 를 이용한 데이터 이행서브쿼리과 디비링크를 사용한 insert (HWM 위로 입력)SQL\*Loader 를 이용해서 엑셀 파일을 테이블에 입력하기테이블 레벨유져 레벨테이블스페이스 레벨데이터베이스 레벨dump 보다 데이터 이행 속도가 빨라짐 (병렬처리 가능)다양
datafilecontrol fileredo log file (복구할 때 필요) archive log file (redo log file의 복사본)parameter file (인스턴스 구조정보)alert log file (오라클 에러 시 열어봐야하는 파일)passwor
ㄴ 마우스 커서를 두고 F4키 누르기
[실습1] orange를 통해서 sales.csv를 sales100 테이블에 입력하기 문제1. products 테이블을 truncate 하고 products.csv 를 오렌지로 입력하시오  / ename, salfrom emp; 하나의 프로세서가 emp 테이블을 full
[실습1] 밤에 데이터 분석 유져를 위한 리소스 메니저 환경을 구현하시오
os의 crontab과 같은 기능을 오라클에서 구현한 것\--> 특정 시간에 특정 작업이 자동으로 수행되도록 설정하는 기능time base 스케줄러: 특정 시간에 특정 작업이 수행되게 자동화event base 스케줄러: 특정 이벤트가 발생하면 특정 작업이 수행되게매일밤
컬럼추가나 삭제작업을 낮에 한참 바쁠 때 하게되면 오라클이 느려지게 돼서컬럼추가나 삭제작업은 밤에 한가할 때 수행해야함오라클 인스턴스의 구성1\. SGA - buffer cache, redo log buffer2\. background processor/home/ora
확인과거에 수행되었던 스케줄을 확인하고 싶으면
테이블과 인덱스를 다시 구성하면서 성능을 높이고 저장공간도 확보하는 작업(방청소와 비슷)dba가 한달에 한번씩 수행성능 향상공간 확보HWM(High Water Mark)를 아래로 내림ROW Migration 현상이 일어난 row들을 정리여유공간이 확보됨table ex
table compact : 비어있는 공간으로 data 를 채워넣는것table shrink : HWM 를 아래로 내리는 작업.답:crontab -e
저장공간을 절약하기 위해서윈도우에서 압축 프로그램으로 압축을 하는 것은 파일의 압축을 풀어야 내용을 볼 수 있는데오라클의 압축 테이블은 압축을 풀지 않아도 select 할 수 있음\--> 대신 insert 작업이 느려짐 \--> 그래서 주로 쿼리 위주의 변경이 필요없는
보통 테이블 생성 스크립트로 테이블을 생성하면 바로 기본 공간을 할당 받음\--> extent가 생성됨. 그런데 수백 개의 테이블을 생성해야하는데 지금 당장 공간이 넉넉치 않으면 deferred 테이블을 생성하면 됨.\--> 이 테이블을 insert가 시작될 때 ext
[실습1] ASM 환경 이미지 파일인 11gWS2.ova 를 여유공간이 있는 곳에 저장합니다. [실습2] ASM 이미지 파일을 oracle vm 에서 불러옵니다. [실습3] putty 로 192.168.56.104로 접속합니다. [실습4] 오라클에 접속이 잘되는지 확인하시오
Automatic Storage Managment의 약자로오라클이 알아서 자동으로 스토리지를 관리하기 위해서 만든 소프트웨어raw device \--> 현업에서 가장 많이 사용하는 스토리지 (튼튼합니다) 장애가 덜 발생
오라클이 알아서 디스크의 스토리지를 관리DBA나 시스템 관리자가 실수로 오라클 파일을 삭제할 가능성이 낮아짐데이터 이행 시 디스크만 빼서 새로운 서버에 붙이기만 하면 끝남 새로운 디스크를 추가할 때 서버를 끄지 않아도 됨
여러 개의 물리적 디스크를 하나의 논리적 단위로 묶어서 관리하는 스토리지 풀Oracle 데이터베이스가 data file, control file, redo log file 등을 저장할 때 사용하는 가상화된 스토리지 공간이라고 할 수 있음
ASM 영역을 관리하기 위한 백그라운드 프로세서와 메모리가 있는 영역으로 이 인스턴스가 있어야 raid 0 + 1의 효과도 누릴 수 있고 asm의 장점을 누릴 수 있음\--> 안 올라감. ASM 인스턴스 먼저 올려줘야 DB 인스턴스가 올라감디스크 추가할 때 rebala
💡 스토리지가 asm 이면 오라클 데이터 백업은 무조건 RMAN 을 사용해야함
💡 grid 소프트웨어 = ASM 소프트웨어 + cluster 소프트웨어
💡 system 관련 데이터 파일1\. system01.dbf 2. sysaux01.dbf 3. undotbs01.dbf \--> db 내리고 옮겨줘야 됨
💡 오라클 설치 스토리지 3가지 > 1. File system ASM Raw device --> 위의 3가지 스토리지에 standard alone 데이터베이스를 생성할 수 있어야하고, RAC를 설치할 수 있어야함 12C에서 19C로 유져 레벨