OEL 5. Oracle 11g R2 RAC_ASM 차범철 2012. 3. 7
목 목 차 차 Step 1. 리눅스설치 Step 2. 설치환경설정 Step 3. GRID 설치 Step 4. Oracle 엔진설치 Step 5. ASMCA Step 6. Database 생성 Step 7. 테스트
Step 1. 리눅스설치 Vmware workstation 세팅 OEL 5 설치
Vmware 세팅 - 새가상머신추가
Vmware 세팅 OEL 를선택
Vmware 세팅 설치경로는 RAC 밑에 rac1 으로차후 rac2 및 storage 생성
Vmware 세팅 메모리는 1500MB 시스템성능에따라선택
Vmware 세팅
Vmware 세팅
Vmware 세팅
Vmware 세팅 불필요하드웨어제거
Vmware 세팅 추가한어댑터설정은 Host-Only 선택 Private 망을위한 Network Adapter 추가
Vmware 세팅 하드디스크추가
Vmware 세팅
Vmware 세팅 원하는경로선택 /RAC/storage를생성차후생성할 rac2 부팅시경로를선택해야하는일이발생한다. 원하는디스크사이즈선택 Allocate all disk space now. 필수 Database 생성시에러방지싱글디스크선택
Vmware 세팅 SCSI 1:0 을설정
Vmware 세팅 디스크명 같은방식으로 /storage 에하드디스크총 6 개추가 크기 Device node 0cr_vote01 1g SCSI (1:0) ocr_vote02 1g SCSI (1:1) ocr_vote03 1g SCSI (1:2) asm01 5G SCSI (1:3) asm02 5G SCSI (1:4) asm03 5G SCSI (1:5)
Vmware 세팅 리눅스에추가한가상디스크를올리기위해 rac1.vmk를편집편집은메모장을이용합니다. 왜난없지? 하지마시고메모장을열어찾아서열어주시면됩니다.
Vmware 세팅 각각의위치에다음의문구추가후저장 disk.locking = "FALSE" disklib.datacachemaxsize = "0" scsi1.sharedbus = "virtual" scsi1:0.devicetype = "disk" scsi1:1.devicetype = "disk" scsi1:2.devicetype = "disk" scsi1:3.devicetype = "disk" scsi1:4.devicetype = "disk" scsi1:5.devicetype = "disk"
OEL 5 설치 OEL CD 1 번삽입
OEL 5 설치 Enter 치고넘어갑니다. Skip 선택
OEL 5 설치
OEL 5 설치 위에서추가한디스크를전부확인되니모두 YES
OEL 5 설치 파티션수동분할선택
OEL 5 설치 Mount Point 설정하고 Allow Drivers 는 sda 만체크 설정한내용이맞는지확인 파티션분할 / 5000 /boot 100 /var 1000 swap 3000 /home 1000 /u01 나머지
OEL 5 설치 Eth0, eth1 모두체크 Hostname 은 rac1 으로설정
OEL 5 설치 루트계정암호입력
OEL 5 설치 패키지선택확인
OEL 5 설치 패키지선택확인 Development 전부체크
OEL 5 설치 Server Configuration Tools 선택 System tools 선택 System tools 의옵션패키지를추가선택
OEL 5 설치 System tools 의옵션패키지를추가선택
OEL 5 설치 추가언어패키지 Korean 선택
OEL 5 설치
OEL 5 설치
OEL 5 설치 방화벽은사용안함
OEL 5 설치
OEL 5 설치
OEL 5 설치
OEL 5 설치 OEL 설치완료
Step 2. 설치환경설정 rac1 node 설정 rac2 node 설정
Rac 1 node 설정 eth0 편집설정 # ifconfig //IP확인 # netstat nr //gatewqy 확인 # neat // 네트워크설정
Rac 1 node 설정 eth1 편집설정
Rac 1 node 설정 # vi /etc/hosts DNS 주소변경및호스트네임확인 빨간부분의 rac1 삭제 Public, private, vip, grid scan 을다음과같이입력
Rac 1 node 설정 네트워크설정후재시작 네트워크설정후재시작 # /etc/init.d/network restart Ping Test Ping Test # ping 168.126.63.1 불필요한서비스 Off 하기 불필요한서비스 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 isdn off # chkconfig --level 123456 iptables off
Rac 1 node 설정 # vi /etc/sysctl.conf # vi /etc/security/limits.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 shmmax, shmall 설정은이미 OEL 5 버전에설정되어있음. 변경하지않아도됨 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 nofile: open file descriptor 의최대수 nproc: 개별사용자가사용가능한프로세스의최대수
Rac 1 node 설정 # vi /etc/pam.d/login Session required pam_limits.so # vi /etc/modprobe.conf options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180 # modprobe -v hangcheck-timer # vi /etc/profile if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi 커널기반타이머를사용시스템태스크스케줄러에발생하는딜레이를정기적으로점검하는방식으로시스템상태확인 # vi /etc/rc.local /sbin/modprobe hangcheck-timer rdate -s 203.248.240.140
Rac 1 node 설정 필수 RPM 검사 필수 RPM검사 # rpm qa RPM명 binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf- devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixodbc unixodbc-devel 검사를해보고없으면설치를필히해줘야합니다. NTP Service 파일설정 양쪽노드간 TIME sync 를반드시필요 # vi /etc/sysconfig/ntpd OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid 빨간색으로표시한부분 x 만추가하면된다. # service ntpd restart Shutting down ntpd: [FAILED] ntpd: Synchronizing with time server: [ OK ] Starting ntpd: [ OK ]
Rac 1 node 설정 User, group 생성, oracle passwd 설정 # groupadd g 1000 oinstall # groupadd g 1200 dba # useradd u 1200 g oinstall G dba oracle # passwd oracle 설치디렉토리생성 (Grid, oracle database SW 설치용 ) # mkdir -p /u01/app/orainventory # mkdir -p /u01/app/11.2.0/grid # mkdir -p /u01/app/oracle # mkdir /u01/app/oracle/cfgtoollogs # mkdir -p /u01/app/oracle/product/11.2.0/db_1 # chown R oracle.oinstall /u01 # chmod R 755 /u01
Rac 1 node 설정 # vi.bash_profile export GRID_HOME=/u01/app/11.2.0/grid export PATH=$PATH:$HOME/bin:$GRID_HOME/bin # su oracle $ vi.bash_profile export TMP=/tmp export TMPDIR=$TMP export ORACLE_HOSTNAME=rac1 export ORACLE_UNQNAME=RAC export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export GRID_HOME=/u01/app/11.2.0/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
Rac 1 node 설정 루트계정으로추가한 6 개디스크파티션 # fdisk /dev/sdb # fdisk /dev/sdc # fdisk /dev/sdd # fdisk /dev/sde # fdisk /dev/sdf # fdisk /dev/sdg [root@rac1 ~]# fdisk /dev/sdb Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-130, default 1): 엔터 Using default value 1 Last cylinder or +size or +sizem or +sizek (1-130, default 130): 엔터 Using default value 130 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 이와같은방식으로 6 개전부디스크파티션
Rac 1 node 설정 ASM 환경설정 # oracleasm configure I 마운드포인트생성 : 경로생김 # oracleasm init 마운트포인트생성은안해도되지만 /dev/oracleasm/ 경로밑에디스크가생성됨 공유디스크생성 # oracleasm createdisk ocr_vote01 /dev/sdb1 # oracleasm createdisk ocr_vote02 /dev/sdc1 # oracleasm createdisk ocr_vote01 /dev/sdd1 # oracleasm createdisk asm01 /dev/sde1 # oracleasm createdisk asm02 /dev/sdf1 # oracleasm createdisk asm03 /dev/sdg1 여기까지 rac 1 node 세팅완료리눅스종료 (init 0) 후 rac 2 node 세팅
Rac 1 node 설정 스캔작업 # oracleasm scandisks 여기까지 rac 1 node 세팅완료리눅스종료 (init 0) 후 rac 2 node 세팅 생성리스트확인 # oracleasm listdisks # chown R oracle.oinstall /dev/oracleasm/
Rac 2 node 설정 Rac1 이두개가된다. 이름을바꿔주기위해에디트버츄얼머신을눌러준다. RAC/rac2 폴더생성후 rac1.vmdk, rac1.vmx 복사해준후가상머신을추가한다.
Rac 2 node 설정 Rac2 로부팅 옵션탭을누르고머신이름을 rac2 로수정하자.
Rac 2 node 설정 Oracle 10g 에서는네트워크를삭제거해줘야부팅이되었는데그냥부팅된다. 이렇게해도설정가능하다.
Rac 2 node 설정 삭제해준다. 두개전부 터미널열고 # neat 네크워크카드 4 개존재 더블클릭해서정보를보면 Node 1 의설정값을가진다. 맨앞의체크부분을해지한다.
Rac 2 node 설정 /etc/hosts 설정한 Rac2 IP 를 Eth0 과 eth1 에각각입력한다.
Rac 2 node 설정 Hostname 변경후 Rac2 네트워크재시작 Hostname 도 rac2 로수정 DNS 주소도수정해준다.
Rac 2 node 설정 # su oracle $ vi.bash_profile export ORACLE_HOSTNAME = rac2 export ORACLE_SID = racdb2 $ exit # reboot ORACLE_HOSTNAME,Oracle_SID 수정후재부팅 Rac1 node 도부팅한다. 부팅완료되면 rac2 에서 rac1 핑테스트
Step 3. GRID 설치 설치전작업 GRID 설치
설치전작업 Winscp 를이용설치파일준비 ( 복사, 압축풀기 ) Root 권한으로접속해서파일을 /u01 로복사하자 p10098816_112020_linux_1of7.zip p10098816_112020_linux_2of7.zip p10098816_112020_linux_3of7.zip $ cd /u01 $ unzip p10098816_112020_linux_1of7.zip $ unzip p10098816_112020_linux_2of7.zip $ unzip p10098816_112020_linux_3of7.zip # chown R oracle.oinstall /u01 RPM 설치 rac 1, 2 에복사해서모두설치 $ su # cd /u01/grid/rpm # rpm -ivh cvuqdisk-1.0.9-1.rpm
GRID SW 설치 $ cd /u01/grid $./runinstaller Skip software updates 선택
GRID SW 설치 Install and configure oracle Grid infrastructure Advanced installation
GRID SW 설치 Scan name 은 /etc/hosts 에정해준이름으로입력
GRID SW 설치 Hostname : rac2 Virtual name : rac2-vip Ok 입력
GRID SW 설치 SSH Connectivity 클릭 Oracle 암호입력후 setup /etc/hosts 파일설정이이상없으면성공할것입니다.
GRID SW 설치 Oracle ASM 선택 Eth0 public Eth1 private
GRID SW 설치 ASM 으로생성한디스크가밑에잘나타나면상관없고조회가안될시패스를지정해줘서찾아주면된다. Disk group OCR_VOTE 입력 Normal 선택 1 기가디스크 3 개선택
GRID SW 설치 다른패스워드와중복때문 Yes 클릭 패스워드입력화면
GRID SW 설치 Do not use intelligent IPM Oinstall 선택
GRID SW 설치 만들어준설치경로가맞는지확인 인벤토리위치설정
GRID SW 설치 앞에서 NTP 타임동기화설정이안되면밑에 3 번째에러발생무시하고설치는되지만 oracle dataabase 소프트웨어설치시에러발생한다. 설정법은앞에있다. Node1, 2 전부확인
GRID SW 설치
GRID SW 설치 Root 권한으로스크립트실행 Rac1 node - orainstroot.sh Rac2 node - orainstroot.sh Rac1 node - root.sh Rac2 node - root.sh 순으로실행. ㅍ 중요한건하나의스크립트가끝나기전에절대동시에실행하면안된다.
GRID SW 설치 OS Package 로인한에러무시하고고고! GRID SW 설치완료
GRID SW 설치 만들어준설치경로가맞는지확인 인벤토리위치설정
GRID SW 설치점검 4 개의항목은 ora.gsd ora.gsd.type OFFLINE ora.oc4j ora.oc4j.type OFFLINE ora.rac1.gsd application OFFLINE ora.rac2.gsd application OFFLINE Global Service Daemon(GSD) 가동
GRID SW 설치점검 Oc4j 리소스를오프라인시킨후삭제하자
GRID SW 설치점검 OCR_VOTE DISK 확인
Step 4. Oracle 엔진 설치 Oracle 엔진설치
Oracle 엔진설치 $ cd /u01/database $./runinstaller
Oracle 엔진설치
Oracle 엔진설치
Oracle 엔진설치 경로확인
Oracle 엔진설치
Oracle 엔진설치
Oracle 엔진설치 오라클엔진설치완료각노드별 IP 구성정보확인 $ /u01/11.2.0/grid/bin/oifcfg getif Root 계정으로다음스크립트를 rac1, 2 순으로모두실행
Step 5. ASMCA ASM Configuration Assistant ASMCA
ASM 구성 (ASMCA) $ asmca ASM 을 normal 구성하기위해서는최소한두개이상의디스크가있어야한다. 남은하난플래쉬용으로사용
ASM 구성 (ASMCA)
ASM 구성 (ASMCA) ASM 구성을확인하기위해서했지만남은녀석은어쩔수없이 external 로하나로만들어줬다.
ASM 구성 (ASMCA) ASM 구성이완료되서확인 DB 설치는 ORDATA 플래쉬백은 ORAFLASH 에.
ASM 구성 (ASMCA) 2 개의 ASM 데이터가모두 ONLINE 되어있어야한다.
Step 7. Database 생성 Database 생성 ( dbca)
Database 생성 $ dbca
Database 생성 ORACLE_SID 와접두어가같게입력
Database 생성 Enterprise Manager 해제
Database 생성 Database 를위한디스크그룹선택
Database 생성 Flashback 을위한디스크그룹선택
Database 생성 전부체크해제
Database 생성 체크해제 값을 1 로설정하면다른탭을눌러보고돌아오면값이설정된다.
Database 생성
Database 생성
Database 생성
Database 생성 Database 확인 호스트가 rac2 로나오면전환해주면된다. 다음테스트에서실행
Step 8. RAC TEST 설치한 RAC TEST
설치한 Rac TEST $ crs_stop f ora.racdb.db $ crs_start f ora.racdb.db 조회했을시재시작하면 Host 가 RAC1 으로바뀐다.
설치한 Rac TEST Racdb1 에 oltp-service, racdb2 에는 fail-over 용생성 $ srvctl add service d racdb s oltp_service r racdb1 a racdb2 $ srvctl status service -d racdb -s oltp_service Service oltp_service is running on instance(s) racdb1 $ srvctl start service d RAC s oltp_service Racdb1 파라미터조회 Racdb1 강제종료 : 비정상종료
설치한 Rac TEST Racdb2 파라미터조회 Racdb1 강제종료됨에따라캐시퓨전발생
설치한 Rac TEST Datafile, control file, redo log file 조회 리스너상태조회 Oltp_service Instance 보임