'Oracle'에 해당되는 글 45건
No archive mod에서 archive mode 변경하기
Oracle/Administoration
archive mode에서 주의해야 할 몇가지가 있습니다.
1. 별도의 저장공간이 필요합니다.
archive redo log는 online redo log file을 복사하는것이기 때문에 online redo log file 외 별도의 공간이 필요합니다.

2. Archive hang 이라는 문제가 발생하여 서비스가 중단 될 수도 있습니다.
여러 가지 이유로 Archiver Process 가 Archive Redo Log File 을 저장할 수 없게 될 경우
(예를 들어 저장 공간이 가득 찰 경우나 권한이 없을 경우 등) 전체 Database 가 중단이 되는 현상이 발
생하게 됩니다. 이런 현상을 Archive Hang 이라고 합니다.

3. 관리가 까다롭습니다.
Archive Log Mode의 원리를 정확히 모를 경우 관리하기가 힘들며 관리가 잘 못될 경우
장애가 발생해도 복구를 할 수 없게 됩니다.
SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /app/oracle/data/arc2
Oldest online log sequence     17
Current log sequence           19
SQL>
현재 database open 상태에서 조회해보니 no archive log로 출력됩니다.
이제 archive redo log를 저장할 디렉토리를 만들고 archive mode로 변경해보겠습니다.

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
database를 종료시키고 parameter file에 archive log file을 저장할 경로를 지정해야 합니다.
SQL> !vi $ORACLE_HOME/dbs/initykdb.ora
----------------------------------------------------
*.log_archive_dest_1='location=/app/oracle/data/arc1'
*.log_archive_dest_2='location=/app/oracle/data/arc2'
*.log_archive_format=%s_%t_%r.arc
해당 경로와 디렉토리 네임은 마음대로 지정해주셔도 됩니다
밑에 %s는 logfile의 시퀀스넘버, %t는 스레드, %r은 인카네이션(ex filename 1-1-2)이고
설정을 완료했으면 wq! 저장 종료하셔서 나오면 됩니다.
SQL> !
[oracle@dbserver ~]$ cd /app/oracle/
[oracle@dbserver oracle]$
[oracle@dbserver oracle]$ mkdir data
원하시는 경로로 가서 원하는 네임으로 디렉토리(parameter file에 설정해놨던)를 생성하시면 됩니다.
[oracle@dbserver oracle]$ cd data/
[oracle@dbserver data]$ mkdir arc1 arc2
data 디렉토리에 들어가서 arc1 arc2를 생성한다.
[oracle@dbserver data]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Nov 4 17:59:37 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1336960 bytes
Variable Size             276826496 bytes
Database Buffers          138412032 bytes
Redo Buffers                6094848 bytes
Database mounted.
SQL>
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /app/oracle/data/arc2
Oldest online log sequence     17
Next log sequence to archive   19
Current log sequence           19
SQL>
세팅은 완료됐고 이제 mount로 database를 올려서 archive mode로 변경후 나머지 open하면 된다.
SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /app/oracle/data/arc2
Oldest online log sequence     19
Next log sequence to archive   21
Current log sequence           21
SQL>

database를 올리고 archive 스퀀스 넘버를 확인해보니 17번이다.
좀 더 제대로 된 확인을 위해 강제로 log switch를 일으켜서 다시 확인해봤다.
확인해 보니가 시퀀스번호가 19번으로 올라가있다.
윈도우 Client로 Oracle Server 접속하기
Oracle

OS : windows7 64bit

OS instance : win64bit

Oracle : OEL6 + 11g R2



1.오라클사에서 배포하는 Win64bit 11gR2 client를 다운받는다.

Os가 32bit면 32bit로 다운받아야 한다.


2. 해당 압축파일을 풀면 아래와 같은 파일들이 보이는데 셋업(Setup)을 더블클릭한다


3. OUI설치전 체크중


4. 사양에 따라 조금 오래 걸릴수도 있다

기다리다보면 아래와 같은 OUI(Oracle User Interface)창이 뜨게 된다.

맨 위인 instance client가 Default값이 되있을텐데 Admin체크후에 다음으로 넘어간다.


5.한국어를 추가해 주고 넘어간다.

어떤 언어를 선택해도 상관은 없다. 용량만 늘어날뿐


6. Oracle Base가 설치 될 경로인데 한번 체크하고 다음으로 넘어가자.


7. 여기서 에러가 뜰텐데 ignore 체크 후에 다음으로 넘어가자.

맨 아래 박스보면 예상값, 실제값이 보이는데 해당사항없음으로 표시된다. 이때 Status란에 실패나 에러가 떠도 넘어가도 되지만

예상값과 실제값이 다르게 나와 실패로 뜨면 설치해도 접속하지 못하게 된다. 문제를 해결하고 넘어가자.


8. Summary


9. 설치 진행 중


10. 문제 없이 설치가 완료되면 아래와 같이 뜨는데 Close 클릭후에 나오자.


11. 설치는 완료됐고 윈도우 실행 명령어창에 cmd라고 치고 엔터를 누른다.


12. 이 상태에서 prompt에 netca라고 치고 엔터를 누른다.

(Server에서 /app/oracle/product/11g/cib/netca 와 같다)


13. 윈도우에서 Server로 접속해야 하니까 로컬 네트 서비스만 만들면 된다.(tnsnames.ora)

해당 Client가 tnsnames.ora파일을 보고 Server를 찾아간다.


14. 처음 생성이니 추가를 누른다.


15. 서비스 이름은 접속할려는 Server의 database명을 입력해주면 된다.



16. TCP - 서버와 클라이언트간에 데이타를 신뢰성있게 전달하기 위해 만들어진 프로토콜이다.

Transmission Control Protocol 의 줄임말이다. 클릭하고 넘어가자

데이타를 전송하기 전에 데이타전송을 위한 연결을 만드는 연결지향 프로토콜이다데이타는 네트워크선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어서 전달될수 있는데, TCP는 손실을 검색해내서, 이를 교정하고 순서를 재조합할수 있도록 해준다.


