2014. 10. 20. 21:27

startup 명령어 입력


nomount 단계 : 오라클 서버프로세스가 parameter file 읽음

     파라미터 값을 읽고, 인스턴스를 생성함

     RAM 에 인스턴스가 생성되어 작업할 수 있는 메모리 공간확보됨

     Alert log 파일을 열어 로깅을 시작


*alert log : 인스턴스가 시작되어 운영,종료까지 중요한 내용들을 모두 저장하고 있는 파일

- 10g : $ORACLE_BASE/admin/SID/bdump/alert_SID.log

- 11g : $ORACLE_BASE/diag/rdbms/SID/SID/trace/alert_SID.log

                             예)testdb로  SID를 준 경우의 경로

                             /app/oracle/diag/rdbms/testdb/testdb/trace/alert_testdb.log


아래 화면은 11g 기준일 때 조회한 결과이다.



mount 단계 : control file의 내용을 읽음

                   control file의 위치 정보는 parameter file에 기록되어 있음

 database의 이상유무를 확인함


*control file 내용 : database 전체의 상태정보


Instance crash 가 발생하면??

- smon 이 Instance recovery 수행시 복구 내용을 redo log file에서 찾고, 복구를 한다.

- 복구하려는 내용이 redo log file에 없거나 

  archived log file에 있을 경우는

  smon이 Instance recovery 를 수행하지 못함 

  관리자가 직접 revocery를 수행해야하는 media recovery 상태가 됨


open 단계 : mount 단계에서 Instance crash가 발생하지 않으면 open 단계가 되고, 정상 DB가 수행됨


* 한 번에 nomount / mount 에서 open 상태로 못간다.

   각 단계의 파일을 검사하고 난 후 상위 단계로 가야하기 때문이다.


sql문을 실행하면 일단 서버프로세스(server process)가 실행된다.


*오라클의 철칙! 

현재 사용하고 있는 파일을 복사, 이동하면 안된다. 

운영중인 DB에서 작동중인 컨트롤 파일을 복사하면 DB블록이 깨진다. 



Parameter File(초기화 파라미터 파일)


-파라미터란?

어떤 값을 오라클에게 전해주기 위해 사용하는 변수 같은 역할을 하는 것


- 묵시적 파라미터 : 관리자가 지정해주지 않은 경우 자동으로 기본값을 가지는 파라미터

- 명시적 파라미터 : 관리자가 직접 지정해 주어야만 값을 가지는 것

 


- 파라미터 파일 :  파라미터를 모아 놓은 파일

       SGA 생성시 참조하는 설계도 같은 역할 


항목 / 파일 

 pfile

정적 파라미터 파일

spfile 

동적 파라미터 파일

파일이 존재하는 기본 경로 

 $ORACLE_HOME/dbs(두 파일 모두 공통)

 파일 이름

initSID.ora

SpfileSID.ora 

내용 변경 

관리자(사람) 

서버 프로세스 

 파일 형태

Text(os 편집 O) 

Binary (os 편집 X)


- pfile과 spfile은 장단점이 다르므로 다양하게 사용되며, 

   pfile이 오래되서 좋지 않고 spfile이 좋다는 생각은 잘못된 것이다. 


- 버전에 따른 파일 

pfile   : 8i 는 spfile 이 없고, pfile만 있음

spfile  : 9i 부터는 spfile, pfile 모두 있음

           두 개의 파일이 있을 때, 항상 spfile 내용만 사용

          주의) spfile을 변경하고 싶으면 spfile을 변경해야 한다. 

                  pfile을 변경하고 적용안된다고 할 수 있으니 조심할 것 


- 파라미터 파일의 경로와 이름

주의) pfile/spfile은 정해진 경로에 있어야 정상 작동하며, 

        경로가 아니거나 이름이 다르면 에러 발생



- 파라미터 파일의 내용 확인


vi spfiletestdb.ora



spfile 은 바이너리 파일

절대로 사용자가 수정해서는 안된다. 

wq! 로 저장을 하거나 수정을 하면 파일이 깨졌다고 인식한다. 



vi inittest.ora





'DB > oralce' 카테고리의 다른 글

9 메모리 관리 기법  (0) 2014.10.24
6 redo log 관리하기  (0) 2014.10.21
오라클 관리실무  (0) 2014.10.17
sql 시험  (0) 2014.10.15
2장 내가 못푼 쿼리문 - 설명을 덧붙일 것  (0) 2014.10.15
Posted by 성장하는yw
2014. 10. 17. 20:09

오라클 혹은 오라클 서버

- instance : 메모리를 오라클에서는 인스턴스라고 말하며, 작업공간

- SGA

- Background Process


- database : 데이터를 저장하는 데이터 파일들을 모두 부르는 말

- data files : 데이터가 저장되는 데이터 파일들

- control files : DB전체의 관리정보가 들어있는 파일들

- redo log files : 장애 복구 시에 사용되는 파일



instance 가 생성되는 과정

1 .

라클 데이터베이스가 종료되어 있는 상태라고 가정, 

관리자가 DB에 접속해 오라클을 시작(startup) 한다.


2. 

startup 요청을 받은 최초의 오라클서버프로세스(oracle server process)가 

초기화 파라미터파일(pfile 이나 spfile)에 있는 설정을 참고

OS 커널(kernel)에게 공유 메모리를 사용할 수 있도록 할당 요청


* 컴퓨터의 모든 하드웨어를 관장하는 것 : os의 kernel (RAM을 사용해 오라클 작업을 하기 위해서)

* 파라미터 파일 : SGA 부분을 만들 때, 참조되는 건축에서의 설계도와 같은 파일


3.

os 커널(kernel)은  오라클서버프로세스(oracle server process)에서 메모리 할당 요청을 받은 후,

os 커널(kernel)의 파라미터 파일(리눅스 : /etc/sysctl.conf 솔라리스 /etc/system) 을 조회,

파일에 설정되어 있는 내역으로 공유메모리(SGA)를 할당해 준다

os 커널(kernel)은 이 파일 내에 있는 세마포어 설정값 등 다른 프로그램에서 

오라클 공유메모리를 사용할 수 없도록 관리해준다.


* 커널의 공유메모리 관리 

RAM이란 모든 서버프로세스(server process)들이 동시에 사용하는 공간이므로

오라클이 사용하고 있다 하더라도 다른 프로그램이 오라클의 공유메모리를 사용하려고 시도할 수 있다. 

하나의 메모리 블록을 여러 프로그램이 동시에 중복사용하는 상황을 막기위해 

