상세 컨텐츠

본문 제목

2024년 2월 29일 QUESTION.

오라클 RAC

by 병아리 엔지니어 2024. 2. 29. 12:03

본문

1교시

 

HR@ora11g>

create table hr.emp_dw as
select rownum as employee_id, last_name, first_name, hire_date, job_id, salary,
manager_id, department_id
from hr.employees e, (select level as id from dual connect by level <= 10000);

Table created.

 

HR@ora11g> create table hr.emp_dw_copy as select * from hr.emp_dw where 1 = 2;
Table created.

 

emp_dw 테이블이 사용하는 블록 수 보기HR@ora11g> select blocks, bytes/1024/1024 mb from user_segments where segment_name = 'EMP_DW';

    BLOCKS         MB
---------- ----------
      7552         59

 

플랜 정보 확인

HR@ora11g> explain plan for insert /*+ parallel(e1,2) */ into hr.emp_dw_copy e1
select /*+ parallel(e2,2) */ * from hr.emp_dw e2;  2
Explained.

 

실행계획 보기

HR@ora11g> select * from table(dbms_xplan.display);

 

2, 3, 4행을 보면 PX, PX, PX 라고 되어 있으므로 병렬처리인 것처럼 보이지만

(emp 테이블에서 데이터를 추출할 때에는 병렬처리가 된 게 맞다)

하지만 3행에서 P → S 가 일어나고 나서

1행 LOAD TABLE CONVENTIONAL 에서는 병렬처리가 되지 않음 ( P → S 가 없으므로)

즉, 조회는 병렬로 처리가 된 게 맞지만 insert 는 그냥 serial 하게 처리됨

병렬처리 후 직렬처리 > 성능 저하

 

그리고 LOAD TABLE CONVETIONAL 은 DBC 를 건드리는데

DIRECT READ 했는데 커서로 바로 전달되지 않아서 성능 나쁘다.

 

이 문제를 해결하려면: 설정을 해주어야 하는데

 

HR@ora11g> alter session enable parallel dml;
Session altered.
(만약 오류가 발생한다면 접속을 끊었다가 새로 창을 열어서 다시 해보기)

 

HR@ora11g>

explain plan for insert /*+ parallel(e1,2) */ into hr.emp_dw_copy e1
select /*+ parallel(e2,2) */ * from hr.emp_dw e2;

Explained.

 

HR@ora11g> select * from table(dbms_xplan.display);

 

4, 5 행: DIRECT READ

3행 LOAD AS SELECT 는 DIRECT WRITE

그리고 QC 에는 메시지만 전달해준다.

 

처리가 끝나면 꼭 disable 해주기

 

HR@ora11g> alter session disable parallel dml;
ERROR:
ORA-12841: Cannot alter the session parallel DML state within a transaction

(이렇게 오류나면 새 창 열어서 다시 해주기)

 

HR@ora11g> alter session disable parallel dml;
Session altered.

 

★ Direct Path I/O 가 발생할 때

- 템프 세그먼트 temp segment 블록을 읽을 때

- 병렬 쿼리로 풀 테이블 스캔할 때

- Serial Direct Read

 

★ direct path write 가 발생할 때

- export 를 수행할 때 direct 옵션을 설정하면 direct path I/O가 발생한다.

- parallel 하게 DML 을 수행할 때

- direct path insert

   -insert /*+ append */ ... select

   - SQL*Loader(sqlldr) direct 옵션을 지정해서 데이터 로드 작업시

   - CTAS (Create Table ... As Select ...)

 

- 병렬 쿼리 작업을 할 때는 Direct path read 

- 병렬 쿼리 작업시에는 무조건 partial checkpoint 가 발생한다.


 

2교시

 

RAC 를 설치해보자.

(설치는 어렵지 않지만 버그가 많으니 주의하자...

그리고 RAC 는 용량을 많이 잡아먹기 때문에 무의미하게 돌아가고 있는 프로그램들이 있으면 다 끄자.)

 

설치는

OS 깔고 > 그리드 소프트웨어 깔고 (= 그리드 infra-structure 만들기 = 공유 스토리지를 ASM 으로)

> 오라클 소프트웨어 깔고 > DB 만들기

순서로 진행된다.

 

1. 선생님께서 공유 폴더에 올려주신 ISO 파일 다운로드받기

(Enterprise-R5-U6-Server-x86_64-dvd.iso, 3.5GB)

 

2. 공유 폴더에서 그리드도 다운받기 (linux_11gR2_grid.zip)

 

새로 만들기 클릭

 

이름 rac1로 설정

'폴더' 항목 맨 오른쪽 부분 v 자 모양 화살표 클릭 > '기타' 선택

 

D 드라이브 밑에 oracle_rac11g 폴더 만들고 이 폴더를 아까 그 폴더 위치로 지정하기

(나는 노트북에서는 C 드라이브 밑에 oracle_rac11g 폴더 만들어서 똑같이 함)

 

그러면 폴더 항목에 이렇게 우리가 지정한 위치가 들어간다.

 

그다음 종류는 Linux 로 하고 버전은 Oracle Linux (64-bit) 로

(종류를 리눅스로 선택하면 버전이 알아서 Oracle Linux (64-bit) 로 바뀐다)

> 다음 클릭 (화살표로 표시해놓은 부분이 바뀐 부분)

 

그다음 화면에서

기본 메모리는 원래 값 2048MB 인 채로 건드리지 말고

프로세서는 CPU 2개로 설정하기

 

가상 하드 디스크는 선생님은 50GB 로 설정하셨는데

딱히 얼마로 해도 상관없다. 20기가로 해도 됨

(나는 50으로 함)

다음 클릭

 

다음 화면에서 요약 나오면 > 완료 버튼 누르기

 

그러면 이렇게 VM VirtualBox 목록에 rac1 이라는 가상머신이 만들어지게 된다.

 

혹시라도 여기까지 오는 중에 뭔가 설정을 잘못했다면?

해결책

더보기

가상머신을 지우고 다시 한번 해보면 된다.

(그런데 내 경우에는 무의미한 노력이더라... ㅠㅠ 5번이나 똑같은 시도를 계속했는데

달라지는 게 하나도 없었어... ㅠ.ㅠ)

 

1. 가상 머신 창 닫기 > 옵션들 중 '시스템 전원 끄기' 선택 > 확인

 

2. 가상 머신 목록에서 방금 끈 가상머신의 전원이 진짜로 잘 꺼져 있는지 확인하고

(반드시, 꼭, 절대로, 전원이 꺼져 있는 상태에서 지워야 한다)

지울 가상머신 마우스 우클릭 > 삭제 클릭

(설정 멀쩡하게 잘 했으면 지우지마!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)

 

3. 지울 때는 반드시 '모든 파일 지우기' 옵션으로 지우자.

그렇게 하지 않으면 껍데기만 지워지고 알맹이는 계속 남아있게 된다.

(가상머신 설정을 잘못했을 때만 지우기!!!!!!!!!!!!!!!!!!!!!!!!! 잘 만들었으면 그냥 냅둬!!!!!!!!!!!!!!!!!!!!!!!!!

멀쩡하면 지우지마!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)

 