17. 호스트 이름에는 접속할려는 해당 아이피를 입력해준다.

포트번호는 테스트용도로 쓰일것이니 햇갈리지 않게 표준포트를 이용한다.


18. 테스트를 해도 되지만 에러가 뜰것이다.

테스트 안해도 후에 전부 해결할수 있는 에러메세지가 뜨니 우선 테스트를 수행하지 않겠다.


19. 네트워크 서비스 이름

YKDB동일


20. 아니오


21. 다음 클릭


22. 완료를 클릭하고 빠져나오자


23. 이제 Client가 Server를 찾아갈 수 있도록 tnsnames.ora파일을 생성해줘야 한다.

아까 OUI창에서 봤던 경로를 찾아 admin까지 이동한다.

C:\app/YK/product/11.2.0/client_1/network/admin/


24. admin 폴더까지 오면 sample폴더와 sqlnet.ora 파일이 있을건데

sample폴더 안에는 sqlnet.ora , tnsnames.ora, listener.ora 3개의 샘플파일이 들어있다. 지우세요.

admin폴더에 tnsnames.ora파일을 메모장으로 생성하고 아래와 같이 써주자.

알면 그냥 쓰고 모르면 Server쪽 tnsnames.ora파일을 열어서 그대로 복사 붙여넣기 하고 저장 종료한다.

(저장할때 엑세스 거부뜨면 메모장열때 관리자 권한으로 실행해서 메모장을 열어 작업한다.)


25. 다시 cmd창을 열어서 oracle server로 접속한다.

sqlplus scott/tiger@ykdb

접속되고 다음에 접속됨이라고 떠야 제대로 접속된것이다.


26. scott 계정으로 select가 되는지 확인해보자.

접속 에러 체크

1. 접속이 되지 않는다면 로컬 네트 서비스를 제거하고 다시 netca해서 재생성한다.

2. listener가 켜져 있는지 확인한다.

3. 윈도우 client tnsnames.ora파일에 공백이나 특수문자가 있는지 확인한다.

4. 그래도 안되면 Server쪽 listener.ora, tnsnames.ora파일을 삭제한후 다시 생성한다.(대체로 여기)


'Oracle' 카테고리의 다른 글

SQL*Loader 수행 전 확인해야 할 사항들  (0) 2014.11.10
SQL* Loader로 외부 데이터 입력하기  (0) 2014.11.10
toad for oracle 설치 및 세팅  (0) 2014.11.04
OEL5 + Oracle 11g rac rawdevice  (0) 2014.09.28
oracld 11g rac asm  (0) 2014.09.26
toad for oracle 설치 및 세팅
Oracle

클라이언트 OS : win7 64bit

(Win8~8.1에서는 뭔짓을 해도 sqlnet.ora를 찾을 수 없다는 에러 메세지를 띄우니 빠르게 포기)

Server OS : OEL64bit

Oracle : 11g

Toad : 64bit

Oracle instance 64bit


1. 델 홈페이지 다운로드 메뉴에서 해당 os bit를 찾아 다운로드 받는다.(Freeware 기준)

Oracle instance도 Oracle 홈페이지에 가서 클라이언트 OS에 맞는 bit를 보고 다운받는다.

Toad를 설치할때 특수문자로 된 경로안에 설치하면 에러를 띄울 가능성이 상당히 높으므로

Program File(x86) 을 하위폴더나 64bit program file 폴더로 옮긴다.


2. 다운로드 받은 해당 Oracle instance 압축을 풀고 특수문자가 들어 가지 않는 경로로 이동시킨다.


3.Oracle instance 폴더로 들어가면 network폴더가 있을지도, 없을지도 모른다.

없으면 생성해주고 network가 포함된 경로를 복사한다. (TNS_ADMIN)


4.환경변수를 넣어줘야 하는데 내 컴퓨터 메뉴에서 속성 클릭


5. 왼쪽 고급시스템 설정 클릭


6. 맨 아래 환경변수를 클릭해준다.


7. 시스템변수쪽 새로만들기에

변수 이름 :  TNS_ADMIN

변수 값 : 위에 복사한거 붙여넣기


8. 그리고 Path 더블클릭하고

;(세미콜론) network를 뺀 나머지 instance 경로 붙여넣기

;C:\instance_11_2

여기까지가 Client 설정은 끝났고 Server쪽 listener.ora파일과 listener를 켜주면 된다.


9. 해당 경로로 가서 listener.ora파일을 vi로 열어서 편집한다.

없으면 /app/oracle/product/11g/bin/ 디렉토리에 가서 ./netca 를 실행시켜 listener 파일을 생성한다.(tns 동일)


10. listener.ora파일을 열어보면 아래와 같이 나오는데 밑에 SID_LIST_LISTENER 부분은 추가해줘야 할것이다.

위 아래가 한쌍이므로 하나의 리스너를 사용할려면 아래와 같이 설정되어 있어야한다.

기본 Port 번호는 1521 , host는 아래와 같이 아이피로 잡아줘도 되고,

호스트명으로 잡아줄려면 /etc/hosts파일을 열어 아이피옆에 호스트명을 추가해주면 된다.


11. tnsnames.ora파일을 열어보면(생성해서) 아래와 같이 나오는데 HOST와 Port번호는 listener와 동일해야 한다.

(지금은 tns가 필요가 없다)


12. 위 설정까지 마추고 Toad에 접속할려면 tns오류가 뜰건데 Server쪽에 한가지가 더 남아있다.

보통 리스너가 죽어있는데 한번 stop해주고 start해주면 오류없이 잘 올라올것이다.


lsnrctl listener stop

lsnrctl listener start

lsnrctl listener status


13. 이제 Toad에 접속해서 user /schema에 사용자명

password에 암호 넣어주고 host는 위 설정과 동일 포트도 동일

