16
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

11gしか知らないオッサンが19cを触る

この記事はJPOUG Advent Calendar 2019の21日目の投稿です。
20日目は、おおの たかしさんの記事、"超"現実的に考える!Oracle CloudへのDB移行ガイドでした。

今日は、Oracle11gでOracleDBから退いたオッサンが華麗(加齢)に舞い戻ってくる記事です。

TL;DR

  • おっさんが久しぶりにOracleDBを構築するだけ
  • OracleCloudのDBをちょっとだけ触ってみてビビる

お前だれ?

今はウィルゲートという会社で、ユーザー投稿型メディア『暮らしニスタ』、SEO分析ツール『TACT』など自社Webサービスの運用全般やってますが、インフラエンジニアとしてのスタートはOracleDBでした。

未経験でSIerに入りOracle10gを勉強して、一応Goldの資格も取らせてもらいました。
ただ実際に現場に出ると10gのサポート期限が近かったので、11gに移行や構築っていうのが殆どでした。

現場で主に担当してたのは方式設計から詳細設計くらいで、こういう構成で作りますよっていうのを決めて、それをもとにDBのパラメータなんかを決めて、パラメータシートを構築チームに渡すっていう感じです。

構築は専門のチームがいて、スクリプトでササーっと何十ものDBをあっという間に作ってて手際のいい方々でした。

それがいまから7~8年前以上の話で、そこからはSIerの一人情シスを経て今の会社に転職するんですが、OracleDBに触る機会は全くありませんでした。

11g→12c→18c→19cと、随分とバージョンが上がってしまいましたが、『久しぶりに触ってみようかな』ていうのが今回の記事です。

ご存知の方も多いでしょうが、Oracleは12cからプラガブルDBという、マルチテナント型のDBに構成が変わってます。
11gで止まってるおっさんは19cの新機能以前に、このプラガブルDBで戸惑うのでご容赦ください。

ところで19cて「イチキューシー」て呼ぶの?

OracleDBをインストールしてみよう

ご存じない方に説明すると、OracleDBはyumとかaptで入るわけではなく、ざっくりいうと

  • 管理、インストール用のユーザ作成
  • 必要なパッケージのインストール
  • OSのカーネルパラメータ設定
  • OSのリソース制限の設定
  • インストールディレクトリの設定
  • X Windowの設定(GUIでやる場合)
  • ソフトウェアのインストール
  • DB作成

といった手順が必要で、ぶっちゃけ所見殺しっていうレベルじゃなくて、僕が現役だった頃はこれで1日潰れてもおかしくないくらいでした。

今回もそれくらいかかってます。

手元のVMに入れてみました。構成は以下の通り

  • CentOS7.4
    • CPU:4core
    • MEM:8GB
    • SSD:20GB

Databaseインストレーション・ガイドfor Linux をもとにやってみました。

  • OSのパラメータ設定
  • 管理、インストール用のユーザ作成
  • 必要なパッケージのインストール
  • インストールディレクトリの設定
  • X Windowの設定(GUIでやる場合)

ここまでの手順は「昔とあんま変わらないな」という印象でした。ただ『Oracle Preinstallation RPM』というので簡略化できるのは知りませんでした。

でやっぱりクセなんですかね?昔と同じようにX Windowの環境変数まわりでハマってインストーラが起動しなくて焦りました。全く成長してないなあ俺

やっと起動したインストーラをご覧ください。3000年ぶりだねえ

2019-12-21_11h31_21.png

いいぞ、その調子だ

2019-12-21_11h35_53.png

後は待つだけですよ

2019-12-21_11h52_49.png

構築途中のTOPコマンドの結果見てみましょう

top - 12:01:04 up  9:27,  4 users,  load average: 0.93, 1.12, 0.62
Tasks: 225 total,   1 running, 224 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8033104 total,    52712 free,  2650080 used,  5330312 buff/cache
KiB Swap:  4190204 total,  4141948 free,    48256 used.  2822780 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                  
26634 oracle    20   0 5962760 868528  17828 S   0.0 10.8   1:09.29 java
 6930 oracle    20   0 2886136 415496 399568 S   1.3  5.2   0:02.83 oracle_6930_orc
 5120 oracle    20   0 4287832 375548  22624 S   0.0  4.7   0:18.99 java
 5946 oracle    20   0 2869096 308572 304692 S   0.0  3.8   0:00.24 ora_mman_orcl
 5968 oracle    20   0 2889408 205052 185188 S   0.0  2.6   0:00.56 ora_dbw0_orcl
 6647 oracle    20   0 2906528  75332  54832 S   0.0  0.9   0:00.52 ora_p000_orcl
