RAC (Archive mode 에서 장애 복구 1)

 

Case :

- Offline 되는 테이블 스페이스 장애 발생 (Archive 파일이 필요 없는 경우)

- Backup 파일 존재

 

- 장애 발생 상황

- tt01 테이블을 ts_new 테이블스페이스에 생성 후 Data를 입력 합니다.

- ts_new tablespace offline 시킨 후 /dev/zero 파일로 덮어 씌웁니다.

- online 이 되지 않고 장애가 발생 한 것을 확인 할 수 있습니다.

- 복구

1. 복구를 시도 하지만 실패 하는 것을 확인 할 수 있습니다.

2. backup file 을 /dev/raw/raw28 로 복사합니다.

SQL>dd if=/data/backup/close/raw28_ts_new of=/dev/raw/raw28 bs=8k

3. 복구를 수행합니다.

SQL>recover tablespace ts_new;

SQL>alter tablespace ts_new online;

Raw Device 백업(Cold backup)

 

- Cold backup (닫힌 백업)

1. 양쪽 노드 모드 종료

2. dd 명령어로 복사

 

- Tablespace 정보 확인 (dba_data_files)

Select tablespace_name, bytes/1024/1024 MB,file_name

From dba_data_files;

 

- 양쪽 노드 모드 종료 수행

- dd 명령어로 백업 수행

SQL>!dd if=/dev/raw/raw6 of=/data/backup/open/raw6_system bs=8k

 

Raw Device 백업(Hot backup)

 

- Hot backup

1. 해당 테이블 스페이스를 begin backup 모드로 변경

2. dd 명령어로 복사

3. 해당 테이블 스페이스를 end backup 모드로 변경

 

- Tablespace 정보 확인 (dba_data_files)

Select tablespace_name, bytes/1024/1024 MB,file_name

From dba_data_files;

 

- Hot Backup 수행

SQL>Alter tablespace system begin backup;

SQL>!dd if=/dev/raw/raw6 of=/data/backup/open/raw6_system bs=8k

SQL>alter tablespace system end backup;

 

 

- Hot Backup을 수행 한 다음 체크 포인트를 발생시켜 전체를 동기화 시켜 줍니다.

SQL>alter system checkpoint;

System altered.

Oracle 10g RAC Archive log mod

 

- Archive log mod 변경 (Oracle 10g RAC)

1. 양쪽 노드 전부 Shutdown immediate 수행

2. 한쪽 노드만 Mount 단계

3. alter system set log_archive_dest_1='location=/data/arc1';

4. alter system set log_archive_dest_2='location=/data/arc2';

5. atler database archivelog;

6. alter database open;

7. archive log list 로 결과 확인