sid에 체크해주고 해당 database명을 입력후에 connect를 클릭하자.(connect 위에 네모로 표시해놨는데

instant client가 자동으로 잡혀있어야 된다. 그렇지 않으면 해당instance를 잡지 못하는 것이므로 환경변수 및

경로체크를 다시 해보고 잡힐때까지 하시면 된다.)


14. scott 계정으로 login

select name from student;


'Oracle' 카테고리의 다른 글

SQL* Loader로 외부 데이터 입력하기  (0) 2014.11.10
윈도우 Client로 Oracle Server 접속하기  (0) 2014.11.04
OEL5 + Oracle 11g rac rawdevice  (0) 2014.09.28
oracld 11g rac asm  (0) 2014.09.26
oracle 10 rac rawdevice  (0) 2014.09.26
SGA size cannot be greater than maximum shared memory segment size (0) 에러
Oracle/Administoration

해당 에러는 오라클을 인스톨하기전에

sysctl.conf 파일 맨 밑에 공유메모리 값을 넣어줬을텐데


최대 공유메모리 값보다 초과되서 출력된 에러다.


11g 기준으로 여러개 돌아다니는 공유메모리 설정값이 있을텐데

기본값으로 엔진 및 db를 install할때 참고하길 바란다.



kernel.shmall = 2097152

oracle dbca [ora-00119] invalid specification for system parameter local_listener 에러
Oracle/Administoration

오라클 압축을 풀고 엔진을 무사히 설치한다음


리눅스 터널을 통해 DBCA를 날려주면 데이터베이스 인스톨창으로 넘어간다.


모든 과정을 마치고 설치를 하면 2%정도에서 에러를 띄운다.


ora-00119 invalid specification for system parameter local_listener


오라클 엔진 설치과정 전에

서버쪽 /etc/hosts에 아래와 같이 서버의 실제 아이피가 hostname으로 잡혀 있어야 함.

로컬호스트에 hostname이(리스너에서 사용한 이름) 물려 있으면 에러난다.



[oracle@dbserver ~]$ vi /etc/hosts


127.0.0.1          localhost localgist.localdomain localhost4 localhost4.localdomein4

                      localhost localgist.localdomain localhost6 localhost6.localdomein6


192.168.24.136                    dbserver             dbserver

빨간색 된 부분을 추가해준다.

ip확인은 ifconfig eth0 날려주면 나오는 출력내용중에 inet부분이다.


다시 dbca 엔진설치를 하면 문제없이 설치가 된다.


[ORA-12988] cannot drop column owned by sys 에러
Oracle/SQL





/as sysdba 계정


'SYS'계정으로 만든 TABLE은 컬럼추가나 변경은

가능하지만 각 컬럼들은 삭제가 불가능하다.


ORA-12988: cannot drop column from table owned by SYS

Cause: An attempt was made to drop a column from a system table. Action: This action is not allowed


결론은 컬럼 삭제만 막아놓았다.(오라클에서)



오라클 사용자 권한생성 및 권한주기
Oracle/Administoration




오라클 유저 만들기

CREATE USER [username] IDENTIFIED BY [password]
DEFAULT TABLESPACE [tablespace_name]
TEMPORARY TABLESPACE TEMP;


생성한 USER에 권한주기

GRANT connect, resource, dba TO [user_name];

(모든권한)


GRANT CREATE SESSION TO 유저명        

GRANT CREATE DATABASE LINK TO 유저명
GRANT CREATE MATERIALIZED VIEW TO 유저명
GRANT CREATE PROCEDURE TO 유저명
GRANT CREATE PUBLIC SYNONYM TO 유저명
GRANT CREATE ROLE TO 유저명
GRANT CREATE SEQUENCE TO 유저명
GRANT CREATE SYNONYM TO 유저명
GRANT CREATE TABLE TO 유저명            
GRANT DROP ANY TABLE TO 유저명        

GRANT CREATE TRIGGER TO 유저명
GRANT CREATE TYPE TO 유저명
GRANT CREATE VIEW TO 유저명

GRANT 
 CREATE SESSION
,CREATE TABLE
,CREATE SEQUENCE  
,CREATE VIEW
TO 유저명;

생성한 USER로 ORACLE에 접속하기

sqlplus nextree/nextree


계정 삭제하기

drop user 사용자계정 cascade;

 


clonedb를 이용해서 dblink 하기
Oracle/Administoration

dblink란

같은 host상의 1)클라이언트db와 2)서버db를 별명(alias)을 통해 두 db간의 다리를 만들어주는 기술


oracle dblink로 할수 있는건

서로 다른 컴퓨터로 export , import 명령어를 사용해서 옮기지만 dblink를 걸어주면 명령어만으로 쉽게 서버간 데이터이동을 할수있다.

그리고 backup & recovery 할때도 엄청 요긴하게 쓰이는 기술이니 알아두면 나중에 발목잡힐 일이 없다.


처음 리눅스 os를 깔고 oracle을 설치하면 리스너라는(listener.ora)파일이 없을것이다.

oracle 11g 기준으로 경로는 /app/oracle/product/11g/bin/에 있다.


cd /app/oracle/product/11g/bin/ 들어가서

터미널에

[oracle@dbserver ~ bin]$ ./netca 라고 치면 설치가능하다.

만약에 한글이 깨져보인다면 설치취소를 누르고

export LACG=C 명령어를 터미널에 쳐주고 다시 netca를 실행시켜주자.

*netca를 이용하지 않아도 vi로 해당위치의 파일을 만들어주고 내용을 입력해줘도 가능하다.

vi /app/oracle/product/11g/network/admin/listener.ora

vi /app/oracle/product/11g/network/admin/tnsnames.ora 이런식으로 새파일을 만들어 입력가능함


/app/oracle/product/11/network/admin/listener.ora를 열어보면

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

