상세 컨텐츠

본문 제목

2024년 3월 5일 1교시

오라클 RAC

by 병아리 엔지니어 2024. 3. 5. 17:01

본문

 

난 어제 수업도 중간부터 못따라갔기 때문에 오늘은 스크린샷 못찍어 ㅠㅠ

그냥 필기만 하겠음.

 

퍼티로 접속

그리드 sw 설치한 거 확인하기

[oracle@rac1 ~]$ crs_stat -t

오프라인으로 떨어져있는 것도 있지만 온라인으로 되어 있는 것도 있다.

[oracle@rac2 ~]$ crs_stat -t

rac2 에서 해봤을 때도 똑같은지 확인해보기

rac1 에서 조회하면 rac2 가 보여야 되고

rac2 에서 조회하면 rac1 이 보여야 한다.

(한쪽만 보이면 안된다)

 

이제 오라클 소프트웨어 설치하기

Xterm 띄우기

(만약 공유 폴더가 안되면 FTP 로 오라클 설치해야 하는 계정 쪽으로 옮기기)

 

[oracle@rac1 ~] cd /media/sf_rac_/database

[oracle@rac1 database] ls

pwd

cd

[~] ls -l

cd database

[database] ls -l

 

이렇게 해보면 : 공유 폴더로 넣은 것들은 상관없지만

FTP 를 이용했을 경우 runInstaller 가 읽기만 가능하도록 되어 있는 경우가 있다.

이럴 때는 권한 주기

[database] cd

[oracle@rac1~]chmod -R 775

 

권한 확인하기

cd database

[database] ls -l

[database] db_env

[database] echo $ORACLE_HOME

아무것도 안나온다.

[database] echo $ORACLE_SID

racdb1 이라고 나옴

 

[database] ls -al

cd

[~] ls -al

[~] cat .db_env

[~] cat .bashrc

 

[~] echo $ORACLE_SID

racdb1

rac1 생성할 때 인스턴스 = racdb1

 

퍼티 rac2 쪽에서

[oracle@rac2 ~] db_env

[~] echo $ORACLE_SID

racdb2

 

퍼티 rac1 쪽에서도 해보기

db_env

echo $ORACLE_SID

racdb1

 

rac1 에서는 racdb1 이 나와야 하고 rac2 에서는 racdb2 가 나와야 한다.

 

rac2 쪽에서

cat .db_env

ORACLE_SID 가 얼마로 되어있는지 확인해보기

 

이제 다시 Xterm 에서

(한쪽 노드에서 설치하면 다른 쪽에 복제가 된다)

[oracle@rac1~] cd database/

ls

./runInstaller

 

# oracle s/w install

 

[oracle@rac1 ~]$ db_env

[oracle@rac1 ~]$ echo $ORACLE_SID

racdb1

[oracle@rac1 ~]$ ./runInstaller

 


설치 창은 여기서부터

1/9

 

이메일이랑 my oracle support password 창 나오면 > 체크박스만 해제 > next > Yes

 

2/9

Install database software only 선택 > nxt

 

3/9

두번째 Real 어쩌고 > rac1 , rac2 선택 > 왼쪽 아래 SSH 버튼 선택

OS password: oracle 입력 > setup > 뭐가 돌아간다.

성공했다고 뜨면 > OK > next

 

4/11

언어는 영어로 되어있는 채로 (아무것도 안건드리고) next

 

5/11

위에 있는 엔터프라이즈 선택

select options 클릭 > partitioning 도 돈내고 사야 한다.

라이센스 구매하지 않았으면 체크 해제해야 함

그냥 구경만 하고 cancel 누르기 (아무것도 체크 해제 안함) > next

 

6/11

두번째 네모칸 software location 에서 맨 끝부분이 dbhome_2 로 되어있으면 꼭 

dbhome_1로 고쳐주기

/u01/app/oracle/product/11.2.0/dbhome_1

(주소는 선생님 거랑 내거랑 다를 수 있다)

> next

> 뭐가 돌아간다.

 

7/11

dba / oper 로 되어있는 채로

next

 

8/11

뭔가 설치가 되다가 > 

Checks

  Architecture

    Packages

       Package: kernel-headers-2.6.18 failed

하면서 아래에 막 뭐라고 메시지가 뜬다.

 

Checks

  Architecture      failed

    Packages

       Package: kernel-headers-2.6.18

 

오른쪽 위 ignore all 클릭 > next

 

9/11

summary 나오면 > finish

 

10/11

설치가 진행된다.

인고의 시간...

설치 막바지에 가면 11g 설치할 때 떴었던 그 이상한 오류가 또 뜰 텐데

그건 그때 가서 고쳐보기로 하자.

 

 

한 56퍼센트 정도 진행했을 때 오류 발생함.(사진찍어놓음)

오류 창 손대지말고 그냥 그대로 놔두기

해결하고 나서 retry 하고 continue 해야 함

 

첫번째로 나온 파일주소

/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk

얘 복사

(그 아래 파일주소는 로그파일)

 

rac1 터미널로 와서