8. 다른 쪽 노드에서도 2,3,4 차례로 수행 (5번은 수행할 필요도 없으며 되지도 않는다.

Oracle listener and gsd are unknown, what is the reason(crs-0216)

 

- crs_stat –t 상태를 봤을 때 다음과 같이 unknow 이 나온다면 여러가지 이유가 있을 수 있지만 다음을 확인 해 볼 것을 권합니다.

1. /etc/hosts

2. /etc/sysconfig/network

3./etc/init.d/network restart 시 정상 수행 되는지 확인

4. network 카드 점검

ASM(Automatic Storage Management) 기반

오라클 10g R2 version 설치

 
Note: All ASMLib installations require the oracleasmlib and oracleasm-support packages appropriate for their machine. The driver packages are named after the kernel they support. Run the "uname -r" command on your machine to determine your kernel version. The corresponding package has the name oracleasm-<kernel_version>.
이렇게 써 있지만 문제가 생긴다는 사람을 위해 구버전 rpm 을 올립니다.
사실 아래 오류는 RPM 과 상관이 없고 EM 오류이나 설치에는 아직 문제를 발견하지 못했습니다.





asm library file(RHEL4  2.6.9-34.EL)


<작업 순서>

1. OS설치 à 엔진 설치 à 패치

2. 디스크 추가 후 fdisk –Linux LVM 으로 Partitioning

3. pvcreate

4. vgcreate

5. lvcreate

6. asm library 설치

7. oracleasm configure – user 설정, 자동 시작 등

8. oracleasm enable à start

9. oracleasm createdisk - 5번에서 나눈 디스크를 asm 디스크로 생성

10. css 생성 - ~/bin/localconfig add

11. ASM 인스턴스 생성 – DBCA / 수동 생성

12. DBCA 로 DB 생성

13. ASM 관리

 

1. OS 설치 à 엔진 설치 à 엔진 패치

 

(1) LINUX 설치 (RHEL 4)

 

(2) LINUX 설치 후 커널 환경 설정

 

$vi /etc/sysctl.conf ß 문서내에 아래 내용 추가

#oracle 10g setup

kernel.shmmax=536870912

kernel.shmmni=4096

kernel.shmall=2097152

kernel.sem=250 32000 100 128

fs.file-max=65536

net.ipv4.ip_local_port_range=1024 65000

net.core.rmem_default=262144

net.core. rmem_max=262144

net.core.wmem_default=262144

net.core.wmem_max=262144

 

wq! (종료)

 

$vi /etc/security/limits.conf

oracle10g soft nproc 2047

oracle10g hard nproc 16384

oracle10g soft nofile 1024

oracle10g hard nofile 65536

 

$vi /etc/pam.d/login

#oracle 10g

session required pam_limits.so

 

- 리눅스 설치 CD3 번에서 다음의 RPM 을 추가로 설치 합니다.

 

 

 

- 다음의 파일을 추가로 설치

 

- oracle 계정으로 적속하여 .bash_profile 을 수정해 줍니다.

 

 

export EDITOR=vi

export LD_ASSUME_KERNEL=2.4.19

export ORACLE_BASE=/home/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10g

export ORACLE_SID=testdb

export LANG=ko_KR.eucKR

export ORACLE_TERM=xterm

export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

export PATH=$PATH:$ORACLE_HOME/bin

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

- 설치 파일이 존재하는 디렉토리 권한을 oracle 계정에게 부여한 후 oracle 계정에서 설치를 시작 합니다.

 

$./runInstaller

- 고급 설치 선택

 

- oraInventory 디렉토리를 설정 합니다.

- 설치 유형 선택 Enterprise Edition 으로 선택

 

- Oracle Software 가 설치될 디렉토리를 설정

 

- 제품별 필요 조건 검사 (네트워크 구성 요구 사항은 체크하고 넘어가도 됨)

 

- 데이터베이스 소프트웨어만 설치하고 DB구성은 나중에 할 것이다.

 

- 구성 요약 정보

 

 

- 설치가 진행 되던 중 다음 메시지가 뜨면 다음에 나와있는 순서대로 스크립트를 실행

- 절대 루트 사용자로 실행하여야 합니다.

 

- 다음의 스크립트를 root 계정으로 모두 실행하였다면 확인을 누른다.

 

 

- 설치 완료 후 종료

 

- 설치가 제대로 되었는지 확인

 

 

(3) Oracle engine Patche (10.2.0.1 à 10.2.0.4)

 

$unzip p6810189_10204_Linux-x86.zip

$cd Disk1/

$./runInstaller

 

 

- Oracle 엔진이 설치되어 있는 경로를 지정

 

 

- 설치 시작

 

- 다음의 스크립트를 루트 계정으로 수행

 

 

- 그리고 모두 y 를 해줍니다. (기존 파일을 덮어 씌우기)

 

- 아래의 버전을 통해 제대로 설치 되었는지 확인 합니다.

 

 

 

2. ASM 생성 및 DB 생성

 

(1) vmware 종료 후 1G 디스크 10개 추가

- 하나의 디스크에서 작업을 해도 상관 없으나 디스크 추가를 해서 하는 방법을 해보도록 합니다.

- 두번째 20G 하드는 백업용으로 사용할 예정이여

/dev/sdc ~ /dev/sdl 까지 10개의 하드를 asm 디스크로 사용하겠습니다.

 

- 작업 순서

1) 10개의 디스크를 LVM 으로 Partitioning (fdisk)

2) LVM 으로 파티셔닝 된 디스크들을 1개의 물리그룹으로 만듬 (pvcrete)

- 10개의 디스크를 1개의 논리적 디스크로 만드는 과정

3) 1개의 논리 디스크를 1개의 논리 그룹으로 생성 (vgcreate)

4) 1 개의 논리 그룹을 여러 개의 논리 볼륨으로 나눔 (lvcreate)

 

(2) 서버 부팅 후 10개의 디스크를 LVM (8e) 로 파티션 작업 수행

 

$fdisk /dev/sdc ~ /dev/sdl 까지 파티션 작업 수행

 

파티션 작업이 잘 되었는지 확인 합니다.

$fdisk –l

(3) 10개의 다른 디스크를 1개의 물리적 디스크로 Mapping

 

$pvcreate /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

 

(4) 1개의 디스크 그룹으로 만듭니다.

$vgcreate asm /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1

 

 

(5) 2개의 논리적 볼륨으로 나눕니다.

- 2개중 asm1 에 DB를 설치하고 fra1 에 flashback 정보를 저장하기 위합입니다.

(6) ASM Livrary 설치하기

-

- 아래 리눅스 버전과 동일한 버전을 설치하셔야 합니다.

 

- 자세한 내용은