# listener.ora Network Configuration File: /app/oracle/product/11g/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = testdb)
      (ORACLE_HOME = /app/oracle/product/11g)
      (PROGRAM = extproc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

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

위에껀 기존부분이고 아래 listener2 부분을 기존내용 밑에 추가해주면 된다.(* 괄호주의)

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

LISTENER2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver)(PORT = 1522))
    )
  )
SID_LIST_LISTENER2 =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = testdb2)
      (ORACLE_HOME = /app/oracle/product/11g)
    )

  )

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

*참고로 HOST부분에 네임으로 적으려면 /etc/hosts에 아이피와 네임이 같이 적혀있어야한다.

vi를 열어서 살펴보자.

vi /etc/hosts

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

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.24.136          dbserver        dbserver

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

빨간색부분의 아이피와 옆에 리눅스를 설치했던 네임을 적어주면 된다. 그리고 :wq! 종료


그리고 vi /app/oracle/product/11g/network/admin/tnsnames.ora를 열어보면

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

TESTDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.24.136)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = testdb)
    )    
  )

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

위의내용은 기존내용이고 이 부분아래서부터 밑의 clonedb를 추가해주자

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

clonedb =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.24.136)(PORT = 1522)) -<포트번호는 listener와 동일한 포트로
    )       
    (CONNECT_DATA =
      (SERVICE_NAME = testdb2) -<clonedb의 네임적어주셔야 합니다.
    )
   )

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

*중요한 몇가지

1.listener와 tnsnames의 본 클라이언트db(testdb), 서버db(testdb2)의 port 같은 서버끼리 똑같아야 한다.

2.분명히 clonedb(testdb2)안만들고 listener와 tnsnames만 건드시는 분들 분명히 계십니다~

  다른서버가 분명히 하나 더 있어야 가능한 기술이니까 숙지하세요~

3.이건 주관적인건데 listener의 host는 아이피로 통일하거나 네임으로 통일하거나 같아야합니다

tnsnames.ora도 마찬가지로 네임으로 통일할려면 통일하고 안할려면 둘다 아이피로 적어주세요.


모두 :wq! 저장하고 나와서 리스너 명령어로 stop,start,status등 실행되는지 전부 확인해볼수 있습니다.


[oracle@dbserver ~]$lsnrctl -<리스너 접속명령어 확인을 누르면

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

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 16-JUL-2014 14:38:53

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Welcome to LSNRCTL, type "help" for information.

LSNRCTL>

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

접속되었고 몇가지 명령어를 나열해 보자면 보통은

status listener(testdb꺼) ,status listener2(clonedb testdb2꺼) 이 명령어는 현재 리스너의 현재상태를 출력해주는 명령어다

그외에 멈추는 명령어 stop listener , 다시 재동가하는 명령어 start lestener 요 3가지만 알아도 많이 배운상태다 이미.


내용이 길어지기 때문에 현제 clonedb의 testdb만 정상적으로 재가동되는 결과 출력물만 기재하겠다.

LISTENER> 에서 나갈려면 EXIT 명령어를 써주면 나갈수가 있다.


제대로 작동되는지 확인해볼려면

[oracle@dbserver ~]#tnsping clonedb(testdb2용임)

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

TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 16-JUL-2014 14:44:35

Copyright (c) 1997, 2009, Oracle.  All rights reserved.

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)

(HOST = 192.168.24.136)(PORT = 1522))) (CONNECT_DATA = (SERVICE_NAME = testdb2)))
OK (10 msec)

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

위의 ok가 떨어졌으면 정상적으로 리스너가 작동한다는 뜻이다.

그리고 당연하겠지만 본 클라이언트(운영서버)에서 디비링크를 확인하려면 clonedb(복구서버testdb2)의 db가 켜져있어야한다.

exprot ORACLE_SID=testdb2 (클론서버로 접속)입력해주고 db를 키자. 그리고 다시 export ORACLE_SID=testdb로 실행경로를 바꿔준다.


이제 거의 tnsnames.ora와 listener.ora쪽은 건들일이 없고 본클라이언트 서버 들어가서 서로연결해줄 링크를 만들면 끝이다.

[oracle@dbserver ~]$sqlplus / as sysdba
[oracle@dbserver ~]startup


명령어가 여러가지가 있는데 한번 살펴보자


<링크생성하기>

SQL>creata database link testdb02 /링크이름은 하고싶은걸로 하면된다.
  2 connect to scott
  3 identified by tiger                  /클론db와 연결할 계정과 암호
  4 using 'testdb2';                    /tnsnames.ora에 적어뒀던 걸로 하면된다.
DATABASE LINK CREATE


이것으로 링크는 정상적으로 만들어졌고 실행해보자.


SQL> select * from scott.hwangyk@testdb02

해주면 결과가 출력이 된다. 성공적으로 링크가 됐다.


지금까지 만들었던 dblink를 조회해보는 명령어

SQL>SELECT * FROM ALL_DB_LINKS;


만들어놨던 DBLINK를 삭제하는 명령어

SQL>DROP DATABASE LINK 링크명



링크를 만들때 직접 만들수 있는 방법도 있다.

이래저래 안걸리면 직접넣기


SQL>CREATE DATABASE LINK 링크이름
  2  CONNECT TO 아이디 IDENTIFIED BY 비번
  3  USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=호스트명)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=SID)))';  
PL/SQL 결과물 출력하기
Oracle/SQL

PL/SQL은 기본적으로 처리된 PL/SQL 문장의 결과를 화면에 출력하지 않습니다.

그래서 결과를 화면에 출력할려면 아래와 같이 출력물을 ON,OFF로 사전작업이 필요합니다.


 

SQL> SET SERVEROUTPUT ON;
SQL> SET SERVEROUTPUT OFF;
 

그리고 PL/SQL은 작성시 오류가 있을 경우 오류에 대한 상세 내용을 별도로 보여주지 않기에

별도로 쿼리를 입력해서 아래와 같이 조회해야 오류결과 출력물을 얻을 수 있습니다.


 

SQL> SHOW ERRORS;
 




