I. 개요
1. 사용 Software
제품명 | 버전 | 아키텍쳐 | 배포 사이트 |
---|---|---|---|
VirtualBox | 5.x | 호스트 환경에 따름 | https://www.virtualbox.org |
Oracle Enterprise Linux | 6 (Update 8 이상) | x86 64bit | |
Clusterware, Database | 11.2.0.4 | x86 64bit | https://support.oracle.com (My Oracle Support 권한 필요) |
Oracle Database 12.1.0.2은 https://support.oracle.com에서 받을 수 있습니다.
2. 구성 계획
A) 서버
VM | Host Name | Memory | Disk | Net Adapter 1 | Net Adapter 2 | 구성 방법 | 비고 |
---|---|---|---|---|---|---|---|
RAC1 | rac1 | 2048MB | 30GB | 브리지 어댑터 | 호스트 전용 어댑터 | 리눅스 설치 | dnsmasq를 사용하여 DNS 구성 |
RAC2 | rac2 | 2048MB | 30GB | 브리지 어댑터 | 호스트 전용 어댑터 | RAC1 복제 | dnsmasq를 사용하여 DNS 구성 |
리눅스 기반의 2 node RAC로 구성합니다.
B) 스토리지
파일 이름 | 용량 | 타입 | 용도 |
---|---|---|---|
RAWDEVICE.vdi | 20GB | Fixed / Shareable | Raw Device 분할 할당 |
실습의 편의를 위해 하나의 가상 디스크를 VM에 등록하고 이를 분할하여 Raw Device로 할당하는 방식으로 구성합니다.
C) 네트워크
VM | Public IP | Private IP | Virtual IP | Netmask | Gateway | DNS Server | SCAN IP |
---|---|---|---|---|---|---|---|
RAC1 | 10.0.1.101 | 10.0.5.101 | 10.0.1.111 | 255.255.255.0 | 10.0.1.1 | 10.0.1.101 | 10.0.1.110 |
RAC2 | 10.0.1.102 | 10.0.5.102 | 10.0.1.112 | 255.255.255.0 | 10.0.1.1 | 10.0.1.102 |
Netmask의 경우 Public과 Private 모두 24bit(255.255.255.0)을 사용합니다.
인터넷 공유기 또는 Gateway의 IP에 맞춰 Public IP와 Virtual IP를 설정하기 바랍니다.
만약 공유기 IP가 192.168.0.1일 경우 Public IP와 VIP는 192.168.0.XXX로, Gateway는 192.168.0.1로 지정해야 합니다.
실습을 위해 별도의 DNS 서버 구성 없이 dnsmasq를 사용하여 RAC를 구축할 계획이므로 DNS는 자신의 IP로 지정합니다.
3. 호스트 환경
원활한 실습을 위해 64비트 운영체제에 16GB 이상의 메모리가 장착된 환경에서 작업하는 것을 권합니다.
디스크 I/O에 의한 지연을 최소화하기 위해 호스트의 OS가 설치되지 않은 별도의 내장 디스크를 사용하거나 SSD의 사용을 권합니다.
ESATA 또는 USB 3.0 이상의 빠른 속도를 보장하는 외장 디스크를 사용하는 것도 방법일 수 있습니다만 지속적인 연결이 보장되어야 합니다.
II. 리눅스 (OEL 6) 설치
III. OS 환경 설정
1. 설치 내역 확인
A) OS 버전 확인
cat /etc/oracle-release cat /etc/redhat-release lsb_release -id uname -r
[root@rac1 ~]# cat /etc/oracle-release Oracle Linux Server release 6.8 [root@rac1 ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.8 (Santiago) [root@rac1 ~]# lsb_release -id Distributor ID: OracleServer Description: Oracle Linux Server release 6.8 [root@rac1 ~]# uname -r 4.1.12-37.4.1.el6uek.x86_64
설치된 리눅스의 버전 정보를 확인합니다.
설치된 버전에 따라 출력되는 메시지는 다를 수 있습니다.
B) OS 패키지 확인
rpm -q binutils-* rpm -q compat-libcap1-* rpm -q compat-libstdc++-33-* rpm -q gcc-* rpm -q gcc-c++-* rpm -q glibc-* rpm -q glibc-devel-* rpm -q ksh rpm -q libgcc-* rpm -q libstdc++-* rpm -q libstdc++-devel-* rpm -q libaio-* rpm -q libaio-devel-* rpm -q libXext-* rpm -q libXtst-* rpm -q libX11-* rpm -q libXau-* rpm -q libxcb-* rpm -q libXi-* rpm -q make-* rpm -q sysstat-*
[root@rac1 ~]# rpm -q binutils-* binutils-2.20.51.0.2-5.44.el6.x86_64 [root@rac1 ~]# rpm -q compat-libcap1-* compat-libcap1-1.10-1.x86_64 [root@rac1 ~]# rpm -q compat-libstdc++-33-* compat-libstdc++-33-3.2.3-69.el6.x86_64 [root@rac1 ~]# rpm -q gcc-* gcc-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q gcc-c++-* gcc-c++-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q glibc-* glibc-2.12-1.192.el6.x86_64 glibc-2.12-1.192.el6.i686 [root@rac1 ~]# rpm -q glibc-devel-* glibc-devel-2.12-1.192.el6.x86_64 [root@rac1 ~]# rpm -q ksh ksh-20120801-33.el6.x86_64 [root@rac1 ~]# rpm -q libgcc-* libgcc-4.4.7-17.el6.x86_64 libgcc-4.4.7-17.el6.i686 [root@rac1 ~]# rpm -q libstdc++-* libstdc++-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q libstdc++-devel-* libstdc++-devel-4.4.7-17.el6.x86_64 [root@rac1 ~]# rpm -q libaio-* libaio-0.3.107-10.el6.x86_64 [root@rac1 ~]# rpm -q libaio-devel-* libaio-devel-0.3.107-10.el6.x86_64 [root@rac1 ~]# rpm -q libXext-* libXext-1.3.3-1.el6.x86_64 [root@rac1 ~]# rpm -q libXtst-* libXtst-1.2.2-2.1.el6.x86_64 [root@rac1 ~]# rpm -q libX11-* libX11-1.6.3-2.el6.x86_64 [root@rac1 ~]# rpm -q libXau-* libXau-1.0.6-4.el6.x86_64 [root@rac1 ~]# rpm -q libxcb-* libxcb-1.11-2.el6.x86_64 [root@rac1 ~]# rpm -q libXi-* libXi-1.7.4-1.el6.x86_64 [root@rac1 ~]# rpm -q make-* make-3.81-23.el6.x86_64 [root@rac1 ~]# rpm -q sysstat-* sysstat-9.0.4-31.el6.x86_64
오라클 소프트웨어 설치를 위해 필요한 OS 패키지가 모두 설치되었는지 확인합니다.
2. OS 설정 변경
A) 호스트 파일 수정
### Public 10.0.1.101 rac1 10.0.1.102 rac2 ### Private 10.0.5.101 rac1-priv 10.0.5.102 rac2-priv ### Virtual 10.0.1.111 rac1-vip 10.0.1.112 rac2-vip ### SCAN 10.0.1.110 rac-scan
/etc/hosts 파일에 서버 정보를 추가합니다.
오라클 소프트웨어 설치를 정상적으로 진행하기 위해 정확한 정보를 입력해야 합니다.
B) 사전 설정 패키지 설치
rpm -ivh oracle-rdbms-server-11gR2-preinstall-*.el6.x86_64.rpm
[root@rac1 ~]# cd /media/OL6.8\ x86_64\ Disc\ 1\ 20160518/Packages/ [root@rac1 Packages]# rpm -ivh oracle-rdbms-server-11gR2-preinstall-1.0-13.el6.x86_64.rpm 경고: oracle-rdbms-server-11gR2-preinstall-1.0-13.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 준비 중... ########################################### [100%] 1:oracle-rdbms-server-11g########################################### [100%]
11g R2 구성을 대비한 패키지를 설치합니다.
패키지 파일은 리눅스 설치 이미지를 이용하거나 http://yum.oracle.com 에서 다운로드할 수 있습니다.
C) tmpfs 수정
tmpfs /dev/shm tmpfs size=5g 0 0
mount -o remount /dev/shm
오라클의 MEMORY_TARGET 파라미터를 사용하기 위해서 tmpfs를 변경해야 합니다.
기존에 설정된 tmpfs 값은 #로 주석 처리하거나 삭제합니다.
remount하여 바로 적용시킵니다.
D) 시스템 변수 수정
kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65535 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576
커널 변수를 수정하는 작업입니다.
oracle-rdbms-server-11gR2-preinstall 패키지가 설치되었다면 이미 반영된 내용이므로 생략해도 됩니다.
하지만 해당 패키지를 따로 설치하지 않은 상태에서 오라클 소프트웨어를 설치하려면 왼쪽의 내용을 /etc/sysctl.conf에 추가해야 합니다.
E) DNSMASQ 서비스 기동
service dnsmasq start chkconfig dnsmasq on
[root@rac1 ~]# service dnsmasq start Starting dnsmasq: [ OK ]
별도의 DNS 서비스 없이 SCAN을 DNS에 등록된 것처럼 처리하기 위해 DNSMASQ 프로세스를 활성화합니다.
F) 미사용 프로세스 중지
chkconfig --level 123456 xinetd off chkconfig --level 123456 cups off chkconfig --level 123456 smartd off chkconfig --level 123456 iptables off chkconfig --level 123456 ip6tables off chkconfig --level 123456 bluetooth off
추가적인 리소스 확보를 위해 기본적으로 실행중인 불필요한 OS 프로그램을 off 시킵니다.
G) CTSS 사용을 위한 NTP 중지
mv /etc/sysconfig/ntpd /etc/sysconfig/ntpd.original mv /etc/ntp /etc/ntp.original mv /etc/ntp.conf /etc/ntp.conf.original
실습 환경에서는 CTSS를 NTP 대신 사용할 것이므로 NTP 서비스를 중지하고 관련 파일을 삭제해야 합니다.
NTP 서비스가 기동중이거나 관련 파일이 있는 경우 CTSS는 observer mode로만 기동되므로 정리가 필요합니다.
H) SELINUX 설정 변경
SELINUX=permissive
Selinux 모드를 permissive로 변경합니다.
I) User Processes 설정 변경
# Change this * soft nproc 1024 # To this * - nproc 16384
프로세스 한도 제한을 오라클 권고사항에 맞게 1024에서 16384로 수정합니다.
3. 그룹 및 사용자 설정
A) 그룹 & 사용자 설정 변경
# groupadd oinstall # groupadd dba groupadd oper groupadd asmdba groupadd asmoper groupadd asmadmin usermod -g oinstall -G dba,oper oracle useradd -g oinstall -G dba,asmdba,asmoper,asmadmin grid passwd oracle passwd grid
[root@rac1 ~]# groupadd oper [root@rac1 ~]# groupadd asmdba [root@rac1 ~]# groupadd asmoper [root@rac1 ~]# groupadd asmadmin [root@rac1 ~]# usermod -g oinstall -G dba,oper,vboxsf oracle [root@rac1 ~]# useradd -g oinstall -G dba,asmdba,asmoper,asmadmin,vboxsf grid [root@rac1 ~]# passwd oracle oracle 사용자의 비밀 번호 변경 중 새 암호: 잘못된 암호: 사전에 있는 단어를 기반으로 합니다 잘못된 암호: 너무 간단함 새 암호 재입력: passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다. [root@rac1 ~]# passwd grid grid 사용자의 비밀 번호 변경 중 새 암호: 잘못된 암호: 사전에 있는 단어를 기반으로 합니다 잘못된 암호: 너무 간단함 새 암호 재입력: passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
설치를 진행할 사용자 계정과 그룹을 생성 또는 추가합니다.
oracle-rdbms-server-11gR2-preinstall 패키지가 설치되었다면 oracle 유저와 oinstall, dba 그룹은 이미 생성되어 있습니다.
vboxsf 그룹은 VirtualBox의 Guest Addition을 사용하기 위한 그룹으로, 실제 운영 환경에서 Guest Addition을 사용하지 않는다면 추가하지 않습니다.
passwd 명령어로 각 계정의 암호를 지정해주면 됩니다.
B) 사용자별 프로세스 제한 변경
grid hard nproc 16384 grid hard nofile 65536
리소스 제한을 위한 사용자별 설정값을 입력합니다.
오라클을 설치하는 OS 계정에 맞게 oracle 또는 grid 유저별로 제한값을 입력합니다
C) 설치 경로 생성 및 권한 부여
mkdir -p /u01/app/oracle/product chown -R grid:oinstall /u01 chmod -R 770 /u01
오라클 소프트웨어 설치를 위한 경로를 생성하고, 해당 경로에 대한 권한과 소유권을 수정합니다.
D) root 유저 환경 설정
export GRID_HOME=/u01/app/11.2.0/grid export PATH=$GRID_HOME/bin:$PATH
E) grid 유저 환경 설정
export TMP=/tmp export TMPDIR=$TMP export EDITOR=vi export ORACLE_HOSTNAME=rac1 # rac2 => 2번 노드 export ORACLE_BASE=/u01/app/oracle export GRID_HOME=/u01/app/11.2.0/grid export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_HOME=$GRID_HOME export ORACLE_SID=+ASM1 # +ASM2 => 2번 노드 export ORACLE_TERM=xterm export BASE_PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$BASE_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export PS1='[\u@$ORACLE_SID \W]$ '
grid 계정으로 접속한 후에 .bash_profile을 수정합니다.
F) oracle 유저 환경 설정
export TMP=/tmp export TMPDIR=$TMP export EDITOR=vi export ORACLE_HOSTNAME=rac1 # rac2 => 2번 노드 export ORACLE_UNQNAME=racdb export ORACLE_BASE=/u01/app/oracle export GRID_HOME=/u01/app/11.2.0/grid export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_HOME=$DB_HOME export ORACLE_SID=racdb1 # racdb2 => 2번 노드 export ORACLE_TERM=xterm export BASE_PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export NLS_LANG=AMERICAN_KOREA.AL32UTF8 export PS1='[\u@$ORACLE_SID \W]$ '
마찬가지로 oracle 계정으로 접속하여 .bash_profile을 수정합니다.
{}
IV. 공유 스토리지 설정
V. 2번 노드 설정
VI. Grid 설치
1. Grid 설치 사전 설정
cd <설치 파일 압축해제 경로>/grid/rpm/ rpm -ivh cvuqdisk-1.0.9-1.rpm scp cvuqdisk-1.0.9-1.rpm root@[HOST_NAME2]:/tmp ssh root@[HOST_NAME2] cd /tmp rpm -ivh cvuqdisk-1.0.9-1.rpm
[root@rac1 ~]# cd /media/sf_oracle/grid/rpm [root@rac1 rpm]# rpm -ivh cvuqdisk-1.0.9-1.rpm 준비 중... ########################################### [100%] Using default group oinstall to install package 1:cvuqdisk ########################################### [100%] [root@rac1 rpm]# scp cvuqdisk-1.0.9-1.rpm root@rac2:/tmp The authenticity of host 'rac2 (10.0.1.102)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac2,10.0.1.102' (RSA) to the list of known hosts. root@rac2's password: cvuqdisk-1.0.9-1.rpm 100% 8288 8.1KB/s 00:00 [root@rac1 rpm]# ssh root@rac2 root@rac2's password: Last login: Fri Apr 5 18:11:42 2019 from 10.0.1.1 [root@rac2 ~]# cd /tmp [root@rac2 tmp]# rpm -ivh cvuqdisk-1.0.9-1.rpm 준비 중... ########################################### [100%] Using default group oinstall to install package 1:cvuqdisk ########################################### [100%]
cd <설치 파일 압축해제 경로>/grid/sshsetup ./sshUserSetup.sh -user [USER_NAME] -hosts "[HOST_NAME1] [HOST_NAME2]" -noPromptPassphrase -advanced
[grid@+ASM1 ~]$ cd /media/sf_oracle/grid/sshsetup [grid@+ASM1 sshsetup]$ ./sshUserSetup.sh -user grid -hosts "rac1 rac2" -noPromptPassphrase -advanced The output of this script is also logged into /tmp/sshUserSetup_2019-04-05-18-29-24.log Hosts are rac1 rac2 user is grid Platform:- Linux Checking if the remote hosts are reachable PING rac1 (10.0.1.101) 56(84) bytes of data. 64 bytes from rac1 (10.0.1.101): icmp_seq=1 ttl=64 time=0.027 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=2 ttl=64 time=0.060 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=3 ttl=64 time=0.044 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=4 ttl=64 time=0.041 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=5 ttl=64 time=0.047 ms --- rac1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4002ms rtt min/avg/max/mdev = 0.027/0.043/0.060/0.013 ms PING rac2 (10.0.1.102) 56(84) bytes of data. 64 bytes from rac2 (10.0.1.102): icmp_seq=1 ttl=64 time=0.392 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=2 ttl=64 time=0.443 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=3 ttl=64 time=0.483 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=4 ttl=64 time=0.439 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=5 ttl=64 time=0.893 ms --- rac2 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 0.392/0.530/0.893/0.183 ms Remote host reachability check succeeded. The following hosts are reachable: rac1 rac2. The following hosts are not reachable: . All hosts are reachable. Proceeding further... firsthost rac1 numhosts 2 The script will setup SSH connectivity from the host rac1 to all the remote hosts. After the script is executed, the user can use SSH to run commands on the remote hosts or copy files between this host rac1 and the remote hosts without being prompted for passwords or confirmations. NOTE 1: As part of the setup procedure, this script will use ssh and scp to copy files between the local host and the remote hosts. Since the script does not store passwords, you may be prompted for the passwords during the execution of the script whenever ssh or scp is invoked. NOTE 2: AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEDGES TO THESE directories. Do you want to continue and let the script make the above mentioned changes (yes/no)? yes The user chose yes User chose to skip passphrase related questions. Creating .ssh directory on local host, if not present already Creating authorized_keys file on local host Changing permissions on authorized_keys to 644 on local host Creating known_hosts file on local host Changing permissions on known_hosts to 644 on local host Creating config file on local host If a config file exists already at /home/grid/.ssh/config, it would be backed up to /home/grid/.ssh/config.backup. Removing old private/public keys on local host Running SSH keygen on local host with empty passphrase Generating public/private rsa key pair. Your identification has been saved in /home/grid/.ssh/id_rsa. Your public key has been saved in /home/grid/.ssh/id_rsa.pub. The key fingerprint is: 15:a9:b4:5a:72:7d:bd:bc:4a:5f:89:a7:55:df:3d:07 grid@rac1 The key's randomart image is: +--[ RSA 1024]----+ | .. | | . .. | | . +. . | | . =.. . . | | =S . .E..| | . +.*| | .. **| | . .=.o| | .o. | +-----------------+ Creating .ssh directory and setting permissions on remote host rac1 THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR grid. THIS IS AN SSH REQUIREMENT. The script would create ~grid/.ssh/config file on remote host rac1. If a config file exists already at ~grid/.ssh/config, it would be backed up to ~grid/.ssh/config.backup. The user may be prompted for a password here since the script would be running SSH on host rac1. Warning: Permanently added 'rac1,10.0.1.101' (RSA) to the list of known hosts. grid@rac1's password: Done with creating .ssh directory and setting permissions on remote host rac1. Creating .ssh directory and setting permissions on remote host rac2 THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR grid. THIS IS AN SSH REQUIREMENT. The script would create ~grid/.ssh/config file on remote host rac2. If a config file exists already at ~grid/.ssh/config, it would be backed up to ~grid/.ssh/config.backup. The user may be prompted for a password here since the script would be running SSH on host rac2. Warning: Permanently added 'rac2,10.0.1.102' (RSA) to the list of known hosts. grid@rac2's password: Done with creating .ssh directory and setting permissions on remote host rac2. Copying local host public key to the remote host rac1 The user may be prompted for a password or passphrase here since the script would be using SCP for host rac1. grid@rac1's password: Done copying local host public key to the remote host rac1 Copying local host public key to the remote host rac2 The user may be prompted for a password or passphrase here since the script would be using SCP for host rac2. grid@rac2's password: Done copying local host public key to the remote host rac2 Creating keys on remote host rac1 if they do not exist already. This is required to setup SSH on host rac1. Creating keys on remote host rac2 if they do not exist already. This is required to setup SSH on host rac2. Generating public/private rsa key pair. Your identification has been saved in .ssh/id_rsa. Your public key has been saved in .ssh/id_rsa.pub. The key fingerprint is: 6a:5c:65:a6:ec:39:18:91:2e:3c:0e:33:b2:ec:1d:e5 grid@rac2 The key's randomart image is: +--[ RSA 1024]----+ | | | . | | o + | | . . o = | |. + +.o S | |.o =o+ * . | |.. ..E= + | |. . .. . | | . . | +-----------------+ Updating authorized_keys file on remote host rac1 Updating known_hosts file on remote host rac1 Updating authorized_keys file on remote host rac2 Updating known_hosts file on remote host rac2 cat: /home/grid/.ssh/known_hosts.tmp: 그런 파일이나 디렉터리가 없습니다 cat: /home/grid/.ssh/authorized_keys.tmp: 그런 파일이나 디렉터리가 없습니다 SSH setup is complete. ------------------------------------------------------------------------ Verifying SSH setup =================== The script will now run the date command on the remote nodes using ssh to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP, THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR PASSWORDS. If you see any output other than date or are prompted for the password, ssh is not setup correctly and you will need to resolve the issue and set up ssh again. The possible causes for failure could be: 1. The server settings in /etc/ssh/sshd_config file do not allow ssh for user grid. 2. The server may have disabled public key based authentication. 3. The client public key on the server may be outdated. 4. ~grid or ~grid/.ssh on the remote host may not be owned by grid. 5. User may not have passed -shared option for shared remote users or may be passing the -shared option for non-shared remote users. 6. If there is output in addition to the date, but no password is asked, it may be a security alert shown as part of company policy. Append the additional text to the <OMS HOME>/sysman/prov/resources/ignoreMessages.txt file. ------------------------------------------------------------------------ --rac1:-- Running /usr/bin/ssh -x -l grid rac1 date to verify SSH connectivity has been setup from local host to rac1. IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR. 2019. 04. 05. (금) 18:29:47 KST ------------------------------------------------------------------------ --rac2:-- Running /usr/bin/ssh -x -l grid rac2 date to verify SSH connectivity has been setup from local host to rac2. IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR. 2019. 04. 05. (금) 18:29:47 KST ------------------------------------------------------------------------ ------------------------------------------------------------------------ Verifying SSH connectivity has been setup from rac1 to rac1 IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. bash: -c: line 0: unexpected EOF while looking for matching `"' bash: -c: line 1: syntax error: unexpected end of file ------------------------------------------------------------------------ ------------------------------------------------------------------------ Verifying SSH connectivity has been setup from rac1 to rac2 IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. bash: -c: line 0: unexpected EOF while looking for matching `"' bash: -c: line 1: syntax error: unexpected end of file ------------------------------------------------------------------------ -Verification from complete- SSH verification complete.
ssh [HOST_NAME1] date ssh [HOST_NAME2] date ssh [PRIVATE_NAME1] date ssh [PRIVATE_NAME2]-priv date
[grid@+ASM1 ~]$ ssh rac1 date 2019. 04. 05. (금) 18:31:12 KST [grid@+ASM1 ~]$ ssh rac2 date 2019. 04. 05. (금) 18:31:15 KST [grid@+ASM1 ~]$ ssh rac1-priv date The authenticity of host 'rac1-priv (10.0.5.101)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac1-priv,10.0.5.101' (RSA) to the list of known hosts. 2019. 04. 05. (금) 18:31:22 KST [grid@+ASM1 ~]$ ssh rac2-priv date The authenticity of host 'rac2-priv (10.0.5.102)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac2-priv,10.0.5.102' (RSA) to the list of known hosts. 2019. 04. 05. (금) 18:31:27 KST
[grid@+ASM2 ~]$ ssh rac1 date 2019. 04. 05. (금) 18:31:30 KST [grid@+ASM2 ~]$ ssh rac2 date 2019. 04. 05. (금) 18:31:33 KST [grid@+ASM2 ~]$ ssh rac1-priv date The authenticity of host 'rac1-priv (10.0.5.101)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac1-priv,10.0.5.101' (RSA) to the list of known hosts. 2019. 04. 05. (금) 18:31:40 KST [grid@+ASM2 ~]$ ssh rac2-priv date The authenticity of host 'rac2-priv (10.0.5.102)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac2-priv,10.0.5.102' (RSA) to the list of known hosts. 2019. 04. 05. (금) 18:31:45 KST
mkdir -p /u01/app/oraInventory chmod -R 775 /u01/app/oraInventory
[grid@+ASM1 ~]$ mkdir -p /u01/app/oraInventory [grid@+ASM1 ~]$ chmod -R 775 /u01/app/oraInventory [grid@+ASM1 ~]$ ls -ltra /u01/app/oraInventory 합계 8 drwxrwxr-x. 2 grid oinstall 4096 2019-04-05 18:33 . drwxrwx---. 5 grid oinstall 4096 2019-04-05 18:33 ..
[grid@+ASM2 ~]$ mkdir -p /u01/app/oraInventory [grid@+ASM2 ~]$ chmod -R 775 /u01/app/oraInventory [grid@+ASM2 ~]$ ls -ltra /u01/app/oraInventory 합계 8 drwxrwx---. 5 grid oinstall 4096 2019-04-05 18:33 .. drwxrwxr-x. 2 grid oinstall 4096 2019-04-05 18:33 .
2. 설치 전 검증
cd <설치 파일 압축해제 경로>/grid ./runcluvfy.sh stage -pre crsinst -n [HOST_NAME1],[HOST_NAME2] -fixup -verbose
[grid@+ASM1 ~]$ cd /media/sf_oracle/grid [grid@+ASM1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -fixup -verbose 클러스터 서비스 설정에 대한 사전 확인 수행 노드 연결 가능성을 검사하는 중... 검사: "rac1" 노드에서의 노드 연결 가능성 대상 노드 연결 가능? ------------------------------------ ------------------------ rac2 예 rac1 예 결과: "rac1" 노드에서 노드 연결 가능성 검사를 성공했습니다. 사용자 equivalence를 검사하는 중... 검사: 사용자 "grid"에 대한 사용자 equivalence 노드 이름 상태 ------------------------------------ ------------------------ rac2 성공 rac1 성공 결과: 사용자 "grid"에 대한 사용자 equivalence 검사를 성공했습니다. 노드 연결을 검사하는 중... 호스트 구성 파일 확인 중... 노드 이름 상태 ------------------------------------ ------------------------ rac2 성공 rac1 성공 호스트 구성 파일 확인을 성공했습니다. "rac2" 노드에 대한 인터페이스 정보 이름 IP 주소 서브넷 게이트웨이 Def. 게이트웨이 HW 주소 MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ eth0 10.0.1.102 10.0.1.0 0.0.0.0 10.0.1.1 08:00:27:F4:80:BB 1500 eth1 10.0.5.102 10.0.5.0 0.0.0.0 10.0.1.1 08:00:27:B8:4E:0E 1500 "rac1" 노드에 대한 인터페이스 정보 이름 IP 주소 서브넷 게이트웨이 Def. 게이트웨이 HW 주소 MTU ------ --------------- --------------- --------------- --------------- ----------------- ------ eth0 10.0.1.101 10.0.1.0 0.0.0.0 10.0.1.1 08:00:27:9C:B9:81 1500 eth1 10.0.5.101 10.0.5.0 0.0.0.0 10.0.1.1 08:00:27:CB:58:2B 1500 검사: "10.0.1.0" 서브넷에 대한 노드 연결 소스 대상 접속됨? ------------------------------ ------------------------------ ---------------- rac2[10.0.1.102] rac1[10.0.1.101] 예 결과: rac2,rac1개의 노드를 사용하는 "10.0.1.0" 서브넷에 대한 노드 연결을 성공했습니다. 검사: "10.0.1.0" 서브넷의 TCP 접속 소스 대상 접속됨? ------------------------------ ------------------------------ ---------------- rac1:10.0.1.101 rac2:10.0.1.102 성공 결과: "10.0.1.0" 서브넷에 대한 TCP 접속 검사를 성공했습니다. 검사: "10.0.5.0" 서브넷에 대한 노드 연결 소스 대상 접속됨? ------------------------------ ------------------------------ ---------------- rac2[10.0.5.102] rac1[10.0.5.101] 예 결과: rac2,rac1개의 노드를 사용하는 "10.0.5.0" 서브넷에 대한 노드 연결을 성공했습니다. 검사: "10.0.5.0" 서브넷의 TCP 접속 소스 대상 접속됨? ------------------------------ ------------------------------ ---------------- rac1:10.0.5.101 rac2:10.0.5.102 성공 결과: "10.0.5.0" 서브넷에 대한 TCP 접속 검사를 성공했습니다. "10.0.1.0" 서브넷에서 발견된 VIP 후보로 적합한 인터페이스: rac2 eth0:10.0.1.102 rac1 eth0:10.0.1.101 "10.0.5.0" 서브넷에서 발견된 전용 상호 접속 후보로 적합한 인터페이스: rac2 eth1:10.0.5.102 rac1 eth1:10.0.5.101 서브넷 마스크 일관성 확인 중... "10.0.1.0" 서브넷에 대한 서브넷 마스크 일관성 검사를 성공했습니다. "10.0.5.0" 서브넷에 대한 서브넷 마스크 일관성 검사를 성공했습니다. 서브넷 마스크 일관성 검사를 성공했습니다. 결과: 노드 연결 검사를 성공했습니다. 멀티캐스트 통신을 검사하는 중... 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위해 "10.0.1.0" 서브넷을 검사하는 중... 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위한 "10.0.1.0" 서브넷 검사를 성공했습니다. 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위해 "10.0.5.0" 서브넷을 검사하는 중... 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위한 "10.0.5.0" 서브넷 검사를 성공했습니다. 멀티캐스트 통신 검사를 성공했습니다. ASMLib 구성을 검사하는 중입니다. 노드 이름 상태 ------------------------------------ ------------------------ rac2 성공 rac1 성공 결과: ASMLib 구성 검사를 성공했습니다. 검사: 총 메모리 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 1.9522GB (2047044.0KB) 1.5GB (1572864.0KB) 성공 rac1 1.9522GB (2047044.0KB) 1.5GB (1572864.0KB) 성공 결과: 총 메모리 검사를 성공했습니다. 검사: 사용 가능한 메모리 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 1.8518GB (1941788.0KB) 50MB (51200.0KB) 성공 rac1 1.725GB (1808800.0KB) 50MB (51200.0KB) 성공 결과: 사용 가능한 메모리 검사를 성공했습니다. 검사: 교체 공간 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 4GB (4194300.0KB) 2.9283GB (3070566.0KB) 성공 rac1 4GB (4194300.0KB) 2.9283GB (3070566.0KB) 성공 결과: 교체 공간 검사를 성공했습니다. 검사: "rac2:/tmp"에 대한 여유 디스크 공간 경로 노드 이름 마운트 위치 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ------------ ------------ /tmp rac2 / 22.0244GB 1GB 성공 결과: "rac2:/tmp"에 대한 여유 디스크 공간 검사를 성공했습니다. 검사: "rac1:/tmp"에 대한 여유 디스크 공간 경로 노드 이름 마운트 위치 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ------------ ------------ /tmp rac1 / 22.0056GB 1GB 성공 결과: "rac1:/tmp"에 대한 여유 디스크 공간 검사를 성공했습니다. 검사: "grid"에 대한 사용자 존재 여부 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재함(54322) rac1 성공 존재함(54322) UID 값이 54322인 다중 사용자를 검사하는 중 결과: UID 값이 54322인 다중 사용자 검사를 성공했습니다. 결과: "grid"에 대한 사용자 존재 여부 검사를 성공했습니다. 검사: "oinstall"에 대한 그룹 존재 여부 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재함 rac1 성공 존재함 결과: "oinstall"에 대한 그룹 존재 여부 검사를 성공했습니다. 검사: "dba"에 대한 그룹 존재 여부 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재함 rac1 성공 존재함 결과: "dba"에 대한 그룹 존재 여부 검사를 성공했습니다. 검사: "oinstall" 그룹[기본]의 사용자 "grid"에 대한 멤버쉽 노드 이름 사용자가 존재함 그룹이 존재함 그룹의 사용자 기본 상태 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 예 예 예 예 성공 rac1 예 예 예 예 성공 결과: "oinstall" 그룹[기본]의 사용자 "grid"에 대한 멤버쉽 검사를 성공했습니다. 검사: "dba" 그룹의 사용자 "grid"에 대한 멤버쉽 노드 이름 사용자가 존재함 그룹이 존재함 그룹의 사용자 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 예 예 예 성공 rac1 예 예 예 성공 결과: "dba" 그룹의 사용자 "grid"에 대한 멤버쉽 검사를 성공했습니다. 검사: 실행 레벨 노드 이름 실행 레벨 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 3 3,5 성공 rac1 5 3,5 성공 결과: 실행 레벨 검사를 성공했습니다. 검사: "최대 열린 파일 기술자"에 대한 완전 제한 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 완전 65536 65536 성공 rac1 완전 65536 65536 성공 결과: "최대 열린 파일 기술자"에 대한 완전 제한 검사를 성공했습니다. 검사: "최대 열린 파일 기술자"에 대한 부분 제한 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 부분 65536 1024 성공 rac1 부분 65536 1024 성공 결과: "최대 열린 파일 기술자"에 대한 부분 제한 검사를 성공했습니다. 검사: "최대 사용자 프로세스"에 대한 완전 제한 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 완전 16384 16384 성공 rac1 완전 16384 16384 성공 결과: "최대 사용자 프로세스"에 대한 완전 제한 검사를 성공했습니다. 검사: "최대 사용자 프로세스"에 대한 부분 제한 노드 이름 유형 사용 가능 필수 상태 ---------------- ------------ ------------ ------------ ---------------- rac2 부분 16384 2047 성공 rac1 부분 16384 2047 성공 결과: "최대 사용자 프로세스"에 대한 부분 제한 검사를 성공했습니다. 검사: 시스템 구조 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 x86_64 x86_64 성공 rac1 x86_64 x86_64 성공 결과: 시스템 구조 검사를 성공했습니다. 검사: 커널 버전 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 4.1.12-124.16.4.el6uek.x86_64 2.6.32 성공 rac1 4.1.12-124.16.4.el6uek.x86_64 2.6.32 성공 결과: 커널 버전 검사를 성공했습니다. 검사: "semmsl"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 250 250 250 성공 rac1 250 250 250 성공 결과: "semmsl"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "semmns"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 32000 32000 32000 성공 rac1 32000 32000 32000 성공 결과: "semmns"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "semopm"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 100 100 100 성공 rac1 100 100 100 성공 결과: "semopm"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "semmni"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 128 128 128 성공 rac1 128 128 128 성공 결과: "semmni"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "shmmax"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 4398046511104 4398046511104 1048086528 성공 rac1 4398046511104 4398046511104 1048086528 성공 결과: "shmmax"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "shmmni"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 4096 4096 4096 성공 rac1 4096 4096 4096 성공 결과: "shmmni"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "shmall"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 4294967296 4294967296 2097152 성공 rac1 4294967296 4294967296 2097152 성공 결과: "shmall"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "file-max"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 6815744 6815744 6815744 성공 rac1 6815744 6815744 6815744 성공 결과: "file-max"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "ip_local_port_range"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 성공 rac1 between 9000.0 & 65500.0 between 9000.0 & 65500.0 between 9000.0 & 65500.0 성공 결과: "ip_local_port_range"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "rmem_default"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 262144 262144 262144 성공 rac1 262144 262144 262144 성공 결과: "rmem_default"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "rmem_max"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 4194304 4194304 4194304 성공 rac1 4194304 4194304 4194304 성공 결과: "rmem_max"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "wmem_default"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 262144 262144 262144 성공 rac1 262144 262144 262144 성공 결과: "wmem_default"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "wmem_max"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 1048576 1048576 1048576 성공 rac1 1048576 1048576 1048576 성공 결과: "wmem_max"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "aio-max-nr"에 대한 커널 매개변수 노드 이름 현재 구성됨 필수 상태 설명 ---------------- ------------ ------------ ------------ ------------ ------------ rac2 1048576 1048576 1048576 성공 rac1 1048576 1048576 1048576 성공 결과: "aio-max-nr"에 대한 커널 매개변수 검사를 성공했습니다. 검사: "binutils"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 binutils-2.20.51.0.2-5.48.el6 binutils-2.20.51.0.2 성공 rac1 binutils-2.20.51.0.2-5.48.el6 binutils-2.20.51.0.2 성공 결과: "binutils"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "compat-libcap1"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 compat-libcap1-1.10-1 compat-libcap1-1.10 성공 rac1 compat-libcap1-1.10-1 compat-libcap1-1.10 성공 결과: "compat-libcap1"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "compat-libstdc++-33(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 compat-libstdc++-33(x86_64)-3.2.3-69.el6 compat-libstdc++-33(x86_64)-3.2.3 성공 rac1 compat-libstdc++-33(x86_64)-3.2.3-69.el6 compat-libstdc++-33(x86_64)-3.2.3 성공 결과: "compat-libstdc++-33(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "libgcc(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libgcc(x86_64)-4.4.7-23.0.1.el6 libgcc(x86_64)-4.4.4 성공 rac1 libgcc(x86_64)-4.4.7-23.0.1.el6 libgcc(x86_64)-4.4.4 성공 결과: "libgcc(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "libstdc++(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libstdc++(x86_64)-4.4.7-23.0.1.el6 libstdc++(x86_64)-4.4.4 성공 rac1 libstdc++(x86_64)-4.4.7-23.0.1.el6 libstdc++(x86_64)-4.4.4 성공 결과: "libstdc++(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "libstdc++-devel(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libstdc++-devel(x86_64)-4.4.7-23.0.1.el6 libstdc++-devel(x86_64)-4.4.4 성공 rac1 libstdc++-devel(x86_64)-4.4.7-23.0.1.el6 libstdc++-devel(x86_64)-4.4.4 성공 결과: "libstdc++-devel(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "sysstat"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 sysstat-9.0.4-33.el6_9.1 sysstat-9.0.4 성공 rac1 sysstat-9.0.4-33.el6_9.1 sysstat-9.0.4 성공 결과: "sysstat"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "gcc"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 gcc-4.4.7-23.0.1.el6 gcc-4.4.4 성공 rac1 gcc-4.4.7-23.0.1.el6 gcc-4.4.4 성공 결과: "gcc"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "gcc-c++"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 gcc-c++-4.4.7-23.0.1.el6 gcc-c++-4.4.4 성공 rac1 gcc-c++-4.4.7-23.0.1.el6 gcc-c++-4.4.4 성공 결과: "gcc-c++"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "ksh"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 ksh-20120801-37.el6_9 ksh-20100621 성공 rac1 ksh-20120801-37.el6_9 ksh-20100621 성공 결과: "ksh"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "make"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 make-3.81-23.el6 make-3.81 성공 rac1 make-3.81-23.el6 make-3.81 성공 결과: "make"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "glibc(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 glibc(x86_64)-2.12-1.212.0.1.el6 glibc(x86_64)-2.12 성공 rac1 glibc(x86_64)-2.12-1.212.0.1.el6 glibc(x86_64)-2.12 성공 결과: "glibc(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "glibc-devel(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 glibc-devel(x86_64)-2.12-1.212.0.1.el6 glibc-devel(x86_64)-2.12 성공 rac1 glibc-devel(x86_64)-2.12-1.212.0.1.el6 glibc-devel(x86_64)-2.12 성공 결과: "glibc-devel(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "libaio(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libaio(x86_64)-0.3.107-10.el6 libaio(x86_64)-0.3.107 성공 rac1 libaio(x86_64)-0.3.107-10.el6 libaio(x86_64)-0.3.107 성공 결과: "libaio(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. 검사: "libaio-devel(x86_64)"에 대한 패키지 존재 여부 노드 이름 사용 가능 필수 상태 ------------ ------------------------ ------------------------ ---------- rac2 libaio-devel(x86_64)-0.3.107-10.el6 libaio-devel(x86_64)-0.3.107 성공 rac1 libaio-devel(x86_64)-0.3.107-10.el6 libaio-devel(x86_64)-0.3.107 성공 결과: "libaio-devel(x86_64)"에 대한 패키지 존재 여부 검사를 성공했습니다. UID 값이 0인 다중 사용자를 검사하는 중 결과: UID 값이 0인 다중 사용자 검사를 성공했습니다. 검사: 현재 그룹 ID 결과: 현재 그룹 ID 검사를 성공했습니다. 루트 사용자의 기본 그룹 일관성 검사를 시작하는 중입니다. 노드 이름 상태 ------------------------------------ ------------------------ rac2 성공 rac1 성공 루트 사용자의 기본 그룹에 대한 일관성 검사를 성공했습니다. NTP(Network Time Protocol)를 사용하여 시계 동기화 검사를 시작하는 중... NTP 구성 파일 검사가 시작되었습니다. 노드에서 NTP(Network Time Protocol) 구성 파일을 찾을 수 없습니다. 클러스터 노드에 대한 시간 동기화에 NTP 대신 Oracle CTSS(Cluster Time Synchronization Service)를 사용할 수 있습니다. 실행 중인 NTP 데몬 또는 서비스가 없는 것으로 확인되었습니다. 결과: NTP(Network Time Protocol)를 사용한 시계 동기화 검사를 성공했습니다. 코어 파일 이름 패턴 일관성을 검사하는 중... 코어 파일 이름 패턴 일관성 검사를 성공했습니다. 사용자 "grid"이(가) "root" 그룹에 속해 있지 않은지 확인하는 중입니다. 노드 이름 상태 설명 ------------ ------------------------ ------------------------ rac2 성공 존재하지 않음 rac1 성공 존재하지 않음 결과: 사용자 "grid"이(가) "root" 그룹에 속해 있지 않습니다. 검사를 성공했습니다. 기본 사용자 파일 생성 마스크 검사 노드 이름 사용 가능 필수 설명 ------------ ------------------------ ------------------------ ---------- rac2 0022 0022 성공 rac1 0022 0022 성공 결과: 기본 사용자 파일 생성 마스크 검사를 성공했습니다. 노드에서 "/etc/resolv.conf" 파일의 일관성을 검사하는 중 "/etc/resolv.conf" 파일에서 'domain' 및 'search' 항목이 하나씩만 정의되어 있는지 검사하는 중 "/etc/resolv.conf" 파일에 'domain' 항목과 'search' 항목이 모두 정의되지 않았습니다. "/etc/resolv.conf" 파일의 'domain' 항목이 노드에서 일치하는지 여부를 검사하는 중... "/etc/resolv.conf" 파일의 'domain' 항목이 노드에서 일치합니다. "/etc/resolv.conf" 파일의 'search' 항목이 노드에서 일치하는지 여부를 검사하는 중... "/etc/resolv.conf" 파일의 'search' 항목이 노드에서 일치합니다. 연결할 수 없는 노드에 대한 DNS 응답 시간을 검사하는 중 노드 이름 상태 ------------------------------------ ------------------------ rac2 성공 rac1 성공 모든 노드에서 연결할 수 없는 노드에 대한 DNS 응답 시간이 허용되는 제한 범위에 속합니다. "/etc/resolv.conf" 파일이 노드에서 일치합니다. 검사: 시간대 일관성 결과: 시간대 일관성 검사를 성공했습니다. 클러스터 서비스 설정에 대한 사전 확인을 성공했습니다.
3. Grid 설치 response 파일 설정
cp <설치 파일 압축해제 경로>/grid/response/grid_install.rsp ~/. vi ~/grid_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0 ORACLE_HOSTNAME=[HOST_NAME1] INVENTORY_LOCATION=[ORACLE_INVENTORY] SELECTED_LANGUAGES=en,ko oracle.install.option=CRS_CONFIG ORACLE_BASE=[ORACLE_BASE] ORACLE_HOME=[GRID_HOME] oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.gpnp.scanName=[SCAN_NAME] oracle.install.crs.config.gpnp.scanPort=[LISTENER_PORT] oracle.install.crs.config.clusterName=[CLUSTER_NAME] oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.autoConfigureClusterNodeVIP=false oracle.install.crs.config.clusterNodes=[HOST_NAME1]:[VIP_NAME1],[HOST_NAME2]:[VIP_NAME2] oracle.install.crs.config.networkInterfaceList=[PUBLIC_INTERFACE_NAME]:[PUBLIC_SUBNET]:1,[PRIVATE_INTERFACE_NAME]:[PRIVATE_SUBNET]:2 oracle.install.crs.config.storageOption=ASM_STORAGE oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL oracle.install.crs.config.useIPMI=false oracle.install.asm.SYSASMPassword=[ASM_PASSWD] oracle.install.asm.diskGroup.name=DATA oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=1 oracle.install.asm.diskGroup.disks=/dev/raw/raw6 oracle.install.asm.diskGroup.diskDiscoveryString=/dev/raw/raw* oracle.install.asm.monitorPassword=[HOST_NAME1] oracle.install.asm.upgradeASM=false oracle.installer.autoupdates.option=SKIP_UPDATES
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v11_2_0 ORACLE_HOSTNAME=rac1 INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en,ko oracle.install.option=CRS_CONFIG ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/11.2.0/grid oracle.install.asm.OSDBA=asmdba oracle.install.asm.OSOPER=asmoper oracle.install.asm.OSASM=asmadmin oracle.install.crs.config.gpnp.scanName=rac-scan oracle.install.crs.config.gpnp.scanPort=1521 oracle.install.crs.config.clusterName=rac oracle.install.crs.config.gpnp.configureGNS=false oracle.install.crs.config.autoConfigureClusterNodeVIP=false oracle.install.crs.config.clusterNodes=rac1:rac1-vip,rac2:rac2-vip oracle.install.crs.config.networkInterfaceList=eth0:10.0.1.0:1,eth1:10.0.5.0:2 oracle.install.crs.config.storageOption=ASM_STORAGE oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL oracle.install.crs.config.useIPMI=false oracle.install.asm.SYSASMPassword=oracle_4U oracle.install.asm.diskGroup.name=DATA oracle.install.asm.diskGroup.redundancy=EXTERNAL oracle.install.asm.diskGroup.AUSize=1 oracle.install.asm.diskGroup.disks=/dev/raw/raw6 oracle.install.asm.diskGroup.diskDiscoveryString=/dev/raw/raw* oracle.install.asm.monitorPassword=oracle_4U oracle.install.asm.upgradeASM=false oracle.installer.autoupdates.option=SKIP_UPDATES
4. Grid 설치 수행
cd <설치 파일 압축해제 경로>/grid ./runInstaller -ignorePrereq -silent -force -responseFile ~/grid_install.rsp
[grid@+ASM1 grid]$ cd /media/sf_oracle/grid [grid@+ASM1 grid]$ ./runInstaller -ignorePrereq -silent -force -responseFile ~/grid_install.rsp Oracle Universal Installer 시작 중... 임시 공간 확인 중: 120MB 이상이어야 합니다.. 실제 21508MB 성공 스왑 공간 확인 중: 150MB 이상이어야 합니다.. 실제 4095MB 성공 다음에서 Oracle Universal Installer의 시작을 준비하는 중 /tmp/OraInstall2019-04-05_06-55-41PM. 기다리십시오.[grid@+ASM1 grid]$ 다음 위치에서 이 설치 세션의 로그를 찾을 수 있습니다. /u01/app/oraInventory/logs/installActions2019-04-05_06-55-41PM.log Oracle Grid Infrastructure 11g의 설치을(를) 성공했습니다. 자세한 내용은 '/u01/app/oraInventory/logs/silentInstall2019-04-05_06-55-41PM.log'을(를) 확인하십시오. 루트 사용자로 다음 스크립트를 실행합니다. 1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/11.2.0/grid/root.sh 다음 노드에서 /u01/app/oraInventory/orainstRoot.sh을(를) 실행하십시오. [rac1, rac2] 다음 노드에서 /u01/app/11.2.0/grid/root.sh을(를) 실행하십시오. [rac1, rac2] 설치 사용자로 다음 스크립트를 실행하여 구성을 완료하십시오. 1. /u01/app/11.2.0/grid/cfgtoollogs/configToolAllCommands RESPONSE_FILE=<response_file> 참고: 1. 이 스크립트는 설치 프로그램이 실행된 동일한 호스트에서 실행해야 합니다. 2. 이 스크립트에는 비밀번호가 필요한 Configuration Assistant에 대한 작은 비밀번호 속성 파일이 필요합니다(설치 설명서 참조). Successfully Setup Software.
installActions2019-04-05_06-55-41PM.log
silentInstall2019-04-05_06-55-41PM.log5. root 유저 스크립트 수행
/u01/app/oraInventory/orainstRoot.sh
[root@rac1 ~]# /u01/app/oraInventory/orainstRoot.sh 다음 권한 변경 중/u01/app/oraInventory. 그룹에 대한 읽기, 쓰기 권한을 추가하는 중입니다. 월드에 대한 읽기, 쓰기, 실행 권한을 제거하는 중입니다. 그룹 이름 변경 중 /u01/app/oraInventory 대상 oinstall. 스크립트 실행이 완료되었습니다.
[root@rac2 ~]# /u01/app/oraInventory/orainstRoot.sh 다음 권한 변경 중/u01/app/oraInventory. 그룹에 대한 읽기, 쓰기 권한을 추가하는 중입니다. 월드에 대한 읽기, 쓰기, 실행 권한을 제거하는 중입니다. 그룹 이름 변경 중 /u01/app/oraInventory 대상 oinstall. 스크립트 실행이 완료되었습니다.
/u01/app/11.2.0/grid/root.sh
[root@rac1 ~]# /u01/app/11.2.0/grid/root.sh Check /u01/app/11.2.0/grid/install/root_rac1_2019-04-05_19-04-22.log for the output of root script
Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME= /u01/app/11.2.0/grid Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params Creating trace directory User ignored Prerequisites during installation Installing Trace File Analyzer OLR initialization - successful root wallet root wallet cert root cert export peer wallet profile reader wallet pa wallet peer wallet keys pa wallet keys peer cert request pa cert request peer cert pa cert peer root cert TP profile reader root cert TP pa root cert TP peer pa cert TP pa peer cert TP profile reader pa cert TP profile reader peer cert TP peer user cert pa user cert Adding Clusterware entries to upstart CRS-2672: Attempting to start 'ora.mdnsd' on 'rac1' CRS-2676: Start of 'ora.mdnsd' on 'rac1' succeeded CRS-2672: Attempting to start 'ora.gpnpd' on 'rac1' CRS-2676: Start of 'ora.gpnpd' on 'rac1' succeeded CRS-2672: Attempting to start 'ora.cssdmonitor' on 'rac1' CRS-2672: Attempting to start 'ora.gipcd' on 'rac1' CRS-2676: Start of 'ora.cssdmonitor' on 'rac1' succeeded CRS-2676: Start of 'ora.gipcd' on 'rac1' succeeded CRS-2672: Attempting to start 'ora.cssd' on 'rac1' CRS-2672: Attempting to start 'ora.diskmon' on 'rac1' CRS-2676: Start of 'ora.diskmon' on 'rac1' succeeded CRS-2676: Start of 'ora.cssd' on 'rac1' succeeded ASM이 성공적으로 생성되고 시작되었습니다. 디스크 그룹 DATA이(가) 성공적으로 생성되었습니다. clscfg: -install mode specified Successfully accumulated necessary OCR keys. Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. CRS-4256: Updating the profile Successful addition of voting disk 7d91b543779a4fdebfc8895c7fda9c05. Successfully replaced voting disk group with +DATA. CRS-4256: Updating the profile CRS-4266: Voting file(s) successfully replaced ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 7d91b543779a4fdebfc8895c7fda9c05 (/dev/raw/raw6) [DATA] Located 1 voting disk(s). CRS-2672: Attempting to start 'ora.asm' on 'rac1' CRS-2676: Start of 'ora.asm' on 'rac1' succeeded CRS-2672: Attempting to start 'ora.DATA.dg' on 'rac1' CRS-2676: Start of 'ora.DATA.dg' on 'rac1' succeeded [1mConfigure Oracle Grid Infrastructure for a Cluster ... succeeded [0m
[root@rac2 ~]# /u01/app/11.2.0/grid/root.sh Check /u01/app/11.2.0/grid/install/root_rac2_2019-04-05_19-11-19.log for the output of root script
Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME= /u01/app/11.2.0/grid Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params Creating trace directory User ignored Prerequisites during installation Installing Trace File Analyzer OLR initialization - successful Adding Clusterware entries to upstart CRS-4402: CSS 데몬이 배타 모드에서 시작되었지만 활성 CSS 데몬이 노드 rac1, 번호 1에서 발견되어 종료 중입니다. An active cluster was found during exclusive startup, restarting to join the cluster [1mConfigure Oracle Grid Infrastructure for a Cluster ... succeeded [0m
6. Grid 설치 후 스크립트 수행
oracle.assistants.asm|S_ASMPASSWORD=[ASM_PASSWD] oracle.assistants.asm|S_ASMMONITORPASSWORD=[ASM_PASSWD]
oracle.assistants.asm|S_ASMPASSWORD=oracle_4U oracle.assistants.asm|S_ASMMONITORPASSWORD=oracle_4U
cd $GRID_HOME/cfgtoollogs chmod 600 cfgrsp.properties ./configToolAllCommands RESPONSE_FILE=./cfgrsp.properties
[grid@+ASM1 grid]$ cd $GRID_HOME/cfgtoollogs [grid@+ASM1 cfgtoollogs]$ chmod 600 cfgrsp.properties [grid@+ASM1 cfgtoollogs]$ ./configToolAllCommands RESPONSE_FILE=./cfgrsp.properties Setting the invPtrLoc to /u01/app/11.2.0/grid/oraInst.loc perform - 작업 시작 중인 모드: configure 2019. 4. 5 오후 7:18:04 oracle.install.driver.oui.config.GenericInternalPlugIn invoke 정보: Executing ASMCA 2019. 4. 5 오후 7:18:04 oracle.install.driver.oui.config.GenericInternalPlugIn invoke 정보: Command /u01/app/11.2.0/grid/bin/asmca -silent -postConfigureASM -oui_internal 2019. 4. 5 오후 7:18:04 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: ... GenericInternalPlugIn.handleProcess() entered. 2019. 4. 5 오후 7:18:04 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: ... GenericInternalPlugIn: getting configAssistantParmas. 2019. 4. 5 오후 7:18:04 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: ... GenericInternalPlugIn: checking secretArguments. 2019. 4. 5 오후 7:18:04 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: ... GenericInternalPlugIn: starting read loop. 2019. 4. 5 오후 7:18:13 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: Read: SYS_PASSWORD_PROMPT 2019. 4. 5 오후 7:18:13 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: Processing: SYS_PASSWORD_PROMPT for argument tag -sysAsmPassword 2019. 4. 5 오후 7:18:13 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: Read: ASMSNMP_PASSWORD_PROMPT 2019. 4. 5 오후 7:18:13 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: Processing: ASMSNMP_PASSWORD_PROMPT for argument tag -asmMonitorPassword 2019. 4. 5 오후 7:18:13 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: End of argument passing to stdin 2019. 4. 5 오후 7:18:16 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: Read: 2019. 4. 5 오후 7:18:16 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: Read: PostConfiguration이 성공적으로 완료되었습니다. 2019. 4. 5 오후 7:18:16 oracle.install.driver.oui.config.GenericInternalPlugIn handleProcess 정보: Read: perform - 작업이 완료된 모드: configure 로그 파일을 확인할 수 있습니다./u01/app/11.2.0/grid/cfgtoollogs/oui/configActions2019-04-05_07-16-49-PM.log
################################################### The action configuration is performing ------------------------------------------------------ The plug-in Update Inventory is running /u01/app/11.2.0/grid/oui/bin/runInstaller -nowait -noconsole -waitforcompletion -ignoreSysPrereqs -updateNodeList -silent CRS=true "CLUSTER_NODES={rac1,rac2}" ORACLE_HOME=/u01/app/11.2.0/grid Oracle Universal Installer 시작 중... 스왑 공간 확인 중: 500MB 이상이어야 합니다.. 실제 4076MB 성공 The inventory pointer is located at /etc/oraInst.loc The inventory is located at /u01/app/oraInventory The plug-in Update Inventory has successfully been performed ------------------------------------------------------ ------------------------------------------------------ The plug-in Oracle Net Configuration Assistant is running 명령행 인수 분석: 매개변수 "orahome" = /u01/app/11.2.0/grid 매개변수 "orahnam" = Ora11g_gridinfrahome1 매개변수 "instype" = typical 매개변수 "inscomp" = client,oraclenet,javavm,server,ano 매개변수 "insprtcl" = tcp 매개변수 "cfg" = local 매개변수 "authadp" = NO_VALUE 매개변수 "responsefile" = /u01/app/11.2.0/grid/network/install/netca_typ.rsp 매개변수 "silent" = true 매개변수 "silent" = true 명령행 인수 분석을 완료했습니다. Oracle Net Service 구성: 프로파일 구성이 완료되었습니다. 프로파일 구성이 완료되었습니다. rac1... rac2... Oracle Net 리스너 시작: 리스너가 성공적으로 시작되었습니다. 리스너 구성이 완료되었습니다. Oracle Net Service 구성을 성공했습니다. 종료 코드는 다음과 같습니다. 0 The plug-in Oracle Net Configuration Assistant has successfully been performed ------------------------------------------------------ ------------------------------------------------------ The plug-in Automatic Storage Management Configuration Assistant is running The plug-in Automatic Storage Management Configuration Assistant has successfully been performed ------------------------------------------------------ ------------------------------------------------------ The plug-in Oracle Cluster Verification Utility is running 클러스터 서비스 설정에 대한 사후 확인 수행 노드 연결 가능성을 검사하는 중... "rac1" 노드에서 노드 연결 가능성 검사를 성공했습니다. 사용자 equivalence를 검사하는 중... 사용자 "grid"에 대한 사용자 equivalence 검사를 성공했습니다. 노드 연결을 검사하는 중... 호스트 구성 파일 확인 중... 호스트 구성 파일 확인을 성공했습니다. 검사: "eth0" 인터페이스에 대한 노드 연결 "eth0" 인터페이스에 대한 노드 연결을 성공했습니다. "10.0.1.0" 서브넷에 대한 TCP 접속 검사를 성공했습니다. 검사: "eth1" 인터페이스에 대한 노드 연결 "eth1" 인터페이스에 대한 노드 연결을 성공했습니다. "10.0.5.0" 서브넷에 대한 TCP 접속 검사를 성공했습니다. 서브넷 마스크 일관성 확인 중... "10.0.1.0" 서브넷에 대한 서브넷 마스크 일관성 검사를 성공했습니다. "10.0.5.0" 서브넷에 대한 서브넷 마스크 일관성 검사를 성공했습니다. 서브넷 마스크 일관성 검사를 성공했습니다. 노드 연결 검사를 성공했습니다. 멀티캐스트 통신을 검사하는 중... 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위해 "10.0.1.0" 서브넷을 검사하는 중... 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위한 "10.0.1.0" 서브넷 검사를 성공했습니다. 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위해 "10.0.5.0" 서브넷을 검사하는 중... 멀티캐스트 그룹 "230.0.1.0"과(와) 멀티캐스트 통신을 위한 "10.0.5.0" 서브넷 검사를 성공했습니다. 멀티캐스트 통신 검사를 성공했습니다. 시간대 일관성 검사를 성공했습니다. Oracle 클러스터 선호 디스크 구성을 검사하는 중... ASM 실행 여부 검사를 성공했습니다. ASM이 지정된 모든 노드에서 실행 중입니다. Oracle 클러스터 선호 디스크 구성 검사를 성공했습니다. 클러스터 관리자 무결성을 검사하는 중... CSS 데몬을 검사하는 중... Oracle Cluster Synchronization Services가 온라인입니다. 클러스터 관리자 무결성 검사를 성공했습니다. OCR 위치에 대한 UDev 속성 검사가 시작되었습니다. OCR 위치에 대한 UDev 속성 검사를 성공했습니다. 선호 디스크 위치에 대한 UDev 속성 검사가 시작되었습니다. 선호 디스크 위치에 대한 UDev 속성 검사를 성공했습니다. 기본 사용자 파일 생성 마스크 검사를 성공했습니다. 클러스터 무결성을 검사하는 중... 클러스터 무결성 검사를 성공했습니다. OCR 무결성을 검사하는 중... 클러스터화되지 않은 구성이 없는지 검사하는 중... 모든 노드에 클러스터화되지 않은 로컬 전용 구성이 없습니다. ASM 실행 여부 검사를 성공했습니다. ASM이 지정된 모든 노드에서 실행 중입니다. OCR 구성 파일 "/etc/oracle/ocr.loc"을(를) 검사하는 중... OCR 구성 파일 "/etc/oracle/ocr.loc" 검사를 성공했습니다. 모든 노드에서 사용 가능한 OCR 위치 "+DATA"에 대한 디스크 그룹 NOTE: 이 검사는 OCR 콘텐츠의 무결성을 확인하지 않습니다. OCR 콘텐츠를 확인하려면 권한이 있는 사용자로 'ocrcheck'를 실행하십시오. OCR 무결성 검사를 성공했습니다. CRS 무결성을 검사하는 중... Clusterware 버전 일관성 검사를 성공했습니다. CRS 무결성 검사를 성공했습니다. 노드 응용 프로그램의 존재 여부를 검사하는 중... VIP 노드 응용 프로그램이 존재하는지 검사하는 중(필수) VIP 노드 응용 프로그램 검사를 성공했습니다. NETWORK 노드 응용 프로그램이 존재하는지 검사하는 중(필수) NETWORK 노드 응용 프로그램 검사를 성공했습니다. GSD 노드 응용 프로그램이 존재하는지 검사하는 중(선택 사항) GSD 노드 응용 프로그램이 "rac2,rac1" 노드에서 오프라인 상태입니다. ONS 노드 응용 프로그램이 존재하는지 검사하는 중(선택 사항) ONS 노드 응용 프로그램 검사를 성공했습니다. SCAN(단일 클라이언트 액세스 이름) 검사 중... SCAN 리스너에 대한 TCP 접속을 검사하는 중... SCAN 리스너에 대한 TCP 접속이 모든 클러스터 노드에 존재합니다. "rac-scan"에 대한 이름 분석 설정을 검사하는 중... Checking integrity of name service switch configuration file "/etc/nsswitch.conf" ... All nodes have same "hosts" entry defined in file "/etc/nsswitch.conf" Check for integrity of name service switch configuration file "/etc/nsswitch.conf" passed SCAN VIP 및 리스너 설정 확인을 성공했습니다. OLR 무결성 검사 중... OLR 구성 파일 확인 중... OLR 구성 파일 확인을 성공했습니다. OLR 파일 속성 확인 중... OLR 파일 확인을 성공했습니다. WARNING: 이 검사는 OLR 콘텐츠의 무결성을 확인하지 않습니다. OLR 콘텐츠를 확인하려면 권한이 있는 사용자로 'ocrcheck -local'을 실행하십시오. OLR 무결성 검사를 성공했습니다. 사용자 "grid"이(가) "root" 그룹에 속해 있지 않습니다. 검사를 성공했습니다. 모든 노드에 Clusterware가 설치되었는지 여부를 검사하는 중... Clusterware 설치 검사를 성공했습니다. CTSS 리소스가 모든 노드에서 실행 중인지 여부를 검사하는 중... CTSS 리소스 검사를 성공했습니다. 모든 노드에서 시간 오프셋에 대해 CTSS를 질의하는 중... 시간 오프셋에 대한 CTSS 질의를 성공했습니다. CTSS 상태 검사가 시작되었습니다. CTSS가 활성 상태입니다. 모든 노드에서 시계 시간 오프셋 검사가 계속 진행됩니다. 시계 시간 오프셋 검사를 성공했습니다. Oracle Cluster Time Synchronization Service 검사를 성공했습니다. VIP 구성을 검사하는 중입니다. VIP 서브넷 구성을 검사하는 중입니다. VIP 서브넷 구성 검사를 성공했습니다. VIP 연결 가능성을 검사하는 중 VIP 연결 가능성 검사를 성공했습니다. 클러스터 서비스 설정에 대한 사후 확인을 성공했습니다. The plug-in Oracle Cluster Verification Utility has successfully been performed ------------------------------------------------------ The action configuration has successfully completed ###################################################
7. Grid 설치 결과 확인
crsctl stat res -t
[root@rac2 ~]# crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.LISTENER.lsnr ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.asm ONLINE ONLINE rac1 Started ONLINE ONLINE rac2 Started ora.gsd OFFLINE OFFLINE rac1 OFFLINE OFFLINE rac2 ora.net1.network ONLINE ONLINE rac1 ONLINE ONLINE rac2 ora.ons ONLINE ONLINE rac1 ONLINE ONLINE rac2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac1 ora.cvu 1 ONLINE ONLINE rac1 ora.oc4j 1 ONLINE ONLINE rac1 ora.rac1.vip 1 ONLINE ONLINE rac1 ora.rac2.vip 1 ONLINE ONLINE rac2 ora.scan1.vip 1 ONLINE ONLINE rac1
8. 리스너 추가
srvctl add listener -listener LISTENER
{}
VII. Raw Device 적용
1. OCR 영역 이관
ocrconfig -add /dev/raw/raw1 ocrconfig -add /dev/raw/raw2 ocrconfig -delete +DATA ocrcheck
[root@rac1 ~]# ocrcheck Status of Oracle Cluster Registry is as follows : Version : 3 Total space (kbytes) : 262120 Used space (kbytes) : 2592 Available space (kbytes) : 259528 ID : 1638877609 Device/File Name : +DATA Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check succeeded [root@rac1 ~]# ocrconfig -add /dev/raw/raw1 [root@rac1 ~]# ocrconfig -add /dev/raw/raw2 [root@rac1 ~]# ocrconfig -delete +DATA [root@rac1 ~]# ocrcheck Status of Oracle Cluster Registry is as follows : Version : 3 Total space (kbytes) : 262120 Used space (kbytes) : 2592 Available space (kbytes) : 259528 ID : 1638877609 Device/File Name : /dev/raw/raw1 Device/File integrity check succeeded Device/File Name : /dev/raw/raw2 Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check succeeded
[root@rac2 ~]# ocrcheck Status of Oracle Cluster Registry is as follows : Version : 3 Total space (kbytes) : 262120 Used space (kbytes) : 2592 Available space (kbytes) : 259528 ID : 1638877609 Device/File Name : /dev/raw/raw1 Device/File integrity check succeeded Device/File Name : /dev/raw/raw2 Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check succeeded
2. Vote 영역 이관
crsctl replace votedisk /dev/raw/raw3 crsctl add css votedisk /dev/raw/raw4 crsctl add css votedisk /dev/raw/raw5 crsctl query css votedisk
[root@rac1 ~]# crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 7d91b543779a4fdebfc8895c7fda9c05 (/dev/raw/raw6) [DATA] Located 1 voting disk(s). [root@rac1 ~]# crsctl replace votedisk /dev/raw/raw3 Now formatting voting disk: /dev/raw/raw3. CRS-4256: Updating the profile Successful addition of voting disk 6012122d0b004f6dbf3b539e7e5efc8b. Successful deletion of voting disk 7d91b543779a4fdebfc8895c7fda9c05. CRS-4256: Updating the profile CRS-4266: Voting file(s) successfully replaced [root@rac1 ~]# crsctl add css votedisk /dev/raw/raw4 Now formatting voting disk: /dev/raw/raw4. CRS-4603: Successful addition of voting disk /dev/raw/raw4. [root@rac1 ~]# crsctl add css votedisk /dev/raw/raw5 Now formatting voting disk: /dev/raw/raw5. CRS-4603: Successful addition of voting disk /dev/raw/raw5. [root@rac1 ~]# crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 6012122d0b004f6dbf3b539e7e5efc8b (/dev/raw/raw3) [] 2. ONLINE 5f9279ef3b094fcabf100009ee30dd50 (/dev/raw/raw4) [] 3. ONLINE 6f3d260d7afd4fd0bfa50ba5d83a347e (/dev/raw/raw5) [] Located 3 voting disk(s).
[root@rac2 ~]# crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE 6012122d0b004f6dbf3b539e7e5efc8b (/dev/raw/raw3) [] 2. ONLINE 5f9279ef3b094fcabf100009ee30dd50 (/dev/raw/raw4) [] 3. ONLINE 6f3d260d7afd4fd0bfa50ba5d83a347e (/dev/raw/raw5) [] Located 3 voting disk(s).
3. ASM 삭제 및 ASM 할당 디스크 초기화
crsctl stat res -t srvctl stop diskgroup -g data srvctl stop asm srvctl remove diskgroup -g data srvctl disable asm srvctl remove asm
[grid@+ASM1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE oraw1 ONLINE ONLINE oraw2 ora.LISTENER.lsnr ONLINE ONLINE oraw1 ONLINE ONLINE oraw2 ora.asm ONLINE ONLINE oraw1 Started ONLINE ONLINE oraw2 Started ora.gsd OFFLINE OFFLINE oraw1 OFFLINE OFFLINE oraw2 ora.net1.network ONLINE ONLINE oraw1 ONLINE ONLINE oraw2 ora.ons ONLINE ONLINE oraw1 ONLINE ONLINE oraw2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE oraw1 ora.cvu 1 ONLINE ONLINE oraw1 ora.oc4j 1 ONLINE ONLINE oraw1 ora.oraw1.vip 1 ONLINE ONLINE oraw1 ora.oraw2.vip 1 ONLINE ONLINE oraw2 ora.scan1.vip 1 ONLINE ONLINE oraw1 [grid@+ASM1 ~]$ srvctl stop diskgroup -g data [grid@+ASM1 ~]$ srvctl stop asm [grid@+ASM1 ~]$ srvctl remove diskgroup -g data [grid@+ASM1 ~]$ srvctl disable asm [grid@+ASM1 ~]$ srvctl remove asm [grid@+ASM1 ~]$ crsctl stat res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE oraw1 ONLINE ONLINE oraw2 ora.gsd OFFLINE OFFLINE oraw1 OFFLINE OFFLINE oraw2 ora.net1.network ONLINE ONLINE oraw1 ONLINE ONLINE oraw2 ora.ons ONLINE ONLINE oraw1 ONLINE ONLINE oraw2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE oraw1 ora.cvu 1 ONLINE ONLINE oraw1 ora.oc4j 1 ONLINE ONLINE oraw1 ora.oraw1.vip 1 ONLINE ONLINE oraw1 ora.oraw2.vip 1 ONLINE ONLINE oraw2 ora.scan1.vip 1 ONLINE ONLINE oraw1
dd if=/dev/zero of=/dev/raw/raw6 bs=1024k count=1024
[root@rac1 ~]# dd if=/dev/zero of=/dev/raw/raw6 bs=1024k count=1024 1024+0 records in 1024+0 records out 1073741824 bytes (1.1 GB) copied, 11.2279 s, 95.6 MB/s
{}
VIII. DBMS 설치
1. Database 설치 사전 작업
cd <설치 파일 압축해제 경로>/database/sshsetup ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -advanced
[oracle@racdb1 ~]$ cd /media/sf_oracle/database/sshsetup [oracle@racdb1 sshsetup]$ ./sshUserSetup.sh -user oracle -hosts "rac1 rac2" -noPromptPassphrase -advanced The output of this script is also logged into /tmp/sshUserSetup_2019-04-05-21-20-37.log Hosts are rac1 rac2 user is oracle Platform:- Linux Checking if the remote hosts are reachable PING rac1 (10.0.1.101) 56(84) bytes of data. 64 bytes from rac1 (10.0.1.101): icmp_seq=1 ttl=64 time=0.032 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=2 ttl=64 time=0.040 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=3 ttl=64 time=0.043 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=4 ttl=64 time=0.049 ms 64 bytes from rac1 (10.0.1.101): icmp_seq=5 ttl=64 time=0.064 ms --- rac1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4001ms rtt min/avg/max/mdev = 0.032/0.045/0.064/0.013 ms PING rac2 (10.0.1.102) 56(84) bytes of data. 64 bytes from rac2 (10.0.1.102): icmp_seq=1 ttl=64 time=0.352 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=2 ttl=64 time=0.507 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=3 ttl=64 time=0.485 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=4 ttl=64 time=0.436 ms 64 bytes from rac2 (10.0.1.102): icmp_seq=5 ttl=64 time=0.490 ms --- rac2 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4000ms rtt min/avg/max/mdev = 0.352/0.454/0.507/0.056 ms Remote host reachability check succeeded. The following hosts are reachable: rac1 rac2. The following hosts are not reachable: . All hosts are reachable. Proceeding further... firsthost rac1 numhosts 2 The script will setup SSH connectivity from the host rac1 to all the remote hosts. After the script is executed, the user can use SSH to run commands on the remote hosts or copy files between this host rac1 and the remote hosts without being prompted for passwords or confirmations. NOTE 1: As part of the setup procedure, this script will use ssh and scp to copy files between the local host and the remote hosts. Since the script does not store passwords, you may be prompted for the passwords during the execution of the script whenever ssh or scp is invoked. NOTE 2: AS PER SSH REQUIREMENTS, THIS SCRIPT WILL SECURE THE USER HOME DIRECTORY AND THE .ssh DIRECTORY BY REVOKING GROUP AND WORLD WRITE PRIVILEDGES TO THESE directories. Do you want to continue and let the script make the above mentioned changes (yes/no)? yes The user chose yes User chose to skip passphrase related questions. Creating .ssh directory on local host, if not present already Creating authorized_keys file on local host Changing permissions on authorized_keys to 644 on local host Creating known_hosts file on local host Changing permissions on known_hosts to 644 on local host Creating config file on local host If a config file exists already at /home/oracle/.ssh/config, it would be backed up to /home/oracle/.ssh/config.backup. Removing old private/public keys on local host Running SSH keygen on local host with empty passphrase Generating public/private rsa key pair. 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: 94:86:59:e1:8a:63:88:6b:57:86:3c:6c:1b:7f:8f:d6 oracle@rac1 The key's randomart image is: +--[ RSA 1024]----+ | o. | | = . | | o = | | .o... + | |. .B+o. S | | ...B. | |.. o . .. | |. . ..oE | | .. . | +-----------------+ Creating .ssh directory and setting permissions on remote host rac1 THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT. The script would create ~oracle/.ssh/config file on remote host rac1. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup. The user may be prompted for a password here since the script would be running SSH on host rac1. Warning: Permanently added 'rac1,10.0.1.101' (RSA) to the list of known hosts. oracle@rac1's password: Done with creating .ssh directory and setting permissions on remote host rac1. Creating .ssh directory and setting permissions on remote host rac2 THE SCRIPT WOULD ALSO BE REVOKING WRITE PERMISSIONS FOR group AND others ON THE HOME DIRECTORY FOR oracle. THIS IS AN SSH REQUIREMENT. The script would create ~oracle/.ssh/config file on remote host rac2. If a config file exists already at ~oracle/.ssh/config, it would be backed up to ~oracle/.ssh/config.backup. The user may be prompted for a password here since the script would be running SSH on host rac2. Warning: Permanently added 'rac2,10.0.1.102' (RSA) to the list of known hosts. oracle@rac2's password: Done with creating .ssh directory and setting permissions on remote host rac2. Copying local host public key to the remote host rac1 The user may be prompted for a password or passphrase here since the script would be using SCP for host rac1. oracle@rac1's password: Done copying local host public key to the remote host rac1 Copying local host public key to the remote host rac2 The user may be prompted for a password or passphrase here since the script would be using SCP for host rac2. oracle@rac2's password: Done copying local host public key to the remote host rac2 Creating keys on remote host rac1 if they do not exist already. This is required to setup SSH on host rac1. Creating keys on remote host rac2 if they do not exist already. This is required to setup SSH on host rac2. Generating public/private rsa key pair. Your identification has been saved in .ssh/id_rsa. Your public key has been saved in .ssh/id_rsa.pub. The key fingerprint is: 6a:9e:49:dc:cc:2b:cc:09:db:69:34:7e:55:04:c2:c2 oracle@rac2 The key's randomart image is: +--[ RSA 1024]----+ | . .. .. | | E .. . | | . . | | . | | S . | | ..o= . | | O=++. | | .+Xo.. | | .+o. | +-----------------+ Updating authorized_keys file on remote host rac1 Updating known_hosts file on remote host rac1 Updating authorized_keys file on remote host rac2 Updating known_hosts file on remote host rac2 cat: /home/oracle/.ssh/known_hosts.tmp: 그런 파일이나 디렉터리가 없습니다 cat: /home/oracle/.ssh/authorized_keys.tmp: 그런 파일이나 디렉터리가 없습니다 SSH setup is complete. ------------------------------------------------------------------------ Verifying SSH setup =================== The script will now run the date command on the remote nodes using ssh to verify if ssh is setup correctly. IF THE SETUP IS CORRECTLY SETUP, THERE SHOULD BE NO OUTPUT OTHER THAN THE DATE AND SSH SHOULD NOT ASK FOR PASSWORDS. If you see any output other than date or are prompted for the password, ssh is not setup correctly and you will need to resolve the issue and set up ssh again. The possible causes for failure could be: 1. The server settings in /etc/ssh/sshd_config file do not allow ssh for user oracle. 2. The server may have disabled public key based authentication. 3. The client public key on the server may be outdated. 4. ~oracle or ~oracle/.ssh on the remote host may not be owned by oracle. 5. User may not have passed -shared option for shared remote users or may be passing the -shared option for non-shared remote users. 6. If there is output in addition to the date, but no password is asked, it may be a security alert shown as part of company policy. Append the additional text to the <OMS HOME>/sysman/prov/resources/ignoreMessages.txt file. ------------------------------------------------------------------------ --rac1:-- Running /usr/bin/ssh -x -l oracle rac1 date to verify SSH connectivity has been setup from local host to rac1. IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR. 2019. 04. 05. (금) 21:20:59 KST ------------------------------------------------------------------------ --rac2:-- Running /usr/bin/ssh -x -l oracle rac2 date to verify SSH connectivity has been setup from local host to rac2. IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. Please note that being prompted for a passphrase may be OK but being prompted for a password is ERROR. 2019. 04. 05. (금) 21:20:59 KST ------------------------------------------------------------------------ ------------------------------------------------------------------------ Verifying SSH connectivity has been setup from rac1 to rac1 IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. bash: -c: line 0: unexpected EOF while looking for matching `"' bash: -c: line 1: syntax error: unexpected end of file ------------------------------------------------------------------------ ------------------------------------------------------------------------ Verifying SSH connectivity has been setup from rac1 to rac2 IF YOU SEE ANY OTHER OUTPUT BESIDES THE OUTPUT OF THE DATE COMMAND OR IF YOU ARE PROMPTED FOR A PASSWORD HERE, IT MEANS SSH SETUP HAS NOT BEEN SUCCESSFUL. bash: -c: line 0: unexpected EOF while looking for matching `"' bash: -c: line 1: syntax error: unexpected end of file ------------------------------------------------------------------------ -Verification from complete- SSH verification complete.
ssh rac1 date ssh rac2 date ssh rac1-priv date ssh rac2-priv date
oracle@racdb1 ~]$ ssh rac1 date 2019. 04. 05. (금) 21:21:42 KST [oracle@racdb1 ~]$ ssh rac2 date 2019. 04. 05. (금) 21:21:46 KST [oracle@racdb1 ~]$ ssh rac1-priv date The authenticity of host 'rac1-priv (10.0.5.101)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac1-priv,10.0.5.101' (RSA) to the list of known hosts. 2019. 04. 05. (금) 21:21:52 KST [oracle@racdb1 ~]$ ssh rac2-priv date The authenticity of host 'rac2-priv (10.0.5.102)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac2-priv,10.0.5.102' (RSA) to the list of known hosts. 2019. 04. 05. (금) 21:21:57 KST
[oracle@racdb2 ~]$ ssh rac1 date 2019. 04. 05. (금) 21:22:37 KST [oracle@racdb2 ~]$ ssh rac2 date 2019. 04. 05. (금) 21:22:40 KST [oracle@racdb2 ~]$ ssh rac1-priv date The authenticity of host 'rac1-priv (10.0.5.101)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac1-priv,10.0.5.101' (RSA) to the list of known hosts. 2019. 04. 05. (금) 21:22:45 KST [oracle@racdb2 ~]$ ssh rac2-priv date The authenticity of host 'rac2-priv (10.0.5.102)' can't be established. RSA key fingerprint is 12:cf:8a:65:85:4c:2d:9d:bd:b8:92:3f:49:6c:2d:a9. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'rac2-priv,10.0.5.102' (RSA) to the list of known hosts. 2019. 04. 05. (금) 21:22:51 KST
chmod 775 /u01/app/oracle # cd $ORACLE_BASE/diag/kfod/<호스트명>/kfod # chmod 775 *
[root@rac1 ~]# chmod 775 /u01/app/oracle
[root@rac2 ~]# chmod 775 /u01/app/oracle
2. Database 설치 response 파일 설정
cp <설치 파일 압축해제 경로>/database/response/db_install.rsp ~/. vi ~/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=[HOST_NAME1] UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=[ORACLE_INVENTORY] SELECTED_LANGUAGES=en,ko ORACLE_HOME=[DB_HOME] ORACLE_BASE=[ORACLE_BASE] oracle.install.db.InstallEdition=EE oracle.install.db.EEOptionsSelection=false oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0 oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oper oracle.install.db.CLUSTER_NODES=[HOST_NAME1],[HOST_NAME2] oracle.install.db.isRACOneInstall=false SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=rac1 UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory SELECTED_LANGUAGES=en,ko ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.EEOptionsSelection=false oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0 oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oper oracle.install.db.CLUSTER_NODES=rac1,rac2 oracle.install.db.isRACOneInstall=false SECURITY_UPDATES_VIA_MYORACLESUPPORT=false DECLINE_SECURITY_UPDATES=true
3. Database 설치 수행
cd <설치 파일 압축해제 경로>/database ./runInstaller -silent -ignorePrereq -ignoreSysPreReqs -responseFile ~/db_install.rsp
[oracle@racdb1 database]$ ./runInstaller -silent -ignorePrereq -ignoreSysPreReqs -responseFile ~/db_install.rsp Oracle Universal Installer 시작 중... 임시 공간 확인 중: 120MB 이상이어야 합니다.. 실제 17496MB 성공 스왑 공간 확인 중: 150MB 이상이어야 합니다.. 실제 4095MB 성공 다음에서 Oracle Universal Installer의 시작을 준비하는 중 /tmp/OraInstall2019-04-05_09-43-18PM. 기다리십시오.[oracle@racdb1 database]$ 다음 위치에서 이 설치 세션의 로그를 찾을 수 있습니다. /u01/app/oraInventory/logs/installActions2019-04-05_09-43-18PM.log Oracle Database 11g의 설치을(를) 성공했습니다. 자세한 내용은 '/u01/app/oraInventory/logs/silentInstall2019-04-05_09-43-18PM.log'을(를) 확인하십시오. 루트 사용자로 다음 스크립트를 실행합니다. 1. /u01/app/oracle/product/11.2.0/db_1/root.sh 다음 노드에서 /u01/app/oracle/product/11.2.0/db_1/root.sh을(를) 실행하십시오. [rac1, rac2] Successfully Setup Software.
4. root 유저 스크립트 수행
/u01/app/oracle/product/11.2.0/db_1/root.sh
[root@rac1 ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh Check /u01/app/oracle/product/11.2.0/db_1/install/root_rac1_2019-04-05_21-57-37.log for the output of root script
Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/11.2.0/db_1 Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Finished product-specific root actions. Finished product-specific root actions.
[root@rac2 ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh Check /u01/app/oracle/product/11.2.0/db_1/install/root_rac2_2019-04-05_21-57-45.log for the output of root script
Performing root user operation for Oracle 11g The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/11.2.0/db_1 Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root script. Now product-specific root actions will be performed. Finished product-specific root actions. Finished product-specific root actions.
{}
IX. RAC Database 생성
1. Database 생성
A) 작업 스크립트 준비
mkdir -p $ORACLE_BASE/admin/[DB_NAME]/scripts cd $ORACLE_BASE/admin/[DB_NAME]/scripts
[oracle@racdb1 ~]$ mkdir -p $ORACLE_BASE/admin/racdb/scripts [oracle@racdb1 ~]$ cd $ORACLE_BASE/admin/racdb/scripts
스크립트 생성 디렉토리를 $ORACLE_BASE 경로 아래에 생성합니다.
작업할 스크립트를 모두 이곳에 저장합니다.
#!/bin/sh OLD_UMASK=`umask` umask 0027 mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/adump mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/dpdump mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/hdump mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/pfile mkdir -p [ORACLE_BASE]/cfgtoollogs/dbca/[DB_NAME] ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/adump" ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/dpdump" ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/hdump" ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/admin/[DB_NAME]/pfile" ssh oracle@[HOST_NAME2] "mkdir -p [ORACLE_BASE]/cfgtoollogs/dbca/[DB_NAME]" umask ${OLD_UMASK} ORACLE_SID=[ORACLE_SID1]; export ORACLE_SID PATH=$ORACLE_HOME/bin:$PATH; export PATH echo You should Add this entry in the /etc/oratab: [ORACLE_SID]:[DB_HOME]:N [DB_HOME]/bin/sqlplus /nolog @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateRACDB.sql
#!/bin/sh OLD_UMASK=`umask` umask 0027 mkdir -p /u01/app/oracle/admin/racdb/adump mkdir -p /u01/app/oracle/admin/racdb/dpdump mkdir -p /u01/app/oracle/admin/racdb/hdump mkdir -p /u01/app/oracle/admin/racdb/pfile mkdir -p /u01/app/oracle/cfgtoollogs/dbca/racdb ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/adump" ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/dpdump" ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/hdump" ssh oracle@rac2 "mkdir -p /u01/app/oracle/admin/racdb/pfile" ssh oracle@rac2 "mkdir -p /u01/app/oracle/cfgtoollogs/dbca/racdb": umask ${OLD_UMASK} ORACLE_SID=racdb1; export ORACLE_SID PATH=$ORACLE_HOME/bin:$PATH; export PATH echo You should Add this entry in the /etc/oratab: racdb:/u01/app/oracle/product/11.2.0/db_1:N /u01/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog @/u01/app/oracle/admin/racdb/scripts/CreateRACDB.sql
데이터베이스 생성을 위해 필요한 디렉토리를 만들고 전체 작업을 수행할 메인 스크립트를 생성합니다.
괄호 [] 안에 표시된 변수 부분은 실제 설치할 환경에 해당되는 내용으로 수정하여 저장하도록 합니다.
[ORACLE_BASE] : 오라클 소프트웨어 설치 베이스 경로
[DB_NAME] : 데이터베이스 명
[HOST_NAME2] : 2번 노드의 서버 명
[ORACLE_SID1] : 1번 인스턴스 명
[ORACLE_SID] : 각 노드의 인스턴스 명
[DB_HOME] : 데이터베이스 소프트웨어 설치 경로
set verify off ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE host [DB_HOME]/bin/orapwd file=[DB_HOME]/dbs/orapw[ORACLE_SID1] force=y host ssh oracle@[HOST_NAME2] "[DB_HOME]/bin/orapwd file=[DB_HOME]/dbs/orapw[ORACLE_SID2] force=y" host [GRID_HOME]/bin/setasmgidwrap o=[DB_HOME]/bin/oracle host [DB_HOME]/bin/srvctl add database -d [DB_NAME] -o [DB_HOME] -p /dev/raw/raw20 -n [DB_NAME] host [DB_HOME]/bin/srvctl add instance -d [DB_NAME] -i [ORACLE_SID1] -n [HOST_NAME1] host [DB_HOME]/bin/srvctl add instance -d [DB_NAME] -i [ORACLE_SID2] -n [HOST_NAME2] host [DB_HOME]/bin/srvctl disable database -d [DB_NAME] @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDB.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBFiles.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBCatalog.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateJVM.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateClustDBViews.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOracleText.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateXDB.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateORDSchema.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateMultiMedia.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOLAP.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateSpatial.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateEMRepos.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateAPEX.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOWB.sql host echo "SPFILE='/dev/raw/raw20'" > [DB_HOME]/dbs/init[ORACLE_SID1].ora @[ORACLE_BASE]/admin/[DB_NAME]/scripts/lockAccount.sql @[ORACLE_BASE]/admin/[DB_NAME]/scripts/postDBCreation.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 /u01/app/oracle/product/11.2.0/db_1/bin/orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwracdb1 force=y host ssh oracle@rac2 "/u01/app/oracle/product/11.2.0/db_1/bin/orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwracdb2 force=y" host /u01/app/11.2.0/grid/bin/setasmgidwrap o=/u01/app/oracle/product/11.2.0/db_1/bin/oracle host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl add database -d racdb -o /u01/app/oracle/product/11.2.0/db_1 -p /dev/raw/raw20 -n racdb host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl add instance -d racdb -i racdb1 -n rac1 host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl add instance -d racdb -i racdb2 -n rac2 host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl disable database -d racdb @/u01/app/oracle/admin/racdb/scripts/CreateDB.sql @/u01/app/oracle/admin/racdb/scripts/CreateDBFiles.sql @/u01/app/oracle/admin/racdb/scripts/CreateDBCatalog.sql @/u01/app/oracle/admin/racdb/scripts/CreateJVM.sql @/u01/app/oracle/admin/racdb/scripts/CreateClustDBViews.sql @/u01/app/oracle/admin/racdb/scripts/CreateOracleText.sql @/u01/app/oracle/admin/racdb/scripts/CreateXDB.sql --@/u01/app/oracle/admin/racdb/scripts/CreateORDSchema.sql --@/u01/app/oracle/admin/racdb/scripts/CreateMultiMedia.sql --@/u01/app/oracle/admin/racdb/scripts/CreateOLAP.sql --@/u01/app/oracle/admin/racdb/scripts/CreateSpatial.sql --@/u01/app/oracle/admin/racdb/scripts/CreateEMRepos.sql --@/u01/app/oracle/admin/racdb/scripts/CreateAPEX.sql --@/u01/app/oracle/admin/racdb/scripts/CreateOWB.sql host echo "SPFILE='/dev/raw/raw20'" > /u01/app/oracle/product/11.2.0/db_1/dbs/initracdb1.ora @/u01/app/oracle/admin/racdb/scripts/lockAccount.sql @/u01/app/oracle/admin/racdb/scripts/postDBCreation.sql
서비스에 등록하고 각각의 SQL 스크립트를 수행할 스크립트를 생성합니다.
괄호 [] 안에 표시된 변수 부분은 실제 설치할 환경에 해당되는 내용으로 수정하여 저장하도록 합니다.
[DB_HOME]
[ORACLE_SID1]
[GRID_HOME]
[DB_NAME]
[ORACLE_SID1]
[HOST_NAME1]
[ORACLE_SID2]
[HOST_NAME2]
[ORACLE_BASE]
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDB.log append startup nomount pfile="[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora"; CREATE DATABASE "[DB_NAME]" 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 SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/raw/raw9' SIZE 699M AUTOEXTEND OFF SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/raw/raw10' SIZE 699M AUTOEXTEND OFF CHARACTER SET KO16MSWIN949 NATIONAL CHARACTER SET AL16UTF16 LOGFILE GROUP 1 ('/dev/raw/raw14') SIZE 199M, GROUP 2 ('/dev/raw/raw15') SIZE 199M, GROUP 3 ('/dev/raw/raw16') SIZE 199M USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword"; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateDB.log append startup nomount pfile="/u01/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 SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/raw/raw9' SIZE 699M AUTOEXTEND OFF SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/raw/raw10' SIZE 699M AUTOEXTEND OFF CHARACTER SET KO16MSWIN949 NATIONAL CHARACTER SET AL16UTF16 LOGFILE GROUP 1 ('/dev/raw/raw14') SIZE 199M, GROUP 2 ('/dev/raw/raw15') SIZE 199M, GROUP 3 ('/dev/raw/raw16') SIZE 199M USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword"; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBFiles.log append CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/dev/raw/raw11' SIZE 699M AUTOEXTEND OFF; CREATE SMALLFILE 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
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateDBFiles.log append CREATE SMALLFILE UNDO TABLESPACE "UNDOTBS2" DATAFILE '/dev/raw/raw11' SIZE 699M AUTOEXTEND OFF; CREATE SMALLFILE 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
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateDBCatalog.log append @[DB_HOME]/rdbms/admin/catalog.sql; @[DB_HOME]/rdbms/admin/catblock.sql; @[DB_HOME]/rdbms/admin/catproc.sql; @[DB_HOME]/rdbms/admin/catoctk.sql; @[DB_HOME]/rdbms/admin/owminst.plb; connect "SYSTEM"/"&&systemPassword" set echo on @[DB_HOME]/sqlplus/admin/pupbld.sql; @[DB_HOME]/sqlplus/admin/help/hlpbld.sql helpus.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateDBCatalog.log append @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql; @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catblock.sql; @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catproc.sql; @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catoctk.sql; @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/owminst.plb; connect "SYSTEM"/"&&systemPassword" set echo on @/u01/app/oracle/product/11.2.0/db_1/sqlplus/admin/pupbld.sql; @/u01/app/oracle/product/11.2.0/db_1/sqlplus/admin/help/hlpbld.sql helpus.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateJVM.log append @[DB_HOME]/javavm/install/initjvm.sql; @[DB_HOME]/xdk/admin/initxml.sql; @[DB_HOME]/xdk/admin/xmlja.sql; @[DB_HOME]/rdbms/admin/catjava.sql; @[DB_HOME]/rdbms/admin/catxdbj.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateJVM.log append @/u01/app/oracle/product/11.2.0/db_1/javavm/install/initjvm.sql; @/u01/app/oracle/product/11.2.0/db_1/xdk/admin/initxml.sql; @/u01/app/oracle/product/11.2.0/db_1/xdk/admin/xmlja.sql; @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catjava.sql; @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catxdbj.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateClustDBViews.log append @[DB_HOME]/rdbms/admin/catclust.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateClustDBViews.log append @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catclust.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOracleText.log append @[DB_HOME]/ctx/admin/catctx [PASSWORD] SYSAUX TEMP NOLOCK; connect "CTXSYS"/"[PASSWORD]" @[DB_HOME]/ctx/admin/defaults/dr0defin.sql "KOREAN"; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateOracleText.log append @/u01/app/oracle/product/11.2.0/db_1/ctx/admin/catctx change_on_install SYSAUX TEMP NOLOCK; connect "CTXSYS"/"change_on_install" @/u01/app/oracle/product/11.2.0/db_1/ctx/admin/defaults/dr0defin.sql "KOREAN"; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateXDB.log append @[DB_HOME]/rdbms/admin/catqm.sql [PASSWORD] SYSAUX TEMP YES; connect "SYS"/"&&sysPassword" as SYSDBA @[DB_HOME]/rdbms/admin/catxdbj.sql; @[DB_HOME]/rdbms/admin/catrul.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateXDB.log append @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catqm.sql change_on_install SYSAUX TEMP YES; connect "SYS"/"&&sysPassword" as SYSDBA @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catxdbj.sql; @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catrul.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateORDSchema.log append @[DB_HOME]/ord/admin/ordinst.sql SYSAUX SYSAUX; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateORDSchema.log append @/u01/app/oracle/product/11.2.0/db_1/ord/admin/ordinst.sql SYSAUX SYSAUX; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateMultiMedia.log append @[DB_HOME]/ord/im/admin/iminst.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateMultiMedia.log append @/u01/app/oracle/product/11.2.0/db_1/ord/im/admin/iminst.sql; spool off
SET VERIFY OFF set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOLAP.log append connect "SYS"/"&&sysPassword" as SYSDBA @[DB_HOME]/olap/admin/olap.sql SYSAUX TEMP; spool off
SET VERIFY OFF set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateOLAP.log append connect "SYS"/"&&sysPassword" as SYSDBA @/u01/app/oracle/product/11.2.0/db_1/olap/admin/olap.sql SYSAUX TEMP; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateSpatial.log append @[DB_HOME]/md/admin/mdinst.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateSpatial.log append @/u01/app/oracle/product/11.2.0/db_1/md/admin/mdinst.sql; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo off spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateEMRepos.log append @[DB_HOME]/sysman/admin/emdrep/sql/emreposcre [DB_HOME] SYSMAN &&sysPassword TEMP ON; WHENEVER SQLERROR CONTINUE; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo off spool /u01/app/oracle/admin/racdb/scripts/CreateEMRepos.log append @/u01/app/oracle/product/11.2.0/db_1/sysman/admin/emdrep/sql/emreposcre /u01/app/oracle/product/11.2.0/db_1 SYSMAN &&sysPassword TEMP ON; WHENEVER SQLERROR CONTINUE; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateAPEX.log append @[DB_HOME]/apex/catapx.sql [PASSWORD] SYSAUX SYSAUX TEMP /i/ NONE; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateAPEX.log append @/u01/app/oracle/product/11.2.0/db_1/apex/catapx.sql change_on_install SYSAUX SYSAUX TEMP /i/ NONE; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/CreateOWB.log append @[DB_HOME]/owb/UnifiedRepos/cat_owb.sql SYSAUX TEMP; spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/CreateOWB.log append @/u01/app/oracle/product/11.2.0/db_1/owb/UnifiedRepos/cat_owb.sql SYSAUX TEMP; spool off
SET VERIFY OFF set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/lockAccount.log append BEGIN FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN ('SYS','SYSTEM') ) LOOP dbms_output.put_line('Locking and Expiring: ' || item.USERNAME); execute immediate 'alter user ' || sys.dbms_assert.enquote_name( sys.dbms_assert.schema_name( item.USERNAME),false) || ' password expire account lock' ; END LOOP; END; / spool off
SET VERIFY OFF set echo on spool /u01/app/oracle/admin/racdb/scripts/lockAccount.log append BEGIN FOR item IN ( SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS IN ('OPEN', 'LOCKED', 'EXPIRED') AND USERNAME NOT IN ('SYS','SYSTEM') ) LOOP dbms_output.put_line('Locking and Expiring: ' || item.USERNAME); execute immediate 'alter user ' || sys.dbms_assert.enquote_name( sys.dbms_assert.schema_name( item.USERNAME),false) || ' password expire account lock' ; END LOOP; END; / spool off
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool [ORACLE_BASE]/admin/[DB_NAME]/scripts/postDBCreation.log append execute DBMS_AUTO_TASK_ADMIN.disable(); @[DB_HOME]/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/raw17') SIZE 199M, GROUP 5 ('/dev/raw/raw18') SIZE 199M, GROUP 6 ('/dev/raw/raw19') SIZE 199M; ALTER DATABASE ENABLE PUBLIC THREAD 2; host echo cluster_database=true >>[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora; host echo remote_listener=[SCAN_NAME]:[LISTENER_PORT]>>[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora; connect "SYS"/"&&sysPassword" as SYSDBA set echo on create spfile='/dev/raw/raw20' FROM pfile='[ORACLE_BASE]/admin/[DB_NAME]/scripts/init.ora'; shutdown immediate; host [DB_HOME]/bin/srvctl enable database -d [DB_NAME]; host [DB_HOME]/bin/srvctl start database -d [DB_NAME]; connect "SYS"/"&&sysPassword" as SYSDBA set echo on @[DB_HOME]/rdbms/admin/utlrp.sql; spool off exit;
SET VERIFY OFF connect "SYS"/"&&sysPassword" as SYSDBA set echo on spool /u01/app/oracle/admin/racdb/scripts/postDBCreation.log append execute DBMS_AUTO_TASK_ADMIN.disable(); @/u01/app/oracle/product/11.2.0/db_1/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/raw17') SIZE 199M, GROUP 5 ('/dev/raw/raw18') SIZE 199M, GROUP 6 ('/dev/raw/raw19') SIZE 199M; ALTER DATABASE ENABLE PUBLIC THREAD 2; host echo cluster_database=true >>/u01/app/oracle/admin/racdb/scripts/init.ora; host echo remote_listener=rac-scan:1521>>/u01/app/oracle/admin/racdb/scripts/init.ora; connect "SYS"/"&&sysPassword" as SYSDBA set echo on create spfile='/dev/raw/raw20' FROM pfile='/u01/app/oracle/admin/racdb/scripts/init.ora'; shutdown immediate; host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl enable database -d racdb; host /u01/app/oracle/product/11.2.0/db_1/bin/srvctl start database -d racdb; connect "SYS"/"&&sysPassword" as SYSDBA set echo on @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/utlrp.sql; spool off exit;
db_block_size=8192 #cluster_database=true #remote_listener=[SCAN_NAME]:[LISTENER_PORT] open_cursors=300 db_domain="" db_name="[DB_NAME]" control_files=('/dev/raw/raw12','/dev/raw/raw13') compatible=11.2.0.0.0 diagnostic_dest=[ORACLE_BASE] memory_target=834666496 processes=150 audit_file_dest="[ORACLE_BASE]/admin/[DB_NAME]/adump" audit_trail=db remote_login_passwordfile=exclusive [ORACLE_SID1].instance_number=1 [ORACLE_SID2].instance_number=2 [ORACLE_SID1].thread=1 [ORACLE_SID2].thread=2 [ORACLE_SID1].undo_tablespace=UNDOTBS1 [ORACLE_SID2].undo_tablespace=UNDOTBS2 db_recovery_file_dest_size=3G db_recovery_file_dest='/FRA'
############################################################################## # Copyright (c) 1991, 2001, 2002 by Oracle Corporation ############################################################################## ########################################### # Cache and I/O ########################################### db_block_size=8192 ########################################### # Cluster Database ########################################### #cluster_database=true #remote_listener=rac-scan:1521 ########################################### # Cursors and Library Cache ########################################### open_cursors=300 ########################################### # Database Identification ########################################### db_domain="" db_name="racdb" ########################################### # File Configuration ########################################### control_files=('/dev/raw/raw12','/dev/raw/raw13') ########################################### # Miscellaneous ########################################### compatible=11.2.0.0.0 diagnostic_dest=/u01/app/oracle sga_target=3g pga_aggregate_target=1g ########################################### # Processes and Sessions ########################################### processes=150 ########################################### # Security and Auditing ########################################### audit_file_dest="/u01/app/oracle/admin/racdb/adump" audit_trail=db remote_login_passwordfile=exclusive racdb1.instance_number=1 racdb2.instance_number=2 racdb1.thread=1 racdb2.thread=2 racdb1.undo_tablespace=UNDOTBS1 racdb2.undo_tablespace=UNDOTBS2
chmod 774 racDB.sh ls -ltra | grep racDB.sh
[racdb1:/u01/app/oracle/admin/racdb/scripts]> ls -ltra | grep racDB.sh -rwxr-x---. 1 oracle oinstall 891 4월 14 10:39 racDB.sh [racdb1:/u01/app/oracle/admin/racdb/scripts]> chmod 774 racDB.sh [racdb1:/u01/app/oracle/admin/racdb/scripts]> ls -ltra | grep racDB.sh -rwxrwxr--. 1 oracle oinstall 891 4월 14 10:39 racDB.sh
chmod 770 [ORACLE_BASE]/cfgtoollogs
[root@rac1 oracle]# chmod 770 /u01/app/oracle/cfgtoollogs
B) 데이터베이스 생성
cd $ORACLE_BASE/admin/[DB_NAME]/scripts sh racDB.sh
[oracle@racdb1 ~]$ cd $ORACLE_BASE/admin/racdb/scripts [racdb1:/u01/app/oracle/admin/racdb/scripts]> sh racDB.sh You should Add this entry in the /etc/oratab: racdb:/u01/app/oracle/product/11.2.0/db_1:N SQL*Plus: Release 11.2.0.4.0 Production on Tue Apr 14 15:26:19 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. Enter new password for SYS: Enter new password for SYSTEM: Enter password for SYS: Enter password for SYS: oracle Unable to find error file. Connected to an idle instance. SQL> spool /u01/app/oracle/admin/racdb/scripts/CreateDB.log append SQL> startup nomount pfile="/u01/app/oracle/admin/racdb/scripts/init.ora"; ORACLE instance started. Total System Global Area 3206836224 bytes Fixed Size 2257520 bytes Variable Size 654314896 bytes Database Buffers 2533359616 bytes Redo Buffers 16904192 bytes SQL> CREATE DATABASE "racdb" 2 MAXINSTANCES 32 3 MAXLOGHISTORY 1 4 MAXLOGFILES 192 5 MAXLOGMEMBERS 3 6 MAXDATAFILES 1024 7 DATAFILE '/dev/raw/raw6' SIZE 1000M AUTOEXTEND OFF EXTENT MANAGEMENT LOCAL 8 SYSAUX DATAFILE '/dev/raw/raw7' SIZE 1000M AUTOEXTEND OFF 9 SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/dev/raw/raw9' SIZE 699M AUTOEXTEND OFF 10 SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE '/dev/raw/raw10' SIZE 1000M AUTOEXTEND OFF 11 CHARACTER SET KO16MSWIN949 12 NATIONAL CHARACTER SET AL16UTF16 13 LOGFILE GROUP 1 ('/dev/raw/raw14') SIZE 199M, 14 GROUP 2 ('/dev/raw/raw15') SIZE 199M, 15 GROUP 3 ('/dev/raw/raw16') SIZE 199M 16 USER SYS IDENTIFIED BY "&&sysPassword" USER SYSTEM IDENTIFIED BY "&&systemPassword"; Database created. .... << 생략 >> .... SQL> SQL> Rem ===================================================================== SQL> Rem Run component validation procedure SQL> Rem ===================================================================== SQL> SQL> EXECUTE dbms_registry_sys.validate_components; PL/SQL procedure successfully completed. SQL> SET serveroutput off SQL> SQL> SQL> Rem =========================================================================== SQL> Rem END utlrp.sql SQL> Rem =========================================================================== SQL> spool off not spooling currently SQL> exit; Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options
[ORACLE_SID]:[DB_HOME]:N
racdb1:/u01/app/oracle/product/11.2.0/db_1:N
racdb2:/u01/app/oracle/product/11.2.0/db_1:N
{}