http://download.oracle.com/docs/cd/B19306_01/relnotes.102/b25146/toc.htm#BAJFCEHE 를 참고 하셔도 좋습니다.

 

- 이곳에 가면 필요한 RPM 혹은 Version 별 오류 등의 각종 Issue 사항들을 확인 할 수가 있습니다.

- http://www.oracle.com/technetwork/server-storage/linux/downloads/index.html

이곳에서 운영체제와 맞는 lib 받으실 수 있습니다.

- http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel4-092650.html (RHEL4) 입니다.

- 다음의 3가지 RPM 들을 다운하여 설치합니다.

의존성 문제는 2번째 파일부터 설치하시면 해결 가능 합니다.

 

(7) 설치한 라이브러리를 환경설정

 

#/etc/init.d/oracleasm configure

 

 

àDefault user to own ther driver interface : oracle (asm 사용 유저 설정)

àDefault group to own the driver interface : dba (oracle 사용자의 그룹명)

àStart Oracle ASM library driver on boot : y (부팅후 asm 모듈 자동실행 유무)

à Scan for Oracle ASM disks on boot : y (부팅후 asm 디스크 스캔 여부)

 

 

(8) ASM Disk 생성

- 여기서 만든 이 디스크에 오라클을 설치할 것 입니다.

 

(9) CSS 데몬 활성화

#$ORACLE_HOME/bin/localconfig add

 

 

(10) DBCA 를 실행하여 ASM 인스턴스 생성

- oracle 계정으로 dbca 실행

#dbca

 

 

- Automatic Storage Management 구성 선택

 

-SYS 암호 입력

 

-확인 !!

 

- 새로 만들기 를 클릭합니다.

- 다음과 같이 설정해 줍니다.

- 아래와 같이 디스크 경로가 나오지 않는다면 oracleasm restart 를 해주세요

 

- 새로 생성을 다시 누르신 후

 

-그리고 확인

-완료를 선택 하신 후 다른 작업을 하겠습니다. 예 선택!

 

(11) DBCA 를 실행하여 DB 생성

 

- 데이터베이스 생성 선택

 

- 사용자 정의 데이터베이스 선택

 

 

 

 

 

- 다음 오류는 리스너 구성이 되어있지 않아 발생하는 오류이므로 netca 를 실행하여 설정을 해준 후 다시 시도하셔야 합니다.

 

- DATA 그룹만 선택 하신 후 다음으로 갑니다.

 

 

- 플래시 복구 영역을 지정해 주어야 합니다.

- 여기서는 아까 FRA1 디스크 그룹으로 변경 해 주어야 합니다.

 

 

 

 

 

 

 

- 자동 생성되는 구성요소는 빼고 기본만 선택하고 구성요소 클릭

 

 

 

- 가장 많은 한글을 지원하는 다음의 캐릭터셋을 선택 합니다.

- 여기서 보통 실무에서 많이 골치를 썩는 부분입니다. 선택을 잘 못하시면 나중에 한글 지원에 많은 문제가 생길 수도 있습니다.

 

 

- 이제 데이터베이스 생성을 시작합니다.

 

 

 

- 88% 에서 이런 오류가 발생 했습니다.

- 아마도 리스너 구성 후 listener start 를 안시켜서 그런 것 같습니다.

 

- 역시 그랬다. 리스너 구성중에 server110 으로 host 명이 잡혀있었는데 /etc/hosts/ 파일이 잘 못 되있었다 수정하고 tnsping 확인하고 리스너를 올리니 바로 확인 누르면 완료 넘어간다.

 

 

 

- 다음을 통해 상태를 확인 할 수 있다.

'Oracle > Setup' 카테고리의 다른 글

Oracle 9i Installation on RHEL4  (1) 2011.10.13
Oracle 10g R2 Silent Installation && Patch on RHEL4  (2) 2011.09.26
Oracle 9i Silent Installation on RHEL4  (0) 2011.09.26

Oracle 9i 설치 (RHEL 4)

 

설치 전 필요한 RPM (각 RPM은 Redhat 설치 CD 안에 들어있다)

compat-db-4.1.25-9 (in disk 3)

compat-gcc-32-c++-3.2.3-47.3 (in disk 4)

compat-gcc-32-3.2.3-47.3 (in disk 4)

compat-libgcc-296-2.96-132.7.2 (in disk 3)

compat-libstdc++-296-2.96-132.7.2 (in disk 3)

compat-libstdc++-33-3.2.3-46.1 (in disk 2)

java-1.4.2-gcj-compat-1.4.2.0-26jpp (in disk 3)

nss_db-compat-2.2-28 (in disk 4) -

gnome-libs-1.4.1.2.90-44.1.i386.rpm (in disk 3)

xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm (in disk 3)

libpng10-1.0.13-13.i386.rpm (in disk 3)

sysstat-5.0.1-2.i386.rpm (in disk 4)

openmotif21-2.1.30-9.i386.rpm

pdksh-5.2.14-24.i386.rpm (in disk 2)

libaio-0.3.102-1 (in disk 3)

libaio-devel-0.3.102-1 (in disk 3)

두 파일은 첨부 파일 안에 들어있다. 이 파일들은 libaio-devel-0.3.102-1 와 의존성이 있으니 선 설치후 설치해야 한다.

compat-oracle-rhel4-1.0-5.i386.rpm

compat-libcwait-2.0-2.i386.rpm

#groupadd –g 5000 dba

#useradd –d /home/oracle –g dba oracle

#passwd [password 입력]

  • Root 계정에서

# chown –R oracle.dba /home/oracle

 

- Share Memory & Semaphores

#vi /etc/sysctl.conf

- Oracle DB 생성시 dbca oui 를 위한 공유 메모리 설정

# echo 'expr 1024 \* 1024\* 1024' > /proc/sys/kernel/shmmax

 

 

 

  • 오라클 사용 User 의 초기화 파일

  • /home/oracle/.bash_profile

#vi /etc/ld.so.conf (root 권한 필요)

/lib

/usr/lib

/usr/local/lib

  • 경로 추가

 

 

 

 

 

 

< 오라클 엔진 설치 >

  • Winscp 프로그램 등을 이용하여 /home/oracle 디렉토리에 설치 파일들을 옮긴다.

  • 위 세가지 파일의 압축을 푼다

#cpio –idmv < ship_9204_linux_disk1.cpio && cpio –idmv (생량)disk2.cpio && cpio –idmv (생량)disk2.cpio

  • 압축 푼 Disk1 디렉토리에서 runInstaller 를 실행한다.

  • Front patch 를 수행하거나
  • #export LANG=c 를 입력한 후 다시 실행 시키면 잘 나온다.

  • oraInventory 디렉토리 설정

 

  • DB 를 사용할 수 있는 UNIX 그룹을 지정해 준다.

  • 다음에 나온 것과 같은 경로의 orainstRoot.sh 스크립트를 root 로 변경 후 터미널로 실행

 

 

  • Oracle Home Directory 를 지정해 준다. .bash_profile 에서 설정해 준 ORACLE_HOME 부분의 PATH 부분과 같은 경로로 지정해 주어야 한다.

 

 

 

 

 

  • Summary 확인 후 인스톨 시작

 

  • 인스톨 중간에 스크립트 실행을 하라는 메시지가 나온다. Root 권한으로 터미널에서 다시한번 스크립트를 실행한다.

 

-Exit 하고 빠져나옴

  • 설치 완료 후
  • #sqlplus /nolog

  • 버전 9.2.0.4.0 으로 나온다면 설치 성공!!

     

 

  • Patchset 설치
  • P4547809_92080_LINUX.zip 압축을 푼다
  • Disk1 에선 ./runInstaller 실행

 

  • ORACLE_HOME Directory 설정 확인 후 Next

  • 아래와 같이 Patch Set 을 설정하고 Next

  • Summary 확인 후 Install 실행

  • Root 권한으로 스크립트 실행

 

 

  • Install 완료

 

  • Dbca 를 이용해서 데이터베이스를 생성

 

  • 데이터 베이스 생성 체크 후 Next

 

 

 

 

  • 생성할 데이터 베이스명을 적는다

 

  • Character sets Tab 을 선택 한 후 character sets 을 선택한다.
  • 이 때 .bash_profile 에 설정해 놓은 것과 동일하게 설정해 준다.

 

  • 생성될 DB 의 정보들을 확인 후 Install 시작

 

  • 만약 설치 시 다음과 같은 오류가 발생하고 DB 생성이 안된다면

  • 다음과 같이 123번 라인에 –native 를 추가하고 다시 실행하면 생성이 된다
  • 원인은 분석중…

  • SYS, SYSTEM 오라클 계정의 암호를 설정하고 완료

ORA-29701: unable to connect to Cluster Manager

 

- +ASM mount 할때 위의 오류가 발생 한다면 루트 계정에서 다음을 실행 시키면 됩니다.

root#] $ORACLE_HOME/bin/localconfig delete

root#] $ORACLE_HOME/bin/localconfig add

 

이제 오라클 계정으로 바꾼다음

oracle#]export ORACLE_SID=+ASM

oracle#]sqlplus / as sysdba

$startup 하시면 마운트 성공!!

 

 

- 그 다음

oracle#]export ORACLE_SID=testdb

oracle#]sqlplus / as sysdba

$startup

+ Recent posts