OEL5 + Oracle 11g rac rawdevice
Oracle

create a new virtual machine 클릭

custom

다음

가상머신 os선택

리눅스 -> 오라클 엔터프라이즈 리눅스

가상머신 이름 및 생성경로 설정

가상머신 자원설정

메모리는 최소 1.5기가

네트워크 설정 nat 체크

I / O 컨트롤러 설정

디스크 타입 설정(1)

디스크 설정 타입(2)

디스크 용량 설정 (1)

디스크 이름 설정

하드웨어 추가 설정


OS설치 CD 삽입

선택

완료된 화면

위쪽 버추얼 머신셋팅 클릭

불필요한 하드웨어 삭제

삭제 완료

네트워크 아답타 추가

host -onl추가

추가완료

하드 디스크 추가

맨 위에 추가

1. scsi 2. independent

1. 15g 2. allocate 3. single file

스토리지 폴더만들고 네임은 disk.vmdk

확장자명 꼭 입력해줘야 한다.

경로 찾아서 확인

피니쉬

생성중

추가완료

rac1 디렉토리 vxm파일을 메모장으로 열어서 수정해준다

공유스토리지 컨트롤러 채널 변경

맨 아래 내용추가

disk.locking = "FALSE"

diskLib.dataCacheMaxSize = "0"

scsi.shareBus = "virtual"

scsi1:0.deviceType = "disk"

드래그친것처럼 해놓으면 된다.

(스샷을 안찍고 실행을 시켜서 밑에 데이터가 저장됨)

이제 os를 깔면 된다.

Oracle enterprise linux 5

skip

next

인스톨 할때 언어

english

u.s. english

sda 디스크 포멧 메시지 yes

추가했던 sdb 디스크 포멧 메세지 yes

크리에이트 커스텀 레이아웃 선택후 next

파티션 설정 ui

*파티션을 나눌때 추가했던 sdb 디스크는 체크 해제

/

ext3

5000~8000mb

/boot

ext3

100~500mb


/var

ext3

1000~3000mb (yum 사용시 넉넉하게 줄것)

/swap

ext3

4000mb

/home

ext3

8000~10000mb

/app

ext3

나머지 몰빵

파티션 나누기 완료

다음

1. ipv6 체크해제

2. eth1 체크

rac1로 변경

asia/seoul 체크

root 암호 입력

아래 커스터마이징 체크 다음

데스크탑

어플리케이션

디벨로먼트

서버

베이스 시스템

시스템 툴 선택후에 밑 메뉴에 옵셔널 패키지 클릭

필수 패키지 선택

필수 패키지 선택

필수 패키지 선택

코리안 서포터 선택

(설치완료) 다음

리붓

다음

yes 다음

방화벽 전부 디세이블

yes

디세이블

yes

kdump 노체크

시간 설정

그냥 넥스트

컨티뉴

넘어감

피니쉬

피니쉬

(재부팅후) root 계정으로 로그인

암호입력

neat 명령어를 친후에

eth0 아탑타 더블클릭 및 edit 클릭

rac1 eth0

192.168.92.188

255.255.255.0

192.168.92.2(터미널에 netstat -nr 쳐서 확인)

eth1 설정

rac1 eth0

192.168.133.88

255.255.255.0

게이트웨이는 비워둔다.

DNS로 가서 168.126.63.1

닫기

yes

네트워크 재시작 및 재부팅 메세지

네트워크 재시작

/etc/init.d/network restart

완료

ifconfig로 변경된 아이피 확인

추가로 핑이 외부로 나가는지 확인

ping 168.126.63.1(인터넷 연결 확인)

vi /etc/hosts

ip정보 입력

192.168.92.188    rac1

192.168.92.189    rac2

192.168.133.88    rac1-priv

192.168.133.89    rac2-priv

192.168.92.18    rac1-vip

192.168.92.19    rac2-vip

192.168.92.80    rac-scan

네트워크 재시작

service network restart

재시작 완료

 불필요한 서비스는 off시킨다.

 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

오라클 유저 생성 및 그룹생성

groupadd -g 5000 dba
 groupadd -g 5001 oinstall
 useradd -g oinstall -G dba -d /home/oracle oracle
 passwd oracle

공유 메모리 설정

vi /etc/sysctl.conf

위의 내용 추가

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.wmem_max = 1048576
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
fs.file-max = 6815744
fs.aio-max-nr = 1048576

바로 적용을 위해 명령어 입력

sysctl -p

공유자원 설정

vi /etc/security/limits.conf

위의 내용을 마지막줄에 추가

grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

pam설정

vi /etc/pam.d/login

위의 내용을 마지막줄에 추가

session required pam_limits.so

hangcheck-timer 모듈 설정

vi /etc/modprobe.conf

위의 내용을 마지막줄에 추가

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

모듈 적용

modprobe -v hangcheck-timer

적용 완료

rc.local에 넣기

vi /etc/rc.local

마지막줄에 내용 추가

/sbin/modprobe -v hangcheck-timer
rdate -s 203.248.240.140

ntpd 설정

vi /etc/sysconfig/ntpd

위의 내용으로 변경 추가

ntpd 서비스 시작

service ntpd start

시작 완료

부팅후에도 자동 시작

chkconfig --level 123456 ntpd on

패키지 설치를 위해 cd를 넣고 rpm이 모여있는 디렉토리로 이동

cd /media/Oracle\ Linux\ Server\ dvd\ 20110119/Server/

rpm -Uvh libaio-devel-0.3.106-3.2.i386.rpm

rpm -Uvh sysstat-7.0.2-11.el5.i386.rpm

rpm -Uvh numactl-devel-0.9.8-7.el5.i386.rpm

rpm -Uvh unixODBC-2.2.11-7.1.i386.rpm

rpm -Uvh unixODBC-devel-2.2.11-7.1.i386.rpm

root계정의 .bash_profile 수정

