「システム基盤構築のプロフェッショナル」レック・テクノロジー・コンサルティングJapanese | English

レック・テクノロジー・コンサルティング株式会社

技術ブログ

HOME > 技術ブログ > 月別アーカイブ: DB1

月別アーカイブ: DB1

Oracle Audit Vault and Database Firewall のインストールについて

Oracle Audit Vault and Database Firewall ( 以下、AVDF ) のインストールについて紹介したいと思います。
AVDFはソフトウェア・アプライアンスとなるため、OSからアプリケーションまでパッケージ化されています。そのため、AVDFをisoイメージからインストールすると、OSやGI、DB、Javaコンポーネントなど、すべて自動で構成してくれます。


例として、AVDF 20.8 の Audit Vault Server をインストールして確認してみると、以下のように、Linux7.9上に、Grid Infrastructure 19.16、Database 19.16 がインストールされASMインスタンスやDBインスタンスなどが自動で構成されます。

AVDF 20.8 の Audit Server のソフトウェア構成

[root@av ~]# cat /etc/oracle-release
Oracle Linux Server release 7.9
[grid@av ~]$ $ORACLE_HOME/OPatch/opatch lspatches
34318175;TOMCAT RELEASE UPDATE 19.0.0.0.0 (34318175)
34160635;OCW RELEASE UPDATE 19.16.0.0.0 (34160635)
34139601;ACFS RELEASE UPDATE 19.16.0.0.0 (34139601)
34133642;Database Release Update : 19.16.0.0.220719 (34133642)
33575402;DBWLM RELEASE UPDATE 19.0.0.0.0 (33575402)

OPatch succeeded.
[oracle@av ~]$ $ORACLE_HOME/OPatch/opatch lspatches
34160635;OCW RELEASE UPDATE 19.16.0.0.0 (34160635)
34381597;EXCESSIVE REALM AUDIT RECORDS ARE GENERATED DURING AQ RULE EVALUATION
34133642;Database Release Update : 19.16.0.0.220719 (34133642)

OPatch succeeded.

AVDF 20.8 Audit Server クラスタリソース

