Oracle Database의 이해
Datafiles : database data의 모든 내용을 담고 있음
table, index와 같은 논리적 구조 뿐만 아니라 물리적인 것도 저장하고 있음
Redo log files : recovery 목적을 위해 모든 database의 변화 기록
적어도 2개의 redo log groups 를 가지며 순환하면서 쓰여짐
각 group 마다 적어도 2개의 redo log memebers 를 가지도록 추천함
member 는 각기 다른 disk 에 위치하도록 함
Control files : database 의 물리적 구조와 정보 기록
control file 은 database의 mount, open 그리고 access 하는데 필요함
최소한 2개의 control files 을 각기 다른 disk에 위치하도록 추천
Oracle Instance의 이해
oracle instance 는 SGA (system global area) 와 background process 로 구성됨
instance 가 기동될 때 SGA의 memory buffer 을 할당하고 background process 을 기동 시킴
Oracle database 와 Oracle instance 는 구별해야 함
Instance 가 기동되고 database (datafiles) 는 instance 에 의해 mounted 됨
Oracle Database 의 기동
Oracle 을 기동 시키려면 다음과 같은 절차를 밟아야 함
(nomount - 초기화 파일을 읽어 메모리 할당하고 프로세스 시작)
Mount - 컨트롤 파일에서 해당 정보를 읽어옴
Open - 모든 dataile 과 redo log open 및 정상적 DB open
제한된 User 를 위한 database 의 기동
다음과 같은 목적을 위해 database 의 access 를 제한 (Restrict) 할 수 있음
- Structure 유지와 indexes 을 rebuilding 을 실행할 때
- database data 의 export or import 을 실행할 때
- data load (with SQL*Loader) 을 실행할 때
- 임시로 일반 user 가 data using 을 못하게 할 때
restricted option 으로 startup 하면 DBA 권한을 갖는 user 만이 connect 하여 Oracle DB 를 이용할 수 있음
Database 의 정지 (Shutdown)
OS 를 Shutdown 하거나 database 의 cold backup 을 하는 경우 먼저 Oracle 을 정지시켜야 함
Oracle 을 정지시키는 방법은 아래와 같음
Normal Shutdown
- database 를 shutdown 하기 전에 Oracle Database 에 접속한 모든 user 가 분리될 때까지 기다림
- 다음 database startup 시 instance 의 recovery 절차를 필요로 하지 않음
Immediately Shutdown
- 어떤 committed 되지 않은 트랜잭션을 rollback 할 때
- Oracle 은 현재 접속한 모든 user 가 분리될 때까지 기다리지 않음
Oracle 은 활동 중인 트랜잭션을 rollback 시키고 모든 접속한 user 를 분리함
Aborting a Instance
이 option 은 가능하면 사용하지 않음
- database instance 기동 시 문제가 야기될 때
- committed 되지 않은 트랜잭션은 rolled back 되지 않음
- Oracle 은 접속한 모든 user 가 분리될 때까지 기다리지 않고 강제로 끊어버림
Oracle*Net의 사용 및 이해
- Transparent Network Substrate
- Oracle*NET and the network listener
transparent Network Substrate (TNS)
TNS 는 application 이 peer-to-peer 방식으로 접속할 수 있음
물리적으로 분산되어있는 networks 을 여러 개의 Multiprotocol 을 통해 접속할 수 있음
ORACLE*NET and network listener
network listener 은 서버에서 ORACLE*NET 클라이언트에서 접속되는 것을 받음
만약 필요하다면 여러 개의 listener 은 TNS 에 의해 제공되는 모든 표준 transport protocols 를 이용할 수 있음
ORACLE*NET 의 기동 및 정지
클라이언트에서 Oracle 을 이용하려면 listener 을 기동시켜야 함
Oracle User 의 관리
Oracle 의 정보를 읽거나 입력 혹은 수정하기 위해서는 먼저 Oracle 을 이용할 수 있는 OS user id 와 Oracle user id 두 가지를 알아야 함
Database User 의 생성 및 관리
New User 생성
Oracle User 명을 test 로, password 를 test 로 등록하는 경우
default tablespace 를 정해주는 것은 앞으로 이 user 가 만드는 table 은 users 라는 tablespace 에 만들어지는 것을 의미함
temporary tablespace 는 이 user가 sort 등의 작업시 이용되는 temporary 영역으로 temptablespace 를 이용하라는 것 의미
Database User 관리
password 변경 : password 를 test1 으로 변경하고자 하는 경우
cascade option 을 이용할 경우 test 의 스키마는 물론 종속적인 foreign key 까지도 drop 시킴
이용 시 주의 !
Database 의 저장 영역 구조 및 TableSpace 관리
저장 영역구조 정의
Block : 데이터를 구성하는 최소의 단위
Extent : 데이터베이스의 data block 이 연속적으로 모여서 하나의 Extent 를 이룸
Segment : 특정 구조에 대한 데이터를 갖고 있는 하나 혹은 하나 이상의 Extent 의 집합
Tblespace : 논리적인 데이터 저장공간으로서 관련된 논리적 구조를 그룹화하여 이용
File : 하나의 tablespace 에 속하는 물리적인 datafile 임
Database : tablespace 의 공유 데이터를 저장하고 있는 논리적인 집합
Tablespace 관리
user 에게 데이터를 저장할 공간할당과 공간이용의 quota 를 제어할 수 있음
tablespace 를 online or offline 하여 데이터 이용을 제어할 수 있음
I/O 성능 향상이나 I/O 경합을 줄이기 위해 tablespace 를 devices 에 분산하여 데이터를 관리할 수 있음
부분적 backup 이나 recovery를 위해 실행할 수 있음
Backup
백업방법
Oracle 데이터베이스를 백업하는 데에는 세가지 표준적인 방법이 있음
즉 익스포트, 콜드백업, 그리고 핫 백업이 있음
익스포트란 데이터베이스의 논리적인 백업이며,
나머지 두 가지 백업 방법은 물리적인 파일 백업 방법임
Cold Backup (OS 명령어에 의한 백업)
콜드 백업 : 데이터베이스 파일의 물리적인 백업이며 데이터베이스가 종료된 상태에서 Database 를 Backup 하는 방법
가장 보편적이고 편리하지만 일단 DBMS 를 정지해야 하는 점에서 유연성이 적음
콜드 백업은 아래의 파일을 반드시 백업해야 함
- Data file : 이용자와 시스템 정보를 저장하는 파일
- Redo log file : 정보에 대한 변경 history를 저장하는 파일
- Control file : 데이터베이스 파일 목록 및 정보를 저장하는 파일
- Parameter file : 데이터베이스 운영 변수 값들을 저장하는 파일 (선택 사양)
Hot Backup
Oracle DBMS 가 기동 중에 Database 를 O/S Command 로 Backup 하는 방법으로 Backup 중에 online 으로 Data 조회하거나 변경할 수 있음
Backup 중에 변경되는 data 는 모두 Rollback Segment 와 archive log file 에 저장됨
Hot Backup 을 수행하게 되면, 가장 최근에 cold backup 한 이후부터 Recovery 하지 않고,
가장 최근에 hot backup 한 이후부터 복구하면 되므로 복구시간을 단축할 수 있음
hot backup 수행 방법
- DB 운영 mode 가 archivelog mode 인지 확인
- SQL> archive log list;
위의 명령을 이용하여 oldest online log sequence 번호 확인 - 3단계
- tablespqce 단위의 datafile 에 대한 hot backup 수행
- O/S command 로 backup 할 tablespace 에 속한 모든 datafile backup
- tablespace 단위의 datafile 에 대한 hot backup 종료
- backup 할 모든 tablespace 에 반복
- SQL> archive log list;
위의 명령을 이용하여 current log sequence 번호 확인 - log switch 수행
- 2단계와 4단계에서 결정된 모든 archived log file 을 backup
익스포트 백업
익스포트는 콜드백업과는 달리 Oracle Startup 되어 있는 상태에서 작업해야 함
익스포트 백업 방법은 full backup, user 별 backup, table 별 백업이 가능함
장애 진단
Oracle Database 운영 중 발생할 수 있는 오류에 대한 진단은 alert.log 파일을 확인하는 데서 시작
alert.log 파일에 기록된 오류는 세부 정보에 대해 특정 Trace File 을 확인하도록 유저에게 지시
일부 운영 체제에서 비정상적으로 종료된 프로세스는 core file 을 생성함
이 core file 은 플랫폼 디버거에서 볼 때 중요한 정보를 제공할 수 있음
많은 경우 Oracle Database Engine 자체의 오류보다는 사용자의 과실과 HW 의 문제로 인한 Oracle Database 운영 장애를 초래하는 경우가 발생되므로 해당 시스템의 로그 확인도 필수적임
Alert.log 점검
Oracle Database 각 서버와 백그라운드 프로세스에서 관련된 Trace file 에 쓸 수 있음
시스템 오류가 프로세스에서 감지되면 오류에 대한 정보를 해당 Trace file 에 덤프함
Alert 파일 또는 Alert log 는 특수한 Trace file 임
데이터베이스의 Alert 파일에는 다음을 포함하여 메세지 및 오류가 시간 순으로 기록되어 있음
- 발생하는 모든 시스템 오류, 블록 손상 오류 및 Deadlock 오류
- CREATE, ALTER 및 DROP 문과 STARTUP, SHUTDOWN 및 ARCHIVELOG 문과 같은 관리 작업
- Shared Server 및 디스패처 프로세스 기능과 관련된 여러 메세지 및 오류
- Materialized View 의 Automatic Refresh 중에 발생하는 오류
- 데이터베이스 및 Instance 시작 시 모든 초기화 파라미터 값
오라클 데이터베이스는 Alert 파일을 사용하여 운영자의 콘솔에 정보를 표시하는 대체 수단으로 이러한 특수 작업 로그를 보관함
작업이 성공적으로 수행되면 시간 기록과 함께 "완료됨" 메세지가 Alert 파일에 기록됨
SPFILE 생성 방법
spfile 을 사용하다가 그 파일의 내용을 initSID.ora 에 backup 차원에서 반영시켜 두거나, 혹은 spfile 대신 initSID.ora 를 사용하고자 하는 경우, 또는 반대로 initSID.ora 를 참조하여 spfileSID.ora 를 생성하고 하는 경우 다음과 같이 간단히 작업하면 됨
'Oracle' 카테고리의 다른 글
Oracle Database 12c ③ (0) | 2024.02.20 |
---|---|
Oracle Database 12c ② (0) | 2024.02.20 |
Oracle Database 12c ① (0) | 2024.02.20 |
centOS 7 oracle 19C 설치 (0) | 2024.01.29 |
centOS 7 oracle 12C 설치 (0) | 2024.01.12 |