os 차원에서 제공하는 세마포어와 몇가지 kernel의 값이 있다. 



4. 

SGA 최초 생성은 오라클서버프로세스(oracle server process)에 의해 요청되어 만들어졌지만

만들어진 후에는 os 커널(kernel) 이 관리 한다.


SGA의 종료 :

생성을 요청한 오라클서버프로세스(oracle server process)가 종료되어도 되지 않고,

인스턴스(instance)가 종료되어야 SGA가 공유메모리에서 사라짐


5.






                 

'DB > oralce' 카테고리의 다른 글

6 redo log 관리하기  (0) 2014.10.21
4 oracle 시작하기와 종료하기  (0) 2014.10.20
sql 시험  (0) 2014.10.15
2장 내가 못푼 쿼리문 - 설명을 덧붙일 것  (0) 2014.10.15
계층형쿼리  (0) 2014.10.14
Posted by 성장하는yw
2014. 10. 15. 20:39

1.panmae테이블을 사용하여 아래와 같이 출력하세요





2.

3장 그룹함수 35p

professor 테이블에서 각 교수들의 급여를 구하고 각 교수의 급여액이 전체 교수의 급여 합계에서 차지하는 비율을 출력





5장 ddl


emp 테이블에서 empno, ename, sal 컬럼을 가져와 

emp10 이름으로 테이블 생성, 

데이터는 가져오지 않도록 하는 쿼리문



4

5장 ddl 13p


test10 테이블에 address 컬럼을 추가하는 쿼리

address는 varchar2(30) 이고, 기본값으로 "서울"이 자동입력 되도록 한다.




5장 ddl 13p


4번에서 만든 address 컬럼의 이름을 location 으로 변경하는 쿼리




6

7장 제약조건 4p


emp4 테이블의  no 컬럼이  emp2 테이블의  empno 컬럼의 값을 참조하도록 참조키 제약조건을 

설정하세요.(emp4 테이블이 자식테이블입니다)



7

7장 제약조건 14p


test10  테이블의 name 컬럼에 만들어져 있는 unique 제약조건을 사용안함으로 변경,

또, 해당테이블의 데이터에 DML 명령도 실행되지 않도록 변경하는 쿼리

(제약조건 이름은 test10_name_uk 입니다)




8

7장 제약조건 19~20p


7번에서 사용 안 함으로 설정한 제약조건을 사용함으로 변경,

기존에 있던 내용과 새로 들어올 내용 모두를 체크하는 옵션으로 변경하세요

그리고 문제가 되는 데이터들은 sys.exceptions 테이블에 저장하도록 하세요



9

7장 제약조건 25p


emp테이블에 설정되어 있는 제약조건 중 자신이 생성한 제약 조건들을 

테이블명, 컬럼명, 제약조건명으로 검색하는 쿼리를 쓰세요



10

3장 복수행함수 38p


emp 테이블의 hiredate 컬럼을 참조, 아래와 같이 월별로 입사인원수를 출력하세요





11

3장 복수행함수 38p





12

3장 복수행함수 38p







13

3장 복수행함수 41p




14

3장 복수행함수 40p





15

9장 view 9p 인라인뷰

 





16

9장 view 10p 인라인뷰






17

9장 view 16p 연습문제




18

9장 view  연습문제 5번




19

10장 subquery 7p






20

10장 sub query 9p




21

11장 sequence와 synonym1~2p




22

7장 제약조건 3p


아래 조건에 만족하는 테이블을 생성하세요

*테이블 이름은 emp3

*no 컬럼은 number 4로 하고 primary key 이며

 제약조건명은 emp3_no_pk로 하세요

*name 컬럼은 varchar2 10바이트로 하고 not null로 설정하고

제약조건명은 emp3_name_nn 으로 하세요

*deptno 컬럼은 varchar2(6)으로 하고

deptno 테이블의 dcode 컬럼을 참조하는 foreign key로 설정하세요




23

11장 sequence와 synonym12p - 시너님 관련


Scott 사용자의 department 테이블의 동의어를 d2 로 생성하되 

모든 사용자들이 사용할 수 있도록 생성하세요

(Scott 사용자가 동의어를 생성할 수 있도록 권한도 없다고 가정하고 권한도 부여하세요)





24

2장 단일행함수 45p





25

2장 단일행함수 56p 정규식함수


reg_test 테이블에서 소문자가 들어있는 모든 행을 제거한 후 아래와 같이 표현하세요




26

2장 단일행함수 60p


reg_test 테이블에서 ? 가 들어있는 모든 행을 아래와 같이 출력하세요




27

2장 단일행함수 65p 정규식부분

맨 아래예제 변형문제


reg_test2 테이블에서 ip주소에서 두번째 .을 *로 바꾸어 출력하세요





28

2장 단일행함수 67p


사용자로 부터 id 값을 입력 받은 후 student 테이블에서 studno, name, id 를 출력하되

입력된 id 값은 ' 75 TRUE(첫 글자 공백과 가운데 공백, 대문자) 로 입력했을 때

공백을 모두 제거하고, 영어는 소문자로 변환해 조회하는 쿼리를 쓰세요



29

2장 단일행함수 71p 정규식 부분


교수테이블(professor )테이블에서 홈페이지(hpage) 주소가 있는 교수들만 조사해서 아래의 화면

처럼 나오게 출력하세요.






30


12장 계층형 쿼리 8p




'DB > oralce' 카테고리의 다른 글

4 oracle 시작하기와 종료하기  (0) 2014.10.20
오라클 관리실무  (0) 2014.10.17
2장 내가 못푼 쿼리문 - 설명을 덧붙일 것  (0) 2014.10.15
계층형쿼리  (0) 2014.10.14
plsql cursor 연습문제 정답  (0) 2014.10.14
Posted by 성장하는yw
2014. 10. 15. 09:45

select RPAD(ename, 9,substr('123456789',lengthb(ename)+1)) "RPAD"

from emp

where deptno=10;



select ename,replace(ename,substr(1,2),'**') "replace"

from emp

where deptno=10;



replace (문자열/컬럼명, '문자1', '문자2')

주어진 문자열이나 컬럼에서 문자1을 문자2로 표시한다. 


select empno, ename, hiredate

from emp

where to_char(hiredate,'MM') in ('01','02','03');


'DB > oralce' 카테고리의 다른 글

오라클 관리실무  (0) 2014.10.17
sql 시험  (0) 2014.10.15
계층형쿼리  (0) 2014.10.14
plsql cursor 연습문제 정답  (0) 2014.10.14
오라클 테스트 계정 scott lock 풀기  (0) 2014.09.29
Posted by 성장하는yw
2014. 10. 14. 22:03