rac1 이 만들어졌다면

목록에서 rac 클릭 > 오른쪽에 있는 톱니바퀴 모양 '설정' 클릭

 

'저장소' 클릭 > '비어 있음' 클릭 > '광학 드라이브' 항목 옆 CD 모양 그림 누르기

> '디스크 파일 선택' 클릭

 

 

오늘 다운받은 파일 넣고

(파일이 잘 들어갔는지 꼭 확인하기)

 

계속해서 '네트워크' 항목 클릭

 

어댑터 1은 NAT 인 채로 그냥 두기

(안에서 인터넷을 사용할 수 있도록 하는 것)

 

어댑터 2는 호스트 전용 어댑터로 해놓기

(바깥쪽에서 RAC 쪽으로 접속이 가능하도록 하는 것)

 

어댑터 3은 '어댑터에 브리지' 선택 (서버들끼리 통신할 수 있게 하는 것)

외부에서 서버로 접속하려면: '호스트 전용 어댑터' 선택

안에서 인스턴스끼리 서로 private 하게 통신할 수 있게 하려면: '어댑터에 브리지'

 

다시 왼쪽에서

'공유 폴더' 항목 클릭 > 맨 오른쪽 초록색 폴더 그림 클릭

내 하드디스크에 있는 폴더를 꼭 리눅스의 폴더처럼 사용하기 위한 것

(프로그램 공유를 위해)

 

(!!!!!!!!!!!!!!!!!!!!!! 주의 !!!!!!!!!!!!!!!!!!!!!!!!!

맨 처음에 가상 머신 만들 때 지정했던 oracle_rac11g 폴더와는 다른 폴더로 설정해야 함!!!!!!!!!!!!!!!!!!!!!!!!!!!

여기서 다른 폴더로 안하고 같은 폴더로 하면 뒤에 가서 공유가 안되는 문제가 발생함... ㅠ.ㅠ

나도 별로 알고 싶지 않았다고...)

 

 

나는 D 드라이브 밑에 oracle_rac11g_20240229 폴더로 함 ⊙▽⊙

아까 가상머신 만들 때 썼던 oracle_rac11g 폴더 쓰지말고 다른 폴더 새로 만들어서 써...

똑같은 거 쓰지마............... 나 두 번 말했다............

 

폴더 선택하고 > 자동 마운트에 체크

(OS 가 내려갔다 올라오더라도 저 디렉토리는 활성화되도록 설정한 것)

> 확인

 

그러면 이런 화면이 보인다.

확인 누르고

 

방금 만든 rac1 을 돌려볼 차례인데

후... 여기서 너무 많이 까여서 시작하기가 겁이 나네...

아무튼 rac1 가상머신 더블클릭하거나 오른쪽 위 '시작' 화살표 클릭해서 켜기

 

 

그러면 가상 머신 전원이 켜지면서 아래와 같은 빨간 화면이 나온다.

언젠가는 저 빨간 회사에 한번 들어가보자...

 

엔터키 누르기 (그래야 펭귄이 일을 함)

(꿀팁: 그냥 창 이름 써있는 rac1 부분만 클릭한 다음 엔터키 누르면

> 마우스 안 잡히고도 원하는 작업을 할 수 있다.

네모칸 안쪽으로 굳이 기어들어가서 마우스 잡힐 필요 1도 없음)

 

근데 나는 여기서 수도 없이 까임. PC 사양이 달라서 그렇다는데

다른 자리에서는 다 잘만 되는데 왜 나만 안되냐고 ㅠㅠ

 

다양한 실패 사례

더보기

첫번째 시도 실패... 이 상태로 아예 꿈쩍도 안함.

 

두번째 시도인데 이번에는 이렇게 멈춤 ㅡㅡ

 

세번째 시도

이번에는 이렇게 멈춤 ^^♡...

@#$@#$!#@%@ (심한 욕)

 

됐어 때려쳐 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 나 안할거야...

 

그 와중에 다섯번째 시도도 실패... 세 번째랑 증상이 똑같네?...

네번째 시도 때는 꼴도 보기 싫어서 스크린샷도 안찍었나 봄.

 

그리고 점심시간에 현쪽이 옆으로 자리를 옮겼는데

여기서는 너무 잘 되네?...

내 자리에서는 하나도 안됐는데... 자리 옮기자마자 갑자기 잘 되는 이유를 모르겠어 ㅠㅠ

아무튼 저런 까만 화면이 나왔다가 금방 지나가고

(보통 아래와 같은 화면이 나오면 이건 성공의 조짐이 보이는 것 )

 

아래 화면이 나오면 : 키보드 → 화살표를 이용해서 OK 에서 Skip 으로 옮겨가기 > 엔터

여기서도 마우스 안잡히기 꿀팁이 먹힘. 근데 더이상 꿀팁이 안먹히는 순간이 오는데 

 

 

그게 바로 여기 ㅠㅠ

여기서부터는 그냥 마우스 잡혀야 함...

next 클릭

 

어떤 언어를 쓸 거냐고 물어보면 English 선택 (이미 기본값으로 되어 있음) > next

 

키보드는 어떤 언어로 쓸 거냐고 물어보면 이번에도 또 영어 고르기 > next

 

이런 화면이 뜨면: Yes 누르기

 

그다음 화면에서: 화살표로 되어있는 부분 클릭 > create custom layout 선택 > next

 

 

이제 디스크를 만들어볼 텐데

파티션 나누는 것처럼 여러 번에 걸쳐서 한다.

 

1. new 항목 첫번째로 클릭

 

부트 디렉토리 만들기

mount point 란에 /boot 라고 써넣고 > File System Type 은 ext3 인 채로 손대지 않기

Size 도 100인 채로 그대로 두기 > OK

 

두번째로 new 항목 클릭

 

File System Type 에서 swap 선택 > Size 는 4096 으로 > OK

 

 

세번째로 new 클릭

 

Mount Point = / > Fill to maximum allowable size 에 체크

> OK

 

next 누르기

 

next 누르기

 

(43:00)

 

아까 설정한 3개의 네트워크 eth0, eth1, eth2 아이피 주소 설정하기

eth0 = 인터넷 사용하는 네트워크 (이미 활성화된 상태)

eth1 = 외부에서 접속하는 네트워크

eth2 = 내부의 프라이빗 네트워크

 

지금 보면 eth0 에만 체크가 되어 있는 상태일 텐데

 

eth1, eth2 에도 체크하고

 

eth1 클릭한 채로 오른쪽 edit 버튼 누르기

 

그러면 아래와 같은 화면이 보일 텐데

여기서 빨간색 화살표로 표시한 Manual configuration 체크해주기

 

체크하면: IP 주소와 Prefix (Netmask) 부분이 입력가능하도록 바뀌는데

 

IP Address (외부에서 서버로 접속할 때 쓸 주소) 란에는 192.168.56.101 써주고

Prefix (Netmask) 란에는 255.255.255.0 써주기

그리고 아래 Enable IPv6 support 체크 해제하기

 

