목차
1. 오라클 서버 설치
1-1 리눅스 환경 설정
1-2 설치용 패키지 준비
1-3 인스톨러 진행
2. 오라클 구성 요소
2-1 오라클 주요 구성 요소
2-2 오라클 인스턴스 관리
3. 오라클 STARTUP과 SHUTDOWN
3-1 오라클 시작과 종료
3-2 단계별 STARTUP 과정
3-3 SHUTDOWN 옵션의 이해
3-4 Readonly 상태의 이해와 실습
4. Parameter file 관리
4-1 Parameter file 확인
4-2 Spfile 환경에서 파라미터 확인과 수정
4-3 Spfile 운영 환경에서 scope 설정에 따른 parameter값의 변화
5. Control file 관리
5-1 Control file 확인
5-2 Spfile 환경에서 control file 다중화 실습
1. 오라클 서버 설치
1-1 리눅스 환경 설정
① 사전 준비
Oracle 공식 사이트에서 Linux 운영체제에서 사용 가능한 Oracle Database 19c를 오라클을 설치할 서버에 다운로드 받아놓는다.
② oracle 관리 계정 및 그룹 생성
호스트명, IP : ora19c, 192.168.10.143
설치 계정 : ora19c (UID : 1900)
소속 그룹 : dba (GID : 1900)
홈 디렉토리 : /home/ora19c
$ORACLE_BASE : /app/ora19c
$ORACLE_HOME : /app/ora19c/19c
- $ORACLE_HOME 경로는 오라클 관련 파일의 메인 경로이므로 반드시 기억한다.
=======================
# groupadd -g 1900 dba
# useradd -g dba -u 1900 ora19c
# passwd ora19c
# mkdir -p /app/ora19c/19c
# mkdir -p /app/oraInventory
# chown -R ora19c.dba /app/ora19c
# chown -R ora19c.dba /app/oraInventory
# chgrp -R dba /app
# chmod -R 775 /app
# ls -al /app
- 설치 과정 중에 $ORACLE_BASE는 /app/ora19c를 사용하는데, 이로 인해 oraInventory 디렉토리가 /app에 만들어지므로 ora19c 계정이 /app 디렉토리에 대해서 소유권과 쓰기 권한을 갖도록 설정해야 한다.
③ 리눅스 설정
# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
197.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.10.143 DB19.itclass.co.kr DB19
192.168.10.143 ora19c.itclass.co.kr ora19c
# vi /etc/selinux/config
. . .
# SELINUX=enforcing
SELINUX=disabled
. . .
# systemctl is-enabled firewalld.service
# systemctl is-active firewalld.service
# systemctl status firewalld.service
④ 추가 패키지 설치
오라클 설치에 반드시 필요한 패키지들이다. 본서에서 제공한 리눅스 설치 매뉴얼에 따라 설치된 리눅스의 경우 아래 (설치)라고 표시한 몇몇 패키지를 제외하고 대부분에서는 이미 설치되어있다. 반드시 설치 여부를 확인한다.
# dnf -y install ksh libaio-devel glibc-devel libstdc++-devel gcc-c++ libnsl
# dnf install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libcap1-1.10-7.el7.x86_64.rpm
# dnf install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
=======================
# dnf install -y https://yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
- 이 문장 실행 시 'oracle' 계정으로 생성된다. 그러나 이 계정이 사용되지는 않는다.
⑤ Ora19c 계정 설정
ora19c 계정 접속 전, 사전에 다운로드받은 오라클 원본 파일을 $ORACLE_HOME(/app/ora19c/19c)으로 옮긴다.
# mv LINUX.X64_193000_db_home.zip /app/ora19c/19c
이전의 설정이나 추가 설치는 모두 root 계정에서 수행했으나 이후의 설정은 ora19c 계정 즉, 설치될 오라클의 관리 계정에서 수행한다.
# su - ora19c
$ vi ~/.bash_profile
. . .
# oracle setup
export ORACLE_HOSTNAME=DB19.itclass.co.kr
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_OWNER=ora19c
export ORACLE_BASE=/app/ora19c
export ORACLE_HOME=/app/ora19c/19c
export ORACLE_SID=DB19
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME:/usr/bin:.
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export CV_ASSUME_DISTID=RHEL7.6
ora19c 계정으로 재로그인 후 설정 사항이 적용된 것을 반드시 확인한다.
$ env | grep ORACLE
1-2 설치용 패키지 준비
① 압축 해제
미리 다운로드 받은 오라클 원본 파일의 압축을 해제한다.
$ cd /appora19c/19c
$ unzip LINUX.X64_193000_db_home.zip
② 인스톨러 실행
인스톨러는 X-window 환경에서 실행될 수 있으므로 이때는 putty나 mobaxterm과 같은 터미널을 사용하지 않고 직접 X-window 환경에서 작업한다.
$ unset LANG
$ ./runInstaller
1-3 인스톨러 진행
- 첫 번째 항목을 체크한다.
- Desktop class: 기본적인 설정이 되어있다. / Server class: 상세한 설정을 직접 한다.
- Desktop class를 체크한다.
- 경로 입력을 손으로 하는 경우는 절대 없으므로 건드리지 않는다.
- Global database name은 호스트 이름으로 설정한 DB19를 입력한다.
- Password는 관리자 비밀번호로 임의의 값을 지정한다. 관리자가 네트워크를 통해 접속하는 경우 사용한다.
- Create as Container database 체크를 해제한다.
- 설정한 Password가 오라클 권장 기준에 맞지 않는다는 경고창이다. 그대로 진행한다.
- 따로 설정하지 않고 기본 설정 그대로 진행한다.
- 설치 과정 중 루트 계정이 필요한 경우가 있으므로 자동으로 루트 계정을 이용하도록 루트 계정의 패스워드를 알려준다.
- 지금까지의 설정을 확인시켜준다. 문제가 있을 시 경고가 표시된다.
- 설치 진행중 화면이다.
- 작업 중 루트 계정이 필요한 부분이 있을 때 나타나는 창으로, 정말 자신이 루트 계정을 마음대로 쓸 지 확인한다.
- 설치가 완료되었다.
- Note에 웹 기반 오라클 관리 툴 URL을 남겨놓으나 아무도 사용하지 않는다.
이후 터미널에서 서버에 ora19c 계정으로 접속 후 다음 명령어를 통해 DB에 관리자로서 접속한다.
$ sqlplus / as sysdba
다음 명령어를 통해 현재 DB의 상태를 확인한다. OPEN 상태여야 DB를 온전히 사용할 수 있다.
SQL> SELECT status FROM v$instance;
2. 오라클 구성 요소 (2025-04-18 수정)
2-1 오라클 주요 구성 요소
사용자 프로세스
: sqlplus와 같은 클라이언트 프로그램으로 서버 프로세스에 접근한다.
서버 프로세스
: sql 문 입력 시 Syntax 검사, Semantics 검사를 진행한다.
- Syntax 검사 : 오타를 검사한다.
- Semantics 검사 : 딕셔너리를 통해 해당 테이블 및 컬럼의 유무, 테이블 접근 권한 등을 검사한다.
PGA
: 서버 프로세스가 각자 가지고 있는 메모리 영역이다.
라이브러리 캐시
: sql 문 실행 시 Syntax 검사, Semantics 검사 후 sql문장과 실행 계획을 저장한다.
- Syntax 검사 : 오타를 검사한다.
- Semantics 검사 : 딕셔너리를 통해 해당 테이블 및 컬럼의 유무, 테이블 접근 권한 등을 검사한다.
: sql 문장의 해시값을 저장하여 sql 문장 실행 시 이전에 실행된 적이 있는지 여부를 판단한다. 실행 된 적이 있다면 기존의 실행 계획을 이용하며 실행 된 적이 없다면 새로운 실행 계획을 작성한다.
데이터 딕셔너리 캐시
: 딕셔너리를 저장한다.
: hit 비율이 매우 높게 유지되어야 하므로 테이블임에도 데이터베이스 버퍼 캐시가 아닌 데이터 딕셔너리 캐시에 별도로 저장된다.
- get: 메모리에서 원하는 데이터를 찾아다니는 행위
- hit: 데이터를 찾으러가서 데이터를 찾은 상태
- miss: 데이터를 찾으러가서 데이터를 못찾은 상태
데이터베이스 버퍼 캐시
: 서버 프로세스는 메모리만 읽으므로 데이터파일의 내용을 받아온다. 데이터베이스의 데이터 변경 시 변경 내용을 저장한다.
: 하나의 리스트와 하나의 큐로 이루어져있다.
- lru 리스트로 블록 정렬된 상태에서 데이터 변경 시 그 블록을 큐로 옮겨 정렬한다. 이 작업이 계속 일어나 lru 리스트를 구성할 블록이 부족하면 큐에 정렬한 블록(더티블록, 더티 리스트)을 DBWR가 데이터 파일에 옮겨적는다. 이후 큐의 블록은 lru 리스트로 다시 합쳐진다.
- sga의 사이즈를 설정하면 쉐어드풀과 데이터 버퍼 캐시의 메모리를 알아서 조정해서 이용한다.
리두 로그 버퍼
: 데이터베이스의 데이터 변경 시, 즉 트랜젝션일 때 변경 내용을 저장한다. 이때 작업 일시, 작업자, 작업 테이블, 작업 데이터 등 작업 일지가 자세히 들어가므로 데이터베이스 버퍼 캐시보다 데이터량이 많다.
PMON
: 인스턴스 주변을 돌며 메모리 안의 불필요한 프로세스들(유저 프로세스와 연결이 끊어졌거나 인스턴스와 연결이 끊어졌음에도 남아있는 프로세스)을 파악하여 메모리에서 제거한다.
SMON
: 오라클 시작 시 리두 로그와 데이터 파일을 비교하여 데이터 파일을 리두 로그와 같게 맞추는 작업을 주관한다.
: 일정 시간마다 데이터 파일과 리두 로그 파일의 동기화를 확인하여 차이가 심할 시 DBWR에게 알린다.
DBWR(DB writer)
: 데이터베이스 버퍼 캐시의 가용한 메모리가 줄어들면 데이터 파일에 내용을 전송한다. 이는 commit과 상관이 없어 언제 작업이 일어나는지 알 수 없다.
: SMON에 의해 데이터 파일과 리두 로그 파일의 동기화를 진행한다.
: 데이터 파일의 헤더 블록에 사전 작업으로 자신이 전송할 내용의 트랜젝션 넘버를 적어놓는다.
LGWR(Log writer)
: commit으로 트랜젝션 종료 시 리두 로그 버퍼의 내용을 리두 로그 파일로 전송한다.
: 로그엔트리를 리두 로그 파일로 내려쓸 때는 엔트리의 크기가 매우 작아진다.
CKPT(Check point)
: 3초마다 데이터를 컨트롤 파일에 저장하여 리두 로그 파일에서 복구가 시작되는 위치를 식별한다. 데이터 파일의 헤더에 트랜젝션 넘버를 저장한다.
데이터 파일
: 모든 사용자의 모든 데이터를 저장하는 파일로, DBWR에 의해 작성된다.
제어 파일(컨트롤 파일)
: 물리적 데이터베이스의 현재 상태를 정의하는 작은 바이너리 파일이다.
: 현재 데이터 파일과 리두 로그 파일의 트랜젝션 넘버가 어디까지 동기화되었는지 기록한다.
리두 로그 파일
: 데이터베이스에 일어난 모든 일을 순서대로 저장하여 데이터 복구에 이용하는 파일이다.
파라미터 파일
: 환경변수(파라미터)가 저장된 파일로, 저장된 파라미터를 확인하여 메모리에 인스턴스를 띄운다.
: 바이너리 형태로 저장된다.
패스워드 파일
: 오라클 사용자가 아닌 관리자의 패스워드가 저장된 파일로, 외부 컴퓨터로 데이터베이스에 관리자로 접속했을 때 사용한다. 관리자가 네트워크로 접속하는 것은 위험하므로 거의 사용되지 않는다.
아카이브 파일
: 리두 로그 파일 바깥에 만들어지는 파일로, 리두 로그 엔트리가 쌓이면 이 파일에 옮긴다. 복구 작업에 사용된다.
- 리두 로그 엔트리: 리두 로그로 만들어진 정보
: 아카이브 파일의 용량에 한계가 있으므로 백업을 진행한다. 이때 보통 이 한계가 올만한 주기마다 백업을 진행한다.
2-2 오라클 인스턴스 관리
관리자의 DB 접속 명령어는 다음과 같다.
- connect / as sysdba
: 관리자 계정 sys로 DB에 접속한다. sysdba는 다른 사용자는 사용할 수 없는 관리자만의 권한이다.
: OS 인증을 이용한 접속으로, dba 그룹의 사용자로 명령어 실행 시 모두 로그인 가능하다.
: sqlplus /nolog 명령어를 통해 DB 접속 없이 sqlplus만 실행할 수도 있다.
인스턴스를 시작하려면 오라클 서버가 초기화 파라미터 파일을 읽어야 하며, 초기화 파라미터 파일은 다음 세 종류로 나뉜다.
- 실시간으로 바꿀 수 있는 파일
- 실시간으로 바꿀 수 없는 파일
- 오라클 설치 시 영원히 바꿀 수 없는 파일
공유 풀(쉐어드 풀)의 사이즈를 바꾸고 싶다면 파라미터 파일의 쉐어드 풀 파라미터 값을 바꾸고 재부팅한다.
파라미터 값이 비정상적이라면 인스턴스를 시작할 수 없다.
3. 오라클 STARTUP과 SHUTDOWN
3-1 오라클 시작과 종료
스타트업은 단계별로 이루어지므로 특정 상태로 스타트업 했을 시, 윗 단계로 한 단계씩만 변경 가능하다. 그러나 SHUTDOWN의 경우 어느 상태에 있더라도 한번에 종료된다.
즉, NOMOUNT로 스타트업을 한 경우 한 번에 OPEN 단계로 갈 수 없으며 MOUNT로 변경 이후 OPEN으로 변경하거나 SHUTDOWN 이후 OPEN으로 스타트업을 해야 한다.
● 데이터베이스 스타트업 단계
- SHUTDOWN
: 데이터베이스가 종료된 상태이다.
- NOMOUNT
: 인스턴스가 막 시작된 단계이다. 데이터베이스와 연결되지는 않았으며 데이터베이스 생성이 가능하다.
- MOUNT
: 인스턴스의 컨트롤 파일을 열어 읽는 단계이다. 파라미터에 정의된 이름/위치 정보로 컨트롤 파일을 읽는다.
: 현 상태에서는 보통 퍼포먼스 테이블(v$로 시작하는 뷰)을 조회하여 작업한다.
- OPEN
: 데이터 파일과 리두 로그 파일을 완전히 오픈하여 작업한다.
: 현 상태에서는 보통 딕셔너리 테이블을 조회하여 작업한다.
● 사용 명령어
SQL> STARTUP [NOMOUNT | MOUNT | OPEN [READ ONLY | READ WRITE]]
- 오라클을 시작한다. SHUTDOWN 상태에서만 사용 가능하다.
- NOMOUNT : NOMOUNT 단계까지 오라클을 시작한다.
- MOUNT : MOUNT 단계까지 오라클을 시작한다.
- OPEN: OPEN 단계까지 오라클을 시작한다. (기본값)
- READ ONLY : DB를 읽기 전용으로 시작한다. (insert, delete, update는 불가하나 drop은 작동한다.)
- READ WRITE : DB를 읽기쓰기 상태로 시작한다.
- ‘_’은 default 값을 의미한다
SQL> SHUTDOWN [ IMMEDIATE | TRANSACTIONAL | NORMAL| ABORT ]
- 오라클을 종료한다.
3-2 단계별 STARTUP 과정
● 사용 명령어
SQL> ALTER DATABASE [ MOUNT | OPEN [ READ ONLY | READ WRITE ]];
- DB가 SHUTDOWN 상태가 아니라 NOMOUNT나 MOUNT 상태인 경우 오라클을 더 상위 단계로 올리기 위해 사용한다.
- NOMOUNT 상태의 DB를 한 번에 OPEN 상태로 올릴 수는 없다.
- MOUNT : MOUNT 단계로 DB를 변경한다.
- OPEN: OPEN 단계로 DB을 변경한다.
- READ ONLY : DB를 읽기전용으로 OPEN한다.
- READ WRITE : DB를 읽기쓰기 상태로 OPEN한다.
SQL> SELECT STATUS FROM V$INSTANCE;
- DB의 상태를 확인한다.
- STATUS 칼럼의 값은 DB의 상태를 나타낸다.
● 실습
다음과 같이 단계별로 스타트업을 진행해보고 스테이터스를 확인해볼 수 있다.
3-3 SHUTDOWN 옵션의 이해
오라클 셧다운 명령은 스타트업 명령과는 달리 오라클이 상태와 상관없이 SHUTDOWN 이라는 명령을 통해서 수행된다.
만일 사용자가 OPEN 상태의 DB를 MOUNT 상태로 변경하기 위해서는 일단 DB를 셧다운한 다음 MOUNT 상태까지 스타트업해야 한다.
● SHUTDOWN 종료 옵션
- NORMAL: 현재 사용 중인 모든 접속이 종료되길 기다린다.(default 값)
- TRANSACTIONAL : 진행 중인 트랜젝션은 기다려주지만 트랜젝션이 진행 중이지 않은 세션은 강제 종료한다.
- IMMEDIATE : 모든 트랜젝션과 접속을 강제로 종료한다.
- ABORT : DB의 상태와는 상관없이 메모리에서 instance를 해제한다.
- 명령 즉시 종료하는 IMMEDIATE 옵션을 기본적으로 사용한다.
● 사용 명령어
SQL> SHUTDOWN [ IMMEDIATE | TRANSACTIONAL | NORMAL| ABORT ]
- 오라클을 종료한다.
● 실습 - normal 옵션 불가 상황
- 두 번째 세션을 열어 일반 사용자 계정으로 접속한다.
- 첫 번째 세션은 관리자 dba로 접속하여 normal 옵션으로 셧다운한다
- 사용자가 접속 중이므로 normal로 즉시 종료할 수 없다.
- 현재 트랜젝션이 없다면 transactional로 즉시 종료할 수 있다.
- DB가 셧다운되었으므로 데이터베이스 자료에 접근할 수 없다.
● 실습 - transactional 옵션 불가 상황
- 종료된 DB를 다시 스타트업한다.
- hr 계정으로 다시 DB에 접속한다.
- hr 계정으로 현재 존재하는 임의의 테이블에 대해 update를 수행한다.
- 관리자 계정에서 transactional 옵션으로 셧다운한다.
- hr 계정에서 commit을 수행하지 않아 트랜젝션이 남아있으므로 대기상태에 빠진다.
- 트랜젝션이 진행 중이지 않은 새로운 세션은 접속할 수 없다.
- hr 계정에서 rollback하여 트랜젝션을 종료한다.
- 트랜젝션 종료와 함께 데이터베이스가 셧다운된다.
3-4 Readonly 상태의 이해와 실습
● 사용 명령어
SQL> STARTUP OPEN READ ONLY;
- 종료 상태의 DB를 읽기전용으로 OPEN한다.
SQL> ALTER DATABASE OPEN READ ONLY;
- MOUNT 상태의 DB를 읽기 전용으로 OPEN한다.
SQL> SELECT OPEN_MODE FROM V$DATABASE;
- 데이터베이스의 상태를 조회한다.
- READ ONLY와 READ WRITE 상태가 있다.
read only는 startup의 옵션이 아닌 open의 옵션임을 기억한다.
● 실습
- read only는 startup의 옵션이 아닌 open의 옵션이므로 startup read only에서 오류가 발생한다.
- DB를 mount 단계로 스타트업, 이후 open 단계로 스타트업하며 read only 옵션을 적용한다.
- 데이터베이스의 상태를 조회한다.
- hr 계정으로 DB에 접속하여 임의의 테이블의 행의 수를 카운트한다.
- DB가 read only 상태이므로 데이터에 변화를 줄 수 없다.
- 관리자 계정에서 immediate 옵션으로 셧다운한다.
4. Parameter file 관리
4-1 Parameter file 확인
● 사용 명령어
SQL> SELECT name, value FROM V$PARAMETER;
- 파라미터 이름과 설정된 값을 확인한다.
SQL> SHOW PARAMETER
- 설정된 파라미터 값을 확인 한다.
- 현재 인스턴스의 이름이 DB19임을 확인한다.
- 현재 DB가 부팅될 때 /app/ora19c/19c/dbs/spfileDB19.ora 파일을 참조한 것을 확인한다.
- $ORACLE_HOME/dbs 경로에 파라미터 파일 예제, spfile 등이 있는 것을 확인한다.
! 는 DB에서 os 명령어를 호출할 수 있게 해준다.
$ORACLE_HOME은 오라클 설치 시 설정된 경로인 /app/ora19c/19c/와 같다.
4-2 Spfile 환경에서 파라미터 확인과 수정
● 사용 명령어
SQL> ALTER SYSTEM SET = <값>;
- 지정한 파라미터의 값을 수정한다.
- spfile 사용 환경에서 설정된 파라미터 값은 항구적으로 수정된다.
- 동적인 파라미터만 수정 가능하다.
SQL> SELECT NAME, VALUE FROM V$PARAMETER;
- 현재 운영중인 파라미터 값을 조회한다.
- 'SHOW PARAMETER ~'의 출력 값과 동일하다.
SQL> SELECT NAME, VALUE FROM V$SPPARAMETER;
- spfile에 설정된 값을 조회한다.
일반적으로는 현재 운영중인 파라미터 값과 spfile의 값은 같다.
● 실습
- spfile의 파라미터 값과 현재 운영중인 파라미터 값을 조회한다.
- spfile에서 정의되지 않은 파라미터 값은 각 파라미터의 기본값으로 운영된다.
- 현재 운영중인 파라미터 값을 확인하고 변경한다.
- 별도의 옵션 지정 없이 파라미터 값을 변경하는 경우 현재 파라미터와 spfile의 파라미터 값이 모두 변경된다.
- DB 재부팅 시에도 변경된 값이 유지됨을 확인한다.
4-3 Spfile 운영 환경에서 scope 설정에 따른 parameter값의 변화
● 사용 명령어
SQL> ALTER SYSTEM SET = <값> SCOPE = [SPFILE | MEMORY | BOTH];
- 지정한 파라미터의 값을 수정한다.
- SCOPE 절은 spfile 운영 환경인 경우만 사용한다.
- SPFILE : spfile만 수정한다. (정적 파라미터 수정에서는 필수이다.)
- MEMORY : 현재 DB의 파라미터 설정 값만 수정한다. spfile은 수정하지 않으므로 DB를 재시작하면 원래 설정 값으로 환원된다.
- BOTH : spfile과 인스턴스에 설정된 파라미터 값을 모두 수정한다.(default값)
● 실습
- 현재 운영중인 파라미터 값을 확인하고 SCOPE = memory 옵션을 통해 값을 변경한다.
- 현재 운영중인 파라미터 값만 변경되며 spfile의 값은 변경되지 않는다.
- 현재 운영중인 파라미터 값을 확인하고 SCOPE = spfile 옵션을 통해 값을 변경한다.
- spfile의 파라미터 값만 변경되며 현재 운영중인 파라미터 값은 변경되지 않는다.
5. Control file 관리
5-1 Control file 확인
- $ORACLE_BASE/oradata 경로에서 현재 데이터베이스의 이름과 같은 이름의 디렉토리를 확인한다.
- 해당 디렉토리에 컨트롤 파일, 리두로그 파일, 데이터 파일이 위치한다.
데이터 파일 손상 시 컨트롤/리두로그 파일을 통해 복구할 수 있으므로 컨트롤/리두로그 파일은 데이터 파일과 분리된 하드웨어에 존재해야 한다.
컨트롤 파일과 리두로그 파일은 매우 중요한 파일이므로 최소 두 군데 이상에서 미러링하여 운영한다.
위와 같은 필요에 의해 파일들의 위치를 옮기게 되는데, 파일을 옮기는 경우 반드시 데이터베이스 셧다운 혹은 nomount 상태에서 옮겨야 한다. mount 단계부터는 옮길 경우 파일이 깨져버리며 돌이킬 수 없다.
● 사용 명령어
SQL> SELECT NAME FROM V$CONTROLFILE;
- 사용 중인 컨트롤 파일의 목록을 조회한다.
SQL> SELECT NAME FROM V$DATAFILE;
- 사용 중인 데이터 파일의 목록을 조회한다.
SQL> SELECT MEMBER FROM V$LOGFILE;
- 사용 중인 로그 파일의 목록을 조회한다.
SQL> SELECT NAME FROM V$CONTROLFILE
2 UNION ALL
3 SELECT NAME FROM V$DATAFILE
4 UNION ALL
5 SELECT MEMBER FROM V$LOGFILE;
- 세 파일 목록을 한 문장으로 모두 조회한다.
5-2 Spfile 환경에서 control file 다중화 실습
Spfile을 사용하는 환경에서 다음 단계에 따라 control file을 /app/ora19c/oradata/disk4, /app/ora19c/oradata/disk5에 분산 배치한다. 통상 미러링 세팅인 파일들의 이름은 동일하게 설정한다.
① DB의 상태를 확인한다.
② control_files 파라미터를 수정한다.
③ DB를 셧다운한다.
④ 파라미터에 정의한 것과 같이 control file의 물리적 상태를 수정한다.
⑤ DB를 스타트업한다
- DB의 상태를 확인한다.
- 파일들을 이동시킬 disk 1~5 디렉토리는 DB 접속 전 ora19c 계정으로 미리 생성해 놓는다.
- 파라미터에 컨트롤 파일의 새로운 위치를 정의한다.
- 이후 반드시 DB 셧다운 후 mv를 통해 컨트롤 파일의 위치를 이동시킨다.
- DB를 스타트업하여 정상적인 이동이 완료된 것을 확인한다. 잘못 설정 시 스타트업 과정에서 오류가 발생한다.
'일일 정리' 카테고리의 다른 글
오라클 자동 실행, Tablespace와 data file (0) | 2025.04.19 |
---|---|
Redo log file, Redo log file 관리, 오라클 Network 설정과 접속, 테이블 스페이스 (0) | 2025.04.17 |
Dos 공격 (2) | 2025.04.15 |
스푸핑, 터널링과 은닉채널 (0) | 2025.04.14 |
Transport Layer, 해킹 실습 - 스니핑 (0) | 2025.04.11 |