2004_01_23 정리
0.version 정보 확인
- define- select * from v$version
1 Connection Vs Session
Connection = 연결Session = Connection + 인증 ( response )
2. OLTP -Online Transaction Process
-update,insert,delete,pga가instance의 large pool로 <--Shared server-많은 수의 사용자가 각각 적은 작업량을 요구할때 주로 낮에 사용된다
OLAP- Online Analysis Process
-select,dedicated server (user : server <--data의 이동이 많기 때문에
-적은 수의 사용자가 많은 양의 작업량을 요구할때 주로 밤에 관리자에 의해 사용된다.
3. Table Space
----------------------Oracle DB Instance <---Oracle은 TableSpace로 인식한다
----------------------
System O.S <---O.S 는 ~/oradata/user_sid/DataFile.dbf로 인식한다
Ex) System.dbf <--DBA 가 핸들링해야하는 process가 사용함
% : O.S 와 Oracle 맵핑
-tablespace를 분리 시켜 준다.
DBA 가 사용하는 TableSpace와 user들이 사용한는 Table space 와의 contentionㅇ 줄이기 위해서
4. RAC - Real Application cluster
- 밑의 그림과 같이 물리적 D.B와 논리적 Instance 의 관계가 1:1 이 아니고1:n인 분산 처리형 D.B의 형태를 말한다. (Oracle 의 특징 : 분산 처리 D.B는 많이 분산될수록
속도가 느려진다는 점을 Oralce에서는 Instance끼리의 통
신을 통해 극복 하였따.)
?Instance 1 Instance 2 Instance 3 ....... Instance n
| | | |
----------------------|-------------------------------
DataBase <--D.B의 I/O를 최소화하기 위해 Instance끼리의 정보 이동
---Tip--------------------------------------------------------
| -한번에 접속하기
| sqlplus '/as sysdba'
| sqlplus /nolog 다음 sql>에서 conn /as sysdba
| sqlplus id/pass or conn id/pass
| - Sql에서 Cmd로 나가려면 host 명령어을 수행 시킨다
| 다시 돌아올 결우는 exit ,sql>에서 cmd 명령어를 수행 하려면 어두에 !
| 를 붙인후 실행한다.
--------------------------------------------------------------
5. User Manage
-Oracle에서 기본 제공되는 role 은 (Connect,resource,dba)%resource role에 있는 unlimited tablespace가 table 의 생성을 가능하게한다.
table 생성하기만 하려면 resource role을 grant 해준다.
----------------------------------------------------
|TIp user role ,privilege확인하는법
| : 현재 열려있는 session의 user 의 롤과 권한 확인
| select * from session_privs;
| select * from user_role_privs;
| :System의 모든 role에대한 정보
| select * from role_sys_privs;
|
| - Database 생성시의 SQL script file ex) catalog.sql 의 위치
| ../../rdbms/admin/
-----------------------------------------------------
6. Database
1)Control File : 1개 이상 일관성유지에사용 D.B에 물리적File들과 instance를 맵핑하며 *.ctl의2)redo log File : 2개이상이 존재해야하며 D.B 에 history 내역을 저장한다 *.log
3)Datafile : D.B. 내의 모든 DATA를 저장하고있는 . *.dbf
4)Archived Log File : Redo Log의 Backup File % O.S 의 영역에서 ㄱ관리한다.
5)Parameter File : D.B가 startup할때 꼭한번 읽어 정보를 가져온다
- D.B 가 open 되면 없어져도 된다.
6)Password file : 기존의 o/s인증이 아닌 보다 보안에 강한 Oracle 의 Password인증
방식을 사용 한다 . --sys
7. Instance
1) 메모리 (SGA)2)Process ---SERVER Process (incude Personal process)
|-Background Process : Pmon - Process Monitoring
Smon - Instance monitoring
-전전되었을때 redolog를 조사해 다시 setting
DBwr - D.B buffer cache 의 Duty Data를 직접
물리적인 D.B file 에 내려쓴다..
LGwr - RedoLog buffer 의 내용을
Redolog File 에 내려쓴다
Ckpt - check point시점을 발생시켜 각 파일들관의 일관성을 맞추어준다.
----Tunning Target -----
* SGA ----- shared Pool ----- Libarary cache --- SQL statement
1)문법체크 DataDcitionary cache --- dataDictionary 의 내용
2)권한체크
3)실행계힉
4)실행
- Data buffer Cache - 질의 에서 사용된 data
- Redo log Buffer - 변경사항
?
-----Tip-----------------------------------
Data의 record 가 많을경우 끊어서 보여준다 ..
set pause on/off
SQLPLUS 의 현재 설정된 환경설정 을 볼때
show all
8. Oracle D.B의 Startup 단계
___________
| OPEN
__________|
| MOUNT <-Control file 필요 D.B file 들과 연동하여 D.B open
__________| -alter database open
| NOMOUNT <- Instance start,D.B생성 ,(약간의)control file 생성
___________| -alter database mount
______| CLOSE
nomount : instance의 startup,sga 할당및 background process startup
mount : 사용할 D.B.를 찾아 물리적 Architecture를 확인
open : D.B를 open 하여 user의 접속이 가능
- startup force : shutdown 후 startup
- startup read only : System 복적상의파일(control,alert,background등 )만 쓰기가 가능하다
: mount단계에서 변형 할수있다 alter database read only
- startup restrict : restricted session 권한을 가진 사용자만 로그인이 가능하다.
: mount단계에서 변형 할수있다 alter database restrict
: alter system restricted session 명령으로 동적으로 nornal모드 변형이 가능하다
Shutdown Transactional :ckpt 발생
Normal :ckpt 발생
Abort : ckpt 미발생 <--startup때 smon process에 의해 instance recovery
immediate :ckpt 발생
Diagnostic file (alter session set 으로 변경,pfile 조작후 spfile사용, )
alertSID.log 위치보기 : show parameter background_dump_dest
Background Process trace file 위치보기 : show parameter background_dump_des
sql_trace file 위치보기 : show parameter sql_trace
변경 : alter system set sql_trace=true scope=spfile
9. Parameter File ( spfile 과 pfile )
1.우선순위 : spfile > pfile <-둘중하나만있어도 start up은 가능하다 .
2.spfile은 동적 할당이 가능하다alter system set process=200 scope =(memory,spfile,both)
memory= 현재 instance에만 적용
spfile = spfile 에만 적용
both = nl의 두개다 적용
slter session " " "
2. spfile과 pfile은 서로변환이 가능하다 .
Ex. create spfile from pfile- pfile 이 ../../dbs 안에 initSID.ora의 형태로 있을때가능하다.
- pfile은 기본적으로 ../../admin/sid/pfile 에 하나 존재한다 (지우지말것 )
- pfile 여러가지있는것이 좋고 필요할때마다 spfile 로 바꾸어 사용한다.
3. Data Dictonary
ALL_ <-- 내가 원한을 위임받은 객체 (접근가능한 모든 객체 )USER_ <-- 내가 직접 생성한 객체
DBA_ <--database 의 모든 정보
V$_ <--동적성능 view(D.B. 정보를 실시간으로 .)
3. ㅤControl File
1) Control file 의 Mirroring1> 먼저 select * from v$ controlfile로 controlfile의 개수와 위치를 파악한후
Shutdown 한다 .
2> 물리적으로 현재의 control file을 복사 ㅤMirroring 하려는 disk의 위치에 복사한다 ,
후 이름을 바꾸어준다.
3> Parameter file 의 control_file에 새로 복사한 file의 이름과 위치를 정확히 기입한다.
4> sql>에서 create spfile from pfile로 spfile을 갱신한다.
5> startup 한후 select * from v$controlfile로 추가 여부확인한다.
4. Archived log file
목적지 확인 : show parameter archD.P.V 확인 : select * from dict where table_name like '%log%'
Archive 확인 : Archive log list
1) Archivelog mode 변경
1. Archive log mode 확인
sql> archive log list -D.B log mode와 automatic log가 있다
Archive를 위해서는 두가지 모두 바뀌어져야한다
2.D.B. log mode 변경 ( D.B shutdown 후에만 )
(변경전에 는 full backup을 해두는 편이 좋다 )
sql> shutdown immediate
startup mount
alter database (archivelog/noarchivelog)
alter database open
3.Automatic log 변경 (online 상에서도 가능하다)
sql>archive log (start/stop)
2)online redo log group 추가
1> select * from v$log를 통해 상태와 수 그룹 확인
2> alter database add logfile
'../.././xxxxxxxxxxxxxx' size 1M; <--status unused로 추가된다 .
3) Onlineredo log member 추가
1> alter dbatabase aaa logfile member './../xxxxxx' to group 1
4) online redo log group 삭제
1>alter database drop logfile group 1 '../../xxxxxxxx'
5) online redo log member 삭제
1> alter database drop logfile member '../../xxxxxxx'
5. Password File
목적 : D.B를 startup,shutdown시킬수있는 sys유저에 password 설정해주기1) Password fie의 생성
../../bin/orapwdSID file =../../dbs/orapw password= xxxxx entries =10
생성되면 ./dbs의 위치에 암호xxxxxx 동시 접속자 10명을 정의한 file이 생성
2) password 파일을 생성하면 접속방식이 달라진다 .
sqlplus ' sys/xxxxxx as sysdba' 로 접속해야합니다.
3) 그러면 현재 Oracle 은 o/s 인증방식과 Password인증방식 모두를 사용하고 있기 때문에
conn /as sysdba 같은 명령으로 sysdba로 접근이 가능하다 그렇기 때문에 o/s 인증을
완전히 막아 주어야한다 .
/../network/admin/sqlnet.ora에 다음 구문 추가 없으면 생성
SQLNET_AUTENTICATION_SERVICES = NONE
으로 o/s 인증을 막아준다 .
%%% Password File 설정할때 Paramer File 의 parameter를
REMOTE_LOGIN_PASSWORD=EXCLUSIVE 설정하면 <-- 1:1 환경
하나의 Database 에 하나의 instrance 사용시 sys,system이외의 다른 user가
sys 권한을 갖을수있다.
REMOTE_LOGIN_PASSWORD=SHARED 설정하면 <-- RAC환경
RAC에서 하나의 D.B에 여러가지
ㅤInstance 사용시 오직 SYS만이 sysdba권한을 갖는다.. 사용하면
grant sydba to USER 를 사용할수 없음
6.Chekpoint 발생
sql> alter system checkpint7. log switch 발생
sql> alter system switch logfile8. Sys와 System의 차이
Sys <--sysdba privileage,startup,shutdown가능, Dictionary의 소유자System <-- dba role privileage
9.D.B를 완전 수동으로 생성하면 D.B가 생성된후에
../rdbms/admin 안의(catalog.sql , pupbld.sql , catproc.sql ) 3가지를
실행해주어야한다.
각 table 과 그의 속하는 column의 constraints 조건을 나타내는 명령.
select distinct a.owner,b.table_name,a.constraint_type,b.constraint_name,b.column_name,a.r_owner,a.r_constraint_name
from dba_constraints a,dba_cons_columns b
where a.owner='WAS1' and
b.owner='WAS1' and
a.constraint_name=b.constraint_name
Tip --------------------------------
help function <--linux,solaris등에서만 지원
for ex error message is ora-01034 일때
sql> !oerr ora 01034
Module 10
Table 관리
단일 Data Type 복합 DataType
char (max 255)
varchar2(max 4000bytes)
nchar(n),nvarchar2(n) <-각나라에따라길이변경
number(p,s)
date <- 날짜 형식이 data
timestamp <-소수점 9자리 정밀도있는 시간제공
raw <-2진 data max 2000bytes
long <-가변길이문자data max 20G
long raw <-2G까지의 2진 데이타 저장
No comments:
Post a Comment