CentOS Stream8 に Oracle19cをサイレントインストール
Oracleも12cはサポートやめてしまったので、最近は19へのアップデートがあちこちで発生しているでしょう。なんならOSもというので、今日はCentOS改め、CentOS Stream 8に、Oracle19cを載せる試みの奮闘記を。
1.VirtualBoxにCentOS Stream8をインストールしておく
VirtualBoxを使います。フリーなので。
なお、VirtualBoxのバージョンによるのか、あるいはRHEL8なのか、インストーラがkernel panicになることがあるようです。原因はHyper-Vらしいのですが、詳しくないので詳細は省きます。
対処としては、Windowsコマンドプロンプトを管理者権限で起動し以下実行し、PC再起動すると、Hyper-Vのオプションを殺してくれます。
bcdedit /set hypervisorlaunchtype off
DISM /Online /Disable-Feature:Microsoft-Hyper-V
DISM /Online /Get-Features
お約束のSELinux無効化とFirewalld停止、sshdのUseDNSをOFFり、/etc/hostsに実IP記載し再起動しておきましょう。
2.ユーザ・グループの追加
もちろん、rootで実行します。
useradd oracle
passwd oracle
groupadd oinstall
groupadd dba
groupadd oper
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
usermod -aG oinstall,dba,oper,backupdba,dgdba,kmdba,racdba oracle
3.各種事前インストール
色々、依存パッケージを入れておきましょう。この辺りは好き好きで追加して。
yum install -y unzip libnsl
4.OracleRPMインストール
有り難いことに、Oracle19cから、サイレントインストール用にrpmが用意されています。事前に/rootにOracle19cのrpmを配置しておきましょう。言わずもがな、でかいです。
oracle-database-ee-19c-1.0-1.x86_64.rpm
では、インストールです。まずは、依存関係のあるrpmをcurlで取得しておきます。
curl -o compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
curl -o compat-libcap1-1.10-7.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libcap1-1.10-7.el7.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -ivh compat-libcap1-1.10-7.el7.x86_64.rpm
curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
プレインストーラがあるんですね。ローカルインストールします。
yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
プレが終わったら、本チャンです。
yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
昔はrootで流すスクリプトがあったのですが、rpm版では不要みたい。
5.DB作成
ホームディレクトリにdbca.rspを配置します。サンプルをコピーして使いましょう。内容は環境次第なのでいいように設定してください。とりあえず動かすだけなら以下のパラメータくらいでいいでしょう。mydbのところは自分の好きなSIDに変えてね。
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=mydb
sid=mydb
templateName=New_Database.dbt
sysPassword=oracle
systemPassword=oracle
characterSet=JA16SJISTILDE
nationalCharacterSet=AL16UTF16
ちなみに、このままだやると、後続のdbcaコマンド実行時にパスワードが単純すぎだと怒られます。まあ、構築できるので無視しますけど。本番システムの場合はちゃんとしましょうということで。
環境変数設定
oracleユーザのホームディレクトリ/home/oracleの.bash_profileに以下緑字を追加します。
vi .bash_profile
export ORACLE_BASE=/opt/oracle/product
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1/
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=mydb
export NLS_LANG=Japanese_Japan.JA16SJIS
読み込んでおきましょう。
source ~/.bash_profile
構築実行
$ORACLE_HOME/bin/dbca -silent -createDatabase -responseFile ~/dbca.rsp
いつものことですが、dbcaは時間かかります。
終わったらサーバ再起動。
oracleユーザでログインし、sqlplusで接続してみましょう。
sqlplus / as sysdba
接続できたら、起動しましょう!
SQL>startup
リスナも起動
SQL>quit
lsnrctl start
一通り動作確認できたら、停止しときましょう。
lsnrctl stop
sqlplus / as sysdba
SQL>shutdown immediate
SQL>quit
rpmはやっぱり楽は楽ですね。/optの下にインストールされます。インストール先をカスタマイズする方法もあるのかもしれませんが、自分は困らないので、これで今日はおしまい。