export GRID_HOME=/app/11g/grid
export PATH=$PATH:$HOME/bin:$GRID_HOME/bin

oracle 홈의 .bsh_profile에 환경변수 설정

vi /home/oracle/.bash_profile

export EDITOR=vi
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac1
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/11g/db
export GRID_HOME=/app/11g/grid
export ORACLE_SID=racdb1
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

처음에 추가했던 공유디스크 정보

fdisk -l

sdb 파티션 나누기

fdisk /dev/sdb

fdisk /dev/sdb

n

p

1

엔터

엔터

t

8e

p

w

logical volume 생성

21. Logical Volume 생성
[root@rac1 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@rac1 ~]# vgcreate rac /dev/sdb1
Volume group "rac" successfully created
[root@rac1 ~]# lvcreate -L 300M -n ocr01 rac
Logical volume "ocr01" created
[root@rac1 ~]# lvcreate -L 300M -n ocr02 rac
Logical volume "ocr02" created
[root@rac1 ~]# lvcreate -L 300M -n vote01 rac
Logical volume "vote01" created
[root@rac1 ~]# lvcreate -L 300M -n vote02 rac
Logical volume "vote02" created
[root@rac1 ~]# lvcreate -L 300M -n vote03 rac
Logical volume "vote03" created
[root@rac1 ~]# lvcreate -L 700M -n system rac
Logical volume "system" created
[root@rac1 ~]# lvcreate -L 700M -n sysaux rac
Logical volume "sysaux" created
[root@rac1 ~]# lvcreate -L 700M -n users rac
Logical volume "users" created
[root@rac1 ~]# lvcreate -L 700M -n undotbs1 rac
Logical volume "undotbs1" created
[root@rac1 ~]# lvcreate -L 700M -n undotbs2 rac
Logical volume "undotbs2" created
[root@rac1 ~]# lvcreate -L 700M -n temp rac
Logical volume "temp" created
[root@rac1 ~]# lvcreate -L 100M -n control01 rac
Logical volume "control01" created
[root@rac1 ~]# lvcreate -L 100M -n control02 rac
Logical volume "control02" created
[root@rac1 ~]# lvcreate -L 100M -n control03 rac
Logical volume "control03" created
[root@rac1 ~]# lvcreate -L 200M -n redo01 rac
Logical volume "redo01" created
[root@rac1 ~]# lvcreate -L 200M -n redo02 rac
Logical volume "redo02" created
[root@rac1 ~]# lvcreate -L 200M -n redo03 rac
Logical volume "redo03" created
[root@rac1 ~]# lvcreate -L 200M -n redo04 rac
Logical volume "redo04" created
[root@rac1 ~]# lvcreate -L 200M -n redo05 rac
Logical volume "redo05" created
[root@rac1 ~]# lvcreate -L 200M -n redo06 rac
Logical volume "redo06" created
[root@rac1 ~]# lvcreate -L 100M -n spfile rac
Logical volume "spfile" created

나눈 볼륨 확인

lvscan

로우디바이스 룰 구성

vi /etc/udev/rules.d/60-raw.rules

ACTION=="add", KERNEL=="raw*", OWNER=="oracle", GROUP=="dba", MODE=="0660"

로우 디바이스 맵핑

(rhel 5부터 /etc/sysconfig/rawdevices 파일이 삭제되어 /etc/udev/rules.d/에 rule을 추가하고 수동으로 맵핑)

(시작시 자동맵핑을 위해 /etc/rc.local에 등록)

(rhel 5.4에서 /etc/sysconfig/rawdevices 다시 지원)

/dev/raw/raw1 /dev/rac/ocr01
/dev/raw/raw2 /dev/rac/ocr02
/dev/raw/raw3 /dev/rac/vote01
/dev/raw/raw4 /dev/rac/vote02
/dev/raw/raw5 /dev/rac/vote03
/dev/raw/raw6 /dev/rac/system
/dev/raw/raw7 /dev/rac/sysaux
/dev/raw/raw8 /dev/rac/users
/dev/raw/raw9 /dev/rac/temp
/dev/raw/raw10 /dev/rac/undotbs1
/dev/raw/raw11 /dev/rac/undotbs2
/dev/raw/raw12 /dev/rac/redo01
/dev/raw/raw13 /dev/rac/redo02
/dev/raw/raw14 /dev/rac/redo03
/dev/raw/raw15 /dev/rac/redo04
/dev/raw/raw16 /dev/rac/redo05
/dev/raw/raw17 /dev/rac/redo06
/dev/raw/raw18 /dev/rac/control01
/dev/raw/raw19 /dev/rac/control02
/dev/raw/raw20 /dev/rac/control03
/dev/raw/raw21 /dev/rac/spfile

로우디바이스 재시작

/etc/init.d/rawdiveces restart

재시작 완료

raw devices 권한 확인

ls -al /dev/raw/raw*

node1 종료

init 0

node2 생성을 위해 rac1의 디렉토리가서 위의 두개의 파일을 복사 한다.

rac2 디렉토리에 가서 붙여넣기

버츄얼머신으로 가서 open을 클릭한다.

복사 붙여넣기 한 rac2디렉토리가서 rac1을 불러온다.

정상적으로 불러온 화면

버츄얼 머신 셋팅을 클릭하고 옵션을 눌러 rac1->rac2로 변경

위의 파일을 메모장으로 열어서 1때처럼 추가해준다.

드래그 해논 부분에 rac1를 전부 rac2로 바꾼다.

그리고 저장 종료 하기

rac2 버츄얼 머신 시작

그리고 위처럼 메세지가 나오면 i copied it 클릭

oracle 계정으로 접속

암호 입력

터미널에 root 계정으로 접속후 neat입력

su -

passwd:

neat

rac2 eth0

192.168.92.189

255.255.255.0

192.168.92.2

rac2 eth1

192.168.133.89

255.255.255.0

DNS가서 rac1 -> rac2로 바꾸고 DNS주소를 바꿈