[grid@av ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.EVENTDATA.dg
               ONLINE  ONLINE       av                       STABLE
ora.RECOVERY.dg
               ONLINE  ONLINE       av                       STABLE
ora.SYSTEMDATA.dg
               ONLINE  ONLINE       av                       STABLE
ora.asm
               ONLINE  ONLINE       av                       Started,STABLE
ora.ons
               OFFLINE OFFLINE      av                       STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       av                       STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       av                       STABLE
--------------------------------------------------------------------------------

AVDF 20.8 Audit Server ディスクリソース

[root@av ~]# df -h
Filesystem                             Size  Used Avail Use% Mounted on
devtmpfs                               7.7G     0  7.7G   0% /dev
tmpfs                                   16G     0   16G   0% /dev/shm
tmpfs                                  7.7G   73M  7.7G   1% /run
tmpfs                                  7.7G     0  7.7G   0% /sys/fs/cgroup
/dev/mapper/vg_root-lv_ol7root         6.4G  2.9G  3.2G  48% /
/dev/mapper/vg_root-lv_var_dbfw        2.8G   36K  2.6G   1% /var/dbfw
/dev/mapper/vg_root-lv_opt_dbfw        943M  448K  878M   1% /opt/dbfw
/dev/mapper/vg_root-lv_var_log         5.5G   30M  5.1G   1% /var/log
/dev/mapper/vg_root-lv_home            943M   96K  878M   1% /home
/dev/mapper/vg_root-lv_images          463M   16K  434M   1% /images
/dev/mapper/vg_root-lv_tmp             1.9G   31M  1.8G   2% /tmp
/dev/mapper/vg_root-lv_var_tmp         5.5G   28K  5.2G   1% /var/tmp
/dev/mapper/vg_root-lv_oracle           58G   27G   28G  49% /var/lib/oracle
/dev/mapper/vg_root-lv_local_dbfw      943M  202M  677M  23% /usr/local/dbfw
/dev/mapper/vg_root-lv_local_dbfw_tmp  6.4G   28K  6.1G   1% /usr/local/dbfw/tmp
tmpfs                                  1.0G     0  1.0G   0% /usr/local/dbfw/volatile
tmpfs                                  1.6G     0  1.6G   0% /run/user/0
tmpfs                                  1.6G     0  1.6G   0% /run/user/1000

[grid@av ~]$ asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  1048576     30258    28969                0           28969              0             N  EVENTDATA/
MOUNTED  EXTERN  N         512             512   4096  1048576     30258    26572                0           26572              0             N  RECOVERY/
MOUNTED  EXTERN  N         512             512   4096  1048576     30256    26808                0           26808              0             N  SYSTEMDATA/

各ソフトウェアを一つずつインストールすると大変ですが、AVDF のインストールでは、すべて自動で構成されるため、導入が簡単となります。

以上、AVDF のインストールについてでした。

Oracle Audit Vault and Database Firewall のインストールについて

OEMコンソールの暗号化

初めまして、Re:QのY.Yと申します。

Oracle Enterprise Manager(以下OEM) 13cの通信暗号化に置いて、サードパーティ証明書を利用する方法について紹介したいと思います。
OEMの通信暗号化には、いくつか種類があるのですがOEMコンソールの暗号化について限定して記載します。

※上記の「サードパーティ証明書」は、一般の証明書利用者が認証局に依頼せずに、
 自身の公開鍵を自身の秘密鍵で署名して作成した証明書を示します。つまり自己署名証明書です。
 証明書の作成方法は割愛します。

暗号化の大まかな流れは

1. 証明書をOEMサーバ上に配置する。
2. サーバ証明書と秘密鍵をpkcs12形式で保存する。
3. walletを作成する。
4. walletに証明書を登録する。
5. walletを指定してOEMコンソールを暗号化する。
6. OMSを再起動する。
7. WebブラウザにルートCA証明書を登録する。

となります。



1. 証明書をOEMサーバ上に配置する。

まず、作業で使用する証明書をOEMのサーバに配置します。
必要な証明書は以下の3~4種類です。

■使用する証明書
 ・ルートCA証明書
 ・中間証明書(存在する場合)
 ・サーバ証明書
 ・秘密鍵(サーバ証明書を発行する時に使用した物)


2. 証明書と秘密鍵をpkcs12形式で保存する。

OEMコンソールの暗号化は配置した各証明書をwalletに登録して行います。
ルートCA証明書や中間証明書は証明書だけの登録で問題ありませんが、
サーバ証明書は、秘密鍵も一緒に登録する必要があります。
しかし、後述の「orapki」コマンドでは秘密鍵だけを登録するコマンドが見当たらないため
以下のコマンドを実行し、pkcs12形式のファイルとしてサーバ証明書と秘密鍵をマージします。

コマンド:
openssl pkcs12 -export -in {サーバ証明書のパス} -inkey {秘密鍵のパス} -out {pkcs12形式のファイルの出力先}

例:
$ openssl pkcs12 -export -in /tmp/server_cert.pem -inkey /tmp/server_certkey.pem -out /tmp/pkcs12.out
>パスワード入力を求められるので任意のパスワード(ここではexportpass)を入力します。


3. walletを作成する。

orapkiコマンドで証明書を格納するwalletを作成します。
oracle製品にはmkstoreコマンドを使用するoracle wallet(データベース接続時のユーザやパス
ワードを格納)も存在しますが、それとは別物ですので注意してください。

コマンド:
orapki wallet create -wallet {walletのパス} -auto_login -pwd {walletのパスワード}

例:
$ orapki wallet create -wallet /u01/app/oracle/wallets -auto_login -pwd password


4. walletに証明書を登録する。

作成したwalletに証明書を登録していきます。
ルートCA証明書、中間証明書(存在する場合)、サーバ証明書の順で登録します

・ルートCA証明書の登録

コマンド:
orapki wallet add -wallet {walletのパス} -trusted_cert -cert {ルートCA証明書のパス} -pwd {walletのパスワード}

例:
$ orapki wallet add -wallet /u01/app/oracle/wallets -trusted_cert -cert /tmp/rootca_cert.pem -pwd password

・中間証明書の登録

コマンド:
orapki wallet add -wallet {walletのパス} -trusted_cert -cert {中間証明書のパス} -pwd {walletのパスワード}

例:
$ orapki wallet add -wallet /u01/app/oracle/wallets -trusted_cert -cert /tmp/inter_cert.pem -pwd password

・サーバ証明書と秘密鍵の登録

コマンド:
orapki wallet import_pkcs12 -wallet {walletのパス} -pkcs12file {pkcs12形式のファイルのパス} -pwd {walletのパスワード}

例:
$ orapki wallet import_pkcs12 -wallet /u01/app/oracle/wallets -pkcs12file /tmp/pkcs12.out -pwd password
>pkcs12形式ファイルのパスワード入力を求められるのでexportpassと入力します。

5. walletを指定してOEMコンソールを暗号化する。

以下のコマンドが実行されれば暗号化は成功です。

コマンド:
emctl secure console -wallet /u01/app/oracle/wallets


6. OMSを再起動する。

暗号化の設定を反映させるためにOMSを再起動します。

コマンド:
emctl stop oms -all force
emctl start oms


7. WebブラウザにルートCA証明書を登録する。

仕上げにOEMコンソールにアクセスするWebブラウザ上にルートCA証明書を登録します。
これでOEMコンソールとWebブラウザ間で安全な通信を確立できます。


以上、OEMコンソールの暗号化方法でした。
デフォルトでは、暗号化されていないので検討してみてはいかがでしょうか。

OEMコンソールの暗号化

Capability Tour 2019 ~Singapore Part3 - Other Sessions~

こんばんは。第2回目のCapability Tourに参加したK.Iです。

1話目2話目をご覧下さった方はもうご存知かと思いますが、シンガポールで開催された
Oracle Open World(以下、OOW)が今回のメインイベントでした。
私からは、開催されたOOWのセッション内容の一部について簡単にご紹介したいと思います。

まず初めに「How to Migrate to Oracle Autonomous Database Cloud」という
Oracle Autonomous Database Cloudへのデータ移行方法を紹介したセッション
について紹介します。

Oracle Autonomous Database Cloudへのデータの移行方法として複数あります。
各移行方法について、実際のコマンドやポイントの説明がありました。

移行方法
- DBMS_CLOUD
- Data Pump
- SQL Loader
- SQL Developer

Data PumpやSQL Loaderなどは、オンプレミス時代から使われている移行方法
ですが、DBMS_CLOUDは、Oracle Cloud用のPL/SQLパッケージとなっています。

またSQL Developerについては、バージョンが昨年からDatabaseと同様に年次
リリース(18c)となり、Oracle Cloudに対応しておりGUI操作にてOracle Cloud
へデータをロードすることが可能となっています。

次に紹介するセッションは、
「Oracle Maximum Availability Architecture - Best Pratices」
となります。
Oracle Maximum Availability Architectureは、Oracle社から公開されている
高可用性ベストプラクティスです。

- Data Guard
- Multitenant
- Golden Gate
- Oracle Sharding
- Autonomous Database Cloud

主に上記技術についての高可用性のベストプラクティスやTipsの説明でした。
尚、Oracle Maximum Availability Architectureは、定期的にアップデート
されており、最新情報はOracle社の公式サイトでご確認ください。

その他セッションでは、IoT、ブロックチェーン、機械学習などもあり
Oracle社の製品は、何でも対応しているという印象を受けました。

また、展示会場では、VRを使用したゲーム体験もできました。

以上、貴重な経験ができた2日間でした。
次回は、共にイベントに参加したSingapore駐在メンバによるブログを公開予定です。
お楽しみに。

Capability Tour 2019 ~Singapore Part3 - Other Sessions~

集計に便利なROLLUP関数

はじめまして。Re:Qの入江です。

数ヶ月前にOracleの構築案件に携わったのですが、その使用目的がデータウェアハウスのデータマイニング用でした。データマイニングとは?という状態だったこともあり、好奇心からデータウェアハウスおよびデータマイニングについて色々調べてみました。
今日はそのとき見つけた、ちょっとした小技?小ネタ?を紹介したいと思います。

調べていくと、Oracleのマニュアル「Databaseデータ・ウェアハウス・ガイド 11gリリース2(11.2) B56309-03」のROLLUP(GROUP BYの拡張)という関数に目がとまりました。

ROLLUP関数...皆さん、ご存知ですか?

比較的よく使用していたGROUP BYの拡張という言葉にひきつけられ調べてみた結果、ROLLUP関数って便利だな~と感じましたので、DBAの観点からその良さをお伝えします。

ROLLUP関数

 
---------------------------------------------------------------------------
使い方:
  SELECT文のGROUP BY句に追加

用途:
  ①総計(合計)を取得
  ②小計を複数のレベルで取得

---------------------------------------------------------------------------

以下、例を使って説明します。

用途①:総計(合計)を取得

例1)表領域毎のデータファイルサイズ+全てのデータファイルサイズの合計を調べたい  
  (※TEMP表領域を除く)