그러면 다시 원래 화면으로 빠져나가게 되는데

여기서 다시 eth2 클릭하고 > 오른쪽 edit 누르기

 

eth2 는 private network

얘도 아까와 마찬가지로 Manual configuration 에 체크하고

> IP Address 에는 192.168.55.101 입력 / Prefix (Netmask) 에는 255.255.255.0 입력

그리고 그 아래 Enable IPv6 support 는 해제되어 있는 상태로 그대로 두고

OK 누르기

 

설정 다 끝났으면 next 누르기

 

(아래는 내가 설정한 주소들 목록... 잊어버리지 말자...)

더보기

## Public
192.168.56.101 rac1
192.168.56.102 rac2

## Private
192.168.63.101 rac1-priv
192.168.63.102 rac2-priv

(여기서는 55 로 했지만 자꾸 아이피가 충돌된다고 떠서 ㅠㅠ 다시 할 때는 63으로 함.

하지만 집에서는 55)

## Virtual
192.168.56.111 rac1
192.168.56.112 rac2

## grid scan
192.168.56.123

 

다시 돌아와서

그다음 화면은 무슨 세계지도 같은 게 하나 나오는데

여기서 아시아 지역 대충 찾아서 클릭하기

 

 

아시아 클릭하면 지도의 아시아 부분만 확대되는데 거기서 서울 찾아서 클릭하기

 

그러면 아래 도시 이름 부분에 Asia/Seoul 이라고 뜬다 > next

 

루트 계정 비밀번호 설정하기

비밀번호 = oracle > next

 

그러면 아래와 같은 창이 뜨는데

이 다음부터는 3교시에서 배워보자...


 

3교시

아까 멈춰놓았던 부분 (아래 화면) 에서부터 다시 시작해보자.

 

먼저 패키지를 설치해보자.

(이거 설치 안하고 넘어가면 뒤에서 패키지 없다고 오류 뜸)

customize now 에 체크 > next

 

다음 화면에서

왼쪽 네모칸에 있는 목록들 중에서 Development 선택 >

오른쪽 네모칸에서

Development Libraries

Development Tools

Legacy Software Development

X Software Development

이렇게 4개 체크하기

 

다시 왼쪽 네모칸 목록들 중에서 Base System 선택

> 오른쪽 네모칸에서 이미 체크가 되어 있는 것들은 그대로 두고 System Tools 하나만 선택

(보라색으로 되어있는 것들: 이미 체크되어 있었던 것들)

 

와... 근데 67단계까지 있고 지금 겨우 14번째 단계라니 실화야?

 

그리고 이렇게 Base System, System Tools 를 클릭해놓은 채로

오른쪽 아래에 있는 Optional packages 누르기

 

그러면 무슨 외계어로 가득찬 아나콘다같이 긴 목록이 하나 나오는데

옆의 체크박스에 표시가 되어 있는 것들이 있고 안되어 있는 것들이 있다.

체크되어 있는 것들은 부가적으로 설치되는 것들이고 체크가 안되어 있는 것들은 설치 안되는 것들

 

여기서 체크하고 넘어가야 할 것들이 몇 개 있다.

1. ocfs2-2.6.18-238.el5-1.4.8-2.el5.x86_64

2. oracle-validated-1.1.0-7.el5.x86_64

3. oracleasm-2.6.18-238.el5-2.0.5-1.el5.x86_64

4. oracleasm-support-2.1.4-1.el5.x86_64

5. sysstat-7.0.2-3.el5_5.1.x86_64

이렇게 총 5개 선택하고 넘어가면 된다.

 

알파벳 o 부분에서 ocfs 를 찾아보자...

 

ocfs2-2.6.18-238.el5-1.4.8-2.el5.x86_64 발견

얘는 오라클 클라우드 필수 시스템

이거 체크

 

좀더 아래로 내려가서 oracle-validated-1.1.0-7.el5.x86_64 도 체크하기

 

그리고 바로 아래에 있는

oracleasm-2.6.18-238.el5-2.0.5-1.el5 얘도 체크하기

 

oracleasm-support-2.1.4-1.el5.x86_64 얘도 체크

 

sysstat-7.0.2-3.el5_5.1.x86_64 얘도 체크

 

총 5개 선택함 > close > 넥스트

 

그러면 스크류바 돌아가는 것 같은 화면이 뜸

 

next

 

펭귄 등장

 

10분 정도 소요된다.

라고 해놓고 갑자기 말을 바꿈... 25분이라고...

 

인고의 시간...

25분 걸린다고 써있긴 한데 이거 내가 봤을 때 절대 25분 아니야 ㅠㅠㅠㅠㅠㅠ

 

(나 이거 세번째 설치인데 내가 정확한 시간 한번 재봐야지.

지금 오후 6시 1분인데 지금부터 시작했어 >.<

그리고

 

30분이 넘게 지났는데

내 이럴 줄 알았다. 지금 오후 6시 37분인데 설치에 25분 걸리긴 개뿔

36분씩이나 잡아먹어놓고 아직도 8분 남았다고 개소리 중이야 ㅠㅠ

근데 그래서 정확히 얼마나 걸렸는지는 모름... 아마도 한 40분 걸린 듯... ㅠㅠ)

 


4교시

 

주말에 포트폴리오 만든다고 포스팅 다듬고 있었는데

3교시 내용 다듬은 거 다 날아가버림... 임시저장도 안되어있음...... 아... 티스토리 이 쓰레기 블로그

이딴 쓰레기 같은 사이트를 블로그랍시고 이용하라고 하다니. 진짜 카카오 다 죽여버리고 싶다.

 

아무튼 어찌저찌 인고의 시간이 지나고

설치가 다 되면 아래와 같은 화면이 뜬다 > reboot 누르기

 

오류 발생한 경우 (해결책 없음)

더보기

차라리 아무리 오래 기다리더라도 위 화면이 나오면 행복할 텐데

이건 뭐...

일단은 디버그 눌러봄.

 

그리고 이 상태로 꿈쩍도 안함.

그냥 OK 할 걸 그랬나...

 

다행히 다 지우고 다시 두번째 설치할 때는 고분고분 말 잘 들음.

 

reboot 누르기

 

웰컴 어쩌고 하는 화면이 나오면 > forward

 

그 다음에 라이센스 어쩌고 하는 화면 나오면 > Yes 로 되어있는 채로 > forward

 

그리고 방화벽 설정을 해야 하는데

 

disabled 로 설정해놓고

 

forward

 

forward 누르면 아래와 같은 창이 하나 뜨는데 Yes 누르기

 

그 다음에는 SELinux 세팅으로 넘어가는데

여기서 Disabled 선택하고 > forward > Yes

 

 

 

 

Kdump 단계에서는 그냥 아무것도 체크하지 않고 forward 누르기

 

Date and Time 단계: 날짜는 맞는데 시간이 안 맞는다.

현재시간 정확하게 설정하고 > forward

 

유저 생성 하기

그냥 forwoard 누르면 > 무슨 경고 메시지 같은 게 뜨는데 > 그냥 Continue 누르기

 

 