vi 편집기로 저 문제되는 파일 열기

vi /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk

 

문자열 찾기

:/emdctl

소문자 n 누르면 다음 거 찾아진다.

 

여기서

(사진)

이거 수정하면 된다.

(사진)

 

#=========================

#    emdctl

#=========================

$(SYSMANBIN)emdctl:

                  $(MK_EMAGENT_NMECTL)   -lnnz11

 

빨간색으로 표시한 -lnnz11 (빼기 표시, 알파벳 엘, nnz, 숫자 11) 추가해주기

 

그리고 나서 다시 10/11 로 돌아가서 > retry > 또 뜨면 retry > 무시하고 continue

또 뜨면 또 retry > continue (retry 안누르고 그냥 continue 하면 안됨,

일단 retry 한번 해주고 그 다음에 또 뜨면 그때서야 continue 하는 것)

(이름만 다를 뿐 똑같은 오류가 계속 뜨는 것인데 그냥 retry > continue 가 답임)

 

그러면 지가 또 알아서 막 돌아간다. 선생님은 94퍼센트까지 가심.

 

설치 돌아가면 스크립트 돌리라고 나오는데

그건 또 이따가 하면 됨.


2교시

 

# shell script 수행 (rac1, rac2 모두에서)

쉘 프로그램을 돌리라고 나오면 > 양쪽 노드의 퍼티 root 계정에서 수행하면 된다.

/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

얘 수행하기

엔터 > 엔터 > 엔터 치면 됨.

이렇게 되면 설치가 다 끝난 것

 

그리고 DB 생성 전에 ASM 디스크 그룹을 하나 만들어야 한다.

 

# oracle s/w 설치 종료

# 데이터베이스 생성하기 전에 asm disk group 생성

 

Xterm 으로 접속

(GUI 환경에서 해야 한다)

 

[oracle@rac1 database]$ cd

[oracle@rac1 ~]$ grid_env

[oracle@rac1 ~]$ echo $ORACLE_SID

+ASM1

 

[oracle@rac1 ~]$ . oraenv

ORACLE_SID = [+ASM1] ? (엔터)

The Oracle base for ORACLE_HOME=/u01/app/11.2.0/grid is /u01/app/oracle

 

툴 띄우기

툴 이름: ASMCA

 

[oracle@rac1 ~]$ asmca

그러면 사진 (11:11) 과 같은 화면이 뜬다.

 

맨 위 폴더들을 보면 Disk groups 도 있다.

여기서 맨 아래 왼쪽 create 클릭하면 > create disk group 창이 뜬다.

만약 창이 회색인 채로 아무것도 안보여주면 > 창 늘리기

 

맨 위 디스크 그룹 이름 칸에는 FRA 쓰기 (Flash Recover Area 라는 뜻)

그리고 아래 3개 단추 안에 External(None) 선택 (이중화 안함)

 

Show Eligible 인 채로 두고

/dev/ 2개 모두 선택 (사용할 디스크 선택하는 것) > OK

 

그러면 톱니바퀴 돌아가는 창이 나오고 성공했다는 메시지가 뜨면서

생성이 된다.

성공 > OK

다 끝나면 exit  누르고 > yes

 

(아래는 선생님이 써주신 윗부분 내용 요약정리)

# 디스크 그룹 생성

Disk Group name : FRA (그룹 이름은 고유한 이름으로)

Redundancy : External

디스크 추가 체크

 

# 데이터베이스 생성

DB를 생성하기 위해서는 xterm 에서 환경을

[oracle@rac1 ~]$ db_env

[oracle@rac1 ~]$ echo $ORACLE_SID

racdb1

[oracle@rac1 ~]$ . oraenv

ORACLE_SID = [racdb1] ? (엔터)

ORACLE_HOME = [/home/oracle] ? < 주소 잘못 나옴, 바꿔주기 (아래 파란색 부분처럼 입력하면 된다)

ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/11.2.0/dbhome_1

The Oracle base for ORACLE_HOME= /u01/app/oracle/product/11.2.0/dbhome_1

 

그런 다음 dbca 툴 띄우기

[oracle@rac1 ~]$ dbca

그러면 창이 하나 뜨면서 어디서 많이 본 화면이 돌아간다.

(첫 화면: 사신의 낫)

(사진찍어놓음 11:24)

 

oracle real application... 으로 되어있는 채로 next

 

1/13

create database > next

 

2/14

3개 중에 맨 위에거 (글씨가 안보임) general purpose > next

 

3/13

위에서부터

admin-manage 선택

global database name에 racdb 입력

sid prefix racdb

 

select all 해서 rac1, rac2 둘다 왼쪽 하얀 네모칸에 뜨도록 하기

next

 

4/12

enterpise manager 폴더 그대로 두고

automatic maintenance Task 클릭 > 그대로 두고 next

뭔가 이상한 창이 뜨면 OK

 

5/12

use the same ... 선택되어 있다.

password 로 oracle 2번 입력 > next > 워닝 뜨면 yes

 

6/12

storage type: automatic storage...