20078 root      20   0 1257948  66088  12828 S   0.3  0.8   0:13.20 plasma-desktop
 5958 oracle    20   0 2886324  58728  52976 S   0.0  0.7   0:00.39 ora_dbrm_orcl
 6011 oracle    20   0 2885332  54048  48388 S   0.0  0.7   0:00.32 ora_mmon_orcl
 5986 oracle    20   0 2875248  43552  36968 S   0.0  0.5   0:00.04 ora_lreg_orcl
 5982 oracle    20   0 2885264  42500  37272 S   0.0  0.5   0:00.23 ora_reco_orcl
 1335 root      20   0  346940  38712   8728 S   0.0  0.5   0:11.24 X
 5984 oracle    20   0 2869000  36920  32708 S   0.0  0.5   0:00.05 ora_w000_orcl
 5730 oracle    20   0  138828  36656  15992 S   0.0  0.5   0:01.16 rman
 6649 oracle    20   0 2884992  35912  31604 S   0.0  0.4   0:00.12 ora_p001_orcl
 6651 oracle    20   0 2884992  35816  31520 S   0.0  0.4   0:00.11 ora_p002_orcl
 6653 oracle    20   0 2884996  35540  31232 S   0.0  0.4   0:00.11 ora_p003_orcl
 6086 oracle    20   0 2868992  35232  31012 S   0.0  0.4   0:00.03 ora_w003_orcl
 5974 oracle    20   0 2869104  34036  29740 S   0.0  0.4   0:00.17 ora_ckpt_orcl
 5955 oracle    20   0 2992216  33944  25796 S   0.0  0.4   0:00.03 ora_scmn_orcl
 5966 oracle    20   0 2873388  33844  26804 S   0.0  0.4   0:00.24 ora_dia0_orcl
 5970 oracle    20   0 2870128  32404  27928 S   0.0  0.4   0:04.43 ora_lgwr_orcl
 5988 oracle    20   0 2868964  32312  28212 S   0.0  0.4   0:00.03 ora_w001_orcl
 6040 oracle    20   0 2891504  32180  17788 S   0.0  0.4   0:00.01 ora_tt00_orcl
 5978 oracle    20   0 2869244  28476  24320 S   0.0  0.4   0:00.03 ora_smon_orcl
 6052 oracle    20   0 2868956  28320  24416 S   0.0  0.4   0:00.03 ora_w002_orcl

ora_ で始まるのがOracleDBのバックグラウンド・プロセスたちです。

mmon!lgwr!久しぶりじゃないか!dbwちょっと痩せたんじゃないのか? ホント懐かしい。みんな元気そう。

構築も無事終わったのでログインしてみましょう

$ $ORACLE_HOME/bin/sqlplus /nolog

SQL*Plus: Release 19.0.0.0.0 - Production on Sat Dec 21 12:23:10 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.
SQL> conn / as sysdba
????????
SQL>

SQL> select INSTANCE_NAME,STATUS from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
orcl             OPEN

おー上がってる!ホント久しぶり。OracleDBよ!私は帰ってきた!

ところで、どこら辺がプラガブルDBなの?

徹底解説!Oracle Database 12cのすべて Vol.2を参考にして触っていこう。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO

PDB$SEED っていうのがPDBの初期テンプレートなのか。でPDB単位でのOPEN/CLOSEはALTER文なのね。


-- ORCLPDBをCLOSEする
SQL> ALTER PLUGGABLE DATABASE ORCLPDB CLOSE;

プラガブル・データベースが変更されました。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        MOUNTED  


-- ORCLPDBをOPENする
SQL> ALTER PLUGGABLE DATABASE ORCLPDB OPEN;

プラガブル・データベースが変更されました。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO

なるほどね。実際に導入となるとこれが部署とか業務単位で別れるんかね。PDBごとに初期パラメータを持たせられるので、リソースを変に食い合う事もないのか。

Oracle Cloudだとどうなの?

たしかDBサービスもあったよね。構築してみよう。

『Create an ATP database』をクリック
2019-12-21_16h23_34.png

コンパートメントや名前を設定
2019-12-21_16h24_25.png

Always Freeだと設定項目が少ない。管理者パスワードを設定して『Autonomous Databaseの作成』クリック!

2019-12-21_16h30_43.png

しばし待つ

2019-12-21_16h31_05.png

1分くらいで出来た!手元のVMだと1日かかったのに…

2019-12-21_16h31_58.png

『ツール』タブに『SQL Developer Web』があるので、『SQL Developer Webを開く』をクリックしてみる。

2019-12-21_16h33_00.png

先ほどパスワードを設定した管理者でログイン

2019-12-21_16h34_50.png

SQL Developerだ。噓でしょ?もう繋がってるの?

2019-12-21_16h35_44.png

ホントだ…もうDBがOpenしてる…

2019-12-21_16h36_59.png

PDBも出来てるやん…すげー

2019-12-21_16h39_03.png

なんという楽さ。OracleDBのインストールが不要の世界がこんなにも便利とは…
仮想マシン以来の衝撃ですよこれは…

感想

インストールはやっぱ辛いなっていうのが感想w

19cの新機能にまったくたどり着けず申し訳ありません。
でも久しぶりにOracleDBと向き合えて楽しかったです。

今回構築した手元のVMは残しておいて、ちょっとリハビリしたいと思います。

貴重な機会を頂き有難うございました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
16
Help us understand the problem. What are the problem?