Sound Card 에서도 그냥 아무것도 안건드리고 forward 하기

 

Additional CDs 에서도 그냥 Finish 누르기 > 무슨 전구 같은 게 나와서 어쩌고저쩌고 하면 > OK

 

 

그러면 아래와 같은 화면이 뜨면서 한참 또 지혼자서 돌아간다.

 

 

펭귄 또 기어나옴.

 

유저 이름 입력하라고 하면 > root > 엔터

 

비밀번호 oracle > 엔터

 

그러면 이렇게 들어와진다. (감격 ㅠㅠ)

후... 힘들었다...

 

가상머신과 윈도우 사이를 왔다갔다할 수 있게 해보자.

장치 > 게스트 확장 CD 이미지 클릭

 

 

그러면 아래와 같은 창이 뜨는데

 

저 중에서 VBoxLinuxAdditions run < 얘 더블클릭

 

 

그러면 무슨 창이 하나 뜨는데 > 옵션들 중에서 Run in Terminal 선택

 

그러면 띄우지도 않았는데 터미널이 지혼자 막 떠서 돌아간다. (CD를 설치하는 것)

 

 

설치가 다 되면 다시 아까의 창으로 지가 알아서 빠져나와진다.

 

여기까지 하고 나면 마우스가 가상머신과 윈도우를 자유롭게 왔다갔다할 수 있어야 되는데

간혹 가다 마우스가 가상머신에서 안 빠져나와지는 경우가 있다...

 

대처법

더보기

가상 머신 창 닫기 > 옵션들 중 '시스템 전원 끄기' 선택 (현재 상태 저장하지 말기)

> 가상머신 다시 켜기 > 다시 로그인

그런데 이렇게 했는데도 마우스 왔다갔다하는 게 안된다면?

그건 CD 설치가 제대로 안된 것... 다시 한번 설치해보자.

 

 

 

 

바탕화면에서 마우스 우클릭> Open Terminal > ifconfig

 

설정해놓은 IP 주소 확인하기

 

VM > 맨 위 도구 > 네트워크 > 속성

 

 

 

맨 아랫부분에 아이피 주소가 보인다.

(192.168.56.101 인데 192.168.56.1 이라고 나오는 이유가 뭔지는 모르겠지만...)

 

이제 퍼티를 켜면 > 아이피 주소 목록에 192.168.56.101 이라고 올라와 있다 > save > open

 

 

accept 누르기 (이 주소가 괜찮은 주소인지 묻는 것)

 

근데 지금은 또 다른 메시지가 뜨네...?

위보다 훨씬 더 무시무시한 메시지 같아 보이긴 하는데

뭐 괜찮겠지 뭐...

 

로그인은 루트로 / 비밀번호는 oracle

 

이제 버추얼은 안씀, 안 보이게 내려놓으면 된다.

설정 내가 원하는 대로 고쳐주기

 

ansi blue 랑 ansi blue bold는 RGB 값을 각각 250, 250, 150 으로 해주고 (150, 150, 250 도 OK)

 

 

키보드 오른쪽 숫자 키로도 숫자 입력할 수 있도록 하기

 

글자크기 14

 

숫자 1이랑 알파벳 l (엘) 이랑 안헷갈리게 코딩체 선택 > 확인

 

session > 오른쪽 네모상자 아이피 주소 목록에서 지금 쓰는 아이피주소 선택

> save > apply : 이렇게 하면 변경사항이 영구 저장된다.

(퍼티 접속시에 잘못해서 load 대신 save 를 누르지 않는 한은...)

 

그럼 이제 호스트 이름을 바꿔보자. 

(로컬 호스트 이름을 그대로 쓰면 안된다)

 

호스트 이름을 바꾸려면

 

# Oracle 7 버전에서는

hostnamectl set-hostname rac1

이 명령어를 쓰면 되는데

지금 우리가 쓰는 건 Oracle 5 버전이라서 저걸로는 못 바꾼다.

 

# Oracle 5 버전

vi /etc/sysconfig/network

vi 편집기로 문서 열기 > 열어보면

HOSTNAME=localhost.localdomain
로 되어있을 텐데

이 변수 값을 

HOSTNAME=rac1 이렇게 수정해야 한다.

 

[root@localhost ~]# vi /etc/sysconfig/network

 

 

 

저장하기

 

이름 적용시키기

[root@localhost ~]# service network restart

 

정상적인 반응은 이거

 

그런데 만약 잘 나가다가 이름이 존재한다고 하면서 failed 라고 뜨면?

 

해결책

더보기

일단은 그냥 내버려두기...

어차피 eth2 는 내부 망이니까 일단은 내버려두자.

 

다시 한번 su - 해보기

 

[root@localhost ~]# su -
[root@rac1 ~]#

su - 하면 호스트 이름이 바뀐다.

 

호스트 등록하기

 

[root@rac1 ~]# vi /etc/hosts

 

아까 오류난 부분 고쳐주기

 

앞부분 삭제

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

 

버추얼 박스에서 > System > Administration > network

 

 

네트워크 창을 보면

Ethernet 2가 inactive 상태라고 되어 있는데

이거 더블클릭

 

그러면 아래와 같은 창이 뜬다.

Address = 192.168.55.101 / Subnet mask = 255.255.255.0 으로 되어있는데

 

 

확인 버튼이 맨 끝에 가려져 있어서 잘 안보이는데

2개 중에서 오른쪽 버튼 누르기

 

그리고 inactive 로 되어있는 상태를 active 로 한번 바꿔 보자.

아이피 주소를 다른 주소 아무거나 (난 192.168.54.101로 함) 로 바꾸고

> 또 맨 밑에 오른쪽 버튼 누르기 >스크린샷을 못찍었는데 inactive 를 active 로 바꾸기 > Yes

 

그래도 안됨.

아래 스크린샷부터는 짜증나는 상황의 연속

(54로 해봤는데 안돼서 53으로 해보고 > 또 안돼서 52로 해보고 > 또 안돼서 또바꾸고 또바꾸고...

결국 62로 정착함. 192.168.62.101)

 

 

 

또 안되면 52로 바꿔보기

 

 

 

 

 

 

192.168.62.101 로 정착

이거 기억해놓기

 

하늘색 창 X 누르고 빠져나오기

 

다시 퍼티에서

[root@rac1 ~]# service network restart

하면 된다.

 

eth2 주소 192.168.62.101 꼭 기억해놓기!!!!!!!!!!!!!!!!!!!!!!

 

근데 난 오류가 안났어...

그래서 192.168.55.101 로 그냥 하기로 함.

 

호스트 이름 바꾸기

[root@localhost ~]# su -

[root@rac1 ~]#

 

호스트 등록하기

[root@rac1 ~]# vi /etc/hosts

vi 편집기로 문서 열어서

 

열면 이런 모습인데

 

이 문서에다가

아래 주소들을 복사해서 붙여넣으면 된다.

 

## Public
192.168.56.101 rac1
192.168.56.102 rac2

## Private
192.168.55.101  rac1-priv
192.168.55.102  rac2-priv