use oracle-managed files 에 선택이 되어 있다.

그 아래 database area에 +DATA > next

 

Asm credentials 창에 비밀번호 oracle 입력> OK

 

7/12

specify falsh recovery area 에 선택되어 있다.

flash recovery area +FRA 로 되어있고

그 아래 사이즈는 3852

그대로 두고

Enable Archiving 클릭 > next

 

8/12

Sample Scheams 에서 Sample Scheams 클릭 > 넥스트

 

9/11

Show memory Distribution 클릭 > 구경

typical, use automatic... 클릭

custom 을 클릭하면 수동관리하게 됨

 

sizing 폴더 > processes 수 (이것도 라이센스) 150인 채로 두기

(이 150은 백그라운드 프로세스들도 포함)

Character set 폴더 > use the default 로 되어 있다.

Choose from the list of character set에서 KO16MSWIN949 - MS Windows Code Page 949 Korean

이거 하면 한글이 안 깨지고 나온다 + show recommended character sets only 체크

근데 얘를 쓰면 자국의 고유 문자를 쓸 때 다른 나라 문자가 들어오면 깨짐

글로벌한 회사이면 보통 Use Unicode(AL32UTF8) 씀

 

우리도 Use Unicode(AL32UTF8) 선택

그리고 DEFAULT LANGUAGE 는 american 으로

(이건 원래 디폴트 값이 이거였는지 아니면 american 으로 새로 선택했는지를 모르겠어...)

 

connection mode 폴더에서 dedicated (맨 위에 거) 선택

> next

 

10/11

컨트롤파일, 데이터파일, 리두로그파일 등등에 대한 정보를 볼 수 있다.

(폴더 클릭해보면서 구경하기) 손댄 거 하나도없음

> next

 

11/11

그냥 finish

그러면 summary 창이 뜬다 > OK

그러면 Database Configuration Assistant 가 돌아가면서 설치가 된다.

 

(사진 12:03)

이런 화면이 뜨더라도 겁내지 말기, 오류 아니고 그냥 warning임

OK 누르면 된다.

패스워드 관리 화면 나오면 > exit

 

설치 끝!

 

DB가 다 설치되면 > 접속해보기

 

퍼티 rac1 에서

[oracle@rac1 ~]$ .oraenv

ORACLE_SID = [racdb1] ?

ORACLE_HOME = [/home/oracle]? /u01/app/oracle/product/11.2.0/dbhome_1

 

[oracle@rac1 ~]$ sqlplus / as sysdba

 

[oracle@rac1 ~]$ select name from v$instance;

INSTANCE_NAME

--------------------------

racdb1

 

[oracle@rac1 ~]$ select name from v$database

NAME

--------

RACDB

 

rac2에서도 똑같이 해보기

[oracle@rac2 ~]$ .oraenv

ORACLE_SID = [racdb2] ?

ORACLE_HOME = [/home/oracle]? /u01/app/oracle/product/11.2.0/dbhome_1

 

[oracle@rac2 ~]$ sqlplus / as sysdba

 

[oracle@rac2 ~]$ select name from v$instance;

INSTANCE_NAME

--------------------------

racdb2

 

[oracle@rac2 ~]$ select name from v$database;

 

NAME

--------

RACDB

 

# rac1, rac2 모두 root 계정에서 설정 바꾸기

[oracle@rac1 ~]$ su -

password: oracle

[oracle@rac1 ~]# vi etc/oratab

문서 제일 아래에 보면 2줄이 만들어진 것이 보인다.

+ASM1:/u01/app/11.2.0/grid:Y                                                   # line added by Agent

racdb: /u01/app/oracle/product/11.2.0/dbhome_1:                # line added by Agent

racdb1: /u01/app/oracle/product/11.2.0/dbhome_1:                 

(사진찍음 12시 18분)

 

오라클로 다시 가서

[oracle@rac1 ~]$ su - oracle

. oraenv

ORACLE_SID = [racdb1] ?

[oracle@rac1 ~]$ sqlplus / as sysdba

 

rac2 쪽에서도 똑같이 고쳐주기

[oracle@rac2 ~]# vi etc/oratab

+ASM1:/u01/app/11.2.0/grid:Y                                                   # line added by Agent

racdb: /u01/app/oracle/product/11.2.0/dbhome_1:                 # line added by Agent

racdb1: /u01/app/oracle/product/11.2.0/dbhome_1:                 

 

[oracle@rac2 ~]$ su - oracle

. oraenv

ORACLE_SID = [racdb2] ?

[oracle@rac2 ~]$ sqlplus / as sysdba

 

'오라클 RAC' 카테고리의 다른 글

2024년 3월 11일 (학원에서의 마지막 날)  (0) 2024.03.11
2024년 3월 8일  (4) 2024.03.08
2024년 3월 6일 2교시 + 3교시 + 4교시  (0) 2024.03.06
2024년 3월 4일 1교시 QUESTION.  (0) 2024.03.04
2024년 2월 29일 QUESTION.  (0) 2024.02.29

관련글 더보기