168.126.63.1

네트워크 재시작 하기

/etc/init.d/network restart

재시작 완료

ifconfig 로 바뀐 아이피를 확인한다.

node2)

vi /etc/hosts 를 가서

ip다시 확인

node2)

root계정의 .bash_profile 확인

vi .bash_profile

node2)

1에서 설정한 값이 추가가 안되어있으면 다시 추가

export GRID_HOME=/app/11g/grid
export PATH=$PATH:$HOME/bin:$GRID_HOME/bin

node2)

oracle 계정의 .bash_profile 환경변수 설정

vi /home/oracle/.bash_profile

node2)

export EDITOR=vi
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac2
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/11g/db
export GRID_HOME=/app/11g/grid
export ORACLE_SID=racdb2
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

node1의 oracle계정으로 winscp나 xftp를 이용해서 오라클 설치파일을 넘긴다.

받아들이고 저장

위의 드래그 된 3개의 파일을 oracle home 디렉토리로 옮기면 됨

node1)

권한 넘겨주기

chown -R oracle.dba /home/oracle/

chown -R oracle.dba /app/

node2)

권한 넘겨주기

chown -R oracle.dba /home/oracle/

chown -R oracle.dba /app/

node1)

압축 풀어주면 된다.

ls

unzip p10098816_112020_Linux_1of7.zip \

&& unzip p10098816_112020_Linux_2of7.zip \

&& unzip p10098816_112020_Linux_3of7.zip

cvuqdisk rpm 설치

node1)

cd /app/grid/rpm/

node1)

su -

passwd :

cd /app/grid/rpm/

export CVUQDISK_GRP=dba

rpm -Uvh cvuqdisk-1.0.9-1.rpm

node1)

cvuqdisk rpm파일 rac2 로 전송

scp cvuqdisk-1.0.9-1.rpm rac2:~/

yes

passwd :

node1)

scp cvuqdisk-1.0.9-1.rpm rac2:~/

node2)

ls

rpm -Uvh cvuqdisk-1.0.9-1.rpm

node2)

export CVUQDISK_GRP=dba

node1)

grid 설치

cd /app/grid/

pwd

/app/grid

./runInstaller

skip체크후에 다음

맨 위 클러스트 체크하고 다음

어드밴스 인스톨 체크 후 다음

한국어 체크후에 다음

아래체크해제 하고

-cluster 지우고 다음

체크중

아래 add 클릭

rac2

rac2-vip 적어주고 ok

옆에 ssh connectiviry 클릭하고 os passwd 입력

그리고 setup 클릭

ssh 체크중

성공

다음누르면 체크중

eth0을 공용으로 바꾸고 다음

asm 체크후에 다음

*중요*

6,7,8체크후에 다음

밑에 체크하고 암호적어줌 다음

yes

ipmi 체크후 다음

oinstall 선책

yes

아래 경로를 /app/11g/grid로 변경후 다음

체크중

기본경로 그대로 다음

체크중

이그노어 체크 다음

요약 인스톨

설치중

node1)

/app/oraInventory/orainstRoot.sh

node2)

/app/oraInventory/orainstRoot.sh

node1)

/app/11g/grid/root.sh

node2)

/app/11g/grid/root.sh












스크립트를 끝냈으면 ok

ok클릭

다음

yes

창을 닫는다

node1)

엔진설치

cd /app/database

체크해제후 다음

yes

skip 클릭후 다음

rac2 체크후 다음

한국어 추가 후 다음

여기서는 엔터프라이즈로 설치

아래 셀렉트 옵션 클릭

맨 위 맨 아래를 제외하고 전부 체크해제

다음

기본경로 그대로

체크중

dba 선책 후 다음

체크중

이그노어 체크 후에 다음

요약정보 다음

설치중

node1)

/app/oracle/11g/db/root.sh

node2)

/app/oracle/11g/db/root.sh





스크립트를 완료하였으면 ok

창 닫기

OCR / VOTE 디스크 ASM -> Rawdevice로 변경 (rac1에서 진행)

OCR rawdevices 추가

ocrconfig -add /dev/raw/raw1

ocrconfig -add /dev/raw/raw2

기존 OCR 디스크제거

ocrconfig -delete +DATA

변경 사항 확인

ocrcheck

기존 VOTE디스크를 RAWDEVICES로 교체

crsctl replace votedisk /dev/raw/raw3

crsctl replace votedisk /dev/raw/raw4

crsctl replace votedisk /dev/raw/raw5

변경사항 확인

crsctl query css votedisk

node1)

dbca

맨위 체크하고 다음

맨위 체크하고 다음

커스텀 데이터베이스 체크하고 다음

db명 racdb 쓰고 rac1 rac2 올셀렉트 다음

엔터프라이즈 매니저 체크 해제

여기도 체크해제 후 다음

암호 입력 후 다음

yes

다음

리커버리 해제 후 다음

전부 체크 해제 후

아래 스탠다느 데이터베이스 클릭

전부해제

옆 캐릭터셋 클릭

ko16mswin949 선택후 다음

다음

맨위 데이터 베이스 체크해제하고 아래 스크립트 체크하고 피니쉬

설치중 위 메세지가 나오면 아래 no 클릭

node1)

su - oracle

DATA Disk Group에서 임시로 사용했던 RAW DEVICE의 데이터 삭제

dd if=/dev/zero of=/dev/raw/raw6 bs=8k

dd if=/dev/zero of=/dev/raw/raw7 bs=8k

dd if=/dev/zero of=/dev/raw/raw8 bs=8k

DB생성 스크립트 수정(ORACLE계정)

cd /app/oracle/admoin/racdb/scripts/

ls -l (권한 확인)

racdb1 수정

vi racdb1.sql