## Virtual
192.168.56.111 rac1-vip
192.168.56.112 rac2-vip

## grid scan
192.168.56.120 rac-scan

저장하고 나오기

 

집에서는 ## private 이렇게 함. 192.168.55.101 & 192.168.55.102로

그리고 학원에서도 가상머신 다시 설치하는데 아무 오류도 안떠서 그냥 55로 함.


5교시

rac_설치.txt
0.00MB

 

# 리소스 낭비를 줄이기 위해서 불필요한 서비스들 종료하기 (필수 아님)

 

chkconfig --level 123456 xinetd off
chkconfig --level 123456 sendmail off
chkconfig --level 123456 cups off
chkconfig --level 123456 cups-config-daemon off
chkconfig --level 123456 smartd off
chkconfig --level 123456 iptables off
chkconfig --level 123456 ip6tables off
chkconfig --level 123456 bluetooth off

 

퍼티 창에 붙여넣고 수행하기

 

# 템프 공간 사이즈 조절

[root@rac1 ~]# vi /etc/fstab

vi 편집기로 문서를 열면 아래와 같은 화면이 보이는데

 

여기서 세번째 줄에 있는 tempfs 부분

tmpfs                   /dev/shm                tmpfs   defaults        0 0

(이거)

복사해서 메모장에 붙여넣기

 

# 템프 공간 사이즈 조절 (default로 되어있는 부분 size = 1500m 로 고치기)

아까 복사해온 이 세번째 줄에서                   여기 default 부분을
tmpfs                   /dev/shm                tmpfs   defaults        0 0
tmpfs                   /dev/shm                tmpfs   size=1500m        0 0

                                                                         이렇게 size=1500m 으로 고치기

 

원래 줄은 맨 앞에 # 붙여서 주석처리해 버리고

아래 줄에 새로 수정한 줄 붙여넣고 > 저장

 

# 환경변수 설정 (이미 설정되어 있어서 별도로 설정할 필요가 없다)

vi /etc/sysctl.conf

구경만 해보기

 

# 변경된 환경값을 적용하기

[root@rac1 ~]# /sbin/sysctl -p

/sbin/sysctl -p 는 환경설정 후 변경사항을 저장하는데

지금은 이미 최적화되어 있기 때문에 굳이 이건 할 필요가 없다.

 

# 사용자 인증 추가

[root@rac1 ~]# vi /etc/pam.d/login

 

문서 열어서 맨 아랫줄에 얘 추가해주기

session required pam_limits.so

 

rac_설치 (1).txt
0.00MB

 

# 커널 기반 타이머를 사용하여 시스템 작업 스케줄러에 발생하는 딜레이를 정기적으로 점검하는 방식
[root@rac1 ~]# vi /etc/modprobe.conf
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

복사해서 맨 아랫줄에 추가 > 저장

 

설정이 됐는지 확인해보기

[root@rac1 ~]# modprobe -v hangcheck-timer

얘를 수행했을 때

아래처럼 나오면: 설정이 제대로 된 것
insmod /lib/modules/2.6.32-100.26.2.el5/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=30 hangcheck_margin=180

 

# 시간 동기화 방식 설정
[root@rac1 ~]# vi /etc/rc.local

문서 열어서

 

↓ 이 두 줄 복사해서
/sbin/modprobe hangcheck-timer
rdate -s 203.248.240.140

touch 아랫줄에 붙여넣고 > 저장

 

# 기존 NTP 관련 설정 파일들을 사용하지 못하도록 변경(백업)

mv /etc/sysconfig/ntpd /etc/sysconfig/ntpd.original
mv /etc/ntp /etc/ntp.origina
mv /etc/ntp.conf /etc/ntp.conf.original

 

위 3줄 복사해서 수행


# RPM 체크
[root@rac1 ~]# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n'binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

(이게 한 줄)

 

복사해서 수행하면: 뭔가 엄청 긴 목록이 주르륵 뜨는데

화면에 보이는 것들은 몽땅 다 설치된 것들

(설치된 것들의 목록을 보는 것)

 

[root@rac1 ~]# rpm -qa | grep oracle

oracle 이라는 이름이 들어간 것들 보기

 

만약 이 중에서 

oracleasm-support-2.1.4-1.el5

얘가 설치가 안 됐으면: oracleasm-support-2.1.4-1.el5.x86_84.rpm

얘를 수동으로 따로 설치해야 한다.

 

# 수동으로 패키지 프로그램 설치

[root@rac1 ~]# rpm -Uvh oracleasm-support-2.1.4-1.el5.x86_84.rpm

없는 파일들을 하나하나 찾아서 이렇게 설치해주어야 함.

 

설치해야 할 그룹들이 있는지 확인해보기

[root@rac1 ~]# cat /etc/group

뭐가 엄청 많다.

더보기

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
man:x:15:
games:x:20:
gopher:x:30:
dip:x:40:
ftp:x:50:
lock:x:54:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
nscd:x:28:
floppy:x:19:
vcsa:x:69:
ntp:x:38:
pcap:x:77:
slocate:x:21:
dbus:x:81:
audio:x:63:gdm
avahi:x:70:
rpc:x:32:
mailnull:x:47:
smmsp:x:51:
sshd:x:74:
oprofile:x:16:
screen:x:84:
xfs:x:43:
stapdev:x:101:
stapusr:x:102:
rpcuser:x:29:
nfsnobody:x:4294967294:
stap-server:x:155:
haldaemon:x:68:
avahi-autoipd:x:156:
gdm:x:42:
oinstall:x:54321:
dba:x:54322:oracle
sabayon:x:86:
vboxsf:x:157:
vboxdrmipc:x:158:

 

oinstall:x:54321:
dba:x:54322:oracle

vboxsf:x:157:

필요한 그룹들이 이미 만들어져 있다.

(버추얼 박스에서 CD 띄워서 설치했던 것 때문에 만들어져 있는 것)

 

그룹 추가 작업

[root@rac1 ~]# groupadd -g 503 oper

[root@rac1 ~]# groupadd -g 504 asmadmin

[root@rac1 ~]# groupadd -g 505 asmdba

[root@rac1 ~]# groupadd -g 506 asmoper

 

유저 생성된 게 있는지 확인해보기

[root@rac1 ~]# cat /etc/passwd

더보기

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
avahi:x:70:70:Avahi daemon:/:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:4294967294:4294967294:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
avahi-autoipd:x:100:156:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
gdm:x:42:42::/var/gdm:/sbin/nologin
oracle:x:54321:54321::/home/oracle:/bin/bash
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
vboxadd:x:101:1::/var/run/vboxadd:/bin/false

oracle:x:54321:54321::/home/oracle:/bin/bash

이미 얘가 만들어져 있다.

 

[root@rac1 ~]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)

 

유저 그룹 추가

[root@rac1 ~]# usermod -g oinstall -G dba,oper,asmadmin,asmoper,asmdba,vboxsf oracle

 

수정된 내용 확인하기

[root@rac1 ~]# id oracle

 

(만약 vboxsf 가 없다면 추가해주기,

groupadd -g 507 vboxsf 이렇게)

 

