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 arc2data 디렉토리에 들어가서 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번으로 올라가있다.
'Oracle > Administoration' 카테고리의 다른 글
오라클 Hidden 파라미터 조회 (0) | 2015.06.25 |
---|---|
tablespace에 속한 table 조회(owner) (0) | 2015.01.15 |
SGA size cannot be greater than maximum shared memory segment size (0) 에러 (0) | 2014.10.31 |
oracle dbca [ora-00119] invalid specification for system parameter local_listener 에러 (0) | 2014.10.31 |
오라클 사용자 권한생성 및 권한주기 (0) | 2014.10.31 |
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 |
클라이언트 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 status13. 이제 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 |
해당 에러는 오라클을 인스톨하기전에
sysctl.conf 파일 맨 밑에 공유메모리 값을 넣어줬을텐데
최대 공유메모리 값보다 초과되서 출력된 에러다.
11g 기준으로 여러개 돌아다니는 공유메모리 설정값이 있을텐데
기본값으로 엔진 및 db를 install할때 참고하길 바란다.
kernel.shmall = 2097152
'Oracle > Administoration' 카테고리의 다른 글
tablespace에 속한 table 조회(owner) (0) | 2015.01.15 |
---|---|
No archive mod에서 archive mode 변경하기 (0) | 2014.11.04 |
oracle dbca [ora-00119] invalid specification for system parameter local_listener 에러 (0) | 2014.10.31 |
오라클 사용자 권한생성 및 권한주기 (0) | 2014.10.31 |
clonedb를 이용해서 dblink 하기 (0) | 2014.10.31 |
오라클 압축을 풀고 엔진을 무사히 설치한다음
리눅스 터널을 통해 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 엔진설치를 하면 문제없이 설치가 된다.
'Oracle > Administoration' 카테고리의 다른 글
tablespace에 속한 table 조회(owner) (0) | 2015.01.15 |
---|---|
No archive mod에서 archive mode 변경하기 (0) | 2014.11.04 |
SGA size cannot be greater than maximum shared memory segment size (0) 에러 (0) | 2014.10.31 |
오라클 사용자 권한생성 및 권한주기 (0) | 2014.10.31 |
clonedb를 이용해서 dblink 하기 (0) | 2014.10.31 |
/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 > SQL' 카테고리의 다른 글
테이블스페이스 소유자 확인 (2) | 2015.01.13 |
---|---|
tablespace생성과 자동으로 사이즈 늘리기 (0) | 2014.11.11 |
중복된 row 데이터 삭제하는 방법 (0) | 2014.11.11 |
SQL*Loader 실행하기 (0) | 2014.11.10 |
PL/SQL 결과물 출력하기 (0) | 2014.10.31 |
오라클 유저 만들기
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;
'Oracle > Administoration' 카테고리의 다른 글
tablespace에 속한 table 조회(owner) (0) | 2015.01.15 |
---|---|
No archive mod에서 archive mode 변경하기 (0) | 2014.11.04 |
SGA size cannot be greater than maximum shared memory segment size (0) 에러 (0) | 2014.10.31 |
oracle dbca [ora-00119] invalid specification for system parameter local_listener 에러 (0) | 2014.10.31 |
clonedb를 이용해서 dblink 하기 (0) | 2014.10.31 |
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)))';
'Oracle > Administoration' 카테고리의 다른 글
tablespace에 속한 table 조회(owner) (0) | 2015.01.15 |
---|---|
No archive mod에서 archive mode 변경하기 (0) | 2014.11.04 |
SGA size cannot be greater than maximum shared memory segment size (0) 에러 (0) | 2014.10.31 |
oracle dbca [ora-00119] invalid specification for system parameter local_listener 에러 (0) | 2014.10.31 |
오라클 사용자 권한생성 및 권한주기 (0) | 2014.10.31 |
PL/SQL은 기본적으로 처리된 PL/SQL 문장의 결과를 화면에 출력하지 않습니다.
그래서 결과를 화면에 출력할려면 아래와 같이 출력물을 ON,OFF로 사전작업이 필요합니다.
SQL> SET SERVEROUTPUT ON; SQL> SET SERVEROUTPUT OFF;
그리고 PL/SQL은 작성시 오류가 있을 경우 오류에 대한 상세 내용을 별도로 보여주지 않기에
별도로 쿼리를 입력해서 아래와 같이 조회해야 오류결과 출력물을 얻을 수 있습니다.
SQL> SHOW ERRORS;
'Oracle > SQL' 카테고리의 다른 글
테이블스페이스 소유자 확인 (2) | 2015.01.13 |
---|---|
tablespace생성과 자동으로 사이즈 늘리기 (0) | 2014.11.11 |
중복된 row 데이터 삭제하는 방법 (0) | 2014.11.11 |
SQL*Loader 실행하기 (0) | 2014.11.10 |
[ORA-12988] cannot drop column owned by sys 에러 (0) | 2014.10.31 |
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 |