・ROLLUP関数を使わない場合だと・・・

SQL> SELECT tablespace_name,SUM(bytes)/1024/1024 mb FROM dba_data_files
  2  GROUP BY tablespace_name;
TABLESPACE         MB
---------- ----------
SYSAUX            600
UNDOTBS1          505
USERS               5
SYSTEM            710
SQL> SELECT SUM(bytes)/1024/1024 mb FROM dba_data_files;
      MB
--------
    1820
の2つのSQLになります。
(結合して1つのSQLにも可能ですが、文が長くなります。)

そこで、ROLLUP関数を使用すると・・・

SQL> SELECT tablespace_name,SUM(bytes)/1024/1024 mb FROM dba_data_files
  2  GROUP BY ROLLUP(tablespace_name);
TABLESPACE         MB
---------- ----------
SYSAUX            600
SYSTEM            710
UNDOTBS1          505
USERS               5
                 1820 ★合計値
上記★にて、tablespace_name列がNullのレコードに合計値が出ていることに気付いたでしょうか。
ROLLUPを使用することにより、プラスアルファで同時に総計(合計)を取得できるのです。

 

用途②:小計を複数のレベルで取得

例2)スキーマ毎、オブジェクトタイプ毎の数を確認し集計したい
  (※SYSTEM、SYSMANスキーマに限定)