계층형 쿼리

데이터 조회시 상하위 관계를 표시해 상하 관계를 파악하고자 할 때 사용한다. 


주요문법

select lpad(dname,level*6,'*") 부서명

from dept2

connect by prior dcode=pdept

start with dcode=0001;


lpad(dname,level*6) 부서명

dname 컬럼을 level*6 바이트 길이로 출력하고, 

왼쪽 빈자리는 *로 채워라


사장실은 최상위 레벨 1

1*6 바이트 = 6바이트

사장실 : 한글이라서 1글자에 2바이트 차지

그래서 그대로 사장실이라고 출력된다. 


경영지원부는 사장실 아래의 레벨 2

2*6 바이트 = 12 바이트

왼쪽 빈자리를 lpad의 * 로 채우고, 원래 경영지원부는 그대로 출력해준다.


level 이란?

오라클의 모든  sql에서 사용할 수 있는 것,

해당데이터가 몇 번째 단계인지 의미한다.


connect by prior 

각 행들이 어떻게 연결되어야 하는지 조건을 지정하는 부분이다. 

dcode=pdept의 조건을 주었다. 


prior?

해당 키워드가 설정되어 있는 컬럼에서 바로 이전의 데이터 값을 찾는데 사용된다.

사용시 prior 값을 어느 쪽에 주는지에 따라 결과값이 달라지므로 유의해야 한다.

 예)


start with dcode=1011;

dcode가 1011인 부서부터 출발해서 이전 행 값의 pdept 코드를 찾아서 부서명을 출력한다. 


'DB > oralce' 카테고리의 다른 글

sql 시험  (0) 2014.10.15
2장 내가 못푼 쿼리문 - 설명을 덧붙일 것  (0) 2014.10.15
plsql cursor 연습문제 정답  (0) 2014.10.14
오라클 테스트 계정 scott lock 풀기  (0) 2014.09.29
rac설치 raw device  (0) 2014.09.19
Posted by 성장하는yw
2014. 10. 14. 15:08

1번 문제 



2번 문제



3번 문제



'DB > oralce' 카테고리의 다른 글

2장 내가 못푼 쿼리문 - 설명을 덧붙일 것  (0) 2014.10.15
계층형쿼리  (0) 2014.10.14
오라클 테스트 계정 scott lock 풀기  (0) 2014.09.29
rac설치 raw device  (0) 2014.09.19
RAC 설치시 xhost 문제  (0) 2014.09.12
Posted by 성장하는yw
2014. 9. 29. 21:06

오라클을 설치하면 기본적으로 SCOTT 사용자 계정은 잠금 상태

잠겨있는 계정을 아래 명령어로 해제한 후 테스트 용도로 사용할 수 있다.

 

DBA권한(sysdba,sys계정)으로 접속

 

scott 계정의 락(lock)을 풀어주는 명령어

ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;

 

scott 계정으로 접속

CONN scott/tiger;

 

만약 scott 계정이 없다면,

아래와 같이 scott 유저를 새로 만들어주고,

기본테이블 및 데이터를 생성하면 된다.

 

scott user 계정 만들기

 

1. DBA권한으로 접속 후 scott 계정을 만들어준다.

 

CREATE USER scott IDENTIFIED BY tiger

DEFAULT TABLESPACE users

TEMPORARY TABLESPACE temp;

 


권한부여

GRANT connect, resource TO scott;

 

3 scott 계정으로 접속해서 스크립트 실행

 

CONN scott/tiger

@$ORACLE_HOME/sqlplus/demo/demobld.sql

 

*, demobld.sql 파일 경로가 오라클 버전마다 경로가 다르기 때문에

경로를 알면 그 경로를 써서 스크립트를 실행해주거나,

스크립트를 다운받은 후 실행시켜준다.

 

demobld.sql 파일다운로드

http://www.gurubee.net/files/sql/demobld.sql

demobld.sql Script Sample

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

DROP TABLE EMP;

DROP TABLE DEPT;

DROP TABLE BONUS;

DROP TABLE SALGRADE;

DROP TABLE DUMMY;

 

CREATE TABLE EMP

       (EMPNO NUMBER(4) NOT NULL,

        ENAME VARCHAR2(10),

        JOB VARCHAR2(9),

        MGR NUMBER(4),

        HIREDATE DATE,

        SAL NUMBER(7, 2),

        COMM NUMBER(7, 2),

        DEPTNO NUMBER(2));

 

INSERT INTO EMP VALUES

        (7369, 'SMITH',  'CLERK',     7902,

        sysdate,  800, NULL, 20);

         

INSERT INTO EMP VALUES

        (7499, 'ALLEN',  'SALESMAN',  7698,

        sysdate, 1600,  300, 30);

         

INSERT INTO EMP VALUES

        (7521, 'WARD',   'SALESMAN',  7698,

        sysdate, 1250,  500, 30);

         

INSERT INTO EMP VALUES

        (7566, 'JONES',  'MANAGER',   7839,

        sysdate,  2975, NULL, 20);

         

INSERT INTO EMP VALUES

        (7654, 'MARTIN', 'SALESMAN',  7698,

        sysdate, 1250, 1400, 30);

         

INSERT INTO EMP VALUES

        (7698, 'BLAKE',  'MANAGER',   7839,

        sysdate,  2850, NULL, 30);

         

INSERT INTO EMP VALUES

        (7782, 'CLARK',  'MANAGER',   7839,

        sysdate,  2450, NULL, 10);

INSERT INTO EMP VALUES

        (7788, 'SCOTT',  'ANALYST',   7566,

        sysdate, 3000, NULL, 20);

         

INSERT INTO EMP VALUES

        (7839, 'KING',   'PRESIDENT', NULL,

        sysdate, 5000, NULL, 10);

         

INSERT INTO EMP VALUES

        (7844, 'TURNER', 'SALESMAN',  7698,

        sysdate,  1500,    0, 30);

         

INSERT INTO EMP VALUES

        (7876, 'ADAMS',  'CLERK',     7788,

        sysdate, 1100, NULL, 20);

         

INSERT INTO EMP VALUES

        (7900, 'JAMES',  'CLERK',     7698,

        sysdate,   950, NULL, 30);

         

INSERT INTO EMP VALUES

        (7902, 'FORD',   'ANALYST',   7566,

        sysdate,  3000, NULL, 20);

         

