Oracle RAC on Docker
JPOUG Advent Calendar( https://jpoug.doorkeeper.jp/events/53797 )と Docker Advent Calendar2 (http://qiita.com/advent-calendar/2016/docker2 )の4日目です。
Oracle RAC on Dockerの作成スクリプトをgithub(https://github.com/s4ragent/rac_on_xx)で公開していますので、その紹介です
概要
- 基本情報
- | - |
---|---|
OS(イメージ) | Oracle Linux 7.2 |
Storage | NFS4 with Flex ASM |
L2 実装方式 | vxlan |
DNS | 各コンテナ上にdnsmasq |
- Network 情報 (3-nodes RACの場合)
hostname/container name/vip | eth0 | vxlan0(public) | vxlan1(internal) | vxlan2(asm) |
---|---|---|---|---|
storage | 10.153.0.50 | - | - | - |
node001 | 10.153.0.51 | 192.168.0.51 | 192.168.100.51 | 192.168.200.51 |
node002 | 10.153.0.52 | 192.168.0.52 | 192.168.100.52 | 192.168.200.52 |
node003 | 10.153.0.53 | 192.168.0.53 | 192.168.100.53 | 192.168.200.53 |
node001.vip | - | 192.168.0.151 | - | - |
node002.vip | - | 192.168.0.152 | - | - |
node003.vip | - | 192.168.0.152 | - | - |
scan1.vip | - | 192.168.0.31 | - | - |
scan2.vip | - | 192.168.0.32 | - | - |
scan3.vip | - | 192.168.0.33 | - | - |
- Storage 情報
Diskgroup name | use | asm device path | redundancy | size(MB) | size(MB)(3-nodes RACの場合) |
---|---|---|---|---|---|
VOTE | ocr and voting disk | /u01/oradata/vote.img | external | 5120 + ( num_of_nodes * 1024 ) | 8192 |
DATA | Database files | /u01/oradata/data.img | external | 5120 + ( num_of_nodes * 1024 ) | 8192 |
FRA | flash recovery area | /u01/oradata/fra.img | external | 5120 | 5120 |
必要なもの
- ubuntu/debian(Kernel 3.18 or later), CentOS/RHEL/OEL 7.2
- docker 1.12
- ansible 2.0 or later
- Oracle 12c Release 1 (12.1) Clusterware and Database software
- 1コンテナにつき、1core CPU および 4GB Memory
注意
各コンテナはprivilegedモードで起動するため、 検証環境でのみ使用してください
インストール方法
git clone https://github.com/s4ragent/rac_on_xx
使いかた
Oracle 12c Release 1 (12.1) Clusterware とDatabase software をdocker hostにダウンロード/展開します
#mkdir -p /media
#unzip linuxamd64_12102_database_1of2.zip -d /media
#unzip linuxamd64_12102_database_2of2.zip -d /media
#unzip linuxamd64_12102_grid_1of2.zip -d /media
#unzip linuxamd64_12102_grid_2of2.zip -d /media
#ls -al /media
total 16
drwxr-xr-x 4 root root 4096 May 1 21:56 .
drwxr-xr-x 3 root root 4096 May 1 21:53 ..
drwxr-xr-x 7 root root 4096 Jul 7 2014 database
drwxr-xr-x 7 root root 4096 Jul 7 2014 grid
dockerutil.sh runall を実行します (optionつけない場合は 3-nodes RACを作成します)
##create 3-nodes RAC#
#cd rac_on_xx/docker
#bash dockerutil.sh runall
5-nodes RACを作成したい場合は以下
##create 5-nodes RAC#
#cd rac_on_xx/docker
#bash dockerutil.sh runall 5
その後、最初のコンテナ(node001)にログインしたい場合は以下
#docker exec -ti node001 /bin/bash
最初のコンテナ(node001)でORACLEのコマンドを実行したい場合 (例. crsctl status res -t)
#docker exec -ti node001 /u01/app/12.1.0/grid/bin/crsctl status res -t
最初のコンテナ(node001)を停止したい場合
#bash dockerutil.sh stop 1
ストレージ用のコンテナ(storage)を停止したい場合
#bash dockerutil.sh stop storage
最初のコンテナ(node001)を起動したい場合
#bash dockerutil.sh start 1
コンテナを全て起動する場合
#bash dockerutil.sh startall
コンテナを全て削除する場合
#bash dockerutil.sh deleteall
制限事項
docker save非対応