오라클 계정으로 접속하기 위해 패스워드 바꾸기

(비밀번호: oracle)

[root@rac1 ~]# passwd oracle
Changing password for user oracle.
New UNIX password: (oracle 이라고 입력)
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password: (oracle 이라고 입력)
passwd: all authentication tokens updated successfully.

 

오라클 계정으로 접속하기

[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$

 

[oracle@rac1 ~]$ id
uid=54321(oracle) gid=54321(oinstall) groups=157(vboxsf),503(oper),504(asmadmin),505(asmdba),506(asmoper),54321(oinstall),54322(dba)

 

루트로 다시 가기 

[oracle@rac1 ~]$ su -
Password: (비밀번호 oracle)

[root@rac1 ~]#

 

# 오라클 그리드 설치 디렉토리, 오라클 소프트웨어 설치 디렉토리

여기서부터 루트 계정에서 해야 함. 그래서 루트로 도로 돌아온 것

 

아래 명령어들 한 줄씩 한 줄씩 따로따로 복사해서 붙여넣기

 

mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory

mkdir -p /u01/app/oracle
mkdir /u01/app/oracle/cfgtoollogs
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle

mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1   
chown -R oracle:oinstall /u01  
chmod -R 755 /u01

 

cd / 해서 루트 디렉토리로 가기

[root@rac1 ~]# cd /

 

ls -l 하면 기다란 목록이 뜨는데

[root@rac1 /]# ls -l

그 중에서 u01 이 oracle oinstall (owner는 oracle, OS group 은 oinstall) 로 되어있는지 확인하기

root root 로 되어있으면 안된다.

 

만약 u01이 root root 로 되어있으면?

ownership 을 바꿔주어야 한다.

chown -R oracle:oinstall /u01

이렇게.

 

# 오라클 환경 설정하기 (무조건 오라클 계정에서 해야 한다)

다시 su - oracle 해서 오라클 계정으로 접속하기

[root@rac1 /]# su - oracle

 

오라클 환경설정

[oracle@rac1 ~]$ vi .bash_profile

 

vi 편집기로 문서 열어서 아래 내용 복사해서 맨 아랫줄 붙여넣기


export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export GRID_HOME=/u01/app/11.2.0/grid
export ORACLE_SID=racdb1
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

여기까지 복사해서 몽땅 붙여넣고 저장

 

문서 새로 생성하기 1 + 내용 추가
[oracle@rac1 ~]$ vi /home/oracle/.grid_env

export ORACLE_SID=+ASM1 #+ASM2
export ORACLE_HOME=$GRID_HOME
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

 

문서 새로 생성하기 2 + 내용 추가

[oracle@rac1 ~]$ vi /home/oracle/.db_env

export ORACLE_SID=racdb1 # racdb2
export ORACLE_HOME=$DB_HOME
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


# 저 2개를 빨리 쉽게 사용할 수 있도록 alias 작업 (.bashrc 파일 맨 아래에 추가하기)
[oracle@rac1 ~]$ vi /home/oracle/.bashrc

파일을 열면 이런 모습인데


alias grid_env='. ~/.grid_env'
alias db_env='. ~/.db_env'

(집에서는 다시 여기서부터...)


6교시

 

# ASM Disk 생성

명령 프롬프트 관리자 권한으로 열기

cd C:\Program Files\Oracle\VirtualBox  ← 붙여넣고 수행

수행하면 이런 모습이 된다.

 

디렉토리 위치를 내가 설정한 곳으로 다 바꿔주기

더보기

디스크 생성

VBoxManage.exe createhd --filename d:\oracle_rac11g\asm_disk1.vdi --size 5120 --format VDI --variant fixed
VBoxManage.exe createhd --filename d:\oracle_rac11g\asm_disk2.vdi --size 5120 --format VDI --variant fixed
VBoxManage.exe createhd --filename d:\oracle_rac11g\asm_disk3.vdi --size 5120 --format VDI --variant fixed
VBoxManage.exe createhd --filename d:\oracle_rac11g\asm_disk4.vdi --size 5120 --format VDI --variant fixed
VBoxManage.exe createhd --filename d:\oracle_rac11g\asm_disk5.vdi --size 5120 --format VDI --variant fixed
VBoxManage.exe createhd --filename d:\oracle_rac11g\asm_disk6.vdi --size 5120 --format VDI --variant fixed

 

디스크 공유 모드로 바꾸기
VBoxManage.exe modifyhd d:\oracle_rac11g\asm_disk1.vdi --type shareable
VBoxManage.exe modifyhd d:\oracle_rac11g\asm_disk2.vdi --type shareable
VBoxManage.exe modifyhd d:\oracle_rac11g\asm_disk3.vdi --type shareable
VBoxManage.exe modifyhd d:\oracle_rac11g\asm_disk4.vdi --type shareable
VBoxManage.exe modifyhd d:\oracle_rac11g\asm_disk5.vdi --type shareable
VBoxManage.exe modifyhd d:\oracle_rac11g\asm_disk6.vdi --type shareable

위 접은글 부분에 써놓은 명령어들을 한 줄씩 붙여넣고 수행하면

 

이런 식으로 (몇 퍼센트까지 완료되었는지 보여주면서) 수행된다.

다 되면 다음 줄도 붙여넣고 수행하기

모든 행을 이런 식으로 수행하면 됨

(디스크 생성에는 꽤나 오랜 시간이 걸림... 그렇지만 디스크를 공유 모드로 바꾸는 건 금방금방 된다.)

 

다시 루트 계정으로 접속

[oracle@rac1 ~]$ su -

Password:

비밀번호 oracle

 

[root@rac1 ~]# shutdown -h now

 

rac 보면 전원 꺼짐으로 나온다.

 

도구 > 미디어

 

만약 무슨 주의 표지판 같은 게 앞에 붙어있는 파일들이 있다면?

더보기

 

삭제해 버리면 된다.

파일들 개수가 선생님 것보다 훨씬 부족해 보이지만

그냥 asm_disk1, 2, 3, 4, 5, 6 이랑 rac1 만 있으면 된다.

나머지는 예전에 설치해놓은 것

 

사소한 문제 발생

더보기

근데 일곱번째 디스크는 뭐지... 난 만든 적이 없는데...

삭제하려고 해봤는데 뭔가 무시무시한 메시지가 떠...

 그렇지만 결국 삭제 누름.

 

마우스로 디스크 만드는 법에 대해 알아보자.

도구 > 미디어 > 만들기

 

(조금 전에 우리가 만들어놓은 디스크들이 보인다.)

딱 하나만 더 만들어 보자.

만들기 클릭

 

그러면 아래와 같은 화면이 나오는데

여기서 '다음' 클릭

 

미리 전체 크기 할당 (Pre-allocate Full Size)

이걸 선택하면 딱 5G 짜리 디스크가 만들어진다. (fixed size) 공간이 부족하면 1G 짜리 만들기

다음 클릭

 

그리고 그다음 화면에서 오른쪽 폴더 모양 아이콘 클릭

 

QUESTION. 여기서 폴더 아이콘 클릭하고 나서

폴더만 지정하고 그 뒤에 asm_disk7 은 이름을 직접 썼던가...?

아무튼 고유한 이름으로 하라고 하시는데... 일단 두번째 설치중인데 이름 직접 씀.

ANSWER. 테스트용이라서 안만들어도 상관없다.

 

완료 누르기

 

그러면 이렇게 오른쪽에

'미디어 생성 중'... 어쩌고 하는 메시지가 뜬다.

 

QUESTION. 그럼 여기 asm_disk7.vdi 가 만들어져야 하는데

나는 왜 안만들어지지...

(이건 첫번째 설치했을 때 화면)

ANSWER. 다시 해보니까 됨.

 

디스크를 공유 모드로 만들기

속성 > 공유 가능 > 5기가 > 적용

(방금 새로 만든 asm_disk7.vdi 에 대해서만 해주면 됨, 나머지는 이미 공유 가능으로 되어 있다.)

 

그러면 오른쪽에 미디어 크기 조정 중 어쩌고저쩌고 하는 메시지가 뜬다.

 

디스크들 RAC1 에 적용해주기

 

오른쪽에 저장소가 보이는데

 

가상머신 목록에서 rac1 선택 > 오른쪽 톱니바퀴 설정 누르고

 

저장소 > 컨트롤러 SATA  > 오른쪽 옆에 있는 아이콘 두 개 중에서 중에서 오른쪽 아이콘 클릭

 

그러면 이렇게 생긴 화면이 뜬다.

 

여기서 not attached 라고 되어있는 것들 하나씩 선택하기

(not attached 라고 되어있는 것들만 선택해야 함,

attached 라고 되어있는 거 선택하지마!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

그리고 asm_disk1, 2, 3, 4, 5, 6까지만 선택해. 7은 선택하지마!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

하지말라면 그냥 하지마!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 난 분명히 말했어..........................................

그리고 rac1 은 선택을 안했는데도 지가 알아서 추가된다.)

 

다 하고 나면 이런 모습이 된다. 확인 클릭

 

저장소 부분이 바뀌어 있는 것이 보인다.

 

이건 바꾸기 전 모습

 

시작 버튼 클릭 (연두색 오른쪽 방향 화살표)

 

가상머신 전원을 켜면 펭귄이 나온다. 어휴...

저 펭귄은 볼 때마다 참 꼴보기가 싫단 말이지... ㅡ.ㅡ

그리고 갑옷은 왜입고있어. 어깨 넓어 보이고 싶어서 입었냐?

 

그런데 이 디스크는 이제 리눅스가 사용할 수 있도록 포맷해야 한다.

(포맷을 안하면 쓸 수가 없다)

디스크 추가 후에는 꼭 포맷 작업을 해야 한다.

 

root 유저로 (비밀번호 oracle) 접속하기

 

다시 가상 머신 목록에서 rac1 클릭한 채로 오른쪽 톱니바퀴 설정 버튼 누르고

> 공유 폴더 가면 > 공유 폴더로 지정해놓은 위치가 보이는데

아까 다운받아놓은 linux_11gR2_grid.zip 파일 압축 풀어서 공유 폴더 위치에 넣기

 

일단 압축 먼저 풀기

 

압축 푸는 데만 한 1분 정도 걸린다.

 

이렇게 압축을 풀었으면

 

압축 풀린 파일을 공유 폴더 위치로 넣어주기

 

 

공유 폴더가 활성화되어 있는지 확인해보기

터미널 창에서 cd /media/sf > 여기까지만 입력하고 탭 키 눌러보기

 

탭 키 눌렀을 때 이렇게 지가 알아서 저절로 나머지 주소가 입력되면

공유 폴더가 활성화된 것

 

여기까지 함 ㅠㅠ 수업 시작하게 생겼어...

6교시 37:24

 

pwd 하고 ls 해보기

현재 디렉토리에 linux_11gR2_grid 폴더가 들어있는 것이 보인다.

(마치 오라클 OS 에 있는 디렉토리처럼 느껴지지만 사실은 윈도우에 있는 디렉토리)

 

좀더 깊숙이 들어가보기...

 

공유 폴더를 확인해보면: 우리가 지정한 위치로 되어있는 것이 보인다.

 

그런데 공유 폴더가 만약 활성화되지 않았다면 > 압축 푼 파일을 FTP로 보내야 한다.

FTP 켜고 호스트, 사용자명, 비밀번호, 포트번호 입력 > 접속 > 압축 푼 폴더 찾아서 오른쪽으로 옮기기

그림에서 하라는 대로 아이피 주소 넣고 / 사용자명 쓰고 / 비밀번호 입력하고 / 포트 번호 쓰고

빠른 연결 누르면 > 오른쪽에 리모트 사이트 /home/oracle 어쩌고저쩌고 하면서

디렉토리와 파일 목록들이 저절로 주르륵 뜬다.

 

그러면 지혼자서 한참 파일 전송하느라 바쁘다.

내버려두면 지가 알아서 파일 다 전송함.

 

완료

 

다시 퍼티에서

 

login as: root
root@192.168.56.101's password:
Last login: Tue Mar  5 14:15:33 2024 from 192.168.56.1
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ cd /media/sf_oracle_rac11g_20240229/

cd /media/sf_ 까지만 입력하고 탭 키 누르면 나머지 부분이 완성된다.


cd linux 까지만 입력하고 탭 키 누르기 > 그러면 파일이름이 자동완성된다.

[oracle@rac1 sf_oracle_rac11g_20240229]$ cd linux_11gR2_grid/

 

더보기

[oracle@rac1 ~]$ cd /media/sf_oracle_rac11g_20240229/
[oracle@rac1 sf_oracle_rac11g_20240229]$ cd linux_11gR2_grid/
[oracle@rac1 linux_11gR2_grid]$ ls
linux_11gR2_grid
[oracle@rac1 linux_11gR2_grid]$ cd linux_11gR2_grid/
[oracle@rac1 linux_11gR2_grid]$ ls
grid
[oracle@rac1 linux_11gR2_grid]$ cd grid
[oracle@rac1 grid]$ ls
doc      response  runcluvfy.sh  sshsetup  welcome.html
install  rpm       runInstaller  stage
[oracle@rac1 grid]$ cd rpm
[oracle@rac1 rpm]$ pwd
/media/sf_oracle_rac11g_20240229/linux_11gR2_grid/linux_11gR2_grid/grid/rpm
[oracle@rac1 rpm]$ ls
cvuqdisk-1.0.7-1.rpm

 

 


7교시

 

[oracle@rac1 grid]$ cd rpm
[oracle@rac1 rpm]$ pwd
/media/sf_oracle_rac11g_20240229/linux_11gR2_grid/linux_11gR2_grid/grid/rpm
[oracle@rac1 rpm]$ ls
cvuqdisk-1.0.7-1.rpm

 

rpm 디렉토리로 들어갔을 때 보이는 파일 = ASM 설치할 때 꼭 필요한 패키지

이 파일은 루트에서 설치할 것이기 때문에

루트 계정으로 이 파일을 보내주면 된다.

 

FTP 에서 root 계정으로 접속한 다음

(왼쪽은 윈도우, 오른쪽은 리눅스)

 

윈도우에 있는 rpm 파일 루트 디렉토리에 드래그해서 넣어주기

(금방 전송이 완료된다.)

 

다시 퍼티에서 루트 계정으로 간 다음

 

루트에서 ls 하면: 방금 받은 rpm 파일이 보인다.

 

이제 저 rpm 파일을 설치해주어야 하는데

아래 명령어를 수행하면 된다.

 

[root@rac1 ~]# rpm -Uvh cvuqdisk-1.0.7-1.rpm
Preparing...                ########################################### [100%]
Using default group oinstall to install package
   1:cvuqdisk               ########################################### [100%]

 

금방 설치가 완료된다.

 

[root@rac1 ~]# oracleasm configure -i

그러면 ASM 을 누구와 관리할 건지 물어보는데

(Default user to own the driver interface []: oracle)

 

oracle 이랑 같이 관리하겠다고 하면 된다.

그리고 OS 그룹은 oinstall 로 설정하기

 

Start Oracle ASM library driver on boot (y/n) [n]: y

y = OS가 내려갔다 올라오더라도 무조건 자동 활성화하겠다는 뜻

Scan for Oracle ASM disks on boot (y/n) [y]: y

y = 디스크 띄울 때 무조건 활성화

(사실 쟤네 둘은 y 가 디폴트이므로 그냥 y 입력 안하고 엔터키만 쳐도 됨)

Writing Oracle ASM library driver configuration: done

 

설정이 잘 되었는지 확인해보기

[root@rac1 ~]# oracleasm init

위의 명령어를 수행했는데 아래와 같은 메시지 3줄이 나오면 설정이 잘된 것

Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm

 

저 위치가 ASM 디스크가 있는 위치인데

저 위치로 한번 가보자.

[root@rac1 ~]# cd /dev/oracleasm
[root@rac1 oracleasm]# ls
disks  iid

아직은 포맷을 하지 않았기 때문에

(OS 에 있는 스토리지를 ASM 스토리지로 쓸 수 있도록 하는 작업을 아직 안했기 때문)

이 위치에 디스크가 없다. 하지만 디스크가 활성화되지 않았을 경우 저 위치로 찾아가서 작업해야 하기 때문에

위치를 기억해두어야 한다.


[root@rac1 oracleasm]# cd disks/
[root@rac1 disks]# ls
[root@rac1 disks]# pwd
/dev/oracleasm/disks

 

 

디스크 포맷하기

 

1. 디스크 정보 확인하기 (추가된 디스크들 보기)

먼저 디스크가 포맷되지 않았다는 것을 확인해보자.

[root@rac1 ~]# fdisk -l

(fdisk -l 은 추가된 디스크들 보는 명령어, 맨 끝은 소문자 엘)

명령어를 수행해서 보면: sda는 1, 2, 3 번이 만들어져 있는 것이 보이는데

sdd 는 5G 짜리인데 실린더 정보만 보이고 Device Boot, Start, End, ... 등의 정보는 안보인다.

(이건 sdd 가 포맷되지 않은 디스크라서 저렇게 보이는 것...

포맷된 디스크는 sda1, ... 하는 식으로 뒤에 숫자가 붙어서 나온다)

 

그리고 참고로 아래 보이는 sda 1, 2, 3 은 버추얼 박스 설정하면서 /boot, swap, / 이 3개 만들었던 것 

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         535     4192965   82  Linux swap / Solaris
/dev/sda3             536        6527    48130740   83  Linux

 

그럼 이제 디스크 포맷을 해보자.

(천천히 한번 따라해보자... 여기서 셋업을 잘못하면 다 망가진다 ㅠㅠ)

 

sda 는 됐고 sdb 부터 포맷하기

[root@rac1 ~]# fdisk /dev/sdb

엔터키를 누르면 아래와 같은 메시지가 뜬다.

 

Command (m for help):

라고 나오면 : 새롭게 포맷할 거니까 소문자 n 입력하기 > 엔터

 

extend 할 건지 primary partition 할 건지 물어보면

Command action
   e   extended
   p   primary partition (1-4)

 

우리는 partition 할 것이므로 p 입력 > 엔터

 

디스크와 파티션은 하나니까 (통으로 5G 짜리 써야 되니까) 파티션 넘버는 1로

Partition number (1-4):

1 입력 > 엔터

 

실린더도 디폴트로 1번부터 시작해야 되니까 엔터

First cylinder (1-652, default 1):

그냥 아무것도 입력안하고 엔터 누르면 된다.

그러면

Using default value 1

이런 메시지가 뜸

 

사이즈는 디폴트로 지가 설정하도록 엔터

Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):