INSERT INTO EMP VALUES

        (7934, 'MILLER', 'CLERK',     7782,

        sysdate, 1300, NULL, 10);

 

CREATE TABLE DEPT

       (DEPTNO NUMBER(2),

        DNAME VARCHAR2(14),

        LOC VARCHAR2(13) );

 

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');

INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');

INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');

INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

 

CREATE TABLE BONUS

        (ENAME VARCHAR2(10),

         JOB   VARCHAR2(9),

         SAL   NUMBER,

         COMM  NUMBER);

 

CREATE TABLE SALGRADE

        (GRADE NUMBER,

         LOSAL NUMBER,

         HISAL NUMBER);

 

INSERT INTO SALGRADE VALUES (1,  700, 1200);

INSERT INTO SALGRADE VALUES (2, 1201, 1400);

INSERT INTO SALGRADE VALUES (3, 1401, 2000);

INSERT INTO SALGRADE VALUES (4, 2001, 3000);

INSERT INTO SALGRADE VALUES (5, 3001, 9999);

 

CREATE TABLE DUMMY

        (DUMMY NUMBER);

 

INSERT INTO DUMMY VALUES (0);

 

COMMIT;

 

 

 

 전체내용 참고 사이트 : http://www.gurubee.net/lecture/2150

'DB > oralce' 카테고리의 다른 글

계층형쿼리  (0) 2014.10.14
plsql cursor 연습문제 정답  (0) 2014.10.14
rac설치 raw device  (0) 2014.09.19
RAC 설치시 xhost 문제  (0) 2014.09.12
설치시 참고  (0) 2014.09.01
Posted by 성장하는yw
2014. 9. 19. 18:21

1. root로 접속 후 ip확인한다.

ifconfig