set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
host /app/oracle/11g/db/bin/orapwd file=/app/oracle/11g/db/dbs/orapwracdb1 force=y
host /app/11g/grid/bin/setasmgidwrap o=/app/oracle/11g/db/bin/oracle
host /app/oracle/11g/db/bin/srvctl add database -d racdb -o /app/oracle/11g/db -p /dev/raw/raw21 -n racdb
host /app/oracle/11g/db/bin/srvctl add instance -d racdb -i racdb1 -n rac1
host /app/oracle/11g/db/bin/srvctl add instance -d racdb -i racdb2 -n rac2
host /app/oracle/11g/db/bin/srvctl disable database -d racdb
@/app/oracle/admin/racdb/scripts/CreateDB.sql
@/app/oracle/admin/racdb/scripts/CreateDBFiles.sql
@/app/oracle/admin/racdb/scripts/CreateDBCatalog.sql
@/app/oracle/admin/racdb/scripts/CreateClustDBViews.sql

host echo "SPFILE='/dev/raw/raw21'" > /app/oracle/11g/db/dbs/initracdb1.ora
@/app/oracle/admin/racdb/scripts/lockAccount.sql
@/app/oracle/admin/racdb/scripts/postDBCreation.sql

vi CreateDB.sql


SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /app/oracle/admin/racdb/scripts/CreateDB.log append
startup nomount pfile="/app/oracle/admin/racdb/scripts/init.ora";
CREATE DATABASE "racdb"
MAXINSTANCES 32
MAXLOGHISTORY 1
MAXLOGFILES 192
MAXLOGMEMBERS 3
MAXDATAFILES 1024
DATAFILE '/dev/raw/raw6' SIZE 699M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/dev/raw/raw7' SIZE 699M AUTOEXTEND OFF
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/raw/raw9' SIZE 699M AUTOEXTEND OFF
UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/raw/raw10' SIZE 199M AUTOEXTEND OFF
CHARACTER SET KO16MSWIN949
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/dev/raw/raw12') SIZE 199M,
GROUP 2 ('/dev/raw/raw13') SIZE 199M,
GROUP 3 ('/dev/raw/raw14') SIZE 199M;
USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword";
spool off

vi CreateDBFiles.sql


SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /app/oracle/admin/racdb/scripts/CreateDBFiles.log append
CREATE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/dev/raw/raw11' SIZE 699M AUTOEXTEND OFF;
CREATE TABLESPACE "USERS" LOGGING DATAFILE '/dev/raw/raw8' SIZE 699M AUTOEXTEND OFF EXTENT
MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
ALTER DATABASE DEFAULT TABLESPACE "USERS";
spool off

vi postDBCreation.sql


SET VERIFY OFF
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool /app/oracle/admin/racdb/scripts/postDBCreation.log append
execute DBMS_AUTO_TASK_ADMIN.disable();
@/app/oracle/11g/db/rdbms/admin/catbundle.sql psu apply;
select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual;
execute utl_recomp.recomp_serial();
select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual;
select group# from v$log where group# =3;
select group# from v$log where group# =4;
ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 4 ('/dev/raw/raw15') SIZE 199M,
GROUP 5 ('/dev/raw/raw16') SIZE 199M,
GROUP 6 ('/dev/raw/raw17') SIZE 199M;
ALTER DATABASE ENABLE PUBLIC THREAD 2;
host echo cluster_database=true >>/app/oracle/admin/racdb/scripts/init.ora;
host echo remote_listener=rac-scan:1521>>/app/oracle/admin/racdb/scripts/init.ora;
connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
create spfile='/dev/raw/raw21' FROM pfile='/app/oracle/admin/racdb/scripts/init.ora';
shutdown immediate;
host /app/oracle/11g/db/bin/srvctl enable database -d racdb;
host /app/oracle/11g/db/bin/srvctl start database -d racdb;
connect "SYS"/"&&sysPassword" as SYSDBA
spool off
exit;

vi init.ora


control_files=('/dev/raw/raw18','/dev/raw/raw19','/dev/raw/raw20')

node1)

sh /app/oracle/admin/racdb/scripts/racdb1.sh

암호 3번 입력

생성중

생성중

생성완료( 한 15~20분정도 걸림)

node2)

cd /app/oracle/admin/racdb/scripts/

sh /app/oracle/admin/racdb/scripts/racdb2.sh

스크립트 완료

node1)

asm 리소스 제거

srvctl stop database -d racdb
 srvctl stop diskgroup -g data
 srvctl stop asm -n rac1 -f
 srvctl stop asm -n rac2 -f
 srvctl remove diskgroup -g data -f
srvctl remove asm -f
 srvctl modify database -d racdb -z
 srvctl start database -d racdb

unknown 문제 해결중

crs_stop -all

crs_start -all 후에

재부팅 init 5 , reboot

node1)

sqlplus / as sysdba

startup

alter system set cluster_database=true scope=spfile sid='*';

shutdown immediate

exit

sqlplus "/ as sysdba"

startup

conn /as sysdba

select instance_name, status from v$instance;

racdb1 => open

node2)

sqlplus "/ as sysdba"

conn /as sysdba

select instance_name, status from v$instance;

racdb2 => started.....?

?

?

전체 rac1,rac2 shutdown  후에

node1)

부터 다시  rac전환

srvctl stop database -d racdb

sqlplus / as sysdba

startup

alter system set cluster_database=true scope=spfile sid='*';

shutdown immediate

exit

srvctl start database -d racdb

node1)

sqlplus "/ as sysdba"

startup

conn /as sysdba

select instance_name, status from v$instance;

racdb1 => open

node2)

sqlplus "/ as sysdba"

conn /as sysdba

select instance_name, status from v$instance;

racdb2 => open

'Oracle' 카테고리의 다른 글

윈도우 Client로 Oracle Server 접속하기  (0) 2014.11.04
toad for oracle 설치 및 세팅  (0) 2014.11.04
oracld 11g rac asm  (0) 2014.09.26
oracle 10 rac rawdevice  (0) 2014.09.26
libstdc++-libc6.1-1.so.2: cannot open shared object 에러  (0) 2014.09.10