엔터 누르면

Using default value 652

이런 메시지가 뜬다.

 

그리고 지금 작업을 저장해야 되니까 w

Command (m for help):

w > 엔터

 

방금 작업한 sdb 가 포맷이 잘 되었는지 한번 확인해보자.

[root@rac1 ~]# fdisk -l

맨 끝에 알파벳 l (엘)

 

포맷 전

 

포맷 후

 

남은 sdc, sdd, sde, sdf, sdg 에 대해서도 똑같이 하면 된다.

 

각각 아래의 명령어로 들어가서

[root@rac1 ~]# fdisk /dev/sdc

[root@rac1 ~]# fdisk /dev/sdd

[root@rac1 ~]# fdisk /dev/sde

[root@rac1 ~]# fdisk /dev/sdf

[root@rac1 ~]# fdisk /dev/sdg

 

n > p > 1 > 엔터 > 엔터 > w

 

QUESTION. 근데 나 아까 sdb 할 때는 경고 메시지가 없었는데

지금은 경고메시지가 떠... 이거 뭐지...

WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks.

ANSWER. 어차피 디스크 다 만들고나서 셧다운하기 때문에 상관없다.

 

파티션해놓은 것들 확인

[root@rac1 ~]# fdisk -l |perl -ne 'print if/^\/dev\/sd[b-g]\d/'

 

# ASM 공유 디스크 생성

(OS 디스크를 ASM 디스크로 생성하는 작업, 진짜로 사용해야 하는 디스크들을 생성하는 것)

 

한 줄씩 붙여넣고 수행하기

oracleasm createdisk ASMDISK01 /dev/sdb1;
oracleasm createdisk ASMDISK02 /dev/sdc1;
oracleasm createdisk ASMDISK03 /dev/sdd1;
oracleasm createdisk ASMDISK04 /dev/sde1;
oracleasm createdisk ASMDISK05 /dev/sdf1;
oracleasm createdisk ASMDISK06 /dev/sdg1;

 

지금 만든 것들 디스크 스캔 : OK가 나오면 된 것

/etc/init.d/oracleasm scandisks

 

디스크 목록들 확인

oracleasm listdisks

'오라클 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월 5일 1교시  (0) 2024.03.05
2024년 3월 4일 1교시 QUESTION.  (0) 2024.03.04

관련글 더보기