06강
Oracle Administration Workshop Ⅰ
4장 Managing the Oracle Instance
Isqlplus로 remote db에 관리자로 접근하여 db startup하기
- remote에서 db에 관리자로 접근하기 위해서 isqlplus의 id:jfv, pw:jfv라는 user를 추가 하고 그 user가 dba권한을 갖도록 설정한다.
- 10gWSI: 4-10. Setting Up iSQL*Plus for SYSDBA and SYSOPER
- 0. Stop the isqlplus application
1. Create users for the iSQL*Plus DBA URL.
2. Grant the webDba role to the users.
3. Restart the iSQL*Plus server after making any changes
to the JAZN authentication file, jazn-data.xml.
4.Test iSQL*Plus DBA Access. - 0
$isqlplusctl stop - 1.To start the JAZN shell, enter:
>vi .bash_profile
JAVA_HOME=$ORACLE_HOME/jdk; export JAVA_HOME <--확인만 하삼 - >cd $ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus
- >$JAVA_HOME/bin/java \
-Djava.security.properties=$ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props \
-jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
-user "iSQL*Plus DBA/admin" \
-password welcome -shell - 2.Create Users, Grant Users the webDba Role
- JAZN:> listusers "iSQL*Plus DBA"
admin - JAZN:> adduser "iSQL*Plus DBA" jfv jfv <--> remuser "iSQL*Plus DBA" jfv
setpasswd "iSQL*Plus DBA" jfv jfv oracle - JAZN:> grantrole webDba "iSQL*Plus DBA" jfv <--> revokerole webDba "iSQL*Plus DBA" jfv
JAZN:> exit - 3.Restart the iSQL*Plus server
> isqlplusctl start
Database Startup and Shutdown
-
Startup
-
option
-
STARTUP NOMOUNT (NOMOUNT 단계까지 진행)
- Opening Controlfiles
- (v$sga, v$bgprocess)
-
STARTUP MOUNT (MOUNT 단계까지 진행)
- Opening Datafiles, Redologfiles
- (v$datafile, v$logfile, v$controlfiles)
-
STARTUP OPEN (OPEN 단계까지 진행 : Default)
- (dba_xxx, all_xxx, user_xxx)
-
-
option 하위의 v$...등등은 각 단계에서 사용가능해 지는 view들이다.
startup 되다가 혹시라도 중단될때 각각의 view조회해서 어디쯤에서 멈췄는지 알수 있다.
- ALERT DATABASE MOUNT; --NOMOUNT 단계에서 MOUNT 로 진행하라는 명령
- ALERT DATABASE OPEN; --MOUNT 단계에서 OPEN 단계로 진행하라는 명령
-
-
Shutdown
- shutdown normal : 사용자가 나갈때 까지 기다려
- shutdown immediate : 현재 commit된건 ok 인데 나머지는 rollback 하고 죽여
- shutdown transactional : 현재 진행되는 Tx만 끝나면 죽여! 새로운 Tx는 안받아줘!
- shutdown abort : 파워 뽑아버려!!!!
진단 File
-
Alert log
- 목적 : 오라클 서버가 정상적으로 돌고 있는지 확인 목적
- 인스턴스당 반드시 하나 존재
- 물리적 구조에 대해 영향을 미치는 명령을 실행시 관련된 정보 기록
- background_dump_dest parameter에 존재 한다.
-
파일명은: alert_orcl.log (alert_인스턴스명.log)
- alert_orcl.log는 자꾸 커지는 파일인데 너무 크게 되서 dist꽉 차게 되면 startup나 shutdown시 에러가 발생한다.
-
Trace file (퍼퍼먼스 목적이다.)
-
by background process : background process가 에러를 낼때만 만들어 진다.
- 위치는 : background_dump_dest parameter에 존재 한다.
-
by Server process : 사용자의 요구가 있을경우 만들어 진다.
- 위치는 : user_dump_dest parameter에 존재한다.
-
Initialization Parameter Files
-
Parameter File Tyles
-
Static parameter file, PFILE(~8i):init<SID>.ora (아스키)
- Persistent parameter file, SPFILE(9i~):spfile<SID>.ora (바이너리)
- 그러니까 말이지 8i까지는 pfile을 썼었어 아스키로 되어 있어서 text편집도 되고 Dynamic Parameter의 경우는 바로 수정도 할수 있고 그렇지
그런데 서버를 리스타트 하고 나면 Dynamic Parameter로 설정된 Parameter은 사라져! 대박~ 또 Static Parameter는 서버를 리스타트
해야 되자네...그러니 미치는 거지! Static Parameter의 경우는 당근 리스타트 해야 하고
결국 9i엔 spfile이란 놈이 나왔는데 이놈은 pfile을 바이너리 파일로 쑝 바꾼 파일인데 spfile은 Dynamic Parameter로 수정하더라도 spfile 및
메모리등 다 적용 할 수 있어! 리스타트가 되어도 off않되고 적용 유지되지! 그러니까 spfile 쓰삼!
-
-
Parameter 변경 Systax
-
alter system set timed_statistics=false; scope=[both:memory:spfile]
-
옵션의 Default값은(both=memory와spfile를 다 바꾸시오, memory는 memory만 변경하라는 뜻이고 spfile는 spfile만 변경하게함)
- pfile default: memory
- spfile default: both
-
-
5장 Managing Database Storage Structures
OMF
-
Oracle_Mansged Files(OMF)
-
file의 생성시 file이름을 지정하지 않아도 file이름을 자동으로 결정
-
file삭제시 db내부의 file pointer를 삭제할 뿐남 아니라 OS상의 file도 삭제
-
tablespace 생성시 이름을 주면 OMF가 아니다.
-
- SQL> create tablespace ttbs
2 datafile '/home/oracle/ttbs01.dbf' size 10M,
3 '/home/oracle/ttbs02.dbf' size 10M; - SQL> SELECT TABLESPACE_NAME, FILE_NAME FROM DBA_DATA_FILES;
- SQL> DROP tablespace ttbs;
-
- 파일 이름을 주었기 때문에 OMF가 아니다.
- 이럴경우 tablespace를 삭제하고 OS에서 다시 한번 file을 삭제 해줘야 한다.
- 관리가 힘들다는 거지!
- SQL> create tablespace ttbs
-
- SQL> create Tablespace ttbs;
- SQL> drop Tablespace ttbs;
- * 이렇게 그냥 이름 없이 생성하면 ORACLE알아서 파일 생성한다. 또 drop tablespace시 OS의 파일도 알아서 삭제해준다.
- 이게 OMF방식이라는 것이다.
TableSpace
-
TableSpace 공간 부족 현상 해결 방법
- ADD DATAFILE (Datafile을 더한다.)
- AUTOEXTEND ON (사이즈 자동 증가 옵션)
- RESIZE (뭐...리사이즈지)
-
Type
- Permanent : create/alter/drop 하는 object들은 Permanent Type으로 해야 한다.
- Temporary : sorting시 중간결과를 저장하는 TableSpace는 Temporary Type로 해야 한다.
- Undo : Undo는 Undo
-
Temporary TableSpace
-
필요성 : 사용자가 sorting을 요청시 그 데이타가 커서 PGA영역으로 부족할때 Temporary를 이용하여 sorting한다.
혹 user 생성시 명시적으로 Temporary을 할당 받지 못할경우 System의 sorting Temporary space를 사용한다.
근데..근데..근데 System 영역을 사용하면 성능저하가 염려 되기에 9i 부터는 별도의 DEFAULT_TEMP_TABLESPACE 가 존재하고 그것을 쓴다.
- Syntax
- Create Temporary Tablespace
- Tempfile '~/temp01.dbf' size 100M;
- --위에처럼 한다고 해서 Temporary를 알아서 사용하는 것이 아니다.
- Alter user hr
- Temporary Tablespace temp;
- --이처럼 user에게 할당해 주어야 한다.
-
-
ASM (auto 스토리지 관리)
- file system (OS)
- raw device (OS)
-
ASM - (oracle)
- file stripping (IO분산)
- Mirroring (데이타 보호 [동일한 이미지를 다른 disk에 존재 시킨다.])
-
Online Rebalancing ([DB를 사용하는 중간에 물리적 disk를 추가 및 제거 할 수 있다.])
- 이걸 file system및 raw device에서는 못해
- Default TableSpace 확인
- SELECT property_name, property_value
FROM database_properties
WHERE property_name LIKE '%DEFAULT%' - -----------------------------------------------PROPERTY_NAME ------------------------------------------------------PROPERTY_VALUE ----
-
DEFAULT_TEMP_TABLESPACE TEMP DEFAULT_PERMANENT_TABLESPACE USERS DEFAULT_TBS_TYPE SMALLFILE
6장 Administering User Security
권한
- sys : 는 못하는게 없는 관리자
- system : sys의 권한 중 DBA권한을 받은 관리자임(이놈은 DB 올리고 내리는거 못해, 결국 이놈도 end user)
-
인증 방법 (ID, Password 관리 방법)
- Password 방식 user명 db내부, pwd는 db내부
- Exteral방식 user명 db내부, pwd는 db외부
- Global방식 : 별도의 인증 서버
- 전체 권한 확인 및 부여된 상태
- select * from dba_sys_privs;
select * from dba_role_privs;
Role Test
-
SQL> CREATE USER tuser IDENTIFIED BY oracle;
User created.
SQL> CREATE ROLE arole;
Role created.
SQL> CREATE ROLE brole IDENTIFIED BY oracle;
Role created.
SQL> GRANT create session TO arole, brole;
Grant succeeded.
SQL> GRANT select on hr.employees TO arole;
Grant succeeded.
SQL> GRANT select on hr.departments TO brole;
Grant succeeded.
SQL> GRANT arole TO tuser;
Grant succeeded.
SQL> ALTER USER tuser DEFAULT ROLE arole;
User altered.
SQL> GRANT brole TO tuser;
Grant succeeded.
7장 Managing Schema Object
- object : view, sequence, synonym
- segment : table, index
-
Constraints(제약조건)
-
ENABLE(제약조건 강요상태)
- VALIDATE : New Data 체크, 기존 Data 체크
- NOVALIDATE : New Date 체크, 기존 Date 체크않함
-
DISABLE(제약조건 아니아니강요상태)
- VALIDATE : New Data 체크않함, 기존 Data 체크
- NOVALIDATE : New Data 체크 않함, 기존 Data 체크 않함
- New Data Check 여부에 따라 ENABLE/DISABLE
- 기존 Data Check여부에 따라 : VALIDATE / NOVALIDATE
- 그니까 특정 테이블에 데이타 100만건 넣을때 허걱..제약조건 켜 있으면 느리지! 엄청...
- 그래도 당장은 그 체크 기능을 죽여 놓고 100만건 insert하고 그다음 enable해서 체크를 진행한다.
- 그런데 그냥 Enable하면 기존 데이타 끼리도 막 체그 하고 그래서 Enable쓸때는 옵셥으로 기존 데이타끼리도
- 체크하는 그건 뻘짓을 제거 한다.
-
이 글은 스프링노트에서 작성되었습니다.