やったこと
- M1等のAppleシリコン搭載Macで動作するハイパーバイザーである「UTM」を利用してOracle LinuxのVMを作成
- Oracle Gird Infrastructure(ARM版)をインストール
- Oracle Restart構成でOracle Database(ARM版)をインストール
事前準備:Homebrewのインストール
今回はHomebrewを利用してUTMをインストールするため、まだbrewをインストールしていない場合はインストールする
Macでコンソールを開き、以下のコマンドを実行する
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/<username>/.zprofile
$ eval "$(/opt/homebrew/bin/brew shellenv)"
UTMのインストール
ここではHomebrewを使ってインストールをおこなう
Macでコンソールを開き、以下のコマンドを実行する
$ brew install utm
Oracle Linux 8のVM構築
- ARM版Oracle DatabaseがサポートされているのはOracle Linux8.6以降になる
下記のサイトからOracle Linux8(aarch64)の入手可能な最新のリリースをダウンロードする
例:OracleLinux-R8-U9-Server-aarch64-dvd.iso
- UTMでダウンロードしたisoファイルを使ってOracle Linux8を構築する
- 「仮想化」と「エミュレート」は「仮想化」を選択
- 「オペレーティングシステム」は「Linux」を選択
- 「起動ISOイメージ」にダウンロードしたISOファイルを選択
- その他項目は必要に応じて調整してVMを作成する(デフォルトのままでもよい)
- 作成したVMを起動する
- インストーラー画面に従ってインストールを進める
- 「時刻と日付」がアメリカになっているので、必要に応じて修正する
- 「ネットワークとホスト名」で「ホスト名」を任意のホスト名に修正する
- 「ネットワークとホスト名」で「オフ/オン」のトグルスイッチをクリックし、「オン」にする
- 「ネットワークとホスト名」で「設定」をクリックしてネットワークの設定をおこなう
- IPv6設定は使用しないので「無効」にしておく
- IPv4設定は「手動」にし、「アドレス」、「ネットマスク」、「ゲートウェイ」、「DNSサーバ」を設定する
メイン画面にDHCPから取得した情報が表示されているので、それを設定してもよい
- rootのパスワードを設定し、「インストールの開始」をクリックする
Grid Infrastructureのインストール
- rootユーザーでoracle-database-preinstall-19cをインストールする
# dnf install oracle-database-preinstall-19c
- ASM用のグループを作成する
# groupadd -g 54327 asmdba # groupadd -g 54328 asmoper # groupadd -g 54329 asmadmin
- インストール用のユーザーを作成し、パスワードを設定する
# useradd -u 54331 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba grid # passwd grid
- インストールディレクトリを作成する
# mkdir -p /u01/app/grid/product/19.0.0/grid # mkdir /u01/app/oraInventory # chown -R grid:oinstall /u01/app # chmod -R 775 /u01/app
- hostsにエントリを追加する
「[IPアドレス] [ホスト名].[ドメイン名] [ホスト名]」のエントリを追加する
vi /etc/hosts
- ASM用のディスクを追加する(※ ARM版ではASMFDやASMLIBは使用できない)
- Linuxをシャットダウンし、UTMの画面からディスクを追加する
インターフェイスは「SCSI」を選択する
- Linuxをシャットダウンし、UTMの画面からディスクを追加する
- Linuxを起動し、パーティションを作成する(ここではsda, sdb, sdcを追加したとする)
# parted /dev/sda mklabel msdos # parted /dev/sda mkpart primary 2048s 100% # parted /dev/sdb mklabel msdos # parted /dev/sdb mkpart primary 2048s 100% # parted /dev/sdc mklabel msdos # parted /dev/sdc mkpart primary 2048s 100%
- 権限設定をおこなうudevルールを作成する
# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
- 下記の内容を記載する
KERNEL=="sda1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdb1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdc1", OWNER="grid", GROUP="asmadmin", MODE="0660"
- 下記の内容を記載する
- 設定した内容を反映させる
# udevadm control --reload # udevadm trigger
- 下記のサイトからインストーラー(LINUX.ARM64_1919000_grid_home.zip)をダウンロードする
- gridユーザーでダウンロードしたファイルを展開し、インストールをおこなう
$ cd /u01/app/grid/product/19.0.0/grid $ unzip -q /home/grid/ダウンロード/LINUX.ARM64_1919000_grid_home.zip $ cd /u01/app/grid/product/19.0.0/grid/ $ ./gridSetup.sh
- 「スタンドアロン・サーバー用のOracle Grid Infrastructure(Oracle Restart)の構成」を選択
- ASMディスクは準備したディスクを選択(ここでは/dev/sda1, /dev/sdb1, /dev/sdc1)
- Oracleベースは「/u01/app/grid」
- インベントリは「/u01/app/oraInventory」
DBのインストール
- oracleユーザーにパスワードを設定し、operグループを追加
# passwd oracle # usermod -a -G oper oracle
- インストールディレクトリの作成と権限の調整
# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1 # chown -R oracle:oinstall /u01/app/oracle # chown -R oracle:oinstall /u01/app/oraInventory
- 下記のサイトからインストーラー(LINUX.ARM64_1919000_db_home.zip)をダウンロードする
- oracleユーザーでダウンロードしたファイルを展開し、インストールをおこなう
$ cd /u01/app/oracle/product/19.0.0/dbhome_1/ $ unzip -q ~/ダウンロード/LINUX.ARM64_1919000_db_home.zip $ ./runInstaller
- 構成オプションは「ソフトウェアのみの設定」を選択
- インストールタイプは「単一インスタンス・データベースのインストール」を選択
- Oracleベースは「/u01/app/oracle」
- インベントリは「/u01/app/oraInventory」
DBの作成
- oracleユーザーの環境変数を設定する
$ export ORACLE_BASE=/u01/app/oracle $ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 $ export PATH=$ORACLE_HOME/bin:$PATH
- dbcaを実行してDBを作成する
dbca
- 「記憶域タイプ」は「ASM」が選択されていなければ選択する
- (拡張構成を選択した場合)リスナーはgrid配下のリスナーが表示される
- (拡張構成を選択した場合)「グローバル・ポートとしてEM Database Expressポートを構成」にチェックを入れるとPDBも管理できる