Oracle/ORACLE 12c RAC環境構築 †VMwareWorkstation(VMware Playerでも可能と思う) で CentOS 6.7 x64 + Oracle 12cR1 Oracleの入手 †バイナリダウンロード先(2015/09/07時点) 以下の4ファイルをDL CnetOS6.7のHW構成 †
StarWind †iSCSI用のDISK作成 †
※ 作成方法はStorage参照 DNSの作成 †役割から「DNS」をインストールし以下の構成でゾーン作成する
CentOS 6.7 のインストール †選択するインストールパッケージ †
ネットワーク設定 †/etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.11.41 NETMASK=255.255.255.0 DNS1=192.168.11.40 DOMAIN=zone.com ※ DNS1 は DNSサーバーを指定 /etc/sysconfig/network-scripts/ifcfg-eth1 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.100.41 NETMASK=255.255.255.0 /etc/sysconfig/network echo "NOZEROCONF=yes" >> /etc/sysconfig/network /etc/hosts # Local 127.0.0.1 localhost.zone.com localhost # Physical IP 192.168.11.41 rac12c1.zone.com rac12c1 192.168.11.42 rac12c2.zone.com rac12c2 # RAC-SCAN 192.168.11.43 rac12c-srv.zone.com rac12c-srv # Private IP 192.168.100.41 rac12c1i.zone.com rac12c1-prv 192.168.100.42 rac12c2i.zone.com rac12c2-prv # Virtual IP 192.168.11.31 rac12c1-vip.zone.com rac12c1-vip 192.168.11.32 rac12c2-vip.zone.com rac12c2-vip ネットワークを再起動 /etc/init.d/network restart 名前解決の確認 host rac12c1 host rac12c2 host rac12c1-vip host rac12c2-vip host rac12c-srv host 192.168.11.31 host 192.168.11.32 host 192.168.11.41 host 192.168.11.42 host 192.168.11.43 セキュリティと不要なサービス無効化 †cat /etc/selinux/config | sed -e 's/=enforcing$/=disabled/' > /tmp/tmp; cp /tmp/tmp /etc/selinux/config /etc/rc.d/init.d/iptables stop chkconfig iptables off chkconfig ip6tables off chkconfig iscsi off chkconfig postfix off chkconfig bluetooth off chkconfig abrtd off chkconfig abrt-ccpp off chkconfig acpid off chkconfig atd off chkconfig cups off chkconfig cpuspeed off chkconfig netconsole off chkconfig netfs off /etc/〜各種設定 †/etc/sysconfig/ntpd cat /etc/sysconfig/ntpd | sed -e 's/OPTIONS=\"-u/OPTIONS=\"-x -u/' > /tmp/tmp; cp /tmp/tmp /etc/sysconfig/ntpd /etc/fstab cat /etc/fstab | sed -e 's/tmpfs defaults/tmpfs rw,exec,size=2560M/' > /tmp/tmp;cp /tmp/tmp /etc/fstab /etc/security/limits.conf grid hard nofile 65536 grid hard nproc 16384 oracle hard memlock 3145728 oracle hard nofile 65536 oracle hard nproc 16384 oracle soft nproc 2047 /etc/sysctl.conf 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 kernel.panic_on_oops = 1 -- 設定反映 sysctl -p 追加インストールパッケージ †mount -t iso9660 -r /dev/cdrom /mnt cd /mnt/Packages rpm -ivh compat-libstdc++*.x86_64.rpm rpm -ivh compat-libcap*.x86_64.rpm rpm -ivh libaio-devel-*.x86_64.rpm rpm -ivh unixODBC-*.x86_64.rpm rpm -ivh ksh-20120801-28.el6.x86_64.rpm ユーザー と グループ作成 †groupadd -g 501 asmdba groupadd -g 502 asmadmin groupadd -g 503 oinstall groupadd -g 504 dba useradd -g oinstall -G oinstall,asmadmin,asmdba,dba grid useradd -g oinstall -G dba,asmdba oracle passwd grid passwd oracle ディレクトリ作成 †mkdir -p /u01/app/oracle mkdir -p /u01/app/12.1.0/grid mkdir /u01/app/grid mkdir /u01/app/oraInventory chown -R grid:oinstall /u01 chown oracle:oinstall /u01/app/oracle chmod -R 775 /u01 環境変数 †~oracle/.bash_profile # ORACLE環境変数の設定 ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 # ORACLE_SIDは可変 ORACLE_SID=orcl1 NLS_LANG=Japanese_Japan.AL32UTF8 export ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANG # PATHに$ORACLE_HOME/binを追加 export PATH=$PATH:$ORACLE_HOME/bin ~grid/.bash_profile # 環境変数の設定 ORACLE_BASE=/u01/app/grid ORACLE_HOME=/u01/app/12.1.0/grid export ORACLE_BASE ORACLE_HOME export PATH=$PATH:$ORACLE_HOME/bin 共有ディスクの作成 †ターゲットの確認 iscsiadm -m discovery -t sendtargets -p [StarWindowのIP] iscscのスクリプト作成&登録 cd /etc/init.d/ vi iscsic #!/bin/bash # # Startup script for the iscsic # chkconfig: 12345 99 01 # description: iscsi SAN RETVAL=0 start() { echo -n $"target login $prog: " iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:win-4cmppg80s3q-data -p 192.168.11.40 --login iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:win-4cmppg80s3q-fra -p 192.168.11.40 --login echo } stop() { echo -n $"logout $prog: " iscsiadm -m discovery -t sendtargets -p 192.168.11.40 | awk '{print $2}' > /tmp/iscsi_tmp.cmd while read line do iscsiadm -m node -T $line --logout done < /tmp/iscsi_tmp.cmd /etc/init.d/rawdevices stop echo } status() { iscsiadm -m session echo } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo $"Usage: $0 {start|stop|restart|status}" RETVAL=1 esac exit $RETVAL サービスに登録 chmod 755 iscsic chkconfig --add iscsic service iscsic start DISKのパーティション作成 fdisk /dev/sdb n で新規領域を作成し、pでプライマリパーティション。サイズを指定して作成する w で保存して終了する ※ fdisk /dev/sdc 〜 e まで繰り返す /etc/udev/rules.d/60-raw.rules ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N" /etc/udev/rules.d/61-raw-permission.rules KERNEL=="raw1", MODE="0660", OWNER="grid", GROUP="asmadmin" KERNEL=="raw2", MODE="0660", OWNER="grid", GROUP="asmadmin" ※ ここで一旦OS再起動する DISKの初期化 dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=10000 dd if=/dev/zero of=/dev/raw/raw2 bs=1024k count=5000 Grid Install †su - grid unzip linuxamd64_12102_grid_1of2.zip > /dev/null unzip linuxamd64_12102_grid_2of2.zip > /dev/null su - cd ~grid/grid/rpm rpm -ivh cvuqdisk-1.0.9-1.rpm scp cvuqdisk-1.0.9-1.rpm rac12c2:/tmp exit cd grid ./runInstaller
インストール後のリソース状況 /u01/app/12.1.0/grid/bin/crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.DATA.dg ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.net1.network ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.ons ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac12c1 STABLE ora.MGMTLSNR 1 ONLINE ONLINE rac12c1 169.254.21.166 192.1 68.100.41,STABLE ora.asm 1 ONLINE ONLINE rac12c1 Started,STABLE 2 ONLINE ONLINE rac12c2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac12c1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac12c1 Open,STABLE ora.oc4j 1 ONLINE ONLINE rac12c1 STABLE ora.rac12c1.vip 1 ONLINE ONLINE rac12c1 STABLE ora.rac12c2.vip 1 ONLINE ONLINE rac12c2 STABLE ora.scan1.vip 1 ONLINE ONLINE rac12c1 STABLE -------------------------------------------------------------------------------- フラッシュリカバリー用のASMディスク追加 †su - grid /u01/app/12.1.0/grid/bin/asmca GUIが起動したら「作成」から残りのディスクを「FRA」として作成する
DBソフトウェアインストール †su - oracle unzip linuxamd64_12102_database_1of2.zip > /devnull unzip linuxamd64_12102_database_2of2 > /dev/null ./runInstaller
最後にに rootシェルの実行を指定される。 /u01/app/oracle/product/12.1.0/dbhome_1/root.sh データベースの作成 †/u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca
作成後のクラスターリソース(ora.orcl.dbが追加されている) crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.DATA.dg ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.FRA.dg ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.LISTENER.lsnr ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.net1.network ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE ora.ons ONLINE ONLINE rac12c1 STABLE ONLINE ONLINE rac12c2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE rac12c1 STABLE ora.MGMTLSNR 1 ONLINE ONLINE rac12c1 169.254.21.166 192.1 68.100.41,STABLE ora.asm 1 ONLINE ONLINE rac12c1 Started,STABLE 2 ONLINE ONLINE rac12c2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE rac12c1 STABLE ora.mgmtdb 1 ONLINE ONLINE rac12c1 Open,STABLE ora.oc4j 1 ONLINE ONLINE rac12c1 STABLE ora.orcl.db 1 ONLINE ONLINE rac12c1 Open,STABLE 2 ONLINE ONLINE rac12c2 Open,STABLE ora.rac12c1.vip 1 ONLINE ONLINE rac12c1 STABLE ora.rac12c2.vip 1 ONLINE ONLINE rac12c2 STABLE ora.scan1.vip 1 ONLINE ONLINE rac12c1 STABLE DEFAULTプロファイルのパスワード期限を無期限にする †11gから有効期限が180日で設定されるようになってるため、変更しないと色々面倒。 ALTER PROFILE "DEFAULT" LIMIT PASSWORD_LIFE_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED; リスナー設定 †/u01/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.43)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) ## 以下を追加 ORCL1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.43)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) (INSTANCE_NAME = orcl1) ) ) ORCL2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.43)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) (INSTANCE_NAME = orcl2) ) ) EM Database Express †emctl がなくなってるので停止・起動方法は不明。インストール時に構成していれば自動で起動する。 https://192.168.11.43:5500/em lsnrctl status (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))に接続中 リスナーのステータス ------------------------ 別名 LISTENER バージョン TNSLSNR for Linux: Version 12.1.0.2.0 - Production 開始日 08-9月 -2015 21:00:27 稼働時間 0 日 0 時間 9 分 7 秒 トレース・レベル off セキュリティ ON: Local OS Authentication SNMP OFF パラメータ・ファイル /u01/app/12.1.0/grid/network/admin/listener.ora ログ・ファイル /u01/app/grid/diag/tnslsnr/rac12c2/listener/alert/log.xml リスニング・エンドポイントのサマリー... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.11.42)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.11.32)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=rac12c2.zone.com)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/product/12.1.0/dbhome_1/admin/orcl/xdb_wallet))(Presentation=HTTP)(Session=RAW)) サービスのサマリー... サービス"+ASM"には、1件のインスタンスがあります。 インスタンス"+ASM2"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"-MGMTDBXDB"には、1件のインスタンスがあります。 インスタンス"-MGMTDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"_mgmtdb"には、1件のインスタンスがあります。 インスタンス"-MGMTDB"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"orcl"には、1件のインスタンスがあります。 インスタンス"orcl2"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"orclXDB"には、1件のインスタンスがあります。 インスタンス"orcl2"、状態READYには、このサービスに対する1件のハンドラがあります... サービス"rac12c_cluster"には、1件のインスタンスがあります。 インスタンス"-MGMTDB"、状態READYには、このサービスに対する1件のハンドラがあります... コマンドは正常に終了しました。 -- ポート番号の確認 SQL> select dbms_xdb_config.gethttpsport() from dual; Oracleトレース・ファイル・アナライザ・コレクタ †https://docs.oracle.com/cd/E16338_01/rac.112/b56289/troubleshoot.htm find /u01/app/grid/tfa/[ホスト名]/database/BERKELEY_JE_DB -name "*jdb*" -mtime +3 -type f | xargs ls -rm -- TFAデーモン起動、停止、再起動 /etc/init.d/init.tfa start /etc/init.d/init.tfa stop /etc/init.d/init.tfa restart -- TFAデーモンを停止し、構成からエントリを削除 /etc/init.d/init.tfa shutdown |