SQL> SELECT owner,object_type,COUNT(*) FROM dba_objects
  2  WHERE owner in ('SYSTEM','SYSMAN')
  3  GROUP BY ROLLUP(owner,object_type);
OWNER          OBJECT_TYPE                                COUNT(*)
-------------- ---------------------------------------- ----------
SYSMAN         LOB                                              75
SYSMAN         TYPE                                            672
SYSMAN         VIEW                                            471
SYSMAN         INDEX                                          1028
SYSMAN         QUEUE                                            12
SYSMAN         TABLE                                           729
SYSMAN         PACKAGE                                         193
SYSMAN         TRIGGER                                          97
SYSMAN         FUNCTION                                         12
SYSMAN         RULE SET                                          4
SYSMAN         SEQUENCE                                         13
SYSMAN         PROCEDURE                                         3
SYSMAN         TYPE BODY                                        49
SYSMAN         PACKAGE BODY                                    193
SYSMAN         MATERIALIZED VIEW                                 1
SYSMAN         EVALUATION CONTEXT                                2
SYSMAN                                                        3554 ★1
SYSTEM         LOB                                              25
SYSTEM         TYPE                                              1
SYSTEM         VIEW                                             14
SYSTEM         INDEX                                           241
SYSTEM         QUEUE                                             4
SYSTEM         TABLE                                           161
SYSTEM         PACKAGE                                           1
SYSTEM         SYNONYM                                           8
SYSTEM         TRIGGER                                           2
SYSTEM         SEQUENCE                                         20
SYSTEM         PROCEDURE                                         1
SYSTEM         PACKAGE BODY                                      1
SYSTEM         INDEX PARTITION                                  52
SYSTEM         TABLE PARTITION                                  39
SYSTEM                                                         570 ★2
                                                              4124 ★3
★1:SYSMANのオブジェクト小計
★2:SYSTEMのオブジェクト小計
★3:SYSTEM、SYSMANスキーマのオブジェクト総計

と小計と総計が取得できたことをお分かりいただけたでしょうか。

例1と2のように、サクッとSQLを実行して、小計や総計も取得して調べたい時、ROLLUP関数を知っておくと便利です。DBAの方も集計を必要な時、ROLLUP関数の使用を検討してみてはいかがでしょうか。

Oracleには隠れた機能がいっぱいあります(むろん知っている人は知っていますが)。
そんなちょっとした機能、小技のノウハウを少しでも紹介していき、活用頂ければ幸いです。

集計に便利なROLLUP関数
資料請求・お問い合わせはこちら

▲ ページトップに戻る

技術ブログ

2023年8月
« 7月  
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
採用に関するお問い合わせはこちら