以前にWindows環境でOracle 12cのOracle Real Application Clusters(RAC)に構築したのですが、その際に結構ハマりまくって難儀したので公開可能な範囲で知見を共有したいと思いこのエントリを書きます。
お断り
RACを扱うのはクリティカルな環境が多そうなので一応断りを入れておきます。
今回構築するのはあくまでお試しの環境です。
本エントリの手順をそのまま本番環境に実施してRACを構築・運用するのはお勧めしませんし、それにより何らかのエラーや損害が出たとしても一切責任を負えませんのであらかじめご了承ください。
基本的にRACを含めてOracle Databaseはサポート契約無しで運用すると死ねるので、何か問題が起きた時はきちんとサポートに問い合わせて対処する様にしてください。
構築する環境について
断りをいれたところで今回構築する環境について説明します。
以前に構築した時はアプライアンスのストレージを使ったりしたのですが、今回はストレージもWindows ServerにしてAll Windowsな環境でRACの構築を行ってみます。
WindowsのバージョンはすべてWindows Serer 2012 R2
、Oracleは先日リリースされたばかりのOracle Database 12.1.0.2.0 Standard Edition
でSE2 RACにしてみます。
具体的なスペックについては以下の様にします。
サーバーの種類 | CPU | メモリ | ドライブ | ホスト名 | IPアドレス(Public) | IPアドレス(iSCSI) | IPアドレス(RACインターコネクト) | 特記事項 |
---|---|---|---|---|---|---|---|---|
Domain Controller | 2コア | 2GB | C:20GB | dcserver | 192.168.33.11 | 作成するドメインは contso.local とする | ||
Storage Server | 2コア | 2GB | C:20GB D:50GB | storageserver | 192.168.33.21 | 192.168.34.21 | iSCSIストレージ | |
RAC Node #1 | 2コア | 6GB | C:20GB D:20GB | oraserver01 | 192.168.33.31 | 192.168.34.31 | 192.168.35.31 | Oracle 12.1.0.2.0 SE2 |
RAC Node #1 VIP | - | - | - | oraserver01-vip | 192.168.33.33 | |||
RAC Node #2 | 2コア | 6GB | C:20GB D:20GB | oraserver02 | 192.168.33.32 | 192.168.34.32 | 192.168.35.32 | Oracle 12.1.0.2.0 SE2 |
RAC Node #2 VIP | - | - | - | oraserver02-vip | 192.168.33.34 | |||
RAC SCAN | - | - | - | oracluster | 192.168.33.41 192.168.33.42 192.168.33.43 | DNSラウドロビン |
図にするとこんな感じです。
環境はVirtualBox上に仮想環境を作り、Vagrantを使ってある程度構築を省力化します。
Vagrantfileは以下の様な感じになります。
# -*- mode: ruby -*- # vi: set ft=ruby : # All Vagrant configuration is done below. The "2" in Vagrant.configure # configures the configuration version (we support older styles for # backwards compatibility). Please don't change it unless you know what # you're doing. Vagrant.configure(2) do |config| # Domain Controller config.vm.define "dc" do |dc| dc.vm.box = "Win2012R2" dc.vm.guest = :windows dc.vm.communicator = :winrm # Network Configurations dc.vm.network "private_network", ip: "192.168.33.11", adapter: 2, virtualbox__intnet: "public" # VM Configurations dc.vm.provider "virtualbox" do |vb| vb.gui = true vb.memory = "2048" vb.customize ["modifyvm", :id, "--cpus", "2"] vb.customize ["modifyvm", :id, "--paravirtprovider", "hyperv"] end end # Storage Server config.vm.define "storage" do |storage| storage.vm.box = "Win2012R2" storage.vm.guest = :windows storage.vm.communicator = "winrm" # Network Configurations storage.vm.network "private_network", ip: "192.168.33.21", adapter: 2, virtualbox__intnet: "public" storage.vm.network "private_network", ip: "192.168.34.21", adapter: 3, virtualbox__intnet: "iscsi" # VM Configurations storage.vm.provider "virtualbox" do |vb| vb.gui = true vb.memory = "2048" vb.customize ["modifyvm", :id, "--cpus", "2"] vb.customize ["modifyvm", :id, "--paravirtprovider", "hyperv"] end end # RAC Node #1 config.vm.define "rac1" do |rac1| rac1.vm.box = "Win2012R2" rac1.vm.guest = :windows rac1.vm.communicator = "winrm" # Network Configurations rac1.vm.network "private_network", ip: "192.168.33.31", adapter: 2, virtualbox__intnet: "public" rac1.vm.network "private_network", ip: "192.168.34.31", adapter: 3, virtualbox__intnet: "iscsi" rac1.vm.network "private_network", ip: "192.168.35.31", adapter: 4, virtualbox__intnet: "interconnect" # rac1.vm.provider "virtualbox" do |vb| vb.gui = true vb.memory = "6144" vb.customize ["modifyvm", :id, "--cpus", "2"] vb.customize ["modifyvm", :id, "--paravirtprovider", "hyperv"] end end # RAC Node #2 config.vm.define "rac2" do |rac2| rac2.vm.box = "Win2012R2" rac2.vm.guest = :windows rac2.vm.communicator = "winrm" # Network Configurations rac2.vm.network "private_network", ip: "192.168.33.32", adapter: 2, virtualbox__intnet: "public" rac2.vm.network "private_network", ip: "192.168.34.32", adapter: 3, virtualbox__intnet: "iscsi" rac2.vm.network "private_network", ip: "192.168.35.32", adapter: 4, virtualbox__intnet: "interconnect" # rac2.vm.provider "virtualbox" do |vb| vb.gui = true vb.memory = "6144" vb.customize ["modifyvm", :id, "--cpus", "2"] vb.customize ["modifyvm", :id, "--paravirtprovider", "hyperv"] end end end
上記例ではVagrant BoxWin2012R2
を使っていますが、Boxは、
の手順を参考にするなどして適当に作成してください。
今回使うBoxWin2012R2
はOSインストール直後の状態に最新のWindows Updateを適用したものになっています。
構築の手順
以降のエントリは以下の順序でWindowsでRACを構築する手順について説明していきます。
(状況によっては順序や内容を変えるかもしれません...)
Active Directoryの構築
Storage Server(iSCSI)の構築
RACインストールのための前準備
Oracle Grid Infrastructureのインストール
ASMの設定
Oracle Database Softwareのインストール
データベース作成
- 作者: 鈴木健吾,玉置雄大,塩原浩太,小林修,大森慎司,内村友亮
- 出版社/メーカー: 技術評論社
- 発売日: 2015/05/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る