[root@rac1 ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0C:29:2F:2A:1B

          inet addr:192.168.27.136  Bcast:192.168.27.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe2f:2a1b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:213 errors:0 dropped:0 overruns:0 frame:0

          TX packets:105 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:24927 (24.3 KiB)  TX bytes:9698 (9.4 KiB)

          Interrupt:5 Base address:0x2400


eth1      Link encap:Ethernet  HWaddr 00:0C:29:2F:2A:25

          inet addr:192.168.153.132  Bcast:192.168.153.255  Mask:255.255.255.0

          inet6 addr: fe80::20c:29ff:fe2f:2a25/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:112 errors:0 dropped:0 overruns:0 frame:0

          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:11482 (11.2 KiB)  TX bytes:490 (490.0 b)

          Interrupt:9 Base address:0x2480


lo        Link encap:Local Loopback

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:16436  Metric:1

          RX packets:1550 errors:0 dropped:0 overruns:0 frame:0

          TX packets:1550 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX bytes:1787698 (1.7 MiB)  TX bytes:1787698 (1.7 MiB)



 

게이트웨이 확인

[root@rac1 ~]# netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.153.0   0.0.0.0         255.255.255.0   U         0 0          0 eth1

192.168.27.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1

0.0.0.0         192.168.27.2    0.0.0.0         UG        0 0          0 eth0



리눅스 내에서 neat

각 ip설정 후 네트워크 적용을 위해서 다시 시작한다.

[root@rac1 ~]# /etc/init.d/network restart

인터페이스 eth0 (을)를 종료함:                             [  확인  ]

인터페이스 eth1 (을)를 종료함:                             [  확인  ]

loopback 인터페이스를 종료함:                              [  확인  ]

네트워크 매개 변수를 설정하고 있습니다:                    [  확인  ]

loopback 인터페이스 활성화중 입니다:                       [  확인  ]

eth0 인터페이스 활성화중 입니다:                           [  확인  ]

eth1 인터페이스 활성화중 입니다:                           [  확인  ]



데이터 전송을 위한 ping 테스트

[root@rac1 ~]# ping 168.126.63.1

PING 168.126.63.1 (168.126.63.1) 56(84) bytes of data.


--- 168.126.63.1 ping statistics ---

14 packets transmitted, 0 received, 100% packet loss, time 12997ms



필요없는 서비스를 꺼준다.

[root@rac1 ~]# chkconfig --level 123456 xinetd off

[root@rac1 ~]# chkconfig --level 123456 sendmail off

[root@rac1 ~]# chkconfig --level 123456 cups off

[root@rac1 ~]# chkconfig --level 123456 cups-config-daemon off

[root@rac1 ~]# chkconfig --level 123456 smartd off

[root@rac1 ~]# chkconfig --level 123456 isdn off

[root@rac1 ~]# chkconfig --level 123456 pcmcia off

[root@rac1 ~]# chkconfig --level 123456 iptables off


호스트파일 수정

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

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1       localhost.localdomain   localhost


#public

192.168.27.136          rac1

192.168.27.137          rac2



#private

192.168.153.132         rac1-priv

192.168.153.133         rac2-priv



#vip

192.168.27.33           rac1-vip

192.168.27.34           rac2-vip


퍼블릭 공용으로 관리자가 들어가서 작업시 사용하는 아이피

프라이빗 노드끼리만 통신하는 아이피

브이아이피 유저들이 들어와서 사용하는 아이피


커널값 수정
sysctl.conf 파일 맨 마지막에 커널 설정값을 추가해준다. 

[root@rac1 ~]# vi /etc/sysctl.conf

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 262144


최대 프로세스와 파일개수 제한에 대한 설정파일 

[root@rac1 ~]# vi /etc/security/limits.conf

#        - maxsyslogins - max number of logins on the system

#        - priority - the priority to run user process with

#        - locks - max number of file locks the user can hold

#        - sigpending - max number of pending signals

#        - msgqueue - max memory used by POSIX message queues (bytes)

#

#<domain>      <type>  <item>         <value>

#


#*               soft    core            0

#*               hard    rss             10000

#@student        hard    nproc           20

#@faculty        soft    nproc           20

#@faculty        hard    nproc           50

#ftp             hard    nproc           0

#@student        -       maxlogins       4


oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536


# End of file


참고 사이트 : http://lunatine.net/limits-conf-nofile-big-value-effect/



맨 아래줄에 추가
사용자 인증, 로그인 관련 파일
[root@rac1 ~]# vi /etc/pam.d/login
session    required     pam_limits.so

참고 사이트 : http://bban2.tistory.com/223

맨 아래줄에 추가
[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.9-34.EL/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


요구 rpm 확인 후 만약 없으면 설치를 해준다. 

[root@rac1 ~]# rpm –qa binutils-2.15.92.0.2-21  \

> compat-db-4.1.25-9  \

> compat-gcc-32-3.2.3-47.3  \

> compat-gcc-32-c++-3.2.3-47.3  \

> compat-libstdc++-33-3.2.3-47.3  \

> compat-libgcc-296-2.96-132.7.2  \

> control-center-2.8.0-12.rhel4.5  \

> cpp-3.4.6-3  \

> gcc-3.4.6-3  \

> gcc-c++-3.4.6-3  \

> glibc-2.3.4-2.25  \

> glibc-common-2.3.4-2.25  \

> glibc-devel-2.3.4-2.25  \

> glibc-headers-2.3.4-2.25  \

> glibc-kernheaders-2.4-9.1.98.EL  \

> gnome-libs-1.4.1.2.90-44.1  \

> libaio-0.3.105-2  \

> libstdc++-3.4.6-3  \

> libstdc++-devel-3.4.6-3  \

> make-3.80-6.EL4  \

> openmotif-2.2.3-10.RHEL4.5  \

> openmotif21-2.1.30-11.RHEL4.6   \

> pdksh-5.2.14-30.3  \

> setarch-1.6-1  \

> sysstat-5.0.5-11.rhel4  \

> xscreensaver-4.18-5.rhel4.11



노드 1 셋팅
그룹과 사용자를 추가해주고 비밀번호를 변경해준다. 
[root@rac1 ~]# groupadd -g 5000 dba
[root@rac1 ~]# useradd -g dba oracle
[root@rac1 ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

마지막에 경로를 추가해준다.
[root@rac1 ~]# vi .bash_profile
PATH=$PATH:$HOME/bin:/home/oracle/product/10g/crs/bin

오라클계정으로 변경한다. 
오라클계정의 bash_profile의 내용을 추가해준다.
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ vi .bash_profile
export EDITOR=vi
export LD_ASSUME_KERNEL=2.4.19
export ORACLE_BASE=/home/oracle
export ORA_CRS_HOME=$ORACLE_BASE/product/10g/crs
export ORACLE_HOME=$ORACLE_BASE/product/10g/db
export ORACLE_SID=rac1
export LANG=ko_KR.eucKR
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin:/$ORA_CRS_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

오라클계정에서 빠져나온다.
[oracle@rac1 ~]$ exit
logout

현재디스크를 확인한다.
맨 아래에 추가한 디스크의 장치명이 보인다.
3개 디스크를 각각 파티션해준다.
/dev/sdb, /dev/sdc, /dev/sdd
[root@rac1 ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         650     5116702+  83  Linux
/dev/sda3             651         841     1534207+  82  Linux swap
/dev/sda4             842        2610    14209492+   5  Extended
/dev/sda5             842         968     1020096   83  Linux
/dev/sda6             969        2610    13189333+  83  Linux

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdd: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

초기에 추가한 디스크를 파티션해준다. 
[root@rac1 ~]# fdisk /dev/sdb

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305):
Using default value 1305

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


n : 새로생성
p : 파티션
1 : 주 파티션 번호
시작실린더번호 : 엔터(자동으로 잡아줌)
용량지정 : 엔터(남은용량 전부 할당)
t : 타입지정
8e : Linux LVM용으로 파티션을 생성
w : 새로 생성한 파티션 저장


w 전에 p를 입력하면 파티션 옵션을 준 것을 볼 수 있다. 그 다음에 w로 저장해도 됨

같은 방법으로
[root@rac1 ~]# fdisk /dev/sdc
[root@rac1 ~]# fdisk /dev/sdd
해준다. 

안해도 되는 작업이지만 내가 파티션을 잘 줬는지 궁금하다면 
아래에 장치명 뒤에 숫자 1이 있는 것을 볼 수 있다. 
그러면 파티션이 잘 된 것이다. 
[root@rac1 ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         650     5116702+  83  Linux
/dev/sda3             651         841     1534207+  82  Linux swap
/dev/sda4             842        2610    14209492+   5  Extended
/dev/sda5             842         968     1020096   83  Linux
/dev/sda6             969        2610    13189333+  83  Linux

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   8e  Linux LVM

Disk /dev/sdc: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1305    10482381   8e  Linux LVM

Disk /dev/sdd: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        1305    10482381   8e  Linux LVM


물리적 볼륨을 생성한다. 
[root@rac1 ~]# pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdd1" successfully created

물리적 볼륨 생성을 확인한다. 
[root@rac1 ~]# pvdisplay
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               10.00 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               IjWso0-vuHh-7hDc-3SkK-d3G1-D7Tz-v4o0Nc

  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name
  PV Size               10.00 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               xhwaaF-1hWE-ATYR-o12h-G4PC-nSMi-CTcXC6

  --- NEW Physical volume ---
  PV Name               /dev/sdd1
  VG Name
  PV Size               10.00 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               tHxpOM-Mg7A-otnU-baBg-SXpq-YMBK-Kx4LSv

볼륨그룹을 생성한다.
세개의 물리적 볼륨을 합쳐서 rac 하나의 물리적 그룹 하나로 만든다.
[root@rac1 ~]# vgcreate rac /dev/sdb1 /dev/sdc1 /dev/sdd1
  Volume group "rac" successfully created

볼륨그룹을 확인한다.
[root@rac1 ~]# vgdisplay
  --- Volume group ---
  VG Name               rac
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               29.99 GB
  PE Size               4.00 MB
  Total PE              7677
  Alloc PE / Size       0 / 0
  Free  PE / Size       7677 / 29.99 GB
  VG UUID               S4eHQk-1KOa-DLM9-Bj6F-8DNX-5qf0-p3Oc7a

논리적 그룹을 생성한다. 
볼륨그룹을 나누어 논리적 그룹으로 나누어준다.
나중에 oracle에서 사용될 파일들을 생성해주는 과정이다. 
[root@rac1 ~]# lvcreate --name ocr --size 200 rac
  Logical volume "ocr" created
[root@rac1 ~]# lvcreate --name vote --size 50 rac
  Rounding up size to full physical extent 52.00 MB
  Logical volume "vote" created
[root@rac1 ~]# lvcreate --name system --size 600 rac
  Logical volume "system" created
[root@rac1 ~]# lvcreate --name sysaux --size 1200 rac
  Logical volume "sysaux" created
[root@rac1 ~]# lvcreate --name spfile --size 50 rac
  Rounding up size to full physical extent 52.00 MB
  Logical volume "spfile" created
[root@rac1 ~]# lvcreate --name passwd --size 50 rac
  Rounding up size to full physical extent 52.00 MB
  Logical volume "passwd" created
[root@rac1 ~]# lvcreate --name control1 --size 200 rac
  Logical volume "control1" created
[root@rac1 ~]# lvcreate --name control2 --size 200 rac
  Logical volume "control2" created
[root@rac1 ~]# lvcreate --name control3 --size 200 rac
  Logical volume "control3" created
[root@rac1 ~]# lvcreate --name redo1_1 --size 200 rac
  Logical volume "redo1_1" created
[root@rac1 ~]# lvcreate --name redo1_2 --size 200 rac
  Logical volume "redo1_2" created
[root@rac1 ~]# lvcreate --name redo2_1 --size 200 rac
  Logical volume "redo2_1" created
[root@rac1 ~]# lvcreate --name redo2_2 --size 200 rac
  Logical volume "redo2_2" created
[root@rac1 ~]# lvcreate --name temp --size 600 rac
  Logical volume "temp" created
[root@rac1 ~]# lvcreate --name undo1 --size 600 rac
  Logical volume "undo1" created
[root@rac1 ~]# lvcreate --name undo2 --size 600 rac
  Logical volume "undo2" created
[root@rac1 ~]# lvcreate --name data --size 1000 rac
  Logical volume "data" created
[root@rac1 ~]# lvcreate --name users --size 250 rac
  Rounding up size to full physical extent 252.00 MB
  Logical volume "users" created
[root@rac1 ~]# lvcreate --name example --size 200 rac
  Logical volume "example" created

논리적 그룹으로 나누어 준 것을 lvscan으로 확인한다. 
[root@rac1 ~]# lvscan
  ACTIVE            '/dev/rac/ocr' [200.00 MB] inherit
  ACTIVE            '/dev/rac/vote' [52.00 MB] inherit
  ACTIVE            '/dev/rac/system' [600.00 MB] inherit
  ACTIVE            '/dev/rac/sysaux' [1.17 GB] inherit
  ACTIVE            '/dev/rac/spfile' [52.00 MB] inherit
  ACTIVE            '/dev/rac/passwd' [52.00 MB] inherit
  ACTIVE            '/dev/rac/control1' [200.00 MB] inherit
  ACTIVE            '/dev/rac/control2' [200.00 MB] inherit
  ACTIVE            '/dev/rac/control3' [200.00 MB] inherit
  ACTIVE            '/dev/rac/redo1_1' [200.00 MB] inherit
  ACTIVE            '/dev/rac/redo1_2' [200.00 MB] inherit
  ACTIVE            '/dev/rac/redo2_1' [200.00 MB] inherit
  ACTIVE            '/dev/rac/redo2_2' [200.00 MB] inherit
  ACTIVE            '/dev/rac/temp' [600.00 MB] inherit
  ACTIVE            '/dev/rac/undo1' [600.00 MB] inherit
  ACTIVE            '/dev/rac/undo2' [600.00 MB] inherit
  ACTIVE            '/dev/rac/data' [1000.00 MB] inherit
  ACTIVE            '/dev/rac/users' [252.00 MB] inherit
  ACTIVE            '/dev/rac/example' [200.00 MB] inherit



논리적 그룹으로 나눈 것과 장치명을 파일에 입력해준다.
[root@rac1 ~]# vi /etc/sysconfig/rawdevices
/dev/raw/raw1   /dev/rac/ocr
/dev/raw/raw2   /dev/rac/vote
/dev/raw/raw3   /dev/rac/system
/dev/raw/raw4   /dev/rac/sysaux
/dev/raw/raw5   /dev/rac/spfile
/dev/raw/raw6   /dev/rac/passwd
/dev/raw/raw7   /dev/rac/control1
/dev/raw/raw8   /dev/rac/control2
/dev/raw/raw9   /dev/rac/control3
/dev/raw/raw10   /dev/rac/redo1_1
/dev/raw/raw11   /dev/rac/redo1_2
/dev/raw/raw12   /dev/rac/redo2_1
/dev/raw/raw13   /dev/rac/redo2_2
/dev/raw/raw14   /dev/rac/data
/dev/raw/raw15   /dev/rac/users
/dev/raw/raw16   /dev/rac/example
/dev/raw/raw17   /dev/rac/undo1
/dev/raw/raw18   /dev/rac/undo2
/dev/raw/raw19   /dev/rac/temp

rawdevices를 새로 시작해준다. 
[root@rac1 ~]# /etc/init.d/rawdevices restart
Assigning devices:
           /dev/raw/raw1  -->   /dev/rac/ocr
/dev/raw/raw1:  bound to major 253, minor 0
           /dev/raw/raw2  -->   /dev/rac/vote
/dev/raw/raw2:  bound to major 253, minor 1
           /dev/raw/raw3  -->   /dev/rac/system
/dev/raw/raw3:  bound to major 253, minor 2
           /dev/raw/raw4  -->   /dev/rac/sysaux
/dev/raw/raw4:  bound to major 253, minor 3
           /dev/raw/raw5  -->   /dev/rac/spfile
/dev/raw/raw5:  bound to major 253, minor 4
           /dev/raw/raw6  -->   /dev/rac/passwd
/dev/raw/raw6:  bound to major 253, minor 5
           /dev/raw/raw7  -->   /dev/rac/control1
/dev/raw/raw7:  bound to major 253, minor 6
           /dev/raw/raw8  -->   /dev/rac/control2
/dev/raw/raw8:  bound to major 253, minor 7
           /dev/raw/raw9  -->   /dev/rac/control3
/dev/raw/raw9:  bound to major 253, minor 8
           /dev/raw/raw10  -->   /dev/rac/redo1_1
/dev/raw/raw10: bound to major 253, minor 9
           /dev/raw/raw11  -->   /dev/rac/redo1_2
/dev/raw/raw11: bound to major 253, minor 10
           /dev/raw/raw12  -->   /dev/rac/redo2_1
/dev/raw/raw12: bound to major 253, minor 11
           /dev/raw/raw13  -->   /dev/rac/redo2_2
/dev/raw/raw13: bound to major 253, minor 12
           /dev/raw/raw14  -->   /dev/rac/data
/dev/raw/raw14: bound to major 253, minor 16
           /dev/raw/raw15  -->   /dev/rac/users
/dev/raw/raw15: bound to major 253, minor 17
           /dev/raw/raw16  -->   /dev/rac/example
/dev/raw/raw16: bound to major 253, minor 18
           /dev/raw/raw17  -->   /dev/rac/undo1
/dev/raw/raw17: bound to major 253, minor 14
           /dev/raw/raw18  -->   /dev/rac/undo2
/dev/raw/raw18: bound to major 253, minor 15
           /dev/raw/raw19  -->   /dev/rac/temp
/dev/raw/raw19: bound to major 253, minor 13
done

rawdevices 퍼미션 설정을 위해서 113번째 줄 내용을 변경해준다. 
[root@rac1 ~]# vi /etc/udev/permissions.d/50-udev.permissions
# raw devices
ram*:root:disk:0660
#raw/*:root:disk:0660 
위에 줄을 주석처리하고
raw/*:oracle:dba:0660
oracle:dba으로 수정해준다. 

퍼미션을 설정한 후 적용하기 위해서 다시 rawdevices를 재실행해준다.
[root@rac1 ~]# /etc/init.d/rawdevices restart
Assigning devices:
           /dev/raw/raw1  -->   /dev/rac/ocr
/dev/raw/raw1:  bound to major 253, minor 0
           /dev/raw/raw2  -->   /dev/rac/vote
/dev/raw/raw2:  bound to major 253, minor 1
           /dev/raw/raw3  -->   /dev/rac/system
/dev/raw/raw3:  bound to major 253, minor 2
           /dev/raw/raw4  -->   /dev/rac/sysaux
/dev/raw/raw4:  bound to major 253, minor 3
           /dev/raw/raw5  -->   /dev/rac/spfile
/dev/raw/raw5:  bound to major 253, minor 4
           /dev/raw/raw6  -->   /dev/rac/passwd
/dev/raw/raw6:  bound to major 253, minor 5
           /dev/raw/raw7  -->   /dev/rac/control1
/dev/raw/raw7:  bound to major 253, minor 6
           /dev/raw/raw8  -->   /dev/rac/control2
/dev/raw/raw8:  bound to major 253, minor 7
           /dev/raw/raw9  -->   /dev/rac/control3
/dev/raw/raw9:  bound to major 253, minor 8
           /dev/raw/raw10  -->   /dev/rac/redo1_1
/dev/raw/raw10: bound to major 253, minor 9
           /dev/raw/raw11  -->   /dev/rac/redo1_2
/dev/raw/raw11: bound to major 253, minor 10
           /dev/raw/raw12  -->   /dev/rac/redo2_1
/dev/raw/raw12: bound to major 253, minor 11
           /dev/raw/raw13  -->   /dev/rac/redo2_2
/dev/raw/raw13: bound to major 253, minor 12
           /dev/raw/raw14  -->   /dev/rac/data
/dev/raw/raw14: bound to major 253, minor 16
           /dev/raw/raw15  -->   /dev/rac/users
/dev/raw/raw15: bound to major 253, minor 17
           /dev/raw/raw16  -->   /dev/rac/example
/dev/raw/raw16: bound to major 253, minor 18
           /dev/raw/raw17  -->   /dev/rac/undo1
/dev/raw/raw17: bound to major 253, minor 14
           /dev/raw/raw18  -->   /dev/rac/undo2
/dev/raw/raw18: bound to major 253, minor 15
           /dev/raw/raw19  -->   /dev/rac/temp
/dev/raw/raw19: bound to major 253, minor 13
done

권한이 변경되었는지 확인을 해준다.
oracle dba로 변경되었다. 
[root@rac1 ~]# ls -l /dev/raw
합계 0
crw-rw----  1 oracle dba 162,  1  9월 19 16:26 raw1
crw-rw----  1 oracle dba 162, 10  9월 19 16:26 raw10
crw-rw----  1 oracle dba 162, 11  9월 19 16:26 raw11
crw-rw----  1 oracle dba 162, 12  9월 19 16:26 raw12
crw-rw----  1 oracle dba 162, 13  9월 19 16:26 raw13
crw-rw----  1 oracle dba 162, 14  9월 19 16:26 raw14
crw-rw----  1 oracle dba 162, 15  9월 19 16:26 raw15
crw-rw----  1 oracle dba 162, 16  9월 19 16:26 raw16
crw-rw----  1 oracle dba 162, 17  9월 19 16:26 raw17
crw-rw----  1 oracle dba 162, 18  9월 19 16:26 raw18
crw-rw----  1 oracle dba 162, 19  9월 19 16:26 raw19
crw-rw----  1 oracle dba 162,  2  9월 19 16:26 raw2
crw-rw----  1 oracle dba 162,  3  9월 19 16:26 raw3
crw-rw----  1 oracle dba 162,  4  9월 19 16:26 raw4
crw-rw----  1 oracle dba 162,  5  9월 19 16:26 raw5
crw-rw----  1 oracle dba 162,  6  9월 19 16:26 raw6
crw-rw----  1 oracle dba 162,  7  9월 19 16:26 raw7
crw-rw----  1 oracle dba 162,  8  9월 19 16:26 raw8
crw-rw----  1 oracle dba 162,  9  9월 19 16:26 raw9


노드1 세팅이 완료되었다. 

노드1 리눅스를 init0으로 완전히 종료하고 난 다음
[root@rac1 ~]# init 0

노드2를 세팅해준다. 

rac2 폴더를 만든다. 

rac1이 설치 된 폴더에 들어가서 ra1.vmdk, rac1.vmx를 복사한 후 붙여넣기를 해준다. 
vmware의 상단메뉴 file-open 클릭해서 rac1.vmx 파일을 오픈한다. 
devices 정보 위에 Edit virtual machine settings를 클릭한 후 
options 탭을 클릭한다.
오른쪽에 있는 virtual machine name을 rac2로 고친다. 

rac2 폴더 안에 있는 rac1.vmx  파일을 열어서 이름을 수정해준다. 

displayName = "rac2

(이건 위 작업을 했으면 변경되어 있을 것이다.

귀찮으면 그냥 vmx 파일을 열어서 1을 이 세 줄만 끝에 숫자를 2로 변경해주면 된다.) 

nvram = "rac2.nvram"

extendedConfigFile = "rac2.vmxf"

1을 2로 변경해주고 저장해준다. 


power on 그리고 rac2를 실행한다. 

그럼 옮길 건지 I moved it 복사할 건지 i copied it 물어본다. 

우리는 I copied it을 선택한다.


리눅스 화면 중 파란색 배경의 하드웨어 설정창이 뜨면 아무키나 누른다.

1 설정삭제

2 설정삭제

3 설정-동적 ip 자동할당 스페이스바(별표)로 확인 

   아래 화살표로 이동 확인

4  설정-동적 ip 자동할당 스페이스바(별표)로 확인 

    아래 화살표로 이동 확인 


노드2에 root로 접속한다.

neat를 실행해서 네트워크 주소를 설정해준다. 

노드1에서 해줬던 /etc/hosts에 있는 ip를 정보를 기준으로 변경해준다.  

[root@rac1 ~]# neat


eth0 더블클릭 - 정적으로 설정된 ip주소 클릭

주소

서브넷마스크

기본게이트웨이주소 입력


eth1 더블클릭 - 정적으로 설정된 ip주소 클릭

주2

서브넷마스크 입력


상단의 탭 dns에서 

호스트명 rac2로 변경

기본 dns : 168.126.63.1


[root@rac1 ~]# vi /home/oracle/.bash_profile

export ORACLE_SID=rac2 로 숫자를 변경해준다. 


네트워크를 재시작 해준다.

[root@rac1 ~]# /etc/init.d/network restart


패킷을 보낼 수 있는지 확인한다. 

[root@rac1 ~]# ping 168.126.63.1

ctrl + c 해서 보낸 것을 확인한다?? 

이거 안되도 상관이 없다.  

/etc/hosts에 값을 모두 입력한 다음에 실행하면 정상적으로 되는듯하다. 

이건 확인해볼 것 설치하는데 그리 중요하지 않은거같은데;;;


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

HOSTNAME=rac2 로 변경을 해준다.


종료하고 노드1, 노드2 모두 oracle 계정으로 로그인함


어떤 건 노드1,2에 설치하든 상관없는데 스크립트 실행이라던가

특별히 노드1에서만 하는 작업이 있기때문에 신경써서 작업을 하자. 


노드1, 노드2 공통작업

노드1

ssh-keygen -t rsa

ssh-keygen -t dsa 

공통적으로 두 작업 다음에는 모두 엔터를 세번 입력하면 된다. 


[oracle@rac1 ~]$ mkdir .ssh

[oracle@rac1 ~]$ chmod 700 .ssh

[oracle@rac1 ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/oracle/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/oracle/.ssh/id_rsa.

Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.

The key fingerprint is:

15:f8:26:ac:48:e3:4d:13:0a:eb:40:a3:99:03:8a:79 oracle@rac1

[oracle@rac1 ~]$ ssh-keygen -t dsa

Generating public/private dsa key pair.


Enter file in which to save the key (/home/oracle/.ssh/id_dsa): Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/oracle/.ssh/id_dsa.

Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.

The key fingerprint is:

e0:81:3b:79:90:cb:3c:3b:36:ad:2c:4c:1f:8f:39:7c oracle@rac1


노드2
[oracle@rac2 ~]$ mkdir .ssh
[oracle@rac2 ~]$ chmod 700 .ssh
[oracle@rac2 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
f8:8d:5a:ed:ce:51:fa:4a:15:11:4d:2c:13:71:40:bf oracle@rac2
[oracle@rac2 ~]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
57:72:14:f3:42:a0:d1:76:c7:ce:2e:dc:dd:19:d3:03 oracle@rac2



주의!! 노드1 에서만 실행
질문이 나오면 yes를 입력하고 rac2의 oracle 비밀번호를 입력해주면 된다. 
[oracle@rac1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@rac1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@rac1 ~]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
The authenticity of host 'rac2 (192.168.27.137)' can't be established.
RSA key fingerprint is a0:af:a0:3f:ea:f8:5a:f7:87:81:6f:5b:4c:84:c6:88.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rac2,192.168.27.137' (RSA) to the list of known hosts.
oracle@rac2's password:
[oracle@rac1 ~]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
oracle@rac2's password:
[oracle@rac1 ~]$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys
oracle@rac2's password:
authorized_keys                               100% 1644     1.6KB/s   00:00

노드1, 노드2 모두 실행
ssh 디렉토리에 가서 권한을 부여한다. 
나는 /home/oracle에 .ssh를 만들어줬다. 
[oracle@rac1 ~]$ cd .ssh
[oracle@rac1 .ssh]$ ls
authorized_keys  id_dsa  id_dsa.pub  id_rsa  id_rsa.pub  known_hosts
[oracle@rac1 .ssh]$ pwd
/home/oracle/.ssh
[oracle@rac1 .ssh]$ chmod 600 authorized_keys






'DB > oralce' 카테고리의 다른 글

plsql cursor 연습문제 정답  (0) 2014.10.14
오라클 테스트 계정 scott lock 풀기  (0) 2014.09.29
RAC 설치시 xhost 문제  (0) 2014.09.12
설치시 참고  (0) 2014.09.01
rhel3 + oracle 9i  (0) 2014.08.29
Posted by 성장하는yw
2014. 9. 12. 02:53


xhost: unable to open display "0:0" 문제

 

http://www.superuser.co.kr/home/superuserboard/view.html?id=8675&code=linux&start=&position=

 



출처 : http://blog.naver.com/bigenius/20030968868

위 원본 출처로 들어가면 디스플레이 문제에 대한 링크가 두개 더 있으니 필요하면 방문하자~ 





root 계정으로 들어가서 설치를 하려고 보니 계속 !!!  xhost 문제가 생겼다. 


분명히 export DISPLAY=localhost:0.0 해줬는데


계속 오류나서 검색해봤다. 



root계정에서 su - oracle 명령어로 들어가서 리눅스터미널 창에서 ./runInstaller을 실행하니까


계속 디스플레이 에러가 났었다. 


오라클 계정으로 들어가니까 뭐 바로 설치 딱!! 됨 ㅋ


결론 : 설치할 때는 그 해당 계정으로 리눅스에 로그인하자!!!!

'DB > oralce' 카테고리의 다른 글

plsql cursor 연습문제 정답  (0) 2014.10.14
오라클 테스트 계정 scott lock 풀기  (0) 2014.09.29
rac설치 raw device  (0) 2014.09.19
설치시 참고  (0) 2014.09.01
rhel3 + oracle 9i  (0) 2014.08.29
Posted by 성장하는yw
2014. 9. 1. 01:29

http://www.jigi.net/4199#trackback1

 

http://blog.naver.com/jjuneye?Redirect=Log&logNo=110150944712

'DB > oralce' 카테고리의 다른 글

plsql cursor 연습문제 정답  (0) 2014.10.14
오라클 테스트 계정 scott lock 풀기  (0) 2014.09.29
rac설치 raw device  (0) 2014.09.19
RAC 설치시 xhost 문제  (0) 2014.09.12
rhel3 + oracle 9i  (0) 2014.08.29
Posted by 성장하는yw