2022年4月15日 (金)

Did you know VirtualBox unsupported m1 mac?

VirtualBoxがM1 macをサポートしてなかったのをご存じでしょうか...意外と知らない方が多いみたい。


Virtualbox Mac m1
https://discussions.apple.com/thread/253292128

20220415-193649

 

これを知らないと少々ザワザワした状況になります。
実は、Intel MacからMigrateしてM1に移行したりしても、VirtualBox自体は起動したりします。起動できないことを示すアイコンに置き換わっていませんし。

20220415-192451


20220415-194101

異常は無いように思うかもしれませんが、VirtualBox is a general-purpose full virtualizer for x86 hardware なんですよ。

分かりずらいかもしれません。

ザワザワしていた影響だと思いますが、昨年末に、VirtualBox 6.1.30 (released November 22 2021)で、インストーラで未サポートのCPUにはインストールできないようなインストラーの変更がありました。

macOS host: show message indicating the unsupported CPU on M1 based Macs and abort installation
https://www.virtualbox.org/wiki/Changelog


ただ、これはインストールできないようにしただけであって、Intel MacからM1 Macにマイグレーションした際には気づきにくいという問題は回避はできていません。。。


VirutalBoxをバリバリ使うのであれば、まだ、Intel Macは手元に残しておかないとだめですよ。

私はIntel Mac残してあります.....

お間違いのないように。。。

20220415-154738

20220415-154741

20220415-154751

20220415-154802

| | | コメント (0)

2022年3月30日 (水)

Oracle Database 21c EE for Linux on VirtualBox 6.1

諸事情w によりまだやってなかった Oracle Database 21c お遊び環境構築しました。今の所 VirtualBox向けrebuildなのはなさそうなので、400億年振りにw Linuxインストールから実施w とはいっても、インストール含め楽すぎて良いですね。(preinstallな方しか試して無いですが)

これで、またパラメータ数比較もできる:)


環境
VirtualBox (現時点の最新版 6.1 for macOS intel)
https://www.virtualbox.org/

Oracle Linux Installation Media (今回は8.4を使った)
https://yum.oracle.com/oracle-linux-isos.html

Oracle Database 21c (21.3) for Linux x86-64 (RPM)
https://www.oracle.com/database/technologies/oracle21c-linux-downloads.html

VirtualBoxのバージョン確認

discus-mother:~ oracle$ VBoxManage -v
6.1.32r149290

Oracle Linux 8.4のVM作成(ここは本題じゃないので省略)

Oracle Linuxのバージョン確認

[master@localhost ~]$ uname -rv
5.4.17-2102.201.3.el8uek.x86_64 #2 SMP Fri Apr 23 09:05:57 PDT 2021
[master@localhost ~]$
[master@localhost ~]$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.4 (Ootpa)
[master@localhost ~]$ cat /etc/oracle-release
Oracle Linux Server release 8.4
[master@localhost ~]$


Oracle Database 21c EE 21.3.0.0.0のインストール

大人の事情w インストールからやるのかなり久々な上に、rpmでやるのは初!!!! しかも環境変数のあたり、ちょいと忘れているので怪しい(でツッコミ歓迎w)

では、first attempting... rpmは事前にダウンロード済み


master@localhost ~]$ ll -h oracle-database-ee-21c-1.0-1.ol8.x86_64.rpm
-rw-r--r--. 1 master master 2.6G 3月 29 03:07 oracle-database-ee-21c-1.0-1.ol8.x86_64.rpm

Install

[master@localhost ~]$ sudo dnf install oracle-database-ee-21c-1.0-1.ol8.x86_64.rpm
メタデータの期限切れの最終確認: 1:30:07 時間前の 2022年03月29日 02時07分01秒 に実施しました。
依存関係が解決しました。
======================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
======================================================================================================================
インストール:
oracle-database-ee-21c x86_64 1.0-1 @commandline 2.6 G
依存関係のインストール:
compat-openssl10 x86_64 1:1.0.2o-3.el8 ol8_appstream 1.1 M
ksh x86_64 20120801-254.0.1.el8 ol8_appstream 927 k
libnsl x86_64 2.28-151.0.1.el8 ol8_baseos_latest 102 k
oracle-database-preinstall-21c x86_64 1.0-1.el8 ol8_appstream 30 k

トランザクションの概要
======================================================================================================================
インストール 5 パッケージ

合計サイズ: 2.6 G
インストール後のサイズ: 7.1 G
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
[SKIPPED] libnsl-2.28-151.0.1.el8.x86_64.rpm: Already downloaded
[SKIPPED] compat-openssl10-1.0.2o-3.el8.x86_64.rpm: Already downloaded
[SKIPPED] ksh-20120801-254.0.1.el8.x86_64.rpm: Already downloaded
[SKIPPED] oracle-database-preinstall-21c-1.0-1.el8.x86_64.rpm: Already downloaded
----------------------------------------------------------------------------------------------------------------
合計 217 MB/s | 2.2 MB 00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : ksh-20120801-254.0.1.el8.x86_64 1/5
scriptletの実行中: ksh-20120801-254.0.1.el8.x86_64 1/5
インストール中 : compat-openssl10-1:1.0.2o-3.el8.x86_64 2/5
scriptletの実行中: compat-openssl10-1:1.0.2o-3.el8.x86_64 2/5
/sbin/ldconfig: /etc/ld.so.conf.d/kernel-5.4.17-2102.201.3.el8uek.x86_64.conf:6: hwcap directive ignored

インストール中 : libnsl-2.28-151.0.1.el8.x86_64 3/5
インストール中 : oracle-database-preinstall-21c-1.0-1.el8.x86_64 4/5
scriptletの実行中: oracle-database-ee-21c-1.0-1.x86_64 5/5
インストール中 : oracle-database-ee-21c-1.0-1.x86_64 5/5
scriptletの実行中: oracle-database-ee-21c-1.0-1.x86_64 5/5
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure a sample Oracle Database you can execute the following service
configuration script as root: /etc/init.d/oracledb_ORCLCDB-21c configure

scriptletの実行中: oracle-database-preinstall-21c-1.0-1.el8.x86_64 5/5
scriptletの実行中: oracle-database-ee-21c-1.0-1.x86_64 5/5
/sbin/ldconfig: /etc/ld.so.conf.d/kernel-5.4.17-2102.201.3.el8uek.x86_64.conf:6: hwcap directive ignored

検証 : libnsl-2.28-151.0.1.el8.x86_64 1/5
検証 : compat-openssl10-1:1.0.2o-3.el8.x86_64 2/5
検証 : ksh-20120801-254.0.1.el8.x86_64 3/5
検証 : oracle-database-preinstall-21c-1.0-1.el8.x86_64 4/5
検証 : oracle-database-ee-21c-1.0-1.x86_64 5/5

インストール済み:
compat-openssl10-1:1.0.2o-3.el8.x86_64 ksh-20120801-254.0.1.el8.x86_64
libnsl-2.28-151.0.1.el8.x86_64 oracle-database-ee-21c-1.0-1.x86_64
oracle-database-preinstall-21c-1.0-1.el8.x86_64

完了しました!
[master@localhost ~]$


Configure
今回は、preinstallを構成します。カスタムな構成は今の所必要ないので。

[root@localhost ~]# cd /etc/init.d
[root@localhost init.d]# ll
合計 40
-rw-r--r--. 1 root root 1161 5月 19 2021 README
-rw-r--r--. 1 root root 18434 2月 15 2021 functions
-rwx------. 1 root root 1281 7月 13 2021 oracle-database-preinstall-21c-firstboot
-r-xr-xr-x. 1 root root 11307 7月 27 2021 oracledb_ORCLCDB-21c
[root@localhost init.d]#
[root@localhost ~]# /etc/init.d/oracledb_ORCLCDB-21c configure
Configuring Oracle Database ORCLCDB.
DB操作の準備
8%完了
データベース・ファイルのコピー中
31%完了
Oracleインスタンスの作成および起動中
32%完了
36%完了
40%完了
43%完了
46%完了
データベース作成の完了
51%完了
54%完了
プラガブル・データベースの作成
58%完了
77%完了
構成後アクションの実行
100%完了
データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください:
/opt/oracle/cfgtoollogs/dbca/ORCLCDB。
データベース情報:
グローバル・データベース名:ORCLCDB
システム識別子(SID):ORCLCDB
詳細はログ・ファイル"/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log"を参照してください。

Database configuration completed successfully. The passwords were auto generated,
you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.
[root@localhost ~]#


おおおおおおーーー、起動してるーーーー!! 21c 楽だw
20220329-182633

いろいろ見ていくと、oracleユーザーや必要なグループの作成等はおこなわれているが、なぜか、home directoryが存在しなかった(ご愛嬌ってところかw)

ということで、なぜか存在しなかったホームディレクトリ作成とパスワードを変更して、.bash_profileに、ほぼ忘れかけてた環境変数設定など。(漏れてないかな。。w)

[root@localhost ~]# cat /etc/passwd | grep oracle
oracle:x:54321:54321::/home/oracle:/bin/bash
[root@localhost ~]#
[root@localhost ~]# mkdir -p /home/oracle
[root@localhost ~]# chown oracle:oinstall /home/oracle
[root@localhost ~]# passwd oracle
ユーザー oracle のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ cat .bash_profile
export ORACLE_BASE=/opt/oracle
export ORACLE_BASE_CONFIG=$ORACLE_BASE/dbs
export ORACLE_HOME=$ORACLE_BASE/product/21c/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=ORCLCDB
export NLS_LANG=Japanese_Japan.UTF8
export ORA_NLS10=$ORACLE_HOME/nls/data
[oracle@localhost ~]$ . .bash_profile
[oracle@localhost ~]$


そして、忘れる前にやっときましょうw glogin.sqlでSQL*Plusの環境を整えると。

[oracle@localhost ~]$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
--
-- Copyright (c) 1988, 2005, Oracle. All Rights Reserved.
--
-- NAME
-- glogin.sql
--
-- DESCRIPTION
-- SQL*Plus global login "site profile" file
--
-- Add any SQL*Plus commands here that are to be executed when a
-- user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
-- This script is automatically run
--
set linesize 300
set pagesize 1000
set timi on
set time on
set tab off
define _EDITOR=vi
set sqlp "_user""@""_connect_identifier> "
[oracle@localhost ~]$

SQL*Plusで接続!!!

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on 火 3月 29 06:14:52 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle. All rights reserved.


Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。
06:14:52 SYS@ORCLCDB> show pdbs

CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB1 READ WRITE NO
06:14:57 SYS@ORCLCDB>
06:14:58 SYS@ORCLCDB>
06:14:58 SYS@ORCLCDB>
06:15:26 SYS@ORCLCDB> select banner_full from v$version;

BANNER_FULL
-------------------------------------------------------------------------------
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0


経過: 00:00:00.00
06:15:40 SYS@ORCLCDB> exit

Lisenerの状態も見ておきましょう

[oracle@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 29-3月 -2022 07:09:29

Copyright (c) 1991, 2021, Oracle. All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名 LISTENER
バージョン TNSLSNR for Linux: Version 21.0.0.0.0 - Production
開始日 29-3月 -2022 03:57:55
稼働時間 0 日 3 時間 11 分 34 秒
トレース・レベル off
セキュリティ ON: Local OS Authentication
SNMP OFF
パラメータ・ファイル /opt/oracle/homes/OraDBHome21cEE/network/admin/listener.ora
ログ・ファイル /opt/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=localhost)(PORT=5500))
(Security=(my_wallet_directory=/opt/oracle/admin/ORCLCDB/xdb_wallet))(Presentation=HTTP)(Session=RAW))
サービスのサマリー...
サービス"ORCLCDB"には、1件のインスタンスがあります。
インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"ORCLCDBXDB"には、1件のインスタンスがあります。
インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"db57eedbd976b81ce055000000000001"には、1件のインスタンスがあります。
インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"orclpdb1"には、1件のインスタンスがあります。
インスタンス"ORCLCDB"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
[oracle@localhost ~]$

停止してみましょう!

おっと、systemctlで起動停止というところまではやってくれないのか... ということで、自分で止めましょうw あとで作ろう。。w

[master@localhost ~]$ sudo service oracle stop
[sudo] master のパスワード:
Redirecting to /bin/systemctl stop oracle.service
Failed to stop oracle.service: Unit oracle.service not loaded.
[master@localhost ~]$ sudo su - oracle
[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on 火 3月 29 07:16:55 2022
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle. All rights reserved.

Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。
07:16:55 SYS@ORCLCDB> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
07:17:01 SYS@ORCLCDB>

インストール楽すぎて、ワロタ。



一気に桜が咲いた。がいつまでもつのだろう。今年は東北方面も開花が早そうで、GWはもう葉桜だろうな。
では

| | | コメント (0)

2022年3月21日 (月)

Oracle vagrant-projects

今日は約3ヶ月振りにVIrtualBoxの起動やら、Oracle VMの起動でハマって、このあたりの環境どうしようかなあぁ

と思いつつ 21cとかもあるしなぁと考えていたら。横目でみつつも、大人の事情でスルーしていたやつが結構育ってて来てたので、これやるのもいいかなぁと。まだ軽く調べ始めたところだが、来月早々にメインマシン変えるからそのあとな。

 

ひとまず、メモ 

Oracle Vagrant-projects

https://github.com/oracle/vagrant-projects

 

20220321-203926

| | | コメント (0)

VBOX_E_IPRT_ERROR (0x80BB0005) / VirtualBox 6.1.32 r14929 (いろいろでるなぁw)

えーっとw

先ほどのエラーが解消したと思ったら、起動したいVMが起動しなーーーいw

( When it rains, it pours  LOL )

VirtualBoxアップデートするのはいいけど、やれやれなことも多い。

英語圏のネタをググってもヒットしなかったのですが、やはり、一足先にハマっている人がいたw (ありがとう)


今回のは、なんと日本語環境というかマルチバイト文字をつかう世界でだけ起きるやつw (昔のOracleにもそんなの結構多かったな〜。遠い目w)

今回はマルチバイト特有のエラー、それまでは問題なかったわけだからw マルチバイトに対応しないようなコードが今回のアップデートで混入してしまったということだろうw ʅ(◞‿◟)ʃ

20220321-114144

VirtualBox 6.1.23でVM名にマルチバイト文字あると、なんと起動しない!
https://blog.apar.jp/linux/15987/

 

引用先のブログだとマルチバイトだとわかりやすいのですが、私のケースだとものすごく気づきにくかった(エラーコードは同じだったので、しばらく悩んで気づきましたが)

 

太った空白の影響でしたw


 

VM名をよーーーーく見ると、なんだか、空白が多い箇所ありますよね。。。。
選択してみると、なんと、全角空白!!! w    

 

これだ!!!!


半角空白に置き換えた。
20220321-114204

無事起動した〜〜〜

20220321-120214

これで、やっと、本題に取りかかれるw 

 

| | | コメント (0)

NS_ERROR_SOCKET_FAIL (0xC1F30200) / VirtualBox 6.1 on macOS

えーっと、やっと重い腰を上げてw、なんと本年度最初のエントリー。

もろもろ他のことに気を取られていたら、ACEのKPI評価期末がもう少しだのに気づきw 溜めたままになっていたネタを書かないと!

と、VirtualBox 6.1をアップデートして起動しようしたら、なんと、エラーで起動しない (まあ、よくあります。似たようなことはw
20220321-80633

そんなときは、たぶん、みんな、ハマってるよね。ということで、ググりましょうw

Virtualbox 6.1 Code NS_ERROR_SOCKET_FAIL (0xC1F30200) - IPC daemon socket error (extended info n
https://forums.virtualbox.org/viewtopic.php?f=7&t=105337

もろこれです。で、知らなかったのですが、これ結構前から起こることもあったらしい(私は初でしたが)

/private/tmp のパーミッションが変わってしまった?影響らしい。(パーミッションの設定の詳細はあとで調べることにして、とりえず、確認)

[Solved] NS_ERROR_SOCKET_FAIL (0xC1F30200) PLEASE HELP
https://forums.virtualbox.org/viewtopic.php?f=8&t=87275#p416888

ここでハマってるのも時間がもったいないので、ちゃちゃっとチャッつけちゃいましょw (やりたいのはこれじゃないのでw)

 

 


discus-mother:private oracle$ ll
total 0
drwxr-xr-x 155 root wheel 4960 3 20 15:19 etc
drwxr-xr-x 2 root wheel 64 8 18 2018 tftpboot
drwxr-xr-x 15 root wheel 480 3 21 07:55 tmp
drwxr-xr-x 31 root wheel 992 4 6 2021 var
discus-mother:private oracle$
discus-mother:private oracle$ sudo chmod 1777 tmp
discus-mother:private oracle$ ll
total 0
drwxr-xr-x 155 root wheel 4960 3 20 15:19 etc
drwxr-xr-x 2 root wheel 64 8 18 2018 tftpboot
drwxrwxrwt 15 root wheel 480 3 21 07:55 tmp
drwxr-xr-x 31 root wheel 992 4 6 2021 var
discus-mother:private oracle$

 

これで解決!
20220321-80807 やれやれw

 

ではではあと、2ヶ月ほどで、14エントリー以上かかないとw。とはいえ、アドベントカレンダー全部俺のペースよりは楽ではありますね。w ガンガレ>俺

 

| | | コメント (0)

2020年1月 6日 (月)

How to fix when can't boot VM - VirtualBox error : Trying to open a VM config ".... .vbox" which has the same UUID as an existing virtual machine / FAQ

なにがどうしてなのか、まったくわかりませんが、VirtualBoXのVMが突然アクセスできなくなり以下のような状況になった。
理由は不明ですが、似たような症状の方は意外に多いようですが、解決方法がわかりやすくまとまってるエントリーもなさそうだったので、対処した手順を備忘録として書いておきます。

先日まで問題なく使えてなのですが、なにかのはずみでこうなっちゃうこともあるらしい。まさにその状態だったのがこれ。
Vbox000

どのようなエラーなのかも不明だったのですが、.vboxファイルと.vmdkそして、Snapshotsの場所を確認...

$ cd /Volumes/Macintosh\ HD/VirtualBoxDisks/test 
$ ll
-rw------- 1 hoge foobar 21147287552 1 4 18:26 test-disk1.vmdk
-rw-------@ 1 hoge foobar 16163 11 14 2017 test.vbox
-rw------- 1 hoge foobar 16163 11 14 2017 test.vbox-prev
drwx------ 6 hoge foobar 192 11 14 2017 Logs
drwx------ 4 hoge foobar 128 11 11 2017 Snapshots

.vboxを特定、直接起動してやっとエラーの詳細までたどり着いた:)
上記の例では、test.vboxをダブルクリックして起動します。(Oracle VM VirtualBoxマネージャだと冒頭の画面のままうんともすんとも言わないので、直接起動してエラー詳細ダイアログまでたどり着けました。logからはそれっぽいのは見つからず。)

以下エラーダイアログの".vbox' which has the same UUID as an existing virtual machine."から判断すると、test.vbox で起動するVMに割り当てられているUUIDが重複してるということらしい。ん〜、たしかに、VMイメージインポートはしたがそれぐらいなんだよなー以前と違うのは。
ではあるのだが、それ以上深追いするより、起動できなくなったVMを起動できるように回復させる方が重要なので、解決策を探ると。。。。
Vbox001

VBoxManage internalcommands sethduuidで、重複しているとされるVMのUUIDを新たに取得。
ただ、前述のコマンドは vdi やvmdkなどの仮想ディスクイメージファイルのUUIDを設定するもの。
VMのUUIDを再設定するためのコマンドは現時点では提供されていない(参考 VBoxManage internalcommands uage参照のこと)
では、どうやって、VMのUUIDを取得するかというと、実は苦肉の策っぽいのですが、

VBoxManage internalcommands sethduuidで仮想ディスクイメージファイルのUUIDを2度設定する VBoxManage internalcommands sethduuidで仮想ディスクイメージファイルのUUIDを2度設定する

大切なので二度書きました。

一度目の実行で得たUUIDをVM向けに利用し、二度目の実行で、仮想ディスクイメージファイルのHD向けUUIDを設定するのがコツとのこと。

問題のVMは仮想ディスクが1つ、スナップショットが2つあります。VBoxManage internalcommands sethduuid でUUIDを二回変更する対象は、 test-disk1.vmdkです。

test-disk1.vmdkのUUIDをVBoxManage internalcommands sethduuidでセットします。ただ、ここで設定したUUIDはVMのUUID重複の解消に利用します。

$ VBoxManage internalcommands sethduuid test-disk1.vmdk
UUID changed to: 5c46b404-42e2-4389-a0cc-a451d614b039

再度、test-disk1.vmdkのUUIDをVBoxManage internalcommands sethduuidでセットします。ここで設定したUUIDはtest-disk1.vmdkのUUIDを変更するために行います。
(なお、複数の仮想ディスクイメージがあってもどれか一つを利用して行えばOKです。VMのUUIDを変更したいだけの操作なので)

$ VBoxManage internalcommands sethduuid test-disk1.vmdk
UUID changed to: 3f99c052-ab4f-4c59-ada7-50553b46a35e

2度の操作で得られた2つのUUID
以下は、VM用
5c46b404-42e2-4389-a0cc-a451d614b039

以下は、仮想ディスク test-disk1.vmdk のUUIDです。
3f99c052-ab4f-4c59-ada7-50553b46a35e

これらを元に、test.vboxをテキストエディタで編集して以下の部分を変更します。
Vbox002
Vbox003

さて、次がポイントです。このVMには既存のスナップショットが2世代存在します。(test.vboxをテキストエディタで開いた状態)
2世代のスナップショットは以下のように階層化されて管理されており、ぞれぞれのスナップショット(仮想ディスクイメージ)がその親のUUIDを Parent UUIDとして保持しています。保持しているParent UUIDを確認する方法は、参考 VBoxManage internalcommands dumphdinfo を参照のこと。
Vbox004

今回ルートとなるtest-disk1.vmdのUUIDを3f99c052-ab4f-4c59-ada7-50553b46a35eへ変更したため、直下のスナップショットのParent UUIDを3f99c052-ab4f-4c59-ada7-50553b46a35eに設定する必要があります。

$ VBoxManage internalcommands sethdparentuuid Snapshots/{d7c94038-b98d-46d2-9241-4bac71bf14b7}.vmdk 3f99c052-ab4f-4c59-ada7-50553b46a35e
UUID changed to: 3f99c052-ab4f-4c59-ada7-50553b46a35e

UUID=d7c94038-b98d-46d2-9241-4bac71bf14b7をParent UUIDとして持つのはUUID=02415676-9386-4bf2-931d-df2891ecfdffのスナップショットです。今回影響ありませんでしたが、念のためd7c94038-b98d-46d2-9241-4bac71bf14b7で設定し直しています。

$ VBoxManage internalcommands sethdparentuuid Snapshots/{02415676-9386-4bf2-931d-df2891ecfdff}.vmdk d7c94038-b98d-46d2-9241-4bac71bf14b7
UUID changed to: d7c94038-b98d-46d2-9241-4bac71bf14b7

仮想ディスクイメージ上のUUIDを設定し直した後で、text.vboxの該当箇所も合わせて変更します。それぞれのUUIDは複数の箇所で参照されているので一括して変更すると変更もれなく変更することができます。
Vbox005
Vbox006

変更した test.vboxを保存後して、test.vboxをダブルクリックするとVMが起動できるようになります。

ただし、以下のようにアクセスできない状態となった Oracle VM VirtualBoxマネージャの状態は前述の手順では改善できませんでした。
Vbox000

少々面倒なのですが、該当VMを一旦除去(物理削除はしない)Oracle VM VirtualBoxマネージャから除去して、追加し直すだけで復活させることができました。ʅ(◞‿◟)ʃ
20200104-230253
20200104-223203
20200104-223539
20200104-230054



参考 VBoxManage internalcommands dumphdinfo
$ VBoxManage internalcommands dumphdinfo test-disk1.vmdk
--- Dumping VD Disk, Images=1
Dumping VD image "test-disk1.vmdk" (Backend=VMDK)
Header: Geometry PCHS=16383/16/63 LCHS=1024/255/63 cbSector=209715200
Header: uuidCreation={3f99c052-ab4f-4c59-ada7-50553b46a35e}
Header: uuidModification={bb2f68b6-c9b0-480d-9eab-3b2eb81b9b3f}
Header: uuidParent={00000000-0000-0000-0000-000000000000}
Header: uuidParentModification={00000000-0000-0000-0000-000000000000}

参考 VBoxManage internalcommands usage

$ VBoxManage internalcommands
Oracle VM VirtualBox Command Line Management Interface Version 6.0.14
(C) 2005-2019 Oracle Corporation
All rights reserved.

Usage: VBoxManage internalcommands [command arguments]

Commands:

loadmap <vmname|uuid> <symfile> <address> [module] [subtrahend] [segment]
This will instruct DBGF to load the given map file
during initialization. (See also loadmap in the debugger.)

loadsyms <vmname|uuid> <symfile> [delta] [module] [module address]
This will instruct DBGF to load the given symbol file
during initialization.

sethduuid <filepath> [<uuid>]
Assigns a new UUID to the given image file. This way, multiple copies
of a container can be registered.

sethdparentuuid <filepath> <uuid>
Assigns a new parent UUID to the given image file.

dumphdinfo <filepath>
Prints information about the image at the given location.

listpartitions -rawdisk <diskname>
Lists all partitions on <diskname>.

createrawvmdk -filename <filename> -rawdisk <diskname>
[-partitions <list of partition numbers> [-mbr <filename>] ]
[-relative]
Creates a new VMDK image which gives access to an entire host disk (if
the parameter -partitions is not specified) or some partitions of a
host disk. If access to individual partitions is granted, then the
parameter -mbr can be used to specify an alternative MBR to be used
(the partitioning information in the MBR file is ignored).
The diskname is on Linux e.g. /dev/sda, and on Windows e.g.
\\.\PhysicalDrive0).
On Linux or FreeBSD host the parameter -relative causes a VMDK file to
be created which refers to individual partitions instead to the entire
disk.
The necessary partition numbers can be queried with
VBoxManage internalcommands listpartitions

renamevmdk -from <filename> -to <filename>
Renames an existing VMDK image, including the base file and all its extents.

converttoraw [-format <fileformat>] <filename> <outputfile>
Convert image to raw, writing to file.

converthd [-srcformat VDI|VMDK|VHD|RAW]
[-dstformat VDI|VMDK|VHD|RAW]
<inputfile> <outputfile>
converts hard disk images between formats

repairhd [-dry-run]
[-format VDI|VMDK|VHD|...]
<filename>
Tries to repair corrupted disk images

debuglog <vmname|uuid> [--enable|--disable] [--flags todo]
[--groups todo] [--destinations todo]
Controls debug logging.

passwordhash <passsword>
Generates a password hash.

gueststats <vmname|uuid> [--interval <seconds>]
Obtains and prints internal guest statistics.
Sets the update interval if specified.

WARNING: This is a development tool and shall only be used to analyse
problems. It is completely unsupported and will change in
incompatible ways without warning.

Syntax error: Command missing

| | | コメント (0)

2019年3月24日 (日)

Oracle VM VirtualBox 6.0 でも治ってなかった、ドラッグするとDesktopが取り残される問題 / FAQ

Oracle VM VirtualBox 5.x台からあった問題、6.0でも修正されていないですね。
ただ、解決方法はあって、一旦、Dockにしまって再度取り出すと症状は治まるんですよね。これw

以下、タイトルバーをクリックしてドラッグするとなぜかデスクトップだけが取り残されてのっぺらぼう状態になってしまったスクリーンショット

20190324-152727

| | | コメント (0)

2019年3月17日 (日)

Oracle VM VirtualBoxが6.0になってた

自分のことに気を取られて、ネットを泳ぎきれてない日が続いてるなーと思う今日この頃ですが、
また、一つ、遅れ気味で、気づいたw

VirtualBox 、 6.0になってたのでアップデートdone

https://www.virtualbox.org/wiki/Changelog-6.0#v4
https://www.virtualbox.org/wiki/Downloads

20190317_123051


| | | コメント (0) | トラックバック (0)

2016年12月30日 (金)

昔、Mac OSがやってようなことを... VirtualBox の GuestOS起動スプラッシュ

こんなスプラッシュ表示するようにしていたのかVirtualBox :)

https://www.virtualbox.org

20161230_194848


ほんとに、ほんとうの2016年最後のエントリー。

良いお年をお迎え下さい。

https://discus-hamburg.cocolog-nifty.com/mac_de_oracle/2011/01/post-77fa.html

| | | コメント (0) | トラックバック (0)

2016年9月24日 (土)

VirtualBoxとSIMD

Previously on Mac De Oracle
SIMDのメモをあれこれ貼り付けただけでしたが、実は今回のことを調べてる次いでに見つけたものだったんですよ。



OracleもSIMDを使う操作が多くなりつつあるようなのでどうなんだろというわけで、今回もメモです。

元ネタは以下のエントリ

VirtualBoxゲストでSIMD命令: DB In-Memory
https://blogs.oracle.com/LetTheSunShineIn/entry/virtualboxゲストでsimd命令_db_in_memory

上記は約2年前の記事で現在のVirtualBoxでは、SSE4.1/SSE4.2は有効化されています。
以下ドキュメントを参照のこと。

9.27. Experimental support for passing through SSE4.1 / SSE4.2 instructions
https://www.virtualbox.org/manual/ch09.html#sse412passthrough


ただ、AVXはどうなのか書かれてはいないのでどうなってんのかな〜とか、ググってたら

Ticket #14427 (new defect)
https://www.virtualbox.org/ticket/14427#comment:3
こんな記事を見つけたのであー有効になってるよねーということで、うちの環境での確認

確認に利用したVirtualBoxは現時点の最新版です。

MacBook:˜ lampeyes$ VBoxManage -version
5.1.6r110634
MacBook:˜ lampeyes$


うちのMacファミリーでは最古参w (そろそろなんとか新しいのにしたいなぁ〜w)
古いCPUだけど、マニュアル通り、SSE4.1/4.2はguestでも有効化されていました。おし!

MacPro:˜ lampeyes$ /usr/sbin/system_profiler SPHardwareDataType | grep -E 'Model|Processor|Core|Cache'
Model Name: Mac Pro
Model Identifier: MacPro5,1
Processor Name: 6-Core Intel Xeon
Processor Speed: 2.4 GHz
Number of Processors: 2
Total Number of Cores: 12
L2 Cache (per Core): 256 KB
L3 Cache (per Processor): 12 MB
Processor Interconnect Speed: 5.86 GT/s
MacPro:˜ lampeyes$
MacPro:˜ lampeyes$ grep -E 'Mnemonic|SSE4|AVX' '/Users/lampeyes/VirtualBox VMs/Linux Group/OralceLinux (Oracle12c R1)/Logs/VBox.log'
00:00:02.472827 Mnemonic - Description = guest (host)
00:00:02.472916 SSE4_1 - SSE4_1 support = 1 (1)
00:00:02.472919 SSE4_2 - SSE4_2 support = 1 (1)
00:00:02.472934 AVX - AVX support = 0 (0)
00:00:02.472942 Mnemonic - Description = guest (host)
00:00:02.472951 AVX2 - Advanced Vector Extensions 2 = 0 (0)
00:00:02.472968 AVX512F - AVX512 Foundation instructions = 0 (0)
00:00:02.472978 AVX512PF - AVX512 Prefetch instructions = 0 (0)
00:00:02.472980 AVX512ER - AVX512 Exponential & Reciprocal instructions = 0 (0)
00:00:02.472981 AVX512CD - AVX512 Conflict Detection instructions = 0 (0)
00:00:02.473041 Mnemonic - Description = guest (host)
00:00:02.473103 SSE4A - SSE4A instructions = 0 (0)
MacPro:˜ lampeyes$

最近のメインマシンw
SSE4.1/4.2に加えてAVXもguestで有効化されていました。
(探したかぎりではドキュメントには見当たらないかった。もしご存知の方がいたら教えてくだい!

ただし、AVX2はguestでは無効化されています。。。。大人の事情でもあるのかとググってますが今の所見つからず。

MacBookAir:˜ lampeyes$ /usr/sbin/system_profiler SPHardwareDataType | grep -E 'Model|Processor|Core|Cache'
Model Name: MacBook Air
Model Identifier: MacBookAir7,2
Processor Name: Intel Core i7
Processor Speed: 2.2 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 4 MB
MacBookAir:˜ lampeyes$ grep -E 'Mnemonic|SSE4|AVX' '/Users/lampeyes/VirtualBox VMs/OracleLinux/Logs/VBox.log'
00:00:02.654824 Mnemonic - Description = guest (host)
00:00:02.654876 SSE4_1 - SSE4_1 support = 1 (1)
00:00:02.654877 SSE4_2 - SSE4_2 support = 1 (1)
00:00:02.654886 AVX - AVX support = 1 (1)
00:00:02.654890 Mnemonic - Description = guest (host)
00:00:02.654894 AVX2 - Advanced Vector Extensions 2 = 0 (1)
00:00:02.654903 AVX512F - AVX512 Foundation instructions = 0 (0)
00:00:02.654909 AVX512PF - AVX512 Prefetch instructions = 0 (0)
00:00:02.654909 AVX512ER - AVX512 Exponential & Reciprocal instructions = 0 (0)
00:00:02.654910 AVX512CD - AVX512 Conflict Detection instructions = 0 (0)
00:00:02.654987 Mnemonic - Description = guest (host)
00:00:02.655021 SSE4A - SSE4A instructions = 0 (0)


AVX2をguestで有効化することは可能なようです。

MacBookAir:˜ lampeyes$ 
MacBookAir:˜ lampeyes$ VBoxManage setextradata "OracleLinux" VBoxInternal/CPUM/IsaExts/AVX2 1

MacBookAir:˜ lampeyes$  grep -E 'Mnemonic|SSE4|AVX' '/Users/lampeyes/VirtualBox VMs/OracleLinux/Logs/VBox.log'
00:00:02.557798 AVX2 = 0x0000000000000001 (1)
00:00:02.815177 Mnemonic - Description = guest (host)
00:00:02.815226 SSE4_1 - SSE4_1 support = 1 (1)
00:00:02.815227 SSE4_2 - SSE4_2 support = 1 (1)
00:00:02.815235 AVX - AVX support = 1 (1)
00:00:02.815248 Mnemonic - Description = guest (host)
00:00:02.815253 AVX2 - Advanced Vector Extensions 2 = 1 (1)
00:00:02.815262 AVX512F - AVX512 Foundation instructions = 0 (0)
00:00:02.815267 AVX512PF - AVX512 Prefetch instructions = 0 (0)
00:00:02.815268 AVX512ER - AVX512 Exponential & Reciprocal instructions = 0 (0)
00:00:02.815269 AVX512CD - AVX512 Conflict Detection instructions = 0 (0)
00:00:02.815348 Mnemonic - Description = guest (host)
00:00:02.815381 SSE4A - SSE4A instructions = 0 (0)
MacBookAir:˜ lampeyes$

最後に Intel Core m5のMacBookですが、こちらは、MacBook Airと同様で、AVX2がguest側で無効化されていて、同様に手順で有効化できました。

何か不都合があったらオフればいいので、このまま使ってみようかと。:)

MacBook:˜ lampeyes$  /usr/sbin/system_profiler SPHardwareDataType | grep -E 'Model|Processor|Core|Cache'
Model Name: MacBook
Model Identifier: MacBook9,1
Processor Name: Intel Core m5
Processor Speed: 1.2 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 4 MB
MacBook:˜ lampeyes$
MacBook:˜ lampeyes$ grep -E 'Mnemonic|SSE4|AVX' '/Users/lampeyes/VirtualBox VMs/DOC-921720/Logs/VBox.log'
00:00:02.791014 Mnemonic - Description = guest (host)
00:00:02.791076 SSE4_1 - SSE4_1 support = 1 (1)
00:00:02.791077 SSE4_2 - SSE4_2 support = 1 (1)
00:00:02.791088 AVX - AVX support = 1 (1)
00:00:02.791093 Mnemonic - Description = guest (host)
00:00:02.791100 AVX2 - Advanced Vector Extensions 2 = 0 (1)
00:00:02.791112 AVX512F - AVX512 Foundation instructions = 0 (0)
00:00:02.791119 AVX512PF - AVX512 Prefetch instructions = 0 (0)
00:00:02.791120 AVX512ER - AVX512 Exponential & Reciprocal instructions = 0 (0)
00:00:02.791121 AVX512CD - AVX512 Conflict Detection instructions = 0 (0)
00:00:02.791227 Mnemonic - Description = guest (host)
00:00:02.791270 SSE4A - SSE4A instructions = 0 (0)
MacBook:˜ lampeyes$
MacBook:˜ lampeyes$ VBoxManage setextradata "DOC-921720" VBoxInternal/CPUM/IsaExts/AVX2 1
MacBook:˜ lampeyes$
MacBook:˜ lampeyes$
MacBook:˜ lampeyes$ grep -E 'Mnemonic|SSE4|AVX' '/Users/lampeyes/VirtualBox VMs/DOC-921720/Logs/VBox.log'
00:00:01.243213 AVX2 = 0x0000000000000001 (1)
00:00:01.405462 Mnemonic - Description = guest (host)
00:00:01.405592 SSE4_1 - SSE4_1 support = 1 (1)
00:00:01.405593 SSE4_2 - SSE4_2 support = 1 (1)
00:00:01.405604 AVX - AVX support = 1 (1)
00:00:01.405610 Mnemonic - Description = guest (host)
00:00:01.405616 AVX2 - Advanced Vector Extensions 2 = 1 (1)
00:00:01.405628 AVX512F - AVX512 Foundation instructions = 0 (0)
00:00:01.405635 AVX512PF - AVX512 Prefetch instructions = 0 (0)
00:00:01.405636 AVX512ER - AVX512 Exponential & Reciprocal instructions = 0 (0)
00:00:01.405637 AVX512CD - AVX512 Conflict Detection instructions = 0 (0)
00:00:01.405758 Mnemonic - Description = guest (host)
00:00:01.405836 SSE4A - SSE4A instructions = 0 (0)
MacBook:˜ lampeyes$



一つ忘れてた、うちで一番古いやつ。(これもそろそろ刷新したいw)
古いのでAVX以降はないですね。Windows 10 Proのリアルマシンなのでコマンドプロンプトからbashで情報取得。う~~ん便利bash w
lampeyes@LAMPEYES:/mnt/c$ cat /proc/cpuinfo | grep -E 'model name|cpu core|siblings' | sort -n | uniq

cpu cores : 6
model name : Intel(R) Core(TM) i7 CPU X 980 @ 3.33GHz
siblings : 12
lampeyes@LAMPEYES:/mnt/c$
lampeyes@LAMPEYES:/mnt/c$ grep -E 'Mnemonic|SSE4|AVX' '/mnt/c/Users/lampeyes/VirtualBox VMs/CentOS6.5 64bit/Logs/VBox.log'
00:00:04.805674 Mnemonic - Description = guest (host)
00:00:04.805719 SSE4_1 - SSE4_1 support = 1 (1)
00:00:04.805720 SSE4_2 - SSE4_2 support = 1 (1)
00:00:04.805728 AVX - AVX support = 0 (0)
00:00:04.805732 Mnemonic - Description = guest (host)
00:00:04.805756 AVX2 - Advanced Vector Extensions 2 = 0 (0)
00:00:04.805765 AVX512F - AVX512 Foundation instructions = 0 (0)
00:00:04.805770 AVX512PF - AVX512 Prefetch instructions = 0 (0)
00:00:04.805771 AVX512ER - AVX512 Exponential & Reciprocal instructions = 0 (0)
00:00:04.805772 AVX512CD - AVX512 Conflict Detection instructions = 0 (0)
00:00:04.805811 Mnemonic - Description = guest (host)
00:00:04.805842 SSE4A - SSE4A instructions = 0 (0)
lampeyes@LAMPEYES:/mnt/c$

| | | コメント (0) | トラックバック (0)

2016年7月31日 (日)

個人的に気なるVirtualBox Extension PackのLincenseダイアログの「同意します」ボタンの位置w

久々に役に立たねいネタですw

VirtualBox Extension Packライセンスダイアログの「同意しません」、「同意します」ボタンの位置が、OS Xだけ違ってて、WindowsやLinuxの位置だと思い込み、「同意しません」ボタンをクリックしてしまい、イラッとすることがたまに。

デフォルトボタンになっているので、スペースバー対応すれば逆でも問題はないわけですが、気になる気になるw

OS XのVirtualBox Extension Packライセンス同意ダイアログのボタンの配置
Virtualbox_licenseconfermation_maco


WindowsのVirtualBox Extension Packライセンス同意ダイアログのボタンの配置

Virtualbox_license_confermation_d_2


LinuxのVirtualBox Extension Packライセンス同意ダイアログのボタンの配置
Virtualboxlicensecofermation_linux


ね。

| | | コメント (0) | トラックバック (0)

2015年8月 4日 (火)

MountainLion/Mavericks/Yosemite on VirtualBox 5.0 for OS X (Yosemite)

(CloudなOS X環境も気になり始めた今日この頃 :)
VirtualBox 5.0になってOS Xの動作が多少改善したようなので、ありのままの状態でどのような状態なのかMountainLion/Mavericks/Yosemiteで試してみた。

(VirtualBox 5.0のGuest OSにはEL Capitanもリストされているが現時点ではEl CapitanはBeta版なので画像等載せられないが, Yosemiteレベルの状況)


ホストマシンは以下の通り。

20150804_225446


起動用 .isoファイルの作り方は以下を参照のこと。
MountainLionまでは、hdiutil makehybrid -iso -hfs ....略で作成できたが、Mavericks以降はごにょごにょ操作する必要があります。


MountainLion編

hdiutil makehybrid -iso -hfs /Users/oracle/Desktop/Install\ Mac\ OS\ X\ MountainLion.app/Contents/SharedSupport/InstallESD.dmg -o MountainLion.iso

Mavericks編

https://forums.virtualbox.org/viewtopic.php?f=8&t=62013

Yosemite編

https://sandstorm.de/de/blog/osx-yosemite-in-virtual-box.html

VMの設定
VMの設定ですがチップセットはPIIX3、ポインティングデバイスはUSBタブレットを選択。
MountainLion/Mavericks/Yosemiteお設定で異なる点は、OS Xのバージョンの選択のみです。

2

3

20150805_72530

1


MountainLion on VirtualBox 5.0 for OS X


インストールできるものの描画(おそらく)が遅くて使うには辛い状況。これはVirtualBox 4.3のころよりいくらかか改善した程度ですかね。

Mountainlion_desktop

Mavericks on VirtualBox 5.0 for OS X


4.3のころは、MountainLion同様の状況だったが、なんと、大きく改善!
いい感じにはなってる。もう少しいじってみまっす!

Maverucks_desktop

ちなみに、Parallels 9 for OS XのMavericksはこんな感じ


Yosemite on VirtualBox 5.0 for OS X


Mavericksではかなり改善していたのに、Yosemiteでは元どおり...

Yosemite_desktop

ちなみに、Yosemite だとこんな手を使ってなんとかしている人もいる
https://derflounder.wordpress.com/2014/12/13/improving-yosemite-vm-performance-in-vmware-fusion/

https://github.com/rtrouton/rtrouton_scripts/tree/master/rtrouton_scripts/fix_yosemite_vm_graphic_performance

| | | コメント (0) | トラックバック (0)

2015年7月10日 (金)

VirtualBox 5.0 released

久々のメジャーリリースですが、まだ何が目玉なのか読んでない。

RC3ではVMが起動しなかったりしたけど、正式リリースでは今の所問題なし。

20150710_215358

| | | コメント (0) | トラックバック (0)

2013年12月 9日 (月)

no ocijdbc11 in java.library.path on OS X Mavericks

JPOUG Advent Calendar 2013、9日目のエントリー、かつ、チューニングネタではなく Java on OS X の話という変化球 :) です。

OS X版Oracle SQL DeveloperやOracle JDeveloperで、OCI/Thick JDBCを利用しようとして以下のようなメッセージに遭遇したら...みなさんどうしてるのだろう? 

no ocijdbc11 in java.library.path

と考えだしたら眠れなくなったので、役に立つのか、たたないのかわからないけど書いておきます

私は、Oracle SQL DeveloperやOracle JDeveloperの起動シェルでDYLD_LIBRARY_PATHなどの環境変数をセットすることで対処しています。
(今となってはこれが楽だと思います。 environment.plistでなんとかできた時代もありましたけど...いまは使えないしね)

no ocijdbc11 in java.library.pathとなっている状態から解決するまでの操作をYouTubeで....


映像では、ユーザーのホームディレクトリーにOracle向け環境変数設定ファイル (この例では、oracleenvというファイルを作成してあります) を作成しておき、その設定ファイルをOracle SQL Developer等の起動シェルで読み込ませて問題を解決するまでの操作を行っています。

主演
MacBook Air (mid2013)

ホストOS、その他

  • OS X 10.9 Maveriks
  • Oracle Instant Client 11g 11.2.0.3.0 for OS X (64bit)
  • Terminal 2.4
  • VirtualBox 4.3.4 for OS X
  • Oracle SQL Developer 4.0.0 for OS X
  • Oracle JDeveloper12c 12.1.2.0.0 Studio Edition Generic

ゲストOS、その他

  • Oracle Linux Server 6.4 x86_64
  • Oracle Database 12c EE R1 for Linux x86_64

映像では見づらい方向けの解説。

事前にOracle向け設定ファイルを該当ユーザーのホームディレクトリーに作成しておきます。
この例では、oracleenvとして作成しました。(不過視ファイルとしてもよいかもしれません。)
Oracle_environment_variables


Oracle SQL Developer 4.0 for OS X

「Oracle SQL Developerメニュー」→「Preference...」を選択
002_sdev_004

「データベース」→「拡張」→「OCI/Thickドライバの使用」チェックボックス」をチェック→「テスト」ボタンをクリック
002_sdev_005

no ocijdbc11 in java.library.pathエラーとなる(ライブラリーへのパスが通ってないので当然ですよね)
002_sdev_006

「Finder」→「アプリケーション」→「SQL Developer」→「右クリック」→ポップアップメニューの「パッケージの内容表示」
002_sdev_009

「Contents」→「MacOS」→「sqldeveloper.sh」を選択
002_sdev_010

ポップアップメニュー「このアプリケーションで開く」でお好きなテキストエティタを選択
002_sdev_012

oracle向け環境設定ファイルを読み込ませるように編集。この例ではユーザーホームディレクトリにある oracleenvというファイルを読み込むように変更。
002_sdev_013

Oracle SQL Developer 4.0を再起動しOCI/Thick JDBCドライバーで接続可能か再確認
002_sdev_014

002_sdev_015


Oracle JDeveloper12c 12.1.2.0.0 Studio Edition Generic

「データベース接続編集」ダイアログの「接続のテスト」ボタンをクリックするとno ocijdbc11 in java.library.pathエラー(これもパスが通ってないのが原因なので...)
003_jdev_002

003_jdev_003

「Finder」でOracle JDeveloper12cのインストールディレクトリーからアプリケーション「JDeveloper」を右クリック
→ポップアップメニューの「パッケージの内容を表示」を選択

003_jdev_004

「Contents」→「MacOS」→「JDeveloper」を選択して右クリック→「このアプリケーションを開く」でお好きなテキストエディタを選択
003_jdev_005

oracle向け環境設定ファイルを読み込ませるように編集。この例ではユーザーホームディレクトリにある oracleenvというファイルを読み込むように変更。
003_jdev_006

Oracle JDeveloper12cを再起動し、OCI/Thick JDBCドライバーで接続可能か再確認
003_jdev_007

003_jdev_008


明日は、@dekasasaki さんの担当です。引き続き、JPOUG Advent Calendar 2013をお楽しみください。:)


| | | コメント (0) | トラックバック (0)

2013年7月 8日 (月)

rownum使って満足しちゃってると.....おまけのおまけ FETCH FIRST N ROWS ONLY編

20130628_233812


Oracle Database 12c R1 12.1.0.1.0 がリリースされたので、自分用のメモとしても使うネタから :)



実行環境は Oracle Database 12c R1 12.1.0.1.0 EE/Oracle Linux 6.4/VirtualBox for OS X
11g R2と同じデータをインポートし統計情報を再取得しています。


まず、rownum から!

おおおおお〜、 まあ想定通りではあるのですが、11gとは違う点が一つ。

TABLE ACCESS BY INDEX ROWID BATCHEDと見慣れないオペレーションが...興味深いですね。これ :)

別途調べるTODO :)

23:14:41 SCOTT@pdborcl> r
1 select /*+ leading(tc) use_nl(tc tb ta) */ *
2 from
3 tc join tb
4 on
5 tc.version = tb.version
6 and tc.branch# = tb.branch#
7 join ta
8 on
9 tb.version = ta.version
10 where
11 tc.version between 1 and 10
12* and rownum <= 1000

1000行が選択されました。

経過: 00:00:00.13

実行計画
----------------------------------------------------------
Plan hash value: 1463769645

-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1000 | 2952K| 4813 (1)| 00:00:01 |
|* 1 | COUNT STOPKEY | | | | | |
| 2 | NESTED LOOPS | | | | | |
| 3 | NESTED LOOPS | | 2002 | 5910K| 4813 (1)| 00:00:01 |
| 4 | NESTED LOOPS | | 4004 | 7894K| 2810 (1)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID BATCHED| TC | 4004 | 3953K| 585 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | PK_TC | | | 14 (0)| 00:00:01 |
| 7 | TABLE ACCESS BY INDEX ROWID | TB | 1 | 1008 | 1 (0)| 00:00:01 |
|* 8 | INDEX UNIQUE SCAN | PK_TB | 1 | | 0 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | PK_TA | 1 | | 0 (0)| 00:00:01 |
| 10 | TABLE ACCESS BY INDEX ROWID | TA | 1 | 1004 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter(ROWNUM<=1000)
6 - access("TC"."VERSION">=1 AND "TC"."VERSION"<=10)
8 - access("TC"."VERSION"="TB"."VERSION" AND "TC"."BRANCH#"="TB"."BRANCH#")
filter("TB"."VERSION"<=10 AND "TB"."VERSION">=1)
9 - access("TB"."VERSION"="TA"."VERSION")
filter("TA"."VERSION">=1 AND "TA"."VERSION"<=10)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
2418 consistent gets
0 physical reads
0 redo size
1059870 bytes sent via SQL*Net to client
1270 bytes received via SQL*Net from client
68 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1000 rows processed


次に、Oracle Database 12c R1 12.1.0.1.0 から実装された FETCH FIRST N ROWS ONLYとの比較

FETCH FIRST N ROWS ONLYを利用した場合TCを全表走査してしまったので、rownum利用時と同じオブジェクト参照させるためヒントでPK_TC索引を利用するようチューニングしてあります
ただ..なぜか、TABLE ACCESS BY INDEX ROWID BATCHEDではなくTABLE ACCESS BY INDEX ROWIDとなっています。


さらに不思議なことに、COSTが異常に跳ね上がっています。Rowsの見積もり件数で大きな差があることが影響しているように見えるんだが、なんでこんなに違うんだろう!
いろいろ試してみると、不思議なことがおきそうな気配w


Buffer Getsはほぼ同じなので、全表走査になりやすい?場合、索引が利用できそうなら使わせたほうがいいですな。多分。

23:12:22 SCOTT@pdborcl> r
1 select /*+ leading(tc) use_nl(tc tb ta) index(tc pk_tc) */ *
2 from
3 tc join tb
4 on
5 tc.version = tb.version
6 and tc.branch# = tb.branch#
7 join ta
8 on
9 tb.version = ta.version
10 where
11 tc.version between 1 and 10
12* fetch first 1000 rows only

1000行が選択されました。

経過: 00:00:00.13

実行計画
----------------------------------------------------------
Plan hash value: 3242622317

------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 300K| 456M| 1141K (1)| 00:00:45 |
|* 1 | VIEW | | 300K| 456M| 1141K (1)| 00:00:45 |
|* 2 | WINDOW NOSORT STOPKEY | | 300K| 864M| 1141K (1)| 00:00:45 |
| 3 | NESTED LOOPS | | | | | |
| 4 | NESTED LOOPS | | 300K| 864M| 1141K (1)| 00:00:45 |
| 5 | NESTED LOOPS | | 600K| 1155M| 841K (1)| 00:00:33 |
| 6 | TABLE ACCESS BY INDEX ROWID| TC | 1200K| 1156M| 174K (1)| 00:00:07 |
|* 7 | INDEX RANGE SCAN | PK_TC | 1200K| | 3278 (1)| 00:00:01 |
| 8 | TABLE ACCESS BY INDEX ROWID| TB | 1 | 1008 | 1 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | PK_TB | 1 | | 0 (0)| 00:00:01 |
|* 10 | INDEX UNIQUE SCAN | PK_TA | 1 | | 0 (0)| 00:00:01 |
| 11 | TABLE ACCESS BY INDEX ROWID | TA | 1 | 1004 | 1 (0)| 00:00:01 |
------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("from$_subquery$_006"."rowlimit_$$_rownumber"<=1000)
2 - filter(ROW_NUMBER() OVER ( ORDER BY NULL )<=1000)
7 - access("TC"."VERSION">=1 AND "TC"."VERSION"<=10)
9 - access("TC"."VERSION"="TB"."VERSION" AND "TC"."BRANCH#"="TB"."BRANCH#")
filter("TB"."VERSION"<=10 AND "TB"."VERSION">=1)
10 - access("TB"."VERSION"="TA"."VERSION")
filter("TA"."VERSION">=1 AND "TA"."VERSION"<=10)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
2420 consistent gets
0 physical reads
0 redo size
1044954 bytes sent via SQL*Net to client
1270 bytes received via SQL*Net from client
68 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1000 rows processed

FETCH FISRSTを利用すると、rownumとは異なり、内部でROW_NUMBER() OVER( OVER BY NULL) <= N
のような変換が発生するんですね!!!! 


rownumの弱点はどうなったか確認してみます。

12c でも rownum は rownumですね! という確認から。

23:37:32 SCOTT@pdborcl> r
1 select /*+ leading(tc) use_nl(tc tb ta) */ *
2 from
3 tc join tb
4 on
5 tc.version = tb.version
6 and tc.branch# = tb.branch#
7 join ta
8 on
9 tb.version = ta.version
10 where
11 tc.version between 11 and 20
12* and rownum <= 1000

レコードが選択されませんでした。

経過: 00:00:08.21

実行計画
----------------------------------------------------------
Plan hash value: 1463769645

-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1000 | 2952K| 37940 (1)| 00:00:02 |
|* 1 | COUNT STOPKEY | | | | | |
| 2 | NESTED LOOPS | | | | | |
| 3 | NESTED LOOPS | | 1101 | 3250K| 37940 (1)| 00:00:02 |
| 4 | NESTED LOOPS | | 22019 | 42M| 26928 (1)| 00:00:02 |
| 5 | TABLE ACCESS BY INDEX ROWID BATCHED| TC | 38230 | 36M| 5683 (1)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | PK_TC | | | 109 (0)| 00:00:01 |
| 7 | TABLE ACCESS BY INDEX ROWID | TB | 1 | 1008 | 1 (0)| 00:00:01 |
|* 8 | INDEX UNIQUE SCAN | PK_TB | 1 | | 0 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | PK_TA | 1 | | 0 (0)| 00:00:01 |
| 10 | TABLE ACCESS BY INDEX ROWID | TA | 1 | 1004 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter(ROWNUM<=1000)
6 - access("TC"."VERSION">=11 AND "TC"."VERSION"<=20)
8 - access("TC"."VERSION"="TB"."VERSION" AND "TC"."BRANCH#"="TB"."BRANCH#")
filter("TB"."VERSION">=11 AND "TB"."VERSION"<=20)
9 - access("TB"."VERSION"="TA"."VERSION")
filter("TA"."VERSION">=11 AND "TA"."VERSION"<=20)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
1174942 consistent gets
176197 physical reads
0 redo size
913 bytes sent via SQL*Net to client
533 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed


FETCH FIRST N ROWS ONLYでも弱点は同じです!

23:36:02 SCOTT@pdborcl> r
1 select /*+ leading(tc) use_nl(tc tb ta) index(tc pk_tc) */ *
2 from
3 tc join tb
4 on
5 tc.version = tb.version
6 and tc.branch# = tb.branch#
7 join ta
8 on
9 tb.version = ta.version
10 where
11 tc.version between 11 and 20
12* fetch first 1000 rows only

レコードが選択されませんでした。

経過: 00:00:07.36

実行計画
----------------------------------------------------------
Plan hash value: 3242622317

------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 29999 | 45M| 1141K (1)| 00:00:45 |
|* 1 | VIEW | | 29999 | 45M| 1141K (1)| 00:00:45 |
|* 2 | WINDOW NOSORT STOPKEY | | 29999 | 86M| 1141K (1)| 00:00:45 |
| 3 | NESTED LOOPS | | | | | |
| 4 | NESTED LOOPS | | 29999 | 86M| 1141K (1)| 00:00:45 |
| 5 | NESTED LOOPS | | 599K| 1155M| 841K (1)| 00:00:33 |
| 6 | TABLE ACCESS BY INDEX ROWID| TC | 1200K| 1156M| 174K (1)| 00:00:07 |
|* 7 | INDEX RANGE SCAN | PK_TC | 1200K| | 3278 (1)| 00:00:01 |
| 8 | TABLE ACCESS BY INDEX ROWID| TB | 1 | 1008 | 1 (0)| 00:00:01 |
|* 9 | INDEX UNIQUE SCAN | PK_TB | 1 | | 0 (0)| 00:00:01 |
|* 10 | INDEX UNIQUE SCAN | PK_TA | 1 | | 0 (0)| 00:00:01 |
| 11 | TABLE ACCESS BY INDEX ROWID | TA | 1 | 1004 | 1 (0)| 00:00:01 |
------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("from$_subquery$_006"."rowlimit_$$_rownumber"<=1000)
2 - filter(ROW_NUMBER() OVER ( ORDER BY NULL )<=1000)
7 - access("TC"."VERSION">=11 AND "TC"."VERSION"<=20)
9 - access("TC"."VERSION"="TB"."VERSION" AND "TC"."BRANCH#"="TB"."BRANCH#")
filter("TB"."VERSION">=11 AND "TB"."VERSION"<=20)
10 - access("TB"."VERSION"="TA"."VERSION")
filter("TA"."VERSION">=11 AND "TA"."VERSION"<=20)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
1174942 consistent gets
175116 physical reads
0 redo size
913 bytes sent via SQL*Net to client
533 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed


最後に、ハッシュ結合にした場合のrownum vs fetch first n rows onlyの比較

NL結合にすべきか、ハッシュ結合にすべきかどうかは、悩むんですよ。状況に合わせて使い分ける必要があるのは、11gでも12cでも同じだと思います。理由は前回のエントリを参照のこと。

rownumでハッシュ結合にした場合、11g R2では黙っていても索引を利用していたのですが、12c R1では全表走査になる傾向が見られます。
11gの実行計画と同じオブジェクトを参照するようにヒントでチューニングしてありますが、やはりここでもTABLE ACCESS BY INDEX ROWID BATCHEDが行われていますね。

実に興味深い。

23:46:06 SCOTT@pdborcl> r
1 select /*+ leading(tc) use_hash(tc tb ta) index(ta pk_ta) */ *
2 from
3 tc join tb
4 on
5 tc.version = tb.version
6 and tc.branch# = tb.branch#
7 join ta
8 on
9 tb.version = ta.version
10 where
11 tc.version between 1 and 10
12* and rownum <= 1000

1000行が選択されました。

経過: 00:00:34.63

実行計画
----------------------------------------------------------
Plan hash value: 3316229909

--------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
--------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1000 | 4923K| | 199K (1)| 00:00:08 |
|* 1 | COUNT STOPKEY | | | | | | |
|* 2 | HASH JOIN | | 2002 | 9857K| | 199K (1)| 00:00:08 |
| 3 | TABLE ACCESS BY INDEX ROWID BATCHED | TA | 10 | 10040 | | 4 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | PK_TA | 10 | | | 1 (0)| 00:00:01 |
|* 5 | HASH JOIN | | 4004 | 7894K| 1170M| 199K (1)| 00:00:08 |
|* 6 | TABLE ACCESS FULL | TC | 1200K| 1156M| | 139K (1)| 00:00:06 |
| 7 | TABLE ACCESS BY INDEX ROWID BATCHED| TB | 10001 | 9844K| | 1486 (0)| 00:00:01 |
|* 8 | INDEX RANGE SCAN | PK_TB | 10000 | | | 26 (0)| 00:00:01 |
--------------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter(ROWNUM<=1000)
2 - access("TB"."VERSION"="TA"."VERSION")
4 - access("TA"."VERSION">=1 AND "TA"."VERSION"<=10)
5 - access("TC"."VERSION"="TB"."VERSION" AND "TC"."BRANCH#"="TB"."BRANCH#")
6 - filter("TC"."VERSION"<=10 AND "TC"."VERSION">=1)
8 - access("TB"."VERSION">=1 AND "TB"."VERSION"<=10)


統計
----------------------------------------------------------
1258 recursive calls
0 db block gets
515770 consistent gets
516798 physical reads
0 redo size
1062679 bytes sent via SQL*Net to client
1270 bytes received via SQL*Net from client
68 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1000 rows processed

FETCH FIRST N ROWS ONLYを利用した場合

00:20:36 SCOTT@pdborcl> r
1 select /*+ leading(tc) use_hash(tc tb ta) index(ta pk_ta) index(tb pk_tb) */ *
2 from
3 tc join tb
4 on
5 tc.version = tb.version
6 and tc.branch# = tb.branch#
7 join ta
8 on
9 tb.version = ta.version
10 where
11 tc.version between 1 and 10
12* fetch first 1000 rows only

1000行が選択されました。

経過: 00:00:32.69

実行計画
----------------------------------------------------------
Plan hash value: 3430218324

-------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 300K| 456M| | 199K (1)| 00:00:08 |
|* 1 | VIEW | | 300K| 456M| | 199K (1)| 00:00:08 |
|* 2 | WINDOW NOSORT STOPKEY | | 300K| 864M| | 199K (1)| 00:00:08 |
|* 3 | HASH JOIN | | 300K| 864M| | 199K (1)| 00:00:08 |
| 4 | TABLE ACCESS BY INDEX ROWID | TA | 10 | 10040 | | 4 (0)| 00:00:01 |
|* 5 | INDEX RANGE SCAN | PK_TA | 10 | | | 1 (0)| 00:00:01 |
|* 6 | HASH JOIN | | 600K| 1155M| 1170M| 199K (1)| 00:00:08 |
|* 7 | TABLE ACCESS FULL | TC | 1200K| 1156M| | 139K (1)| 00:00:06 |
| 8 | TABLE ACCESS BY INDEX ROWID| TB | 10001 | 9844K| | 1486 (0)| 00:00:01 |
|* 9 | INDEX RANGE SCAN | PK_TB | 10000 | | | 26 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("from$_subquery$_006"."rowlimit_$$_rownumber"<=1000)
2 - filter(ROW_NUMBER() OVER ( ORDER BY NULL )<=1000)
3 - access("TB"."VERSION"="TA"."VERSION")
5 - access("TA"."VERSION">=1 AND "TA"."VERSION"<=10)
6 - access("TC"."VERSION"="TB"."VERSION" AND "TC"."BRANCH#"="TB"."BRANCH#")
7 - filter("TC"."VERSION"<=10 AND "TC"."VERSION">=1)
9 - access("TB"."VERSION">=1 AND "TB"."VERSION"<=10)


統計
----------------------------------------------------------
1456 recursive calls
0 db block gets
516181 consistent gets
514506 physical reads
0 redo size
1045990 bytes sent via SQL*Net to client
1270 bytes received via SQL*Net from client
68 SQL*Net roundtrips to/from client
75 sorts (memory)
0 sorts (disk)
1000 rows processed


Top N に関してはrownumでも fetch first N rows onlyでも弱点は弱点なのでrownumと同じ考え方でチューニングの方向を決めないと、ね。


rownum使って満足しちゃってると..... #1
rownum使って満足しちゃってると..... #2
rownum使って満足しちゃってると..... #3
rownum使って満足しちゃってると..... #4
rownum使って満足しちゃってると.....おまけ

| | | コメント (0) | トラックバック (0)

2013年3月 9日 (土)

VirtualBoxのWindows7だとPaSoRi RC-S380認識しないのな

妻がPaSoRi RC-S380を使いたいというので、ダメもとで試してみた。 ダメだった。(^^;;;

以上、ご報告までw


ちなみに、リアルなPCにWindows8インストールしたら一発で認識した。 人柱ばんざ〜い:)

PASMOの履歴って、カード内の20件しか見れないのな orz.... 無駄遣いなのは間違いないw

Pasori_with_mac

VirtualBox4.2.8+Windows7で使おうとすると以下のように認識してくれない。残念

20130305_235713


20130305_235955


| | | コメント (0) | トラックバック (0)

2012年12月23日 (日)

やはり、来たね VirtualBoxアップデート :)

この時期に仕事やっつけてないと、クリスマスが大変だものね〜 :) と

https://www.virtualbox.org/wiki/Changelog

20121223_142825

20121223_143046


| | | コメント (0) | トラックバック (0)

2012年12月15日 (土)

VirtualBoxのゲストさん、いらっしゃ〜〜い

VirtualBox で いろんなGuestOS起動してみた。(MacOS Xは以前書きましたけど、他のOSもまとめて書いておきますね)

HostはMac/OS X Mountain Lionでございます。
20121215_64848

VirtualBoxは、4.2.4でございます。

20121215_65224


GuestOSのみなさま :)

まずは、Mac on Mac から

Mac OS X Leopard 10.5
Macos_x_leopard_105

Oracle Solaris11.1
Oracle_solaris111


HAIKU Alpha4
Haiku_alpha4


OpenSUSE 12.2
Opensuse122


Ubuntu 12.10
Ubuntu1210_2


Fedora 17
Fedora

CentOSとかWindowsもね

CentOS 5 and 6
Centos5_2

Centos6

Windows XP and 7
Windowsxp

Windows7


| | | コメント (0) | トラックバック (0)

2012年11月 9日 (金)

MacOS X Leopard on VirtualBox 4.2.4 for OS X #3

前回めでたく起動した、MacOS X 10.5 Leopardですが。統合アップデートで10.5.8にしてしまうと仕様通り起動しなくなります。
遊びたい方は、統合アップデートしないのが吉だけど、セキュリティパッチも適用されていない状態なのでネットへのアクセスは控えたほうがいいかなと。

20121108_225444

該当部分を拡大した画像は以下
Unsupported CPUってでてますよね。:)

20121108_225523

ちなみに、Snow Leopard のDVDでインストールしようとする際はUnsupported CPUとでてpanic起こすようになってます。Serverならいいんでしょうけどね。うちにあるDVDはTiger Serverなんで試せないw

| | | コメント (0) | トラックバック (0)

2012年11月 8日 (木)

MacOS X Leopard on VirtualBox 4.2.4 for OS X #2

起動しないことになってるMacOS X Leopard 10.5だと起動しちゃうんだよね。小細工なしにというネタの2回目。今回は、installから起動まで。:) 言っとくけど不安定だからねw


VMのDVDドライブの設定がパススルーになっていることを確認してね!
で、Leopard のDVDをセットしてからVMを起動すると。

なんと、VirtualBoxのスプラッシュを蹴破って起動するLeopard。 なかなかワイルド!

01
02


しばらすくるとInstallerが起動して見慣れた画面に!

03


Virtual DiskにHFS+のパーティションを1つ作成するので、ディスクユーティリティーを起動します!
起動ボリュームなのでGUIDパーティションを作成します。間違わないと思いますけど。念のため。

04
05
06
07

パーティションができたらディスクユーティリティを終了させます。小細工はしてないですよ:)

08

インストールボリュームを選択して、インストール開始!

09
10
11

あっけなくインストール終了! :)

12

再起動!、さてさて。。。不安定なのでこの部分でcrash reportの出力が繰り返されるようならあきらめて、VMを強制終了後、再起動を繰り返すと、運が良ければ起動しますw

13

運良く起動したら、インストール後の初期設定などをコツコツと。

14

きた〜〜〜〜〜、Leopard 10.5 ! (Serverじゃないよ) 起動しました〜〜〜。

15_2

CPU*6で起動した時の記念スナップ :)

20121108_225948


ちなみに、ディスプレイの解像度が動的に変更できないので、

$ VBoxManage setextradata "your vm name" "VBoxInternal2/EfiGopMode" "4"

とかするといいと思います。ググればこのあたりはすぐ見つかるかと。
your vm nameの箇所には仮想マシン名を指定してね。

ね。ほんとうに小細工なしで起動するでしょ :) 10.5までのLeopardならね。

ではでは。

Enjoy Vitrual Machines! :)

あ、忘れてた、サウンドは出ないので、以下のスレッド参考にしてね。

https://forums.virtualbox.org/viewtopic.php?f=30&t=33358

| | | コメント (0) | トラックバック (0)

2012年11月 7日 (水)

MacOS X Leopard on VirtualBox 4.2.4 for OS X #1

久々にMac De Oracleらしいネタです。

一応対GuestOSとして対応していることになっているMac OS X Leopard Server とSnow Leopard Serverなのですが、VirtualBoxでうまく起動したという記事は聞いたことないというか見たことないという方は多いかもしれませんね。

ということで、小細工とかしないで起動するのもあるよ。という例を。(不安定感があるのは仕方ないかもw)

ということで今日は、Leopard向けVMの設定だけ。

まずホストOSの情報から.

20121106_222927



ちなみに、VIrtualBox 4.2.4でサポートされているとされているOS X は以下の通り、Parallels Server for Mac 4.0と同じように見えます. これをみるとOS XでゲストOSが必要な場合、Parallels Desktop 8 for Macを使ったほうが楽だと思います。が楽しいですよね。サポートされているOS Xが多くて :)

20121107_63123

・Parallels Server for Mac 4.0のデータはこちら
・Parallels Desktop 8 for Macのデータはこちら

ParallelsのサポートゲストOSを確認してみてもLeopard/Snow LeopardについてはServer版のみにしか対応していないことが確認できますよね。ServerっていうくくりがなくなったLion以降は :) マーク。

でも、でもですね。今回私が試したのは、Leopard 10.5.0。 実はこのリリースだとVirtualBoxで起動しちゃうんです。不安定ですが...
結局のところ何の役にも立たないわけですが、ネタということで、よろしくお願いします。
(なにを、よろしくお願いするんだ〜〜w)

以下、Parallels Desktop 8 でVirtualBox 4.2.4の仮想マシンを変換して起動しようとすると仕様通りの結果になります。

20121107_65533


ホストマシンによっても影響はありそうで今回使用したMacProでは以下の通り。

VirtualBox 4.2.4 for OS X へ Extention Packを追加してあります。
20121106_230843
20121106_230851

Leopardの場合32bitにしてね。

20121106_225513

Leopardで64bitだと、以下のようにkernel panicで起動できない。

20121106_232818

メモリは2GB程度で、CPUは1CPUの時が一番安定して起動します。
メモリサイズを3GBにすると起動しなくなる場合が多くなりました。><
CPUは1CPU/2CPU/6CPUのいずれも起動実績がありますが安定感のあるのは1CPUという感じです。残念。
ちなみに、virtual diskサイズは20GB以上あればいいです。

20121106_225539
20121106_225547
20121106_225557
20121106_225606

LionServer.vdi なのは気にしないでね。
20121106_225614
20121106_225635
20121106_225642
20121106_225652
20121106_225704

そして最後は、これね。

20121106_235001


| | | コメント (2) | トラックバック (0)

2012年10月29日 (月)

VirtualBox 4.2.4 Released

余裕がなくてアップデート1つ飛ばしてしまった >< 

OS X関連 bug fix含んでいるので更新など...

対応ゲストOS一覧はここ.
https://www.virtualbox.org/wiki/Guest_OSes


https://www.virtualbox.org/wiki/Changelog

20121029_53350
20121029_53427

20121029_53455
20121029_53517
20121029_53541

20121029_55901


| | | コメント (0) | トラックバック (0)

2012年9月22日 (土)

VirtualBox 4.2 Released !!!

VirtualBoxリリーススピードがすごいっす。。

VIrutalBox 4.2リリース! グループ化したVMは一括起動できるんで便利ですね〜

一括起動するとする際には、グループ内の並び順で順次起動されてます。この機能が追加されるとたぶん更なる要求があるかもしれませんね。順に起動するだけでなく任意に一括起動とか、各VMの起動間隔したいとか :)

20120922_141057


20120922_141104


2012/9/23更新(相変わらずミスが多い ><)

| | | コメント (0) | トラックバック (0)

2012年9月11日 (火)

VirtualBox 4.1.22 、 4.2近くに来てるし〜:)

4.1.22 今回は随分間隔短いリリースだな (^^;;;

20120911_84234

4.2.0 も RC4な


| | | コメント (0) | トラックバック (0)

2012年9月 2日 (日)

Index Only Accessネタのおまけのおまけ

Caché de Index Only Access できるのか?

CachéってSQLもサポートしてるので、Index Only Accessサポートしてるのかな〜と素朴な疑問から調べてみたもののマニュアルには記載されていない。
書かれていなきゃどうなるか、試すのが手っ取り早いですね。
(ダウンロードするにはフォームからリクエストする必要があります。1セッション限定の試用ライセンスのようです。他の制限は該当ページ読んでくださいな。)



OracleのIndex Only Accessは以下のエントリを参考にしてください。

いん!、イン!、Index どっぷり Inde Only Access生活w - Oracle OpenWorld Unconference presented by JPOUG

JPOUG SET EVENTS 20120721 - 「(続)いん!、イン!、Index 大人の事情縛りのSQLチューニング」資料公開

MySQL/PostgreSQLのIndex Only Accessは以下のエントリを参考にしてください。
Index Only Accessネタのおまけ


いつもはMacBook Air使うんですが、今回は都合により母艦のVirtualBoxを使いました (^^;;

MacPro Mid 2012 12Core/24GB (OS X Mountain Lion Server)
VirtualBox4.1.20 for MacOS X
GuestOS:CentOS5.8 x86_64 (CPU数とメモリサイズはMacBook Airのx86環境と同じ)

Caché 2012.1 for Linux x86_64


まず、ターミナルで接続して表、索引、データ登録、他のデータベースで言う統計情報取得から。

[oracle@pleco ˜]$ csession cache -U samples

ノード: pleco.macdeoracle.jp インスタンス: CACHE

SAMPLES>

SAMPLES>d $System.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------

The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
SAMPLES>>
SAMPLES>>create table tab3(unique_id numeric(10) not null, item_code char(15) not null, data varchar(500), is_delete numeric(1), status_code char(2))
1. create table tab3(unique_id numeric(10) not null, item_code char(15) not null, data varchar(500), is_delete numeric(1), status_code char(2))

0 Rows Affected
statement prepare time: 0.0118s, elapsed execute time: 0.2405s.
---------------------------------------------------------------------------
SAMPLES>>
SAMPLES>>alter table tab3 add constraint tab3_pk primary key(unique_id)
3. alter table tab3 add constraint tab3_pk primary key(unique_id)

0 Rows Affected
statement prepare time: 0.0092s, elapsed execute time: 4.9465s.
---------------------------------------------------------------------------
SAMPLES>>
SAMPLES>>create table tab311 (unique_id numeric(10) not null,sub_item_code char(10),data varchar(500),is_delete numeric(1))
4. create table tab311 (unique_id numeric(10) not null,sub_item_code char(10),data varchar(500),is_delete numeric(1))

0 Rows Affected
statement prepare time: 0.0115s, elapsed execute time: 0.1953s.
---------------------------------------------------------------------------
SAMPLES>>create table tab31 (item_code char(15) not null,sub_item_code char(10),data varchar(500),is_delete numeric(1))
5. create table tab31 (item_code char(15) not null,sub_item_code char(10),data varchar(500),is_delete numeric(1))

0 Rows Affected
statement prepare time: 0.0133s, elapsed execute time: 0.1985s.
---------------------------------------------------------------------------
SAMPLES>>
SAMPLES>>alter table tab31 add constraint tab31_pk primary key(item_code)
7. alter table tab31 add constraint tab31_pk primary key(item_code)

0 Rows Affected
statement prepare time: 0.0102s, elapsed execute time: 0.2589s.
---------------------------------------------------------------------------
SAMPLES>>alter table tab311 add constraint tab311_pk primary key(unique_id)
8. alter table tab311 add constraint tab311_pk primary key(unique_id)

0 Rows Affected
statement prepare time: 0.0116s, elapsed execute time: 0.2627s.
---------------------------------------------------------------------------
SAMPLES>>create index tab311_ix on tab311(sub_item_code)
9. create index tab311_ix on tab311(sub_item_code)

0 Rows Affected
statement prepare time: 0.0111s, elapsed execute time: 0.2870s.
---------------------------------------------------------------------------
SAMPLES>>q

確認は管理ポータルで!(どこみればよいか分からなかったので楽な方法で..)

Desc_tab3

Tab3_indexes_no_index_only

Desc_tab31

Tab31_indexes_no_index_only

Desc_tab311

Tab311_indexes_no_index_only_scan

Oracleなら統計情報取得、他のRDBMSならアナライズ(昔はオラクルもアナライズだったんですけどね)、Cachéの世界では「テーブルチューニング」というそうな。
(管理ポータルから実行しています)
Table_analyze

Tab31_analyze

Tab311_analyze

表と索引ができたのでデータ登録。
これまたOracleとは勝っても違うし、DSMの時代(DIGITAL STANDARD MUMPS)から大きく拡張されてるのでかなり辛いな〜MUMPS思い出すというより別物に近い感じw。あの当時はSQL使えねーしというより必要ねーし、だったしね (^^;;;

以下、データ作成中のログ..
グルグル回しているのは気にしないでねw

[oracle@pleco ˜]$ csession cache -U samples

ノード: pleco.macdeoracle.JP インスタンス: CACHE

SAMPLES>
SAMPLES>
SAMPLES>s rs=##class(%SQL.Statement).%ExecDirect(,"start transaction")
TL1:SAMPLES>s sql="insert into SQLUser.tab3 values(?,to_char((?#500000)+1,'FM099999999999999'),repeat('*',250-length(to_char(?)))||to_char(?),0,'00')"
TL1:SAMPLES>s stmt=##class(%SQL.Statement).%New() s stat=stmt.%Prepare(sql)
TL1:SAMPLES>f i=1:1:1000000 {s rs=stmt.%Execute(i,i,i,i)}
TL1:SAMPLES>s rs=##class(%SQL.Statement).%ExecDirect(,"commit")
SAMPLES>d $System.SQL.Shell()

SQL Command Line Shell
----------------------------------------------------

The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
SAMPLES>>select count(1) from tab3
7. select count(1) from tab3

Aggregate_1
1000000

1 Rows(s) Affected
statement prepare time: 0.0009s, elapsed execute time: 2.6558s.
---------------------------------------------------------------------------
SAMPLES>>select min(unique_id) as "min", max(unique_id) as "max" from tab3
8. select min(unique_id) as "min", max(unique_id) as "max" from tab3

min max
1 1000000

1 Rows(s) Affected
statement prepare time: 0.1423s, elapsed execute time: 0.0006s.
---------------------------------------------------------------------------
SAMPLES>>select min(item_code) "min",max(item_code) "max" from tab3
9. select min(item_code) "min",max(item_code) "max" from tab3

min max
000000000000001 000000000500000

1 Rows(s) Affected
statement prepare time: 0.1324s, elapsed execute time: 3.4683s.
---------------------------------------------------------------------------
SAMPLES>>
SAMPLES>>q

SAMPLES>halt
[oracle@pleco ˜]$

SAMPLES>d $System.SQL.SetAutoCommit(2)
SAMPLES>s rs=##class(%SQL.Statement).%ExecDirect(,"start transaction")
TL1:SAMPLES>s sql="insert into SQLUser.tab31 values(to_char(?,'FM099999999999999'),to_char((?#500000)+1,'FM0999999999'),repeat('*',250-length(to_char(?)))||to_char(?),0)"
TL1:SAMPLES>s stmt=##class(%SQL.Statement).%New() s stat=stmt.%Prepare(sql)
TL1:SAMPLES>f i=1:1:2000000 {s rs=stmt.%Execute(i,i,i,i)}
TL1:SAMPLES>s rs=##class(%SQL.Statement).%ExecDirect(,"commit")

SAMPLES>d $System.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------

The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
SAMPLES>>select count(1) from tab31
2. select count(1) from tab31

Aggregate_1
2000000

1 Rows(s) Affected
statement prepare time: 0.1349s, elapsed execute time: 6.0684s.
---------------------------------------------------------------------------
SAMPLES>>select min(item_code) "item_code(MIN)",max(item_code) "item_code(MAX)" from tab31
3. select min(item_code) "item_code(MIN)",max(item_code) "item_code(MAX)" from tab31

item_code(MIN) item_code(MAX)
000000000000001 000000002000000

1 Rows(s) Affected
statement prepare time: 0.1361s, elapsed execute time: 0.0010s.
---------------------------------------------------------------------------
SAMPLES>>select min(sub_item_code) "sub_item_code(MIN)",max(sub_item_code) "sub_item_code(MAX)" from tab31
4. select min(sub_item_code) "sub_item_code(MIN)",max(sub_item_code) "sub_item_code(MAX)" from tab31

sub_item_code(MIN) sub_item_code(MAX)
0000000001 0000500000

1 Rows(s) Affected
statement prepare time: 0.1391s, elapsed execute time: 6.7417s.
---------------------------------------------------------------------------
SAMPLES>>q
SAMPLES>

SAMPLES>d $System.SQL.SetAutoCommit(2)
SAMPLES>s rs=##class(%SQL.Statement).%ExecDirect(,"start transaction")
TL1:SAMPLES>s sql="insert into SQLUser.tab311 values(?,to_char((?#500000)+1,'FM0999999999'),repeat('*',250-length(to_char(?)))||to_char(?),0)"
TL1:SAMPLES>s stmt=##class(%SQL.Statement).%New() s stat=stmt.%Prepare(sql)
TL1:SAMPLES>f i=1:1:2000000 {s rs=stmt.%Execute(i,i,i,i)}
TL1:SAMPLES>s rs=##class(%SQL.Statement).%ExecDirect(,"commit")

SAMPLES>d $System.SQL.Shell()

SQL Command Line Shell
----------------------------------------------------

The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
SAMPLES>>select count(1) from tab311
5. select count(1) from tab311

Aggregate_1
2000000

1 Rows(s) Affected
statement prepare time: 0.0009s, elapsed execute time: 3.7845s.
---------------------------------------------------------------------------
SAMPLES>>select min(sub_item_code) "sub_item_code(MIN)", max(sub_item_code) "sub_item_code(MAX)" from tab311
6. select min(sub_item_code) "sub_item_code(MIN)", max(sub_item_code) "sub_item_code(MAX)" from tab311

sub_item_code(MIN) sub_item_code(MAX)
0000000001 0000500000

1 Rows(s) Affected
statement prepare time: 0.1558s, elapsed execute time: 0.0004s.
---------------------------------------------------------------------------
SAMPLES>>q


本題からはずれるのですが... SQL使ってるとはいっても、ベースはMUMPSというかM言語だからね〜というお話を。。

tab3表及び主キー制約で作成された索引に対応するglobals。索引を見るとSparse Multidimensional Arrayをうまく利用しているのがよくわかる :)
Cachéの表や索引の実態はSparse Multidimensional Arrayなんだお。

1:      ^User.tab3D    =     1512812
2: ^User.tab3D(512813) = $lb("",1,"000000000000002","***************** ...中略... *******************************1",0,"00")
3: ^User.tab3D(512814) = $lb("",2,"000000000000003","***************** ...中略... *******************************2",0,"00")
4: ^User.tab3D(512815) = $lb("",3,"000000000000004","***************** ...中略... *******************************3",0,"00")
...以下略...

tab3表の主キー索引

1:      ^User.tab3I("tab3pk",1,512813)    =     ""
2: ^User.tab3I("tab3pk",2,512814) = ""
3: ^User.tab3I("tab3pk",3,512815) = ""
...以下略...

次は、tab31表と主キー索引

1:      ^User.tab31D    =     2000000
2: ^User.tab31D(1) = $lb("","000000000000001","0000000002","***************** ...中略... *************************1",0)
3: ^User.tab31D(2) = $lb("","000000000000002","0000000003","***************** ...中略... *************************2",0)
4: ^User.tab31D(3) = $lb("","000000000000003","0000000004","***************** ...中略... *************************3",0)
...以下略...


1:      ^User.tab31I("tab31pk"," 000000000000001",1)    =     ""
2: ^User.tab31I("tab31pk"," 000000000000002",2) = ""
3: ^User.tab31I("tab31pk"," 000000000000003",3) = ""
...以下略...


最後に、tab311表と主キー索引及び、非ユニーク索引に対応したSparse Multidimensional Arrayの内容

1:      ^User.tab311D    =     2000000
2: ^User.tab311D(1) = $lb("",1,"0000000002","********************************* ...中略... ************************1",0)
3: ^User.tab311D(2) = $lb("",2,"0000000003","********************************* ...中略... ************************2",0)
4: ^User.tab311D(3) = $lb("",3,"0000000004","********************************* ...中略... ************************3",0)
...以下略...

1:      ^User.tab311I("tab311ix"," 0000000001",500000)    =     ""
2: ^User.tab311I("tab311ix"," 0000000001",1000000) = ""
3: ^User.tab311I("tab311ix"," 0000000001",1500000) = ""
4: ^User.tab311I("tab311ix"," 0000000001",2000000) = ""
5: ^User.tab311I("tab311ix"," 0000000002",1) = ""
6: ^User.tab311I("tab311ix"," 0000000002",500001) = ""
7: ^User.tab311I("tab311ix"," 0000000002",1000001) = ""
8: ^User.tab311I("tab311ix"," 0000000002",1500001) = ""
9: ^User.tab311I("tab311ix"," 0000000003",2) = ""
10: ^User.tab311I("tab311ix"," 0000000003",500002) = ""
11: ^User.tab311I("tab311ix"," 0000000003",1000002) = ""
12: ^User.tab311I("tab311ix"," 0000000003",1500002) = ""
13: ^User.tab311I("tab311ix"," 0000000004",3) = ""
14: ^User.tab311I("tab311ix"," 0000000004",500003) = ""
15: ^User.tab311I("tab311ix"," 0000000004",1000003) = ""
16: ^User.tab311I("tab311ix"," 0000000004",1500003) = ""
...以下略...


実行するクエリはOracle/MySQL/PostgreSQLで実行したものと同じです。

select
t1.unique_id,
t1.item_code,
(
select
max(t3.unique_id)
from
tab31 t2 join tab311 t3
on
t2.sub_item_code = t3.sub_item_code
and t3.is_delete = 0
where
t2.item_code = t1.item_code
and t2.is_delete = 0
) current_sub_item
from
tab3 t1
where
t1.unique_id between 1 and 10000
and t1.is_delete = 0
and t1.status_code = '00'


以下、管理ポータルのSQL実行プラン表示で取得した実行計画とコスト。
Index Only AccessではないのでCacheのSQLの世界で表アクセスを意味するオペレーションである、Read Master mapがスカラー問合せ部分に現れている。
ちなみに、索引アクセスを意味するオペレーションは、Read index mapのようだ。

実行プランが以下に表示されます:
クエリ文字列

SELECT t1 . unique_id , t1 . item_code , ( SELECT MAX ( t3 . unique_id ) FROM tab31 t2 JOIN tab311 t3 ON t2 . sub_item_code = t3 . sub_item_code AND t3 .
is_delete = ? WHERE t2 . item_code = t1 . item_code AND t2 . is_delete = ? ) current_sub_item FROM tab3 t1 WHERE t1 . unique_id BETWEEN ? AND ? AND t1 .
is_delete = ? AND t1 . status_code = ?

クエリプラン
相対コスト = 74082

Call module B, which populates bitmap temp-file A.
Read bitmap temp-file A, looping on ID.
For each row:
Read master map SQLUser.tab3.IDKEY, using the given idkey value.
Output the row.

module B
Read index map SQLUser.tab3.tab3_pk, looping on unique_id (with a range condition) and ID.
For each row:
Add ID bit to bitmap temp-file A.

subquery
Call module E.
Determine subquery result.

module E
Read index map SQLUser.tab31.tab31_pk, using the given %SQLUPPER(item_code), and looping on ID.
For each row:
Read master map SQLUser.tab31.IDKEY, using the given idkey value.
Read index map SQLUser.tab311.tab311_ix, using the given %SQLUPPER(sub_item_code), and looping on ID.
For each row:
Read master map SQLUser.tab311.IDKEY, using the given idkey value.
Accumulate the max(unique_id).


では、Index Only Accessによるチューニング。 Covering Indexを2つ作成します。(Oracle/MySQL/PostgreSQLで作成した索引と同じ名称にしてあります)

[oracle@pleco ˜]$ csession cache -U samples

ノード: pleco.macdeoracle.JP インスタンス: CACHE

SAMPLES>d $System.SQL.Shell()
SQL Command Line Shell
----------------------------------------------------

The command prefix is currently set to: <<nothing>>.
Enter q to quit, ? for help.
SAMPLES>>create index tab31_demo_ix on tab31(item_code, is_delete, sub_item_code)
1. create index tab31_demo_ix on tab31(item_code, is_delete, sub_item_code)

0 Rows Affected
statement prepare time: 4.8277s, elapsed execute time: 9.6483s.
---------------------------------------------------------------------------
SAMPLES>>create index tab311_demo_ix on tab311(sub_item_code, is_delete, unique_id)
2. create index tab311_demo_ix on tab311(sub_item_code, is_delete, unique_id)

0 Rows Affected
statement prepare time: 0.0130s, elapsed execute time: 8.6777s.
---------------------------------------------------------------------------
SAMPLES>>

索引は正しく作成されています。(管理ポータルから確認した結果)
Tab31_indexes_index_only

Tab311_indexes_inde_only

お〜〜〜〜〜っ!。 CacheのSQLワールドでもIndex Only Accessになってる〜〜〜。 (ヒントのような仕組みはないようなのですが、狙い通りの索引が利用されていますね)
スカラー副問合せの実行計画から Read Master Map(表に対応するSparse Multidimensional Array)をアクセスする操作が消え、Read index Map(索引に対応するSparse Multidimensional Array)をアクセスする操作だけになっていることが確認できた。 :)

以下、管理ポータルの「SQL実行」>「実行計画」で取得した実行計画

クエリプラン
相対コスト = 74082

Call module B, which populates bitmap temp-file A.
Read bitmap temp-file A, looping on ID.
For each row:
Read master map SQLUser.tab3.IDKEY, using the given idkey value.
Output the row.

module B
Read index map SQLUser.tab3.tab3_pk, looping on unique_id (with a range condition) and ID.
For each row:
Add ID bit to bitmap temp-file A.

subquery
Call module E.
Determine subquery result.

module E
Read index map SQLUser.tab31.tab31_demo_ix, using the given %SQLUPPER(item_code) and is_delete, and looping on %SQLUPPER(sub_item_code) and ID.
For each row:
Read index map SQLUser.tab311.tab311_demo_ix, using the given %SQLUPPER(sub_item_code) and is_delete, and looping on unique_id and ID.
For each row:
Accumulate the max(unique_id).

| | | コメント (0) | トラックバック (0)

2012年8月22日 (水)

VirtualBox 4.1.20 released!

Mac OS X hosts: adaptions to Mountain Lionとの記載もあるので即アップデート

20120822_90846


| | | コメント (0) | トラックバック (0)

2012年6月23日 (土)

VirtualBox 4.1.18 released!

https://www.virtualbox.org/wiki/Changelog

定期的にアップデートされてて素敵:)

20120623_73025


| | | コメント (0) | トラックバック (0)

2012年6月 7日 (木)

VirtualBox 4.1.16 released

https://www.virtualbox.org/wiki/Changelog

https://www.virtualbox.org/wiki/Downloads

Mac OS X hosts: addressed issues running on Mountain Lion Preview 3 と Moutain Lion対応も順調のようですな〜 :)


20120602_75941

とりあえず、MacOS X Lion阪はアップデートdone.

| | | コメント (0) | トラックバック (0)

2012年5月 6日 (日)

VirtualBox 4.1.14 と OS X Mountain Lion対応? 4.1.15がリリースされてた

今気づいたけど、4.1.14だけだと思ったら、MacOS X Mountain Lion対応の VirtualBox 4.1.15も出てたのね。:)

https://www.virtualbox.org/wiki/Downloads

20120506_183804


20120506_190633


とりあえずアップデート

20120506_185041


| | | コメント (0) | トラックバック (0)

2012年4月 8日 (日)

いん!、イン!、Index どっぷり Inde Only Access生活w - Oracle OpenWorld Unconference presented by JPOUG

Oracle OpenWorld Unconference presented by JPOUG
とこかで聞いたようなタイトルを"インデックス"に置換えた「いん!、イン!、Index どっぷり Inde Only Scan生活w」のセッション資料を公開します。
(相変わらず文才ないな〜〜と落ち込む....作文嫌いは死ぬまで治らないと思ってるが、がんばって書くw)

デモ内容とデモ環境情報を追加予定です。 2012/4/15デモとデモ環境情報追加しました)

直前にデモ環境のOracle11gR2が起動しないという想定外のトラブルを乗り越えw かなりイッパイ、イッパイの状態でしたが楽しい時間を過ごさせていただきました。

関係者の皆様、ご来場の皆様、ありがとうございました。

Safari以外のブラウザではアニメーション効果はありませんが、Safari (Mac/iPad/iPhone)ではKeynote風(但し、ページ間のトランジッションなし)に表示されます。

いん!、イン!、IndexどっぷりIndes Only Scan生活w


(2012/4/10追加)
セッションで利用したデモ環境の情報を載せておきます。

MacBook Air late 2010 13inch 2GB (MacOS X Lion)
VirtualBox4.1.10 for MacOS X
GuestOS:CentOS5.8 x86 
DB : Oracle11g R2 11.2.0.1.0 EE for Linux x86

VMの設定は以下のようになってます。
仮想ディスクはほかにもいろいろやるので合計で21GBほどにしてあります :)

20120410_13346_2

(2012/4/15)host i/o cacheはオフにしてあります。
Vbox_no_hostio_cache

late2010のMBAはメモリが2GBなので、VMには1GBのメモリを割り当ててます。
(オラクルのmemory_targetなどの値も書いたほうがいいのかな〜)

(2012/4/15追記)
メモリサイズがギリギリなのでOracleのメモリ関連初期化パラメータも以下の通りで少なめです。

memory_max_target                    big integer 404M
memory_target big integer 404M
sga_max_size big integer 404M
sga_target big integer 0
pga_aggregate_target big integer 0

(2012/4/15追記)
・デモで使った表これ。

13:56:52 SCOTT> desc tab1
名前 NULL? 型
----------------------------- -------- --------------------
UNIQUE_ID NOT NULL NUMBER
NON_UNIQUE_ID NUMBER(10)
NON_UNIQUE_ID2 NUMBER(5)
DATA VARCHAR2(500)
IS_DELETE NUMBER(1)
STATUS_CODE CHAR(2)

13:56:55 SCOTT> desc tab2
名前 NULL? 型
----------------------------- -------- --------------------
UNIQUE_ID2 NOT NULL NUMBER(5)
DATA VARCHAR2(500)
IS_DELETE NUMBER(1)


こんなデータを登録して...

13:56:58 SCOTT> 
15:01:15 SCOTT> begin for i in 1..100000 loop insert into tab1 values(i,ora_hash(i,999),ora_hash(i,99),lpad(i,500,'*'),0,'00'); end loop; end;
15:01:17 SCOTT> /

PL/SQLプロシージャが正常に完了しました。

経過: 00:00:25.46
15:01:44 SCOTT> commit;

コミットが完了しました。

経過: 00:00:00.01
15:01:59 SCOTT> exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=>'TAB1',no_invalidate=>false,cascade=>true);

PL/SQLプロシージャが正常に完了しました。

経過: 00:00:08.50
15:09:43 SCOTT> begin for i in 1..200 loop insert into tab2 values(i,lpad(i,500,'*'),0); end loop; end;
15:10:12 2 /

PL/SQLプロシージャが正常に完了しました。

経過: 00:00:00.05
15:10:13 SCOTT> commit;

コミットが完了しました。

経過: 00:00:00.08
15:10:16 SCOTT> exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=>'TAB2',no_invalidate=>false,cascade=>true);

PL/SQLプロシージャが正常に完了しました。

経過: 00:00:00.99
15:10:50 SCOTT>


データ件数、データのカーディナリティは以下のようになってます。

15:10:50 SCOTT> @show_tab_info
tabnameに値を入力してください: tab1

SEGMENT_NAME SEGMENT_TYPE SEGMENT_SU MB NUM_ROWS DISTINCT_KEYS CLUSTERING_FACTOR VISIBLE
------------------------------ ------------------ ---------- ---------- ---------- ------------- ----------------- -------
TAB1 TABLE ASSM 62 100000 YES
TAB1_IX1 INDEX ASSM 3 100000 1000 99400 YES
TAB1_IX2 INDEX ASSM 3 100000 100 94181 YES
TAB1_PK INDEX ASSM 2 100000 100000 7693 YES

経過: 00:00:00.78

TABLE_NAME INDEX_NAME COLUMN_NAME DESC DATA_TYPE NUM_NULLS DENSITY NUM_DISTINCT HI_VALUE LO_VALUE HISTOGRAM
------------------------------ ------------------------------ -------------------- ---- ------------ ---------- ---------- ------------ ------------- ------------- ---------------
TAB1 TAB1_IX1 NON_UNIQUE_ID ASC NUMBER 0 .001 1000 999 0 NONE

TAB1_IX2 NON_UNIQUE_ID2 ASC NUMBER 0 5.0182E-06 100 99 0 FREQUENCY

TAB1_PK UNIQUE_ID ASC NUMBER 0 .00001 100000 100000 1 NONE


経過: 00:00:02.51
15:17:47 SCOTT> @show_tab_info
tabnameに値を入力してください: tab2

SEGMENT_NAME SEGMENT_TYPE SEGMENT_SU MB NUM_ROWS DISTINCT_KEYS CLUSTERING_FACTOR VISIBLE
------------------------------ ------------------ ---------- ---------- ---------- ------------- ----------------- -------
TAB2 TABLE ASSM 1 200 YES
TAB2_PK INDEX ASSM 1 200 200 15 YES

経過: 00:00:00.78

TABLE_NAME INDEX_NAME COLUMN_NAME DESC DATA_TYPE NUM_NULLS DENSITY NUM_DISTINCT HI_VALUE LO_VALUE HISTOGRAM
------------------------------ ------------------------------ -------------------- ---- ------------ ---------- ---------- ------------ ------------- ------------- ---------------
TAB2 TAB2_PK UNIQUE_ID2 ASC NUMBER 0 .005 200 200 1 NONE


経過: 00:00:02.55
15:18:03 SCOTT>


注)毎回buffer cacheをクリア、かつ、ソフトパース時の結果を載せています。

・demo1

通常ならこの実行計画であればなにもしないですよね...

こんな良さげな実行計画でもSQL文と実行計画それに表定義をじ〜〜〜〜〜〜っと見ていると解決策が見えてきますよね。そうindex only accessならね。

14:45:34 SCOTT> 
14:45:34 SCOTT> set autot trace exp stat
14:45:34 SCOTT> @demo1

システムが変更されました。

経過: 00:00:00.03
1 select
2 unique_id
3 ,status_code
4 from
5 tab1
6 where
7 unique_id between 1 and 1000
8* and is_delete = 0

998行が選択されました。

経過: 00:00:00.07

実行計画
----------------------------------------------------------
Plan hash value: 1911646434

---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 999 | 10989 | 81 (0)| 00:00:01 |
|* 1 | TABLE ACCESS BY INDEX ROWID| TAB1 | 999 | 10989 | 81 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | TAB1_PK | 1000 | | 4 (0)| 00:00:01 |
---------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("IS_DELETE"=0)
2 - access("UNIQUE_ID">=1 AND "UNIQUE_ID"<=1000)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
210 consistent gets
80 physical reads
0 redo size
19586 bytes sent via SQL*Net to client
1142 bytes received via SQL*Net from client
68 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
998 rows processed


is_deleteなんて列を参照するためにだけに行長の長い行を持つ表を、しかも、レンジスキャンしているのでデータアクセス量が多くなっているんですよね。
そこで、index only access

index only accessするための索引を作成してしまえばそれを回避できますよね.

14:45:36 SCOTT> @demo1_ix
create index tab1_ix_demo1 on tab1(unique_id,is_delete,status_code) nologging invisible

索引が作成されました。

経過: 00:00:00.80
alter session set optimizer_use_invisible_indexes=true

セッションが変更されました。

経過: 00:00:00.01


TABLE ACCESSが消えました!
consistent getsは、1/3に減少しましたよね :) 時間も 70msから10ms程度に改善してます。

14:46:05 SCOTT> @demo1

システムが変更されました。

経過: 00:00:00.04
1 select
2 unique_id
3 ,status_code
4 from
5 tab1
6 where
7 unique_id between 1 and 1000
8* and is_delete = 0

998行が選択されました。

経過: 00:00:00.01

実行計画
----------------------------------------------------------
Plan hash value: 327556384

----------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 999 | 10989 | 4 (0)| 00:00:01 |
|* 1 | INDEX RANGE SCAN| TAB1_IX_DEMO1 | 999 | 10989 | 4 (0)| 00:00:01 |
----------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - access("UNIQUE_ID">=1 AND "IS_DELETE"=0 AND "UNIQUE_ID"<=1000)
filter("IS_DELETE"=0)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
70 consistent gets
4 physical reads
0 redo size
19586 bytes sent via SQL*Net to client
1142 bytes received via SQL*Net from client
68 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
998 rows processed


次のデモのために作成した索引を削除しておきます。

14:46:13 SCOTT> @drop_demo1_ix
drop index tab1_ix_demo1

索引が削除されました。

経過: 00:00:00.61
alter session set optimizer_use_invisible_indexes=false

セッションが変更されました。

経過: 00:00:00.00

・demo2

demo1同様に行長の長い行をある程度の範囲でレンジスキャンかつ、group/order by句があるのでソート処理が行われています。

これも通常ならチューニングなんてしないのですが、大人の事情で何かできないか? 

と聞かれればindex only accessにして表をアクセスしない+ソート処理も省略しましょうか! と返してあげることが多いです。

14:47:05 SCOTT> @demo2

システムが変更されました。

経過: 00:00:00.02
1 select
2 non_unique_id2
3 ,count(1)
4 from
5 tab1
6 where
7 non_unique_id = 70
8 and is_delete = 0
9 group by
10 non_unique_id2
11 order by
12* non_unique_id2

経過: 00:00:00.06

実行計画
----------------------------------------------------------
Plan hash value: 1524069294

-----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 63 | 630 | 102 (1)| 00:00:02 |
| 1 | SORT GROUP BY | | 63 | 630 | 102 (1)| 00:00:02 |
|* 2 | TABLE ACCESS BY INDEX ROWID| TAB1 | 100 | 1000 | 101 (0)| 00:00:02 |
|* 3 | INDEX RANGE SCAN | TAB1_IX1 | 100 | | 1 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - filter("IS_DELETE"=0)
3 - access("NON_UNIQUE_ID"=70)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
103 consistent gets
103 physical reads
0 redo size
517 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1 rows processed


index only scanにしてソート処理も省略するための索引を作成します。

ではどのような索引を作成すればよいのでしょう?

実行計画のPredicate Informationセクションにはどのような索引を作成するかを決定するための重要な情報がリストされています。

気づきましたか?

以下の2行が重要。

2 - filter("IS_DELETE"=0)
3 - access("NON_UNIQUE_ID"=70)

NON_UNIQUE_ID列に作成されている索引を利用して行を取得し、IS_DELETE=0 でフィルタ処理を実施していることがわかります。

ということは、 NON_UNIQUE_ID,IS_DELETEの2列(つまりWHERE句に記述されている検索条件)がアクセスパスですよね。

次に、選択リスト/GROUP BY句/ORDER BY句を見ると NON_UNIQUE_ID2毎のCOUNT()を取りNON_UNIQUE_ID2を昇順にソートしていることがわかります。

NON_UNIQUE_ID,IS_DELETE列アクセスして、NON_UNIQUE_ID2が昇順にソート済みとなっている索引があればindex only accessになるはず!

14:47:14 SCOTT> @demo2_ix
create index tab1_ix_demo2 on tab1(non_unique_id,is_delete,non_unique_id2) logging invisible

索引が作成されました。

経過: 00:00:00.63
alter session set optimizer_use_invisible_indexes=true

セッションが変更されました。

経過: 00:00:00.01


結果は...

index range scanのみになり、SORT GROUP BY NOSORTというオペレーションからもわかるように、ソート処理が省略されています。;)

consistent getsは約1/50、処理時間は60msから10msまで改善しました。

14:47:28 SCOTT> @demo2

システムが変更されました。

経過: 00:00:00.03
1 select
2 non_unique_id2
3 ,count(1)
4 from
5 tab1
6 where
7 non_unique_id = 70
8 and is_delete = 0
9 group by
10 non_unique_id2
11 order by
12* non_unique_id2

経過: 00:00:00.01

実行計画
----------------------------------------------------------
Plan hash value: 2668135026

--------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 63 | 630 | 1 (0)| 00:00:01 |
| 1 | SORT GROUP BY NOSORT| | 63 | 630 | 1 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | TAB1_IX_DEMO2 | 100 | 1000 | 1 (0)| 00:00:01 |
--------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - access("NON_UNIQUE_ID"=70 AND "IS_DELETE"=0)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
2 consistent gets
2 physical reads
0 redo size
517 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

作成した索引を削除して次のデモへ。

14:47:33 SCOTT> @drop_demo2_ix
drop index tab1_ix_demo2

索引が削除されました。

経過: 00:00:00.10
alter session set optimizer_use_invisible_indexes=false

セッションが変更されました。

経過: 00:00:00.00

・demo3

これdemo2の応用編です. 行長の長い行をある程度の範囲でレンジ検索し、最小値(min)を取得するものです。最大値(max)でも考え方は同じ。

14:47:49 SCOTT> @demo3

システムが変更されました。

経過: 00:00:00.04
1 select
2 min(non_unique_id2)
3 from
4 tab1
5 where
6 non_unique_id = 70
7* and is_delete = 0

経過: 00:00:00.05

実行計画
----------------------------------------------------------
Plan hash value: 255634452

-----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 10 | 101 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 10 | | |
|* 2 | TABLE ACCESS BY INDEX ROWID| TAB1 | 100 | 1000 | 101 (0)| 00:00:02 |
|* 3 | INDEX RANGE SCAN | TAB1_IX1 | 100 | | 1 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - filter("IS_DELETE"=0)
3 - access("NON_UNIQUE_ID"=70)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
103 consistent gets
103 physical reads
0 redo size
456 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed


demo2と同様に、WHERE句で参照されている検索条件列がアクセスパスになるような索引に、選択リスト中のmin()関数で参照されている列を追加した索引でindex only accessになりそうですよね。

14:47:51 SCOTT> @demo3_ix
create index tab1_ix_demo3 on tab1(non_unique_id, is_delete, non_unique_id2) nologging invisible

索引が作成されました。

経過: 00:00:00.65
alter session set optimizer_use_invisible_indexes=true

セッションが変更されました。

経過: 00:00:00.00


結果は、狙い通りになりました!

処理時間は40msから10msへ。consistent getsは約1/50に改善しました。

実行計画のINDEX RANGE SCAN (MIN/MAX) 〜 FIRST ROWSという素敵なオペレーションが現れています。

Rowsを見ると索引作成前は 100行選択して1行返すという無駄の多い(99行は捨てている)操作から1行とってきて1行返すというエコな動きをしていることが確認できます! 素敵ですね。

14:48:05 SCOTT> @demo3

システムが変更されました。

経過: 00:00:00.04
1 select
2 min(non_unique_id2)
3 from
4 tab1
5 where
6 non_unique_id = 70
7* and is_delete = 0

経過: 00:00:00.01

実行計画
----------------------------------------------------------
Plan hash value: 3012701563

----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 10 | 2 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 10 | | |
| 2 | FIRST ROW | | 1 | 10 | 2 (0)| 00:00:01 |
|* 3 | INDEX RANGE SCAN (MIN/MAX)| TAB1_IX_DEMO3 | 1 | 10 | 2 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

3 - access("NON_UNIQUE_ID"=70 AND "IS_DELETE"=0)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
2 consistent gets
2 physical reads
0 redo size
456 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

作詞絵作成した索引を削除して次のデモへ...

14:48:09 SCOTT> @drop_demo3_ix
drop index tab1_ix_demo3

索引が削除されました。

経過: 00:00:00.09
alter session set optimizer_use_invisible_indexes=false

セッションが変更されました。

経過: 00:00:00.01


・demo4

大人の事情で実行計画だけみてるとチューニングなんて不要でしょ! という感じのクエリをチューニングできないか?

と依頼されたら・・・

2つの表を結合した結果でgorup/order byしているのでソート処理のバイパスはできせんが、index only accessを使ってNested Loop結合でアクセスされるブロック数を最小化することはできますよね。

14:48:26 SCOTT> @demo4

システムが変更されました。

経過: 00:00:00.12
1 select
2 d.non_unique_id
3 ,m.unique_id2
4 ,count(1)
5 from
6 tab2 m join tab1 d
7 on m.unique_id2 = d.non_unique_id2
8 and m.is_delete = 0
9 and d.is_delete = 0
10 where
11 m.unique_id2 between 1 and 10
12 group by
13 d.non_unique_id
14 ,m.unique_id2
15 order by
16 d.non_unique_id
17* ,m.unique_id2

100行が選択されました。

経過: 00:00:01.71

実行計画
----------------------------------------------------------
Plan hash value: 1194523033

-------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1034 | 16544 | 539 (1)| 00:00:07 |
| 1 | SORT GROUP BY | | 1034 | 16544 | 539 (1)| 00:00:07 |
| 2 | NESTED LOOPS | | | | | |
| 3 | NESTED LOOPS | | 1034 | 16544 | 537 (0)| 00:00:07 |
|* 4 | TABLE ACCESS BY INDEX ROWID| TAB2 | 10 | 60 | 2 (0)| 00:00:01 |
|* 5 | INDEX RANGE SCAN | TAB2_PK | 10 | | 1 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | TAB1_IX2 | 111 | | 1 (0)| 00:00:01 |
|* 7 | TABLE ACCESS BY INDEX ROWID | TAB1 | 103 | 1030 | 106 (0)| 00:00:02 |
-------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

4 - filter("M"."IS_DELETE"=0)
5 - access("M"."UNIQUE_ID2">=1 AND "M"."UNIQUE_ID2"<=10)
6 - access("M"."UNIQUE_ID2"="D"."NON_UNIQUE_ID2")
filter("D"."NON_UNIQUE_ID2"<=10 AND "D"."NON_UNIQUE_ID2">=1)
7 - filter("D"."IS_DELETE"=0)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
9604 consistent gets
5793 physical reads
0 redo size
2588 bytes sent via SQL*Net to client
482 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
100 rows processed


WHERE句やPredicate Informationからも駆動表(TAB2)と内部表(TAB1)は判断できると思います。

駆動表(TAB2)はWHERE句の検索条件および結合条件でアクセスパスとなる列が参照されています。
内部表(TAB1)はWHERE句では参照されておらず、結合条件でのみアクセスパスとなる列が参照されていることがわかります。

選択リストやGROUP/ORDER BY句から、内部表(TAB1)のNON_UNIQUE_ID列も索引に含める必要があるとわかるはずです。

既に気づいた方も多いと思うのですが、index only access化に必要な索引列候補はSQL文だけでも見つけることができるんですよ。

ただ、複雑な結合などが含まれる場合は、実行計画計画やPredicate Informationに有益な情報が載っているので、できれば合わせて見ておくと吉ですね。  

Truth is out there! :) って場合もあるってことで。

14:48:31 SCOTT> @demo4_ix
create index tab2_ix_demo4 on tab2(unique_id2,is_delete) nologging invisible

索引が作成されました。

経過: 00:00:00.06
create index tab1_ix_demo4 on tab1(non_unique_id2, is_delete, non_unique_id) nologging invisible

索引が作成されました。

経過: 00:00:01.21
alter session set optimizer_use_invisible_indexes=true

セッションが変更されました。

経過: 00:00:00.00


大きなクエリほど効果は絶大ということで。

1710msから50msに改善してます。consistents getsは、1/291に :)

14:49:04 SCOTT> @demo4

システムが変更されました。

経過: 00:00:00.05
1 select
2 d.non_unique_id
3 ,m.unique_id2
4 ,count(1)
5 from
6 tab2 m join tab1 d
7 on m.unique_id2 = d.non_unique_id2
8 and m.is_delete = 0
9 and d.is_delete = 0
10 where
11 m.unique_id2 between 1 and 10
12 group by
13 d.non_unique_id
14 ,m.unique_id2
15 order by
16 d.non_unique_id
17* ,m.unique_id2

100行が選択されました。

経過: 00:00:00.04

実行計画
----------------------------------------------------------
Plan hash value: 1672990879

------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1034 | 16544 | 31 (4)| 00:00:01 |
| 1 | SORT GROUP BY | | 1034 | 16544 | 31 (4)| 00:00:01 |
| 2 | NESTED LOOPS | | 1034 | 16544 | 30 (0)| 00:00:01 |
|* 3 | INDEX RANGE SCAN| TAB1_IX_DEMO4 | 10314 | 100K| 30 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN| TAB2_IX_DEMO4 | 1 | 6 | 0 (0)| 00:00:01 |
------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

3 - access("D"."NON_UNIQUE_ID2">=1 AND "D"."IS_DELETE"=0 AND
"D"."NON_UNIQUE_ID2"<=10)
filter("D"."IS_DELETE"=0)
4 - access("M"."UNIQUE_ID2"="D"."NON_UNIQUE_ID2" AND "M"."IS_DELETE"=0)
filter("M"."UNIQUE_ID2"<=10 AND "M"."UNIQUE_ID2">=1)


統計
----------------------------------------------------------
0 recursive calls
0 db block gets
33 consistent gets
31 physical reads
0 redo size
2588 bytes sent via SQL*Net to client
482 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
100 rows processed

14:49:09 SCOTT> @drop_demo4_ix
drop index tab1_ix_demo4

索引が削除されました。

経過: 00:00:00.11
drop index tab2_ix_demo4

索引が削除されました。

経過: 00:00:00.04
alter session set optimizer_use_invisible_indexes=false

セッションが変更されました。

経過: 00:00:00.00


Enjoy!



Index Only Access (Index Only Scan) っていいよね(デメリットもあるけどさ) #1
Index Only Access (Index Only Scan) っていいよね(デメリットもあるけどさ) #2

チューニング, SQL, Oracle Database 11g, VirtualBox, OOW, JPOUG, Index Only Scan | | | コメント (1) | トラックバック (0)

2012年4月 7日 (土)

VirtualBox 4.1.12 released

https://www.virtualbox.org/wiki/Changelog

20120407_194045

おやおや、今気づいたけど、VirtualBoxについてのダイアログ。バー部分が角張ってるよね。4.1.10から上部だけ角張ってる。

4.1.8まではラウンドだったのに…気になる

以下、4.1.8

20111220_12335


| | | コメント (0) | トラックバック (0)

2012年3月16日 (金)

VirtualBox 4.1.10 released - あれ前回は 4.1.8だったけど一つ飛んだね

https://www.virtualbox.org/

少々時間空いたな〜と思っていたら、4.1.8の次は、一つ飛ばして4.1.10ですね。:)

20120316_163833

Oracle OpenWorld Tokyo 2012 Unconference当日のデモ環境は VirtualBox4.1.10で、GuestOSはCentOS5.8、データベースはOracle11g R2で。もちろんホストOSはOS Xですよ:)

Unconference_jpoug

| | | コメント (0) | トラックバック (0)

2011年12月20日 (火)

VIrtualBox 4.1.8 released :)

クリスマス前にリリース! されてたのでupdate. Linuxのは後で。

https://www.virtualbox.org/wiki/Downloads

20111220_12000


20111220_12335


特に問題なく起動したし:)

20111220_12543


| | | コメント (0) | トラックバック (0)

2011年11月 9日 (水)

VirtualBox 4.1.6 released - Update done

https://www.virtualbox.org/wiki/Changelog

出かけるまえにVirtualBox4.1.6 へUpdate done


virtualbox416_inst


virtualbox416_splash


| | | コメント (0) | トラックバック (0)

2011年10月 5日 (水)

VIrtualBox 4.1.4 released

http://www.virtualbox.org/wiki/Changelog


LinuxとMacのVirtualBoxを4.1.4アップデートするなど。毎月一回のお約束:)

VirtualBox4.1.4 about


| | | コメント (0) | トラックバック (0)

2011年8月16日 (火)

VirtualBox 4.1.2 released! 月1ペースか。:)

http://www.virtualbox.org/wiki/Changelog

ほんと良いペースですねー。


20110816_230112


| | | コメント (0) | トラックバック (0)

CentOS6.0 on VirtualBox4.1.0 for MacOS X(Snow Leopard) - Can't mount VBoxGuestAdditions.iso as Virtual CD/DVD-ROM

MacOS XのVirtualBoxでGuest Additionsがインストールできないというか VBoxGuestAdditions.isoファイルを仮想CD/DVDとしてマウントできないなー、なんて状態になったら、これから紹介する方法で解決できますよ。というお話です。:)

VirtualBox for MacOS Xは他のアプリケーションと同様にアプリケーション・パッケージ形式なのでVirtualBoxアプリケーションアイコンを右クリックし、「ボップアップメニュー」>「パッケージの内容を表示」を選択します。

Menu




でFinderに表示されたVirtualBoxパッケージないを開いていくと Contents/MacOS/VBoxGuestAdditions.iso というファイルが見つかります。これがGuest Additions用の.iso形式ファイル。これがなぜかマウントできないんだな。以前はマウントできてたのに…

Iso


この VBoxGuestAdditions.iso をDesktopなどアクセスしやすい場所にコピーしちゃいます。

あとはいつものように、CD/DVD-ROMとしてマウントして…


Mount


Mount2


コマンドを打つだけ。:)


[discus@angelfish VBOXADDITIONS_4.1.0_73009]$ su -
パスワード:
[root@angelfish &]# cd /media
[root@angelfish media]# ll
合計 2
dr-xr-xr-x. 4 discus root 2048 7月 19 19:43 2011 VBOXADDITIONS_4.1.0_73009
[root@angelfish media]# cd VBOXADDITIONS_4.1.0_73009
[root@angelfish VBOXADDITIONS_4.1.0_73009]# ll
合計 41440
dr-xr-xr-x. 3 discus root 2048 7月 19 19:43 2011 32Bit
dr-xr-xr-x. 2 discus root 2048 7月 19 19:43 2011 64Bit
-r-xr-xr-x. 1 discus root 647 8月 14 00:58 2010 AUTORUN.INF
-r-xr-xr-x. 1 discus root 7525824 7月 19 19:38 2011 VBoxLinuxAdditions.run
-r-xr-xr-x. 1 discus root 14235136 7月 19 19:42 2011 VBoxSolarisAdditions.pkg
-r-xr-xr-x. 1 discus root 13097968 7月 19 19:30 2011 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x. 1 discus root 7277968 7月 19 19:25 2011 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x. 1 discus root 278832 7月 19 19:24 2011 VBoxWindowsAdditions.exe
-r-xr-xr-x. 1 discus root 6966 7月 19 19:36 2011 autorun.sh
-r-xr-xr-x. 1 discus root 5523 7月 19 19:36 2011 runasroot.sh
[root@angelfish VBOXADDITIONS_4.1.0_73009]# sh ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.1.0 Guest Additions for Linux.........
VirtualBox Guest Additions installer
Removing existing VirtualBox DKMS kernel modules [ OK ]
Removing existing VirtualBox non-DKMS kernel modules [ OK ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module [ OK ]
Building the shared folder support module [ OK ]
Building the OpenGL support module [ OK ]
Doing non-kernel setup of the Guest Additions [ OK ]
Starting the VirtualBox Guest Additions [ OK ]
Installing the Window System drivers
Installing X.Org Server 1.7 modules [ OK ]
Setting up the Window System to use the Guest Additions [ OK ]
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services componen[ OK ]
[root@angelfish VBOXADDITIONS_4.1.0_73009]#

このお遊びの続きはいずれまた。

2011/8/16追記
実は、こんな事しなくてもちゃんとマウンドできた><。

VirtualBoxの「メニュー」>「デバイス」>「Guest Addtionsのインストール(I)...」でマウントできるじゃないですかー。失礼しました。 m(_ _)m

20110816_230742



これまでのあらずじ…

CentOS6.0 on VirtualBox4.1.0 for MacOS X(Snow Leopard)

| | | コメント (0) | トラックバック (0)

2011年8月15日 (月)

CentOS6.0 on VirtualBox4.1.0 for MacOS X(Snow Leopard)

まだLionじゃなくて、Snow Leopardなのですが…

VirtualBox4.1.0でCentOS6.0をGuestOSとして構築してみた。この続きは暇を見て…。
20110815_03357

20110815_71248

| | | コメント (0) | トラックバック (0)

2011年7月22日 (金)

Lionがでたとおもったら、VirtualBox 4.1も出てたのね。

http://www.virtualbox.org/wiki/Changelog

20110722_13624

Lion入れるより先にVirtualBox 4.1にしてみたw

| | | コメント (0) | トラックバック (0)

2011年7月17日 (日)

VirtualBox 4.0.12 リリース、活発だな〜 :)

気づいたら、4.0.12がリリースされてる。:) すげ〜活発な。  アップデートdone.

20110717_83523

| | | コメント (0) | トラックバック (0)

2011年6月29日 (水)

VirtualBox 4.0.10リリース、MacOS X Lion向けbug fixもあるね

MacOS X Lion向けbug fixもあるね〜

20110628_235215

| | | コメント (0) | トラックバック (0)

2011年5月17日 (火)

VirtualBox 4.0.8でました〜

VirtualBox 4.0.8がリリースされたので早速アップデート :)

Mac OS X関連のbug fixも含まれてますねー。
http://www.virtualbox.org/wiki/Downloads

Changelog for VirtualBox 4.0.8

  • Mac OS X hosts: fixed incompatibility with recent Mac OS X versions in 64-bit mode (bug #8474)
  • Mac OS X hosts: fixed incompatibility with hosts with more than 16 cores (bug #8389)
  • Mac OS X hosts: fixed painting corruptions on a second monitor in 64-bit mode (bug #7606)
  • GUI: restored functionality to set an empty host key to disallow any host key combination (4.0.6 regression; bug #8793)
  • VBoxManage: added controlvm screenshotpng subcommand for saving the screenshot of a running VM in PNG format
  • VBoxHeadless: fixed potential crash during shutdown (Windows hosts only)
  • NAT: built-in services use the correct Ethernet addresses in Ethernet header and in ARP requests
  • Host-only networking: fixed adapter reference counting
  • E1000: fixed rare guest crashes with Linux SMP guests (bug #8755)
  • SATA: fixed guest disk corruption under rare circumstances (only relevant for guests with more than 2GB RAM; bug #8826)
  • Storage: fixed data corruption after a snapshot was taken with asynchronous I/O enabled (bug #8498)
  • Floppy: several improvement
  • HPET: another fix for time jumps (bug #8707)
  • USB: removed assumption that string descriptors are null-terminated (Windows hosts only)
  • 3D support: fixed a potential crash when resizing the guest window
  • 3D support: fixed GNOME 3 rendering under Ubuntu 11.04 and Fedora 15
  • Snapshots: fixed another bug which could lose entries in the media registry when restoring a snapshot (bug #8363)
  • Shared Folders: don't stop mounting the other valid folders if one host folder is inaccessible (4.0.6 regression)
  • Linux Additions: check whether gcc and make are installed before building kernel modules (bug #8795)
  • Solaris Additions: added support for X.Org Server 1.10
  • Guest Additions: fixed inappropriate Guest Additions update notification when using vendor-specific
  • version suffixes (bug #8844)

20110517_50809


20110517_50844


20110517_50852


20110517_50906


20110517_50924_2
20110517_50938


20110517_51357

各Guest OSのGuest Additions scriptの実行もお忘れなく!

| | | コメント (0) | トラックバック (0)

2011年4月 3日 (日)

VirtualBox de Oracle Linux 6

http://blogs.oracle.com/linux/2011/02/oracle_linux_6_dvds_now_available.html

ってことだったので、VirtualBox 使ってお試し環境作っておいた。問題もなくinstall done…

20110402_214835

| | | コメント (0) | トラックバック (0)

2011年3月11日 (金)

IE9テスト用Windows7 64bit環境をVirtualBox VMで

うちの奥さんが関わっているサイトでもIE9対応とかありそうだし、私もいろいろ確認したいこともあり、VirtualBox4.x for LInux x86_64でWindow7 64bit 環境を作った。VMのおかげてでいろいろ楽できるな〜。

以下、MacBook AirのTerminalからX forwording使って接続した様子。:) MacOS/Linux/Windowsの共演w

20110311_60558

Screenshot20110311

| | | コメント (0) | トラックバック (0)

2011年1月30日 (日)

CentOS5.5のVirtualBox4.0のWindowsXP ProfessionalのVirtualPC2007のWindowsXPのIE7(長過ぎw)

うちの奥さんがIE7以上の動作確認などもしたいということだったので、タイミングよく公開されたInternet Explorer Application Compatibility VPC ImageのXP向けIE7とVirtualPCを使ってIE7のテスト環境を作ってみた。

CentOS5.5(HostOS)のVirtualBox4.0のWindowsXP Professional(GuestOS)のVirtualPC2007に前述のWindowsXP+IE7(英語版+日本語フォント)の環境になっとります。これで奥さん用IE7確認環境のできあがり。

フォント追加がめんどくさいので日本語フォントを含んだのもあるといいんですけどね〜 :)

Version1

| | | コメント (0) | トラックバック (0)

2011年1月 9日 (日)

CentOS5.5のVirtualBoxも4.0にアップデートした

MacOS X版VirtualBoxにつづき、CentOS5.5のVirtualBoxも3.2から4.0にアップデートした。

ついでなので、CentOS5.5のVirtualBoxのSolaris10をMacOS XのTerminalからX11 forwadingを使ってMac側で起動してみた。(どんな次いでだw)

まず最初はCentOSのVirtualBoxを3.2から4.0へアップデート。MacOS Xの場合特に気にすることもないのだが、Linuxの場合、3.2がインストールされたままだと4.0でアップデートできないので、一旦、VirtualBox 3.2はアンインストールする必要がある。アンインストールがうまくいったら4.0をインストールがうまくいく。(新規で4.0をインストールする場合は気にする必要ないですよ…)

ちなみに、うちのは64bit版です ;)

[root@lampeye Desktop]# cat /etc/redhat-release
CentOS release 5.5 (Final)
[root@lampeye Desktop]#
[root@lampeye Desktop]# uname -r
2.6.18-194.26.1.el5
[root@lampeye Desktop]#
[root@lampeye Desktop]# rpm -e VirtualBox-3.2-3.2.12_68302_rhel5-1.x86_64
[root@lampeye Desktop]# rpm -ivh VirtualBox-4.0-4.0.0_69151_rhel5-1.x86_64.rpm
警告: VirtualBox-4.0-4.0.0_69151_rhel5-1.x86_64.rpm: ヘッダ V4 DSA signature: NOKEY, key ID 98ab5139
準備中... ########################################### [100%]
1:VirtualBox-4.0 ########################################### [100%]

Creating group 'vboxusers'. VM users must be member of that group!

No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.

Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Trying to register the VirtualBox kernel modules using DKMS [失敗]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [ OK ]
Starting VirtualBox kernel modules [ OK ]


[root@lampeye Desktop]#

ちゃんとやっとこうかな〜と思って、やり直しておいた(2011/1/10更新)

[root@lampeye Desktop]# cat /etc/redhat-release
CentOS release 5.5 (Final)
[root@lampeye Desktop]#
[root@lampeye Desktop]# uname -r
2.6.18-194.26.1.el5
[root@lampeye Desktop]#
[root@lampeye Desktop]# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
[root@lampeye Desktop]# rpm --import oracle_vbox.asc
[root@lampeye Desktop]# rpm --checksig VirtualBox-4.0-4.0.0_69151_rhel5-1.x86_64.rpm
VirtualBox-4.0-4.0.0_69151_rhel5-1.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
[root@lampeye Desktop]# rpm -e VirtualBox-3.2-3.2.12_68302_rhel5-1.x86_64
[root@lampeye Desktop]# rpm -ivh VirtualBox-4.0-4.0.0_69151_rhel5-1.x86_64.rpm
準備中... ########################################### [100%]
1:VirtualBox-4.0 ########################################### [100%]

Creating group 'vboxusers'. VM users must be member of that group!

No precompiled module for this kernel found -- trying to build one. Messages
emitted during module compilation will be logged to /var/log/vbox-install.log.

Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Trying to register the VirtualBox kernel modules using DKMS [失敗]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [ OK ]
Starting VirtualBox kernel modules [ OK ]
[root@lampeye Desktop]#

これで3.2から4.0へ移行は完了! :)

では本題、MacOS XのTerminalからX11 forwordingを使ってCentOS5.5のVirtualBox4.0を起動し、GuestOSとしてSolaris10を起動してみます。(なお、このVM、以前、MacOS XのVirtualBox3.2で作成したものをCentOS5.5にコピーというか移動したもの…)

discus:˜ discus$
discus:˜ discus$
discus:˜ discus$ ssh -Y discus@lampeye
discus@lampeye's password:
Warning: No xauth data; using fake authentication data for X11 forwarding.
Last login: Sun Jan 9 11:19:09 2011 from 192.168.1.30
[discus@lampeye ˜]$
[discus@lampeye ˜]$ VirtualBox &
[1] 4796
[discus@lampeye ˜]$

20110109_112433

20110109_112116


20110109_112218

うまくいくもんですね〜 :)




VirtualBox 4.0にアップデートした

| | | コメント (0) | トラックバック (0)

2011年1月 6日 (木)

VirtualBox 4.0にアップデートした

VirtualBox4.0にアップデートしてみたMacOS Xのだけだけど。あとでLinuxのもやるよー

20110106_233143

20110106_233148

| | | コメント (0) | トラックバック (0)

VirtualBox de Oracle11g R2 RAC #23

VirtualBox de Oracle11g R2 RACのつづき。

さて、いよいよVirtualBox de Oracle11g R2 RACの最終回。簡単なTAFのテスト!

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

簡単なTransparent Application Failover (TAF)の確認

MacOS X Snow LeopardにあるOracle Instant Client 10g R2 for MacOS Xのtnsnames.oraを編集し以下の定義を追加しておきました!

ORCLTAF =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = discus-rac64-scan.macdeoracle.jp)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.macdeoracle.info)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)

TAF定義の接続識別子で接続します。

discus:˜ oracle$ 
discus:˜ oracle$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on 木 1月 6 04:47:16 2011

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

> conn scott/tiger@orcltaf
接続されました。
SCOTT>
SCOTT>
SCOTT> select count(*) from user_objects;

COUNT(*)
----------
0


orcl1インスタンスで、sysユーザで接続し、セッションの状態を確認してみます。

[oracle@discus164 ˜]$ 
[oracle@discus164 ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 木 1月 6 04:48:42 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SYS>
SYS>
SYS> conn / as sysdba
接続されました。
SYS>
SYS> select
2 instance_name
3 ,username
4 ,failover_type
5 ,failover_method
6 ,failed_over
7 from
8 gv$session sess join gv$instance inst
9 on sess.inst_id = inst.inst_id
10 where
11 sess.username = 'SCOTT'
12 /

INSTANCE_NAME USERNAME FAILOVER_TYPE FAILOVER_M FAI
---------------- ------------------------------ ------------- ---------- ---
orcl1 SCOTT SELECT BASIC NO

SYS>


SCOTTはorcl1インスタンスに接続されクエリが実行されたようですね!
failoverさせるため、orcl1インスタンスをabortで強制停止してみます。

SYS> !srvctl status database -d orcl
インスタンスorcl1はノードdiscus164で実行中です。
インスタンスorcl2はノードdiscus264で実行中です。

SYS> !srvctl stop instance -d orcl -i orcl1 -o abort
SYS>
SYS> !srvctl status database -d orcl
インスタンスorcl1はノードdiscus164で実行されていません。
インスタンスorcl2はノードdiscus264で実行中です。

SYS>
SYS> l
1 select
2 instance_name
3 ,username
4 ,failover_type
5 ,failover_method
6 ,failed_over
7 from
8 gv$session sess join gv$instance inst
9 on sess.inst_id = inst.inst_id
10 where
11* sess.username = 'SCOTT'
SYS> /
select
*
行1でエラーが発生しました。:
ORA-03135: 接続が失われました
プロセスID: 5563
セッションID: 13、シリアル番号: 25


おっと〜、sysユーザでorcl1インスタンスに接続していたのでした〜。exitしちゃいます。


SCOTTユーザで、failoverさせるためクエリを再実行します。

SCOTT> r
1* select count(*) from user_objects

COUNT(*)
----------
0

SCOTT>


インスタンス:orcl2へ接続し直し確認。お〜うまくいけてますね!
orcl1のセッションだったscottユーザのセッションがfailoverしorcl2のセッションになっています。また今回設定したTAFのモードではクエリはエラーにはならず、生存インスタンスへ透過的にfailoverされます。

[oracle@discus264 ˜]$ 
[oracle@discus264 ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 木 1月 6 04:55:48 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

> conn / as sysdba
接続されました。
SYS> select
2 instance_name
3 ,username
4 ,failover_type
5 ,failover_method
6 ,failed_over
7 from
8 gv$session sess join gv$instance inst
9 on sess.inst_id = inst.inst_id
10 where
11 sess.username = 'SCOTT'
12 /


INSTANCE_NAME USERNAME FAILOVER_TYPE FAILOVER_M FAI
---------------- ------------------------------ ------------- ---------- ---
orcl2 SCOTT SELECT BASIC YES

SYS>


ちなみにcrsctl status resource -tで確認すると

・・・中略・・・
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE ONLINE discus264
ora.oc4j
1 OFFLINE OFFLINE
ora.orcl.db
1 OFFLINE OFFLINE Instance Shutdown
2 ONLINE ONLINE discus264 Open
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164
[grid@discus164 ˜]$

となっています。今回のようにデータベースインスタンスだけを停止した場合はこんな状態になるんですね。:)


ついでなので更新トランザクションも試してみましょうかね。
停止したデータベースインスタンスを起動し、scottユーザでupdate文を実行します。

discus:˜ oracle$ 
discus:˜ oracle$ sqlplus scott/tiger@orcltaf

SQL*Plus: Release 10.2.0.4.0 - Production on 木 1月 6 05:20:27 2011

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP
and Data Mining options
に接続されました。
SCOTT>
SCOTT>
SCOTT> insert into hoge values('abc');

1行が作成されました。

SCOTT>


orcl2インスタンスにsysユーザで接続して状態を確認してみます。
scottユーザはorcl1インスタンスに接続してinsert文を実行したようですね。まだ、failoverしていません。

SYS> 
SYS> l
1 select
2 instance_name
3 ,username
4 ,failover_type
5 ,failover_method
6 ,failed_over
7 from
8 gv$session sess join gv$instance inst
9 on sess.inst_id = inst.inst_id
10 where
11* sess.username = 'SCOTT'
SYS> /

INSTANCE_NAME USERNAME FAILOVER_TYPE FAILOVER_M FAI
---------------- ------------------------------ ------------- ---------- ---
orcl1 SCOTT SELECT BASIC NO


では、先ほどと同じようにorcl1インスタンスを強制停止してみます

SYS> !srvctl stop instance -d orcl -i orcl1 -o abort

SYS>
SYS> !srvctl status database -d orcl
インスタンスorcl1はノードdiscus164で実行されていません。
インスタンスorcl2はノードdiscus264で実行中です。


scottユーザで再度insert文を実行してみました。TAF特有のエラーメッセージが返されましたね。

SCOTT> r
1* insert into hoge values('abc')
insert into hoge values('abc')
*
行1でエラーが発生しました。:
ORA-25402: トランザクションをロールバックしてください。


セッションの状態を確認してみると…セッションはfailoverしています!

SYS> r
1 select
2 instance_name
3 ,username
4 ,failover_type
5 ,failover_method
6 ,failed_over
7 from
8 gv$session sess join gv$instance inst
9 on sess.inst_id = inst.inst_id
10 where
11* sess.username = 'SCOTT'

INSTANCE_NAME USERNAME FAILOVER_TYPE FAILOVER_M FAI
---------------- ------------------------------ ------------- ---------- ---
orcl2 SCOTT SELECT BASIC YES


scottユーザのトランザクションをロールバック後、リトライしてみると…

SCOTT> 
SCOTT> rollback;

ロールバックが完了しました。

SCOTT> insert into hoge values('abc');

1行が作成されました。

SCOTT>
SCOTT>

うまくいきましたね :)


ということで、VirtualBox de Oracle11g R2 RAC for Linux x86_64環境のできあがり〜。(完)






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16
VirtualBox de Oracle11g R2 RAC #17
VirtualBox de Oracle11g R2 RAC #18
VirtualBox de Oracle11g R2 RAC #19
VirtualBox de Oracle11g R2 RAC #20
VirtualBox de Oracle11g R2 RAC #21
VirtualBox de Oracle11g R2 RAC #22




VirtualBox de Oracle11g R2 RAC #16 - 番外編

| | | コメント (0) | トラックバック (0)

2011年1月 5日 (水)

VirtualBox de Oracle11g R2 RAC #22

VirtualBox de Oracle11g R2 RACのつづき。

ラス前です :) cluster databaseの起動停止確認。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Clusterの開始と停止の確認

Grid Infrastructureは自動起動にしてますが、手動起動、停止を確認しておきます。

rootユーザにてcrsctlコマンドでclusterを起動します。データベースインスタンスはOracle所有者でsrvctlコマンドを利用して起動してみます。
(ちなみに、rootユーザには、grid infrastructureのHOMEのbinへパスを通してあります。)

[root@discus164 ˜]# 
[root@discus164 ˜]# crsctl check cluster -all
**************************************************************
discus164:
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
CRS-4534: Cannot communicate with Event Manager
**************************************************************
discus264:
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
CRS-4534: Cannot communicate with Event Manager
**************************************************************
[root@discus164 ˜]#
[root@discus164 ˜]# crsctl start cluster -all
CRS-2672: 'ora.cssdmonitor'('discus164')の起動を試行しています
CRS-2672: 'ora.cssdmonitor'('discus264')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('discus264')の起動が成功しました
CRS-2676: 'ora.cssdmonitor'('discus164')の起動が成功しました
CRS-2672: 'ora.cssd'('discus164')の起動を試行しています
CRS-2672: 'ora.cssd'('discus264')の起動を試行しています
CRS-2672: 'ora.diskmon'('discus264')の起動を試行しています
CRS-2672: 'ora.diskmon'('discus164')の起動を試行しています
CRS-2676: 'ora.diskmon'('discus264')の起動が成功しました
CRS-2676: 'ora.diskmon'('discus164')の起動が成功しました
CRS-2676: 'ora.cssd'('discus164')の起動が成功しました
CRS-2676: 'ora.cssd'('discus264')の起動が成功しました
CRS-2672: 'ora.ctssd'('discus164')の起動を試行しています
CRS-2672: 'ora.ctssd'('discus264')の起動を試行しています
CRS-2676: 'ora.ctssd'('discus164')の起動が成功しました
CRS-2672: 'ora.evmd'('discus164')の起動を試行しています
CRS-2676: 'ora.ctssd'('discus264')の起動が成功しました
CRS-2672: 'ora.evmd'('discus264')の起動を試行しています
CRS-2672: 'ora.asm'('discus164')の起動を試行しています
CRS-2672: 'ora.asm'('discus264')の起動を試行しています
CRS-2676: 'ora.evmd'('discus264')の起動が成功しました
CRS-2676: 'ora.evmd'('discus164')の起動が成功しました
CRS-2676: 'ora.asm'('discus164')の起動が成功しました
CRS-2672: 'ora.crsd'('discus164')の起動を試行しています
CRS-2676: 'ora.asm'('discus264')の起動が成功しました
CRS-2672: 'ora.crsd'('discus264')の起動を試行しています
CRS-2676: 'ora.crsd'('discus164')の起動が成功しました
CRS-2676: 'ora.crsd'('discus264')の起動が成功しました
[root@discus164 ˜]#
[root@discus164 ˜]# crsctl check cluster -all
**************************************************************

discus164:
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
discus264:
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
[root@discus164 ˜]#
[root@discus164 ˜]# crsctl status resource -w 'TYPE co ora' -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.DATA.dg
OFFLINE OFFLINE discus164
OFFLINE OFFLINE discus264
ora.FRA.dg
OFFLINE OFFLINE discus164
OFFLINE OFFLINE discus264
ora.LISTENER.lsnr
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.asm
ONLINE ONLINE discus164 Started
ONLINE ONLINE discus264 Started
ora.eons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.gsd
OFFLINE OFFLINE discus164
OFFLINE OFFLINE discus264
ora.net1.network
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.ons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.registry.acfs
ONLINE ONLINE discus164
ONLINE ONLINE discus264
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE ONLINE discus264
ora.oc4j
1 OFFLINE OFFLINE
ora.orcl.db
1 OFFLINE OFFLINE
2 OFFLINE OFFLINE
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164
[root@discus164 ˜]#

データベースインスタンスを起動します。

[root@discus164 ˜]# su - oracle
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl start database -d orcl
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status database -d orcl
インスタンスorcl1はノードdiscus164で実行中です。
インスタンスorcl2はノードdiscus264で実行中です。
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ exit
logout

[root@discus164 ˜]#
[root@discus164 ˜]# crsctl status resource ora.orcl.db
NAME=ora.orcl.db
TYPE=ora.database.type
TARGET=ONLINE , ONLINE
STATE=ONLINE on discus164, ONLINE on discus264

[root@discus164 ˜]#

起動しましたね :)

最後に、データベースインスタンスは起動したままの状態で、clusterを停止/起動し、再び、データベースインスタンスが起動した状態になるかを確認しておきます。
Oracle Restartってんでしたっけ? この機能。

まず、データベースインスタンスは起動したまま、Grid Infrastructureを停止(全ノードを停止)します。

[root@discus164 ˜]# crsctl stop cluster -all
CRS-2673: 'ora.crsd'('discus164')の停止を試行しています
CRS-2673: 'ora.crsd'('discus264')の停止を試行しています
CRS-2790: 'discus264'上にある、Cluster Ready Services管理下のリソースのシャットダウンを開始しています
CRS-2673: 'ora.LISTENER.lsnr'('discus264')の停止を試行しています
CRS-2790: 'discus164'上にある、Cluster Ready Services管理下のリソースのシャットダウンを開始しています
CRS-2673: 'ora.LISTENER.lsnr'('discus164')の停止を試行しています
CRS-2673: 'ora.LISTENER_SCAN2.lsnr'('discus164')の停止を試行しています
CRS-2673: 'ora.LISTENER_SCAN3.lsnr'('discus164')の停止を試行しています
CRS-2673: 'ora.CRS.dg'('discus164')の停止を試行しています
CRS-2673: 'ora.LISTENER_SCAN1.lsnr'('discus264')の停止を試行しています
CRS-2673: 'ora.orcl.db'('discus164')の停止を試行しています
CRS-2673: 'ora.CRS.dg'('discus264')の停止を試行しています
CRS-2673: 'ora.orcl.db'('discus264')の停止を試行しています
CRS-2673: 'ora.registry.acfs'('discus264')の停止を試行しています
CRS-2673: 'ora.registry.acfs'('discus164')の停止を試行しています
CRS-2677: 'ora.LISTENER.lsnr'('discus264')の停止が成功しました
CRS-2673: 'ora.discus264.vip'('discus264')の停止を試行しています
CRS-2677: 'ora.LISTENER_SCAN1.lsnr'('discus264')の停止が成功しました
CRS-2673: 'ora.scan1.vip'('discus264')の停止を試行しています
CRS-2677: 'ora.discus264.vip'('discus264')の停止が成功しました
CRS-2677: 'ora.scan1.vip'('discus264')の停止が成功しました
CRS-2677: 'ora.LISTENER_SCAN3.lsnr'('discus164')の停止が成功しました
CRS-2673: 'ora.scan3.vip'('discus164')の停止を試行しています
CRS-2677: 'ora.LISTENER.lsnr'('discus164')の停止が成功しました
CRS-2673: 'ora.discus164.vip'('discus164')の停止を試行しています
CRS-2677: 'ora.LISTENER_SCAN2.lsnr'('discus164')の停止が成功しました
CRS-2673: 'ora.scan2.vip'('discus164')の停止を試行しています
CRS-2677: 'ora.scan3.vip'('discus164')の停止が成功しました
CRS-2677: 'ora.discus164.vip'('discus164')の停止が成功しました
CRS-2677: 'ora.scan2.vip'('discus164')の停止が成功しました
CRS-2677: 'ora.registry.acfs'('discus264')の停止が成功しました
CRS-2677: 'ora.registry.acfs'('discus164')の停止が成功しました
CRS-2677: 'ora.CRS.dg'('discus264')の停止が成功しました
CRS-2677: 'ora.CRS.dg'('discus164')の停止が成功しました
CRS-2677: 'ora.orcl.db'('discus264')の停止が成功しました
CRS-2673: 'ora.DATA.dg'('discus264')の停止を試行しています
CRS-2673: 'ora.FRA.dg'('discus264')の停止を試行しています
CRS-2677: 'ora.FRA.dg'('discus264')の停止が成功しました
CRS-2677: 'ora.orcl.db'('discus164')の停止が成功しました
CRS-2673: 'ora.DATA.dg'('discus164')の停止を試行しています
CRS-2673: 'ora.FRA.dg'('discus164')の停止を試行しています
CRS-2677: 'ora.DATA.dg'('discus264')の停止が成功しました
CRS-2673: 'ora.asm'('discus264')の停止を試行しています
CRS-2677: 'ora.asm'('discus264')の停止が成功しました
CRS-2673: 'ora.eons'('discus264')の停止を試行しています
CRS-2673: 'ora.ons'('discus264')の停止を試行しています
CRS-2677: 'ora.DATA.dg'('discus164')の停止が成功しました
CRS-2677: 'ora.ons'('discus264')の停止が成功しました
CRS-2673: 'ora.net1.network'('discus264')の停止を試行しています
CRS-2677: 'ora.net1.network'('discus264')の停止が成功しました
CRS-2677: 'ora.FRA.dg'('discus164')の停止が成功しました
CRS-2673: 'ora.asm'('discus164')の停止を試行しています
CRS-2677: 'ora.asm'('discus164')の停止が成功しました
CRS-2677: 'ora.eons'('discus264')の停止が成功しました
CRS-2792: 'discus264'上にある、Cluster Ready Services管理下のリソースのシャットダウンが完了しました
CRS-2673: 'ora.eons'('discus164')の停止を試行しています
CRS-2673: 'ora.ons'('discus164')の停止を試行しています
CRS-2677: 'ora.crsd'('discus264')の停止が成功しました
CRS-2673: 'ora.cssdmonitor'('discus264')の停止を試行しています
CRS-2673: 'ora.ctssd'('discus264')の停止を試行しています
CRS-2673: 'ora.evmd'('discus264')の停止を試行しています
CRS-2673: 'ora.asm'('discus264')の停止を試行しています
CRS-2677: 'ora.cssdmonitor'('discus264')の停止が成功しました
CRS-2677: 'ora.evmd'('discus264')の停止が成功しました
CRS-2677: 'ora.ctssd'('discus264')の停止が成功しました
CRS-2677: 'ora.asm'('discus264')の停止が成功しました
CRS-2673: 'ora.cssd'('discus264')の停止を試行しています
CRS-2677: 'ora.cssd'('discus264')の停止が成功しました
CRS-2673: 'ora.diskmon'('discus264')の停止を試行しています
CRS-2677: 'ora.diskmon'('discus264')の停止が成功しました
CRS-2675: 'ora.ons'('discus164')の停止に失敗しました
CRS-2679: 'ora.ons'('discus164')のクリーニングを試行しています
CRS-2681: 'ora.ons'('discus164')のクリーニングが成功しました
CRS-2673: 'ora.net1.network'('discus164')の停止を試行しています
CRS-2677: 'ora.net1.network'('discus164')の停止が成功しました
CRS-2677: 'ora.eons'('discus164')の停止が成功しました
CRS-2792: 'discus164'上にある、Cluster Ready Services管理下のリソースのシャットダウンが完了しました
CRS-2677: 'ora.crsd'('discus164')の停止が成功しました
CRS-2673: 'ora.cssdmonitor'('discus164')の停止を試行しています
CRS-2673: 'ora.ctssd'('discus164')の停止を試行しています
CRS-2673: 'ora.evmd'('discus164')の停止を試行しています
CRS-2673: 'ora.asm'('discus164')の停止を試行しています
CRS-2677: 'ora.cssdmonitor'('discus164')の停止が成功しました
CRS-2677: 'ora.evmd'('discus164')の停止が成功しました
CRS-2677: 'ora.asm'('discus164')の停止が成功しました
CRS-2677: 'ora.ctssd'('discus164')の停止が成功しました
CRS-2673: 'ora.cssd'('discus164')の停止を試行しています
CRS-2677: 'ora.cssd'('discus164')の停止が成功しました
CRS-2673: 'ora.diskmon'('discus164')の停止を試行しています
CRS-2677: 'ora.diskmon'('discus164')の停止が成功しました
[root@discus164 ˜]#
[root@discus164 ˜]# crsctl check cluster -all
**************************************************************
discus164:
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
CRS-4534: Cannot communicate with Event Manager
**************************************************************
discus264:
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
CRS-4534: Cannot communicate with Event Manager
**************************************************************
[root@discus164 ˜]#
[root@discus164 ˜]# su - oracle
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status database -d orcl
PRCD-1027 : データベースorclの取得に失敗しました
PRCR-1070 : リソース ora.orcl.dbが登録されているかどうかの確認に失敗しました
Cannot communicate with crsd
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ exit
logout


では、起動しま〜す。

[oracle@discus164 ˜]$ 
[root@discus164 ˜]# crsctl start cluster -all
CRS-2672: 'ora.cssdmonitor'('discus164')の起動を試行しています
CRS-2672: 'ora.cssdmonitor'('discus264')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('discus164')の起動が成功しました
CRS-2672: 'ora.cssd'('discus164')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('discus264')の起動が成功しました
CRS-2672: 'ora.cssd'('discus264')の起動を試行しています
CRS-2672: 'ora.diskmon'('discus264')の起動を試行しています
CRS-2672: 'ora.diskmon'('discus164')の起動を試行しています
CRS-2676: 'ora.diskmon'('discus264')の起動が成功しました
CRS-2676: 'ora.diskmon'('discus164')の起動が成功しました
CRS-2676: 'ora.cssd'('discus264')の起動が成功しました
CRS-2672: 'ora.ctssd'('discus264')の起動を試行しています
CRS-2676: 'ora.cssd'('discus164')の起動が成功しました
CRS-2672: 'ora.ctssd'('discus164')の起動を試行しています
CRS-2676: 'ora.ctssd'('discus264')の起動が成功しました
CRS-2676: 'ora.ctssd'('discus164')の起動が成功しました
CRS-2672: 'ora.evmd'('discus264')の起動を試行しています
CRS-2672: 'ora.evmd'('discus164')の起動を試行しています
CRS-2672: 'ora.asm'('discus264')の起動を試行しています
CRS-2672: 'ora.asm'('discus164')の起動を試行しています
CRS-2676: 'ora.evmd'('discus264')の起動が成功しました
CRS-2676: 'ora.evmd'('discus164')の起動が成功しました
CRS-2676: 'ora.asm'('discus164')の起動が成功しました
CRS-2672: 'ora.crsd'('discus164')の起動を試行しています
CRS-2676: 'ora.asm'('discus264')の起動が成功しました
CRS-2672: 'ora.crsd'('discus264')の起動を試行しています
CRS-2676: 'ora.crsd'('discus164')の起動が成功しました
CRS-2676: 'ora.crsd'('discus264')の起動が成功しました
[root@discus164 ˜]#
[root@discus164 ˜]# crsctl status resource -w 'TYPE co ora' -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.DATA.dg
ONLINE ONLINE discus164
OFFLINE OFFLINE discus264
ora.FRA.dg
ONLINE ONLINE discus164
OFFLINE OFFLINE discus264
ora.LISTENER.lsnr
ONLINE ONLINE discus164
ONLINE OFFLINE discus264
ora.asm
ONLINE ONLINE discus164 Started
ONLINE ONLINE discus264 Started
ora.eons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.gsd
OFFLINE OFFLINE discus164
OFFLINE OFFLINE discus264
ora.net1.network
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.ons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.registry.acfs
ONLINE ONLINE discus164
ONLINE ONLINE discus264
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE INTERMEDIATE discus164 FAILED OVER
ora.oc4j
1 OFFLINE OFFLINE
ora.orcl.db
1 ONLINE OFFLINE
2 ONLINE OFFLINE
ora.scan1.vip
1 ONLINE ONLINE discus164
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164


ora.LISTENER_SCAN1.lsnr/ora.discus264.vipの両リソースがノードdiscus164からノードdiscus264へ移動し、ノードdiscus164でデータベースインスタンスが起動しました…

・・・中着・・・
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE ONLINE discus264
ora.oc4j
1 OFFLINE OFFLINE
ora.orcl.db
1 ONLINE ONLINE discus164 Open
2 ONLINE OFFLINE
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164


最後にノードdiscus264でもデータベースインスタンスが起動し、crsctl stop cluster -allで停止する以前の状況になっています。 :)

・・・中略・・・
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE ONLINE discus264
ora.oc4j
1 OFFLINE OFFLINE
ora.orcl.db
1 ONLINE ONLINE discus164 Open
2 ONLINE ONLINE discus264 Open
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164


ということで起動/停止の確認終了!

次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16
VirtualBox de Oracle11g R2 RAC #17
VirtualBox de Oracle11g R2 RAC #18
VirtualBox de Oracle11g R2 RAC #19
VirtualBox de Oracle11g R2 RAC #20
VirtualBox de Oracle11g R2 RAC #21




VirtualBox de Oracle11g R2 RAC #16 - 番外編

| | | コメント (0) | トラックバック (0)

VirtualBox de Oracle11g R2 RAC #21

VirtualBox de Oracle11g R2 RACのつづき。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oralce Grid InsfastructureとDatabase構成の確認

OUIやらなんやらがいろいろと構成してくれたりしてくれてるので確認方法の確認って感じですが…

Oracle所有者にて実行…

[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status database -d orcl
インスタンスorcl1はノードdiscus164で実行中です。
インスタンスorcl2はノードdiscus264で実行中です。
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status instance -d orcl -n discus164
インスタンスorcl1はノードdiscus164で実行中です。
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status instance -d orcl -n discus264
インスタンスorcl2はノードdiscus264で実行中です。
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status nodeapps
VIP discus164-vipは有効です
VIP discus164-vipはノードで実行中です: discus164
VIP discus264-vipは有効です
VIP discus264-vipはノードで実行中です: discus264
ネットワークは有効です
ネットワークはノードで実行中です: discus164
ネットワークはノードで実行中です: discus264
GSDは無効です
GSDはノードで実行されていません: discus164
GSDはノードで実行されていません: discus264
ONSは有効です
ONSデーモンはノードで実行中です: discus164
ONSデーモンはノードで実行中です: discus264
eONSは有効です
eONSデーモンはノードで実行中です:discus164
eONSデーモンはノードで実行中です:discus264
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status vip -n discus164
VIP discus164-vipは有効です
VIP discus164-vipはノードで実行中です: discus164
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status vip -n discus264
VIP discus264-vipは有効です
VIP discus264-vipはノードで実行中です: discus264
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status asm -a
ASMはdiscus164,discus264で実行中です
ASMは有効です。
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status listener -n discus164
リスナーLISTENERはノードで有効です: discus164
リスナーLISTENERはノードで実行中です: discus164
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status listener -n discus264
リスナーLISTENERはノードで有効です: discus264
リスナーLISTENERはノードで実行中です: discus264
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status scan
SCAN VIP scan1は有効です
SCAN VIP scan1はノードdiscus264で実行されています
SCAN VIP scan2は有効です
SCAN VIP scan2はノードdiscus164で実行されています
SCAN VIP scan3は有効です
SCAN VIP scan3はノードdiscus164で実行されています
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status scan_listener
SCANリスナーLISTENER_SCAN1は有効です
SCANリスナーLISTENER_SCAN1はノードdiscus264で実行されています
SCANリスナーLISTENER_SCAN2は有効です
SCANリスナーLISTENER_SCAN2はノードdiscus164で実行されています
SCANリスナーLISTENER_SCAN3は有効です
SCANリスナーLISTENER_SCAN3はノードdiscus164で実行されています
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status srvpool -a
サーバー・プール名: Free
アクティブ・サーバー数: 0
アクティブ・サーバー名:
サーバー・プール名: Generic
アクティブ・サーバー数: 2
アクティブ・サーバー名: discus164,discus264
NAME=discus164 STATE=ONLINE
NAME=discus264 STATE=ONLINE
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status server -n discus164,discus264 -a
サーバー名: discus164
サーバーの状態: ONLINE
アクティブなサーバー・プール: Generic ora.orcl
サーバーの状態の詳細:
サーバー名: discus264
サーバーの状態: ONLINE
アクティブなサーバー・プール: Generic ora.orcl
サーバーの状態の詳細:
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status oc4j
OC4Jは無効です
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status diskgroup -g DATA -a
ディスク・グループDATAはdiscus164,discus264で実行中です
ディスク・グループDATAは有効です
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status diskgroup -g CRS -a
ディスク・グループCRSはdiscus164,discus264で実行中です
ディスク・グループCRSは有効です
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl status diskgroup -g FRA -a
ディスク・グループFRAはdiscus164,discus264で実行中です
ディスク・グループFRAは有効です
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$

構成の確認…

[oracle@discus164 ˜]$ 
[oracle@discus164 ˜]$ srvctl config database -d orcl -a
一意のデータベース名: orcl
データベース名: orcl
Oracleホーム: /u01/app/oracle/product/11.2.0/dbhome_1
Oracleユーザー: oracle
spfile: +DATA/orcl/spfileorcl.ora
ドメイン: macdeoracle.info
開始オプション: open
停止オプション: immediate
データベース・ロール: PRIMARY
管理ポリシー: AUTOMATIC
サーバー・プール: orcl
データベース・インスタンス: orcl1,orcl2
ディスク・グループ: DATA,FRA
サービス:
データベースは有効です
データベースは管理者によって管理されています
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl config nodeapps -a -g -s
VIPが存在します。:discus164
VIPが存在します。: /discus164-vip/192.168.1.190/255.255.255.0/eth0
VIPが存在します。:discus264
VIPが存在します。: /discus264-vip/192.168.1.191/255.255.255.0/eth0
GSDが存在します。
ONSデーモンは存在します。ローカル・ポート6100、リモート・ポート6200
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl config asm -a
ASMホーム: /u01/app/11.2.0/grid
ASMリスナー: LISTENER
ASMは有効です。
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl config listener -a
名前: LISTENER
ネットワーク: 1、所有者: grid
ホーム: <CRS home>
ノードdiscus264,discus164の/u01/app/11.2.0/grid
エンド・ポイント: TCP:1521
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl config scan
SCAN名: discus-rac64-scan.macdeoracle.jp、ネットワーク: 1/192.168.1.0/255.255.255.0/eth0
SCAN VIP名: scan1、IP: /discus-rac64-scan.macdeoracle.jp/192.168.1.200
SCAN VIP名: scan2、IP: /discus-rac64-scan.macdeoracle.jp/192.168.1.201
SCAN VIP名: scan3、IP: /discus-rac64-scan.macdeoracle.jp/192.168.1.202
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl config scan_listener
SCANリスナーLISTENER_SCAN1は存在します。ポート: TCP:1521
SCANリスナーLISTENER_SCAN2は存在します。ポート: TCP:1521
SCANリスナーLISTENER_SCAN3は存在します。ポート: TCP:1521
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ srvctl config srvpool
サーバー・プール名: Free
重要度: 0、最小: 0、最大: -1
候補サーバー名:
サーバー・プール名: Generic
重要度: 0、最小: 0、最大: -1
候補サーバー名: discus164,discus264
[oracle@discus164 ˜]$


Grid Infrastructureユーザにて実行…

[grid@discus164 ˜]$ crsctl check cluster -all
**************************************************************
discus164:
CRS-4537: Cluster Ready Servicesがオンラインです
CRS-4529: Cluster Synchronization Servicesがオンラインです
CRS-4533: イベント・マネージャがオンラインです
**************************************************************
discus264:
CRS-4537: Cluster Ready Servicesがオンラインです
CRS-4529: Cluster Synchronization Servicesがオンラインです
CRS-4533: イベント・マネージャがオンラインです
**************************************************************
[grid@discus164 ˜]$
[grid@discus164 ˜]$ crsctl check crs
CRS-4638: Oracle高可用性サービスがオンラインです
CRS-4537: Cluster Ready Servicesがオンラインです
CRS-4529: Cluster Synchronization Servicesがオンラインです
CRS-4533: イベント・マネージャがオンラインです
[grid@discus164 ˜]$
[grid@discus164 ˜]$ crsctl check ctss
CRS-4700: クラスタ時刻同期化サービスはオブザーバ・モードになっています。
[grid@discus164 ˜]$
[grid@discus164 ˜]$ crsctl check css
CRS-4529: Cluster Synchronization Servicesがオンラインです
[grid@discus164 ˜]$
[grid@discus164 ˜]$
[grid@discus164 ˜]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=

NAME=Generic
ACTIVE_SERVERS=discus164 discus264

NAME=ora.orcl
ACTIVE_SERVERS=discus164 discus264

[grid@discus164 ˜]$
[grid@discus164 ˜]$
[grid@discus164 ˜]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 8f431fe5d1304fd9bf6ad331d3aef536 (ORCL:CRSVOL1) [CRS]
1の投票ディスクを検出しました。
[grid@discus164 ˜]$
[grid@discus164 ˜]$ crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.DATA.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.FRA.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.LISTENER.lsnr
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.asm
ONLINE ONLINE discus164 Started
ONLINE ONLINE discus264 Started
ora.eons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.gsd
OFFLINE OFFLINE discus164
OFFLINE OFFLINE discus264
ora.net1.network
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.ons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.registry.acfs
ONLINE ONLINE discus164
ONLINE ONLINE discus264
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE ONLINE discus264
ora.oc4j
1 OFFLINE OFFLINE
ora.orcl.db
1 ONLINE ONLINE discus164 Open
2 ONLINE ONLINE discus264 Open
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164

[grid@discus164 ˜]$


あれ、perlでエラーメッセージでてるけどご愛嬌 :)

[grid@discus164 ˜]$ asmcmd
ASMCMD>
ASMCMD>
ASMCMD> lsdg -g
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 42.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 42.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 42.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 42.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 42.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 42.
Inst_ID State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
1 MOUNTED EXTERN N 512 4096 1048576 4092 3694 0 3694 0 N CRS/
2 MOUNTED EXTERN N 512 4096 1048576 4092 3694 0 3694 0 N CRS/
1 MOUNTED NORMAL N 512 4096 1048576 43006 37436 0 18718 0 N DATA/
2 MOUNTED NORMAL N 512 4096 1048576 43006 37436 0 18718 0 N DATA/
1 MOUNTED NORMAL N 512 4096 1048576 43006 42336 0 21168 0 N FRA/
2 MOUNTED NORMAL N 512 4096 1048576 43006 42336 0 21168 0 N FRA/
ASMCMD>
ASMCMD> lsct -g
Instance_ID DB_Name Status Software_Version Compatible_version Instance_Name Disk_Group
1 +ASM CONNECTED 11.2.0.1.0 11.2.0.1.0 +ASM1 CRS
1 +ASM CONNECTED 11.2.0.1.0 11.2.0.1.0 +ASM1 DATA
2 +ASM CONNECTED 11.2.0.1.0 11.2.0.1.0 +ASM2 CRS
2 +ASM CONNECTED 11.2.0.1.0 11.2.0.1.0 +ASM2 DATA
1 orcl CONNECTED 11.2.0.1.0 11.2.0.0.0 orcl1 DATA
1 orcl CONNECTED 11.2.0.1.0 11.2.0.0.0 orcl1 FRA
2 orcl CONNECTED 11.2.0.1.0 11.2.0.0.0 orcl2 DATA
2 orcl CONNECTED 11.2.0.1.0 11.2.0.0.0 orcl2 FRA
ASMCMD>
ASMCMD> ls -g
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 46.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 46.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 46.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 46.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 46.
Use of uninitialized value in string comparison (cmp) at /u01/app/11.2.0/grid/lib/asmcmdbase.pm line 3420, <STDIN> line 46.
Inst_ID Name
1 CRS/
2 CRS/
1 DATA/
2 DATA/
1 FRA/
2 FRA/
ASMCMD>
ASMCMD> lsof
DB_Name Instance_Name Path
+ASM +ASM1 +crs.255.4294967295
orcl orcl1 +data/orcl/controlfile/current.256.739409625
orcl orcl1 +data/orcl/datafile/sysaux.260.739409693
orcl orcl1 +data/orcl/datafile/system.259.739409647
orcl orcl1 +data/orcl/datafile/undotbs1.261.739409729
orcl orcl1 +data/orcl/datafile/undotbs2.263.739409753
orcl orcl1 +data/orcl/datafile/users.264.739409767
orcl orcl1 +data/orcl/onlinelog/group_1.257.739409631
orcl orcl1 +data/orcl/onlinelog/group_2.258.739409637
orcl orcl1 +data/orcl/onlinelog/group_3.265.739412213
orcl orcl1 +data/orcl/onlinelog/group_4.266.739412217
orcl orcl1 +data/orcl/tempfile/temp.262.739409741
orcl orcl1 +fra/orcl/controlfile/current.256.739409629
orcl orcl1 +fra/orcl/onlinelog/group_1.257.739409635
orcl orcl1 +fra/orcl/onlinelog/group_2.258.739409643
orcl orcl1 +fra/orcl/onlinelog/group_3.259.739412215
orcl orcl1 +fra/orcl/onlinelog/group_4.260.739412225
ASMCMD>

最後にSQL*Plusから

SYS> l
1 select
2 inst_id
3 ,instance_name
4 ,parallel
5 ,status
6 ,database_status
7 ,active_state
8 ,host_name
9 from
10* gv$instance
SYS>
SYS> /

INST_ID INSTANCE_NAME PAR STATUS DATABASE_STATUS ACTIVE_ST HOST_NAME
---------- ---------------- --- ------------ ----------------- --------- ------------------------------
1 orcl1 YES OPEN ACTIVE NORMAL discus164.macdeoracle.jp
2 orcl2 YES OPEN ACTIVE NORMAL discus264.macdeoracle.jp

SYS>


次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16
VirtualBox de Oracle11g R2 RAC #17
VirtualBox de Oracle11g R2 RAC #18
VirtualBox de Oracle11g R2 RAC #19
VirtualBox de Oracle11g R2 RAC #20




VirtualBox de Oracle11g R2 RAC #16 - 番外編

| | | コメント (0) | トラックバック (0)

VirtualBox de Oracle11g R2 RAC #20

VirtualBox de Oracle11g R2 RACのつづき。

データベースも無事?作成できたので、今回はNet Serviceの確認を。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Net Serviceの確認

まず、クライアントになるMacOS X Snow LeopardのOracle10g R2 Instant Client側の設定(tnsnames.ora)から。

tnsnames.oraにVirtualBox上に構築したRACに接続するため以下ように定義した。
接続識別子ORCLはVirtualBox上に構築した際、自動生成された部分を複製し、残り2つの定義はRACの各ノードを個別に狙って接続するため接続識別子ORCL1/ORCL2を定義した。

discus:˜ oracle$ diff -u $TNS_ADMIN/tnsnames.ora.org $TNS_ADMIN/tnsnames.ora
--- /Users/Shared/instantclient_10_2/tnsnames.ora.org 2011-01-04 22:34:28.000000000 +0900
+++ /Users/Shared/instantclient_10_2/tnsnames.ora 2011-01-04 22:57:31.000000000 +0900
@@ -10,3 +10,32 @@
)
)

+# Oracle11g R2 11.2.0.1.0 RAC for Linux x86_64 / VirtualBox
+ORCL =
+ (DESCRIPTION =
+ (ADDRESS = (PROTOCOL = TCP)(HOST = discus-rac64-scan.macdeoracle.jp)(PORT = 1521))
+ (CONNECT_DATA =
+ (SERVER = DEDICATED)
+ (SERVICE_NAME = orcl.macdeoracle.info)
+ )
+ )
+
+ORCL2 =
+ (DESCRIPTION =
+ (ADDRESS = (PROTOCOL = TCP)(HOST = discus-rac64-scan.macdeoracle.jp)(PORT = 1521))
+ (CONNECT_DATA =
+ (SERVER = DEDICATED)
+ (SERVICE_NAME = orcl.macdeoracle.info)
+ (INSTANCE_NAME = orcl2)
+ )
+ )
+
+ORCL1 =
+ (DESCRIPTION =
+ (ADDRESS = (PROTOCOL = TCP)(HOST = discus-rac64-scan.macdeoracle.jp)(PORT = 1521))
+ (CONNECT_DATA =
+ (SERVER = DEDICATED)
+ (SERVICE_NAME = orcl.macdeoracle.info)
+ (INSTANCE_NAME = orcl1)
+ )
+ )
discus:˜ oracle$


接続テスト

事前にscan vipがどのような状態か確認しておく。

[oracle@discus164 ˜]$ srvctl status scan
SCAN VIP scan1は有効です
SCAN VIP scan1はノードdiscus264で実行されています
SCAN VIP scan2は有効です
SCAN VIP scan2はノードdiscus164で実行されています
SCAN VIP scan3は有効です
SCAN VIP scan3はノードdiscus164で実行されています
[oracle@discus164 ˜]$

[root@discus164 ˜]# crsctl status resource -w 'TYPE co scan' -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164
[root@discus164 ˜]#

MacOS X Snow LeopardのSQL*PlusからVirtualBox上のOracle11g R2 11.2.0.1.0 RACへの接続テスト。

discus:˜ oracle$ sqlplus /nolog

SQL*Plus: Release 10.2.0.4.0 - Production on 火 1月 4 23:16:53 2011

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.

SQL> -- ロードバランシングで適当なインスタンスへ接続される。この場合インスタンス2に接続した
SQL> conn scott/tiger@orcl
接続されました。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl2

SQL> -- 2度目はインスタンス1に接続した。(うまくいってる!)
SQL> conn scott/tiger@orcl
接続されました。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl1

SQL> -- インスタンス1(orcl1)を狙った接続! OK.
SQL> conn scott/tiger@orcl1
接続されました。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl1

SQL> -- 念のためもう一度。狙ったインスタンスへ接続している。
SQL> conn scott/tiger@orcl1
接続されました。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl1

SQL> -- インスタンス2(orcl2)を狙った接続! OK.
SQL> conn scott/tiger@orcl2
接続されました。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl2

SQL> -- 念のためもう一度!。狙ったインスタンスへ接続している。
SQL> conn scott/tiger@orcl2
接続されました。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
orcl2

SQL>


リモートからのも接続OK :)


以下、RACインスタンスのバージョン情報、Client側情報としてSQL*Plusのバージョン及び、OSのバージョン情報。

SQL> select * from gv$version; 

INST_ID BANNER
---------- --------------------------------------------------------------------------------
2 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
2 PL/SQL Release 11.2.0.1.0 - Production
2 CORE 11.2.0.1.0 Production
2 TNS for Linux: Version 11.2.0.1.0 - Production
2 NLSRTL Version 11.2.0.1.0 - Production
1 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
1 PL/SQL Release 11.2.0.1.0 - Production
1 CORE 11.2.0.1.0 Production
1 TNS for Linux: Version 11.2.0.1.0 - Production
1 NLSRTL Version 11.2.0.1.0 - Production

10行が選択されました。

SQL> !sqlplus -v

SQL*Plus: Release 10.2.0.4.0 - Production

SQL> !system_profiler SPSoftwareDataType | grep 'System Version'
System Version: Mac OS X 10.6.5 (10H574)

SQL>

次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16
VirtualBox de Oracle11g R2 RAC #17
VirtualBox de Oracle11g R2 RAC #18
VirtualBox de Oracle11g R2 RAC #19




VirtualBox de Oracle11g R2 RAC #16 - 番外編

| | | コメント (0) | トラックバック (0)

VirtualBox de Oracle11g R2 RAC #16の番外編

VirtualBox de Oracle11g R2 RAC #16の番外編として、Oracle11g R2 11.2.0.1.0のOracle Grid Infrastructureをdeinstallツールのログを備忘録として残しておきます。 :)

[grid@discus164 deinstall]$ ./deinstall
Checking for required files and bootstrapping ...
Please wait ...
Location of logs /tmp/deinstall2010-12-01_08-36-01-午後/logs/

############ ORACLE DEINSTALL & DECONFIG TOOL START ############


######################## CHECK OPERATION START ########################
インストールの構成確認の開始


Oracleホームの場所が存在するかどうかを確認しています /u01/app/11.2.0/grid
選択された削除対象のOracleホームのタイプ: CRS
選択された削除対象のOracleベース: /u01/app/grid
中央インベントリの場所が存在するかどうかを確認しています /u01/app/oraInventory
Oracle Grid Infrastructureホームが存在するかどうかを確認しています /u01/app/11.2.0/grid
次のノードはこのクラスタの一部です: discus164,discus264

インストールの構成確認の終了

Traces log file: /tmp/deinstall2010-12-01_08-36-01-午後/logs//crsdc.log

ネットワーク構成チェック構成START

ネットワーク構成解除トレース・ファイルの場所: /tmp/deinstall2010-12-01_08-36-01-午後/logs/netdc_check7323528496868837695.log

構成解除するすべてのRACリスナーを指定してください[LISTENER]:

ネットワーク構成チェック構成END

ASMチェック構成START

ASM構成解除トレース・ファイルの場所: /tmp/deinstall2010-12-01_08-36-01-午後/logs/asmcadc_check7638050551281896899.log

このOracleホーム/u01/app/11.2.0/gridで自動ストレージ管理(ASM)インスタンスが検出されました。
ASM診断先: /u01/app/grid
ASMディスク・グループ: +CRS
ディスク・グループは削除されます
ASMを構成解除すると、クリーンアップ時にすべてのディスク・グループおよびそのコンテンツが削除されます。これは、
このASMインスタンスを使用するすべてのデータベースおよびACFSに影響します。
既存のディスク・グループを保持する場合、または検出された情報が正しくない場合、'y'と入力することにより、変更できます。前述の情報(y|n)を変更しますか [n]: y
ASMの診断先を指定してください [/u01/app/grid]:
このASMインスタンスによって管理されているディスク・グループを指定してください [+CRS]:

ASMを構成解除すると、クリーンアップ時にすべてのディスク・グループが削除されます。構成解除ツールでディスク・グループy|nを削除しますか [y]: y


######################### CHECK OPERATION END #########################


####################### CHECK OPERATION SUMMARY #######################
Oracle Grid Infrastructureホーム: /u01/app/11.2.0/grid
Oracleホームが存在するクラスタ・ノード: (ノードを","で区切って入力してください。例: node1,node2,...)discus164,discus264
選択された削除対象のOracleホーム: /u01/app/11.2.0/grid
Oracleホームが登録されているインベントリの場所: /u01/app/oraInventory
次のRACリスナーが構成解除されます: LISTENER
ASMインスタンスはこのOracleホームから構成解除されます
続行しますか (y - はい、n - いいえ)[n]: y
このセッションのログは/tmp/deinstall2010-12-01_08-36-01-午後/logs/deinstall_deconfig2010-12-01_08-36-34-PM.outに書き込まれます
このセッションのすべてのエラー・メッセージは/tmp/deinstall2010-12-01_08-36-01-午後/logs/deinstall_deconfig2010-12-01_08-36-34-PM.errに書き込まれます

######################## CLEAN OPERATION START ########################
ASM構成解除トレース・ファイルの場所: /tmp/deinstall2010-12-01_08-36-01-午後/logs/asmcadc_clean4713857881917098991.log
ASMクリーンアップ構成START
ASMクリーンアップ構成END

ネットワーク構成クリーニング構成START

ネットワーク構成解除トレース・ファイルの場所: /tmp/deinstall2010-12-01_08-36-01-午後/logs/netdc_clean533226112421006626.log

RACリスナーの構成解除: LISTENER

リスナーの構成解除: LISTENER
リスナーを停止しています: LISTENER
リスナーの停止に成功しました。
リスナーを登録解除しています: LISTENER
リスナーの登録解除に成功しました。
リスナーは正常に構成解除されました。

すべてのノードでネーミング・メソッド構成ファイルの構成解除中です...
ネーミング・メソッド構成ファイルが正常に構成解除されました。

すべてのノードでローカル・ネット・サービス名構成ファイルの構成解除中です...
ローカル・ネット・サービス名構成ファイルが正常に構成解除されました。

すべてのノードでディレクトリ使用構成ファイルの構成解除中です...
ディレクトリ使用構成ファイルが正常に構成解除されました。

すべてのノードでバックアップ・ファイルの構成解除中です...
バックアップ・ファイルが正常に構成解除されました。

ネットワーク構成が正常にクリーンアップされました。

ネットワーク構成クリーニング構成END


---------------------------------------->

ノード"discus264"のrootユーザーまたは管理者として次のコマンドを実行します。

/tmp/deinstall2010-12-01_08-36-01-午後/perl/bin/perl -I/tmp/deinstall2010-12-01_08-36-01-午後/perl/lib -I/tmp/deinstall2010-12-01_08-36-01-午後/crs/install /tmp/deinstall2010-12-01_08-36-01-午後/crs/install/rootcrs.pl -force -delete -paramfile /tmp/deinstall2010-12-01_08-36-01-午後/response/deinstall_Ora11g_gridinfrahome1.rsp

ノード"discus164"のrootユーザーまたは管理者として次のコマンドを実行します。

/tmp/deinstall2010-12-01_08-36-01-午後/perl/bin/perl -I/tmp/deinstall2010-12-01_08-36-01-午後/perl/lib -I/tmp/deinstall2010-12-01_08-36-01-午後/crs/install /tmp/deinstall2010-12-01_08-36-01-午後/crs/install/rootcrs.pl -force -delete -paramfile /tmp/deinstall2010-12-01_08-36-01-午後/response/deinstall_Ora11g_gridinfrahome1.rsp -lastnode

前述のコマンドを実行した後、[Enter]を押します

<----------------------------------------

Oracle Universal Installerクリーンアップの開始

Oracleホーム'/u01/app/11.2.0/grid'をローカル・ノードの中央インベントリからデタッチします : 終了

ローカル・ノードのディレクトリ'/u01/app/11.2.0/grid'を削除します : 終了

ローカル・ノードのディレクトリ'/u01/app/oraInventory'を削除します : 終了

ローカル・ノードのディレクトリ'/u01/app/grid'を削除します : 終了

Oracleホーム'/u01/app/11.2.0/grid'をリモート・ノード'discus264'の中央インベントリからデタッチします : 終了

リモート・ノード'discus264'のディレクトリ'/u01/app/11.2.0/grid'を削除します : 終了

リモート・ノード'discus264'のディレクトリ'/u01/app/oraInventory'を削除します : 終了

リモート・ノード'discus264'のディレクトリ'/u01/app/grid'を削除します : 終了

Oracle Universal Installerのクリーンアップが成功しました。

Oracle Universal Installerクリーンアップの終了


Oracleインストール・クリーンアップの開始

インストールのクリーンアップ操作により、ノードdiscus164の一時ディレクトリ/tmp/installを削除しています
インストールのクリーンアップ操作により、ノードdiscus264の一時ディレクトリ/tmp/installを削除しています

Oracleインストール・クリーンアップの終了


######################### CLEAN OPERATION END #########################


####################### CLEAN OPERATION SUMMARY #######################
ASMインスタンスはOracleホームから正常に構成解除されました
次のRACリスナーが正常に構成解除されました: LISTENER
Oracleクラスタウェアはノード"discus164"で停止され、正常に構成解除されています
Oracleクラスタウェアはノード"discus264"で停止され、正常に構成解除されています
Oracleクラスタウェアは正常に停止および構成解除されています。
Oracleホーム'/u01/app/11.2.0/grid'がローカル・ノードの中央インベントリから正常にデタッチされました。
ローカル・ノードのディレクトリ'/u01/app/11.2.0/grid'が正常に削除されました。
ローカル・ノードのディレクトリ'/u01/app/oraInventory'が正常に削除されました。
ローカル・ノードのディレクトリ'/u01/app/grid'が正常に削除されました。
Oracleホーム'/u01/app/11.2.0/grid'がリモート・ノード'discus264'の中央インベントリから正常にデタッチされました。
リモート・ノード'discus264'のディレクトリ'/u01/app/11.2.0/grid'が正常に削除されました。
リモート・ノード'discus264'のディレクトリ'/u01/app/oraInventory'が正常に削除されました。
リモート・ノード'discus264'のディレクトリ'/u01/app/grid'が正常に削除されました。
Oracle Universal Installerのクリーンアップが成功しました。


セッション終了時にノード'discus164,discus264'でrootとして'rm -rf /etc/oraInst.loc'を実行します。

Oracleインストールにより、一時ディレクトリが正常にクリーンアップされました。
#######################################################################


############# ORACLE DEINSTALL & DECONFIG TOOL END #############

[grid@discus164 deinstall]$





これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16
VirtualBox de Oracle11g R2 RAC #17
VirtualBox de Oracle11g R2 RAC #18
VirtualBox de Oracle11g R2 RAC #19

| | | コメント (0) | トラックバック (0)

2011年1月 4日 (火)

VirtualBox de Oracle11g R2 RAC #19

VirtualBox de Oracle11g R2 RACのつづき。

いよいよデータベースの作成です。 :)

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle Cluster databaseの作成


Screenshot981

映像を見てもお分かりだと思いますが、VirtualBox上でクラスタデータベースを作成するとほぼ100%、DBCAの最後のダイアログを表示後DBCAを起動したVMが固まります。
Oracle11g R1 RACをVirtualBox上で構築した時と同じ症状です。DBCAのダイアログ上、データベースは作成されましたと表示されているのでそれを信じるばかり (^^;;;

念のため1時間ほど放置したあと、固まったVMは強制終了、残るノードはCentOSをシャットダウンします。その後、Openfiler、RACの両ノードを起動します。(ノード間の処理で固まっているようで実は処理に時間を要していることがなんどかあったので…念のため)

grid infrastructureユーザからcrsctlコマンドで状態を確認した結果は以下。(ちなみに、VM再起動後の状態)

[grid@discus164 ˜]$ crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.DATA.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.FRA.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.LISTENER.lsnr
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.asm
ONLINE ONLINE discus164 Started
ONLINE ONLINE discus264 Started
ora.eons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.gsd
OFFLINE OFFLINE discus164
OFFLINE OFFLINE discus264
ora.net1.network
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.ons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.registry.acfs
ONLINE ONLINE discus164
ONLINE ONLINE discus264
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE ONLINE discus264
ora.oc4j
1 OFFLINE OFFLINE
ora.orcl.db
1 ONLINE ONLINE discus164 Open
2 ONLINE ONLINE discus264 Open
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164
[grid@discus164 ˜]$


[oracle@discus164 ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 火 11月 30 14:54:50 2010

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn / as sysdba
パスワードを入力してください:
接続されました。
SQL> set linesize 132
SQL> select * from gv$version;

INST_ID BANNER
---------- --------------------------------------------------------------------------------
1 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
1 PL/SQL Release 11.2.0.1.0 - Production
1 CORE 11.2.0.1.0 Production
1 TNS for Linux: Version 11.2.0.1.0 - Production
1 NLSRTL Version 11.2.0.1.0 - Production
2 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
2 PL/SQL Release 11.2.0.1.0 - Production
2 CORE 11.2.0.1.0 Production
2 TNS for Linux: Version 11.2.0.1.0 - Production
2 NLSRTL Version 11.2.0.1.0 - Production

10行が選択されました。

SQL>

ふ〜、なんとかできたようですね。 とりあえず遊べそうです。

次回へつづく。 Grid Infrastructure周りはもっと調べないと…覚える必要のあることはまだまだ多い (^^;;

Oracle Clusterware管理およびデプロイメント・ガイド 11gリリース2(11.2非推奨のサブプログラムまたはコマンド…このマニュアルもちゃんと読んでおかないとな。><






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16
VirtualBox de Oracle11g R2 RAC #17
VirtualBox de Oracle11g R2 RAC #18

| | | コメント (0) | トラックバック (0)

2011年1月 3日 (月)

VirtualBox de Oracle11g R2 RAC #18

VirtualBox de Oracle11g R2 RACのつづきです。

インストールしなくてもいいんだけどいろいろと試したくなったときは便利なので、次いでにexamplesもインストール。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle11g R2 11.2.0.1.0 examplesのインストール

[oracle@discus164 database]$ 
[oracle@discus164 database]$
[oracle@discus164 database]$ cd ../examples
[oracle@discus164 examples]$ ll
合計 48
drwxr-xr-x 7 oracle oinstall 4096 8月 12 2009 doc
drwxr-xr-x 4 oracle oinstall 4096 8月 15 2009 install
drwxrwxr-x 2 oracle oinstall 4096 8月 15 2009 response
-rwxr-xr-x 1 oracle oinstall 3230 8月 15 2009 runInstaller
drwxr-xr-x 12 oracle oinstall 4096 8月 15 2009 stage
-rw-r--r-- 1 oracle oinstall 3419 8月 18 2009 welcome.html
[oracle@discus164 examples]$

[oracle@discus164 examples]$ ./runInstaller
Oracle Universal Installerを起動中です...
・・・中略・・・

Screenshot391

Screenshot621

Screenshot631

Screenshot641

Screenshot651

Screenshot661

Screenshot671

次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16
VirtualBox de Oracle11g R2 RAC #17

| | | コメント (0) | トラックバック (0)

VirtualBox de Oracle11g R2 RAC #17

VirtualBox de Oracle11g R2 RACのつづきです。

つづいてOracle11g R2 11.2.0.1.0 Database Installのインストール。
データベースは作成しないでソフトウェアだけのインストールを行います。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

ASMディスクグループの作成

Grid Infrastructureのインストール同様、Oracle所有者でもsshはパスフレーズありであらかじめ作成しておきます。OUIが作ってくれるだろうということを期待してね。

と、その前に、asmcaでOracleデータファイル及び、フラッシュ・リカバリ・エリア向けASMディスクグループを作成しておきました。
データファイル向けに+DATA、フラッシュ・リカバリ・エリア向けに+FRAというASMディスクグループを作成します。


Oracle11g R2 11.2.0.1.0 Database softwareのインストール

次に、Oracle Database 11g R2 11.2.0.1.0をインストールします。データベースは作成せず、別途dbcaを利用してデータベースを作成します。

省略していますが、お約束、root.shの実行もお忘れなく!



次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15
VirtualBox de Oracle11g R2 RAC #16

| | | コメント (0) | トラックバック (0)

VirtualBox de Oracle11g R2 RAC #16

VirtualBox de Oracle11g R2 RACのつづきです。

いよいよOracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール♪

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール

今回、確かめたかったこともあり、意図的にパスフレーズ付きでsshを手動構成しておいた。
その結果は…CVUの検査はパスするもののOUI上ではsshの構成がNGとなりOUIからsshの構成を行った。その後は問題なくインストールできた :) 便になったねOUI.

[grid@discus164 grid]$ ./runInstaller 
[1] 4417
[grid@discus164 grid]$ Oracle Universal Installerを起動中です...

一時領域の確認中: 120MBを超えている必要があります. 実際 32846MB 問題なし
スワップ領域の確認中: 150MBを超えている必要があります. 実際 5951MB 問題なし
モニターの確認中: 少なくとも256色表示するよう設定されている必要があります. 実際 16777216 問題なし
Oracle Universal Installerの起動を準備中 /tmp/OraInstall2010-11-29_01-51-19PM. お待ちください...


Root_shell



インストールの後半で、上記画面が表示されたら、いつものお約束、orainstRoot.shの実行とroot.shスクリプトの実行です!
RACを構成する全ノードのrootユーザで。最初にOUIを実行したノードで実行。成功したら以後残りのノードで実施(残りのノードでは平行実行可能だとか…今回は2ノードなので確認できず…)。

まず、OUIを実行したノードで実行!

[root@discus164 ˜]#
[root@discus164 ˜]# /u01/app/oraInventory/orainstRoot.sh
権限を変更中 /u01/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。

グループ名の変更 /u01/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。

[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# /u01/app/11.2.0/grid/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...

・・・中略・・・

profile reader pa cert TP
profile reader peer cert TP
peer user cert
pa user cert
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been started.
ohasd is starting
ADVM/ACFS is not supported on centos-release-5-5.el5.centos

CRS-2672: 'ora.gipcd'('discus164')の起動を試行しています

・・・中略・・・

CRS-2676: 'ora.ctssd'('discus164')の起動が成功しました

ASMは正常に作成され、起動しました。

ディスク・グループCRSは正常に作成されました。

clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-2672: 'ora.crsd'('discus164')の起動を試行しています
CRS-2676: 'ora.crsd'('discus164')の起動が成功しました
CRS-4256: Updating the profile
Successful addition of voting disk 5d6c953bf3aa4fe6bfff2a0f9b1e0d37.
Successfully replaced voting disk group with +CRS.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 5d6c953bf3aa4fe6bfff2a0f9b1e0d37 (ORCL:CRSVOL1) [CRS]
Located 1 voting disk(s).
CRS-2673: 'ora.crsd'('discus164')の停止を試行しています

・・・中略・・・

CRS-2676: 'ora.asm'('discus164')の起動が成功しました
CRS-2672: 'ora.CRS.dg'('discus164')の起動を試行しています
CRS-2676: 'ora.CRS.dg'('discus164')の起動が成功しました

discus164 2010/11/29 14:21:13 /u01/app/11.2.0/grid/cdata/discus164/backup_20101129_142113.olr
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
クラスタウェアのインベントリ・プロパティの更新中
Oracle Universal Installerを起動中です...

スワップ領域の確認中: 500MBを超えている必要があります. 実際 5951MB 問題なし
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oraInventory
'UpdateNodeList'が成功しました。
[root@discus164 ˜]#

ADVM/ACFS is not supported on centos-release-5-5.el5.centosという気になるメッセージがあったがこれはCentOSが正式にサポートされていないことが影響している。
一昨年暮れのエントリだけど、以下のブログが参考になるかも。

参考:
http://brianbontrager.blogspot.com/2009/09/learning-asm-breakin-rules-or-running.html

2011/1/4追記:
http://ivan.kartik.sk/index.php?show_article=49
リリースを偽装する方法もあるんだけどね。後者の方が楽は楽だけど元に戻すのが面倒だから今回はパスした。

簡単にリカバル方法がよくわかんなかったんでOracle Grid Infrastructureを一旦deinstallした。(これが一番わかりやすい!)
Oracle Grid Infrastructureをdeinstallコマンドで削除した記録は別途書くとして、一旦deinstallしたと思ってください!!!

ということで、OUIでOracle Grid Infrastractureをインストール。

orainstRoot.shを実行したところで、前述の参考ブログに記載されていたCentOS向け手当を行う。手当を行ってからroot.shを実行する。

orainstRoot.shを実行したところで、前述の参考ブログに記載されていたCentOS向け手当を行う。手当を行ってからroot.shを実行する。

CentOS上へのOracle Grid Infrastructureインストールでは大切(らしい)なので2度、書きましたよw

Oracle Grid Infrastructureユーザの$ORACLE_HOME/lib/osds_acfslib.pmの278行目以下にCentOSも正常に処理できるよう修正を加える。

[grid@discus164 ˜]$ su -
パスワード:
[root@discus164 ˜]# cd /u01/app/11.2.0/grid/lib
[root@discus164 lib]#
[root@discus164 lib]# cp -p osds_acfslib.pm osds_acfslib.pm.org
[root@discus164 lib]#
[root@discus164 lib]# vi osds_acfslib.pm
[root@discus164 lib]#
[root@discus164 lib]# diff -u osds_acfslib.pm osds_acfslib.pm.org
--- osds_acfslib.pm 2010/11/29 17:19:00.000000000 +0900
+++ osds_acfslib.pm.org 2009-07-02 11:13:48.000000000 +0900
@@ -278,8 +278,7 @@
# OK, now check to see if we support this release
$supported = 0;
if (($release =˜ /enterprise-release-5/) ||
- ($release =˜ /redhat-release-5/) ||
- ($release =˜ /centos-release-5/))
+ ($release =˜ /redhat-release-5/))
{
# Redhat 5
$supported = 1;
[root@discus164 lib]#

多分上記の修正だけで対処できると思うのだが、自信がないので以下のこともやっておいた… 写経になっております。m(_ _)m (RACを構成する全ノードのrootユーザで実施)

[root@discus164 ˜]# mkdir /lib/modules/2.6.18-194.17.1.el5/extra/usm
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# ls /u01/app/11.2.0/grid/install/usm/EL5/x86_64/2.6.18-8/2.6.18-8.el5-x86_64/bin/*ko
/u01/app/11.2.0/grid/install/usm/EL5/x86_64/2.6.18-8/2.6.18-8.el5-x86_64/bin/oracleacfs.ko
/u01/app/11.2.0/grid/install/usm/EL5/x86_64/2.6.18-8/2.6.18-8.el5-x86_64/bin/oracleadvm.ko
/u01/app/11.2.0/grid/install/usm/EL5/x86_64/2.6.18-8/2.6.18-8.el5-x86_64/bin/oracleoks.ko
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# cp /u01/app/11.2.0/grid/install/usm/EL5/x86_64/2.6.18-8/2.6.18-8.el5-x86_64/bin/*ko /lib/modules/2.6.18-194.17.1.el5/extra/usm
[root@discus164 ˜]# chmod 744 /lib/modules/2.6.18-194.17.1.el5/extra/usm
[root@discus164 ˜]#
[root@discus164 ˜]# depmod
[root@discus164 ˜]#
[root@discus164 ˜]# cp /u01/app/11.2.0/grid/install/usm/EL5/x86_64/2.6.18-8/2.6.18-8.el5-x86_64/bin/acfsdbg /sbin
[root@discus164 ˜]# chmod 755 /sbin/acfsdbg


ここまでの作業を終えたらOUIでOracle Grid InfrastructureをOUIでインストールする。手順は前述の映像を見てくださいね。

お約束のorainstRoot.shそれに続いて、root.shをOUIを起動したノードで実施、その後、残りのノードでも同様にrootユーザで実施する。

root.shの実行。こんどは大丈夫でしょうか〜〜〜〜。

[root@discus164 grid]# ./root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2010-11-29 17:23:44: Parsing the host name
2010-11-29 17:23:44: Checking for super user privileges
2010-11-29 17:23:44: User has super user privileges

Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
LOCAL ADD MODE
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
root wallet
root wallet cert
root cert export
peer wallet
profile reader wallet
pa wallet
peer wallet keys
pa wallet keys
peer cert request
pa cert request
peer cert
pa cert
peer root cert TP
profile reader root cert TP
pa root cert TP
peer pa cert TP
pa peer cert TP
profile reader pa cert TP
profile reader peer cert TP
peer user cert
pa user cert
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been started.
ohasd is starting
CRS-2672: 'ora.gipcd'('discus164')の起動を試行しています
CRS-2672: 'ora.mdnsd'('discus164')の起動を試行しています
CRS-2676: 'ora.gipcd'('discus164')の起動が成功しました
CRS-2676: 'ora.mdnsd'('discus164')の起動が成功しました
CRS-2672: 'ora.gpnpd'('discus164')の起動を試行しています
CRS-2676: 'ora.gpnpd'('discus164')の起動が成功しました
CRS-2672: 'ora.cssdmonitor'('discus164')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('discus164')の起動が成功しました
CRS-2672: 'ora.cssd'('discus164')の起動を試行しています
CRS-2672: 'ora.diskmon'('discus164')の起動を試行しています
CRS-2676: 'ora.diskmon'('discus164')の起動が成功しました
CRS-2676: 'ora.cssd'('discus164')の起動が成功しました
CRS-2672: 'ora.ctssd'('discus164')の起動を試行しています
CRS-2676: 'ora.ctssd'('discus164')の起動が成功しました

ASMは正常に作成され、起動しました。

ディスク・グループCRSは正常に作成されました。

clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-2672: 'ora.crsd'('discus164')の起動を試行しています
CRS-2676: 'ora.crsd'('discus164')の起動が成功しました
CRS-4256: Updating the profile
Successful addition of voting disk 8f431fe5d1304fd9bf6ad331d3aef536.
Successfully replaced voting disk group with +CRS.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 8f431fe5d1304fd9bf6ad331d3aef536 (ORCL:CRSVOL1) [CRS]
Located 1 voting disk(s).
CRS-2673: 'ora.crsd'('discus164')の停止を試行しています
CRS-2677: 'ora.crsd'('discus164')の停止が成功しました
CRS-2673: 'ora.asm'('discus164')の停止を試行しています
CRS-2677: 'ora.asm'('discus164')の停止が成功しました
CRS-2673: 'ora.ctssd'('discus164')の停止を試行しています
CRS-2677: 'ora.ctssd'('discus164')の停止が成功しました
CRS-2673: 'ora.cssdmonitor'('discus164')の停止を試行しています
CRS-2677: 'ora.cssdmonitor'('discus164')の停止が成功しました
CRS-2673: 'ora.cssd'('discus164')の停止を試行しています
CRS-2677: 'ora.cssd'('discus164')の停止が成功しました
CRS-2673: 'ora.gpnpd'('discus164')の停止を試行しています
CRS-2677: 'ora.gpnpd'('discus164')の停止が成功しました
CRS-2673: 'ora.gipcd'('discus164')の停止を試行しています
CRS-2677: 'ora.gipcd'('discus164')の停止が成功しました
CRS-2673: 'ora.mdnsd'('discus164')の停止を試行しています
CRS-2677: 'ora.mdnsd'('discus164')の停止が成功しました
CRS-2672: 'ora.mdnsd'('discus164')の起動を試行しています
CRS-2676: 'ora.mdnsd'('discus164')の起動が成功しました
CRS-2672: 'ora.gipcd'('discus164')の起動を試行しています
CRS-2676: 'ora.gipcd'('discus164')の起動が成功しました
CRS-2672: 'ora.gpnpd'('discus164')の起動を試行しています
CRS-2676: 'ora.gpnpd'('discus164')の起動が成功しました
CRS-2672: 'ora.cssdmonitor'('discus164')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('discus164')の起動が成功しました
CRS-2672: 'ora.cssd'('discus164')の起動を試行しています
CRS-2672: 'ora.diskmon'('discus164')の起動を試行しています
CRS-2676: 'ora.diskmon'('discus164')の起動が成功しました
CRS-2676: 'ora.cssd'('discus164')の起動が成功しました
CRS-2672: 'ora.ctssd'('discus164')の起動を試行しています
CRS-2676: 'ora.ctssd'('discus164')の起動が成功しました
CRS-2672: 'ora.asm'('discus164')の起動を試行しています
CRS-2676: 'ora.asm'('discus164')の起動が成功しました
CRS-2672: 'ora.crsd'('discus164')の起動を試行しています
CRS-2676: 'ora.crsd'('discus164')の起動が成功しました
CRS-2672: 'ora.evmd'('discus164')の起動を試行しています
CRS-2676: 'ora.evmd'('discus164')の起動が成功しました
CRS-2672: 'ora.asm'('discus164')の起動を試行しています
CRS-2676: 'ora.asm'('discus164')の起動が成功しました
CRS-2672: 'ora.CRS.dg'('discus164')の起動を試行しています
CRS-2676: 'ora.CRS.dg'('discus164')の起動が成功しました
CRS-2672: 'ora.registry.acfs'('discus164')の起動を試行しています
CRS-2676: 'ora.registry.acfs'('discus164')の起動が成功しました

discus164 2010/11/29 17:30:15 /u01/app/11.2.0/grid/cdata/discus164/backup_20101129_173015.olr
パッケージインストールの準備中...
cvuqdisk-1.0.7-1
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
クラスタウェアのインベントリ・プロパティの更新中
Oracle Universal Installerを起動中です...

スワップ領域の確認中: 500MBを超えている必要があります. 実際 5951MB 問題なし
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oraInventory
'UpdateNodeList'が成功しました。
[root@discus164 grid]#

お〜〜、でけた。

では、他のノードでも実行
残りのノードでも同様の操作実施後root.sh実行

[root@discus264 grid]# ./root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n)
[n]: y
Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2010/11/29 17:45:30: Parsing the host name
2010/11/29 17:45:30: Checking for super user privileges
2010/11/29 17:45:30: User has super user privileges
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
LOCAL ADD MODE
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been started.
ohasd is starting
CRS-4402: CSSデーモンが排他モードで開始されましたが、ノードdiscus164、番号1のアクティブCSSデーモンが検出されたため中断します
CRS-2673: 'ora.cssdmonitor'('discus264')の停止を試行しています
CRS-2677: 'ora.cssdmonitor'('discus264')の停止が成功しました
CRS-2673: 'ora.gpnpd'('discus264')の停止を試行しています
CRS-2677: 'ora.gpnpd'('discus264')の停止が成功しました
CRS-2673: 'ora.gipcd'('discus264')の停止を試行しています
CRS-2677: 'ora.gipcd'('discus264')の停止が成功しました
CRS-2673: 'ora.mdnsd'('discus264')の停止を試行しています
CRS-2677: 'ora.mdnsd'('discus264')の停止が成功しました
An active cluster was found during exclusive startup, restarting to join the cluster
CRS-2672: 'ora.mdnsd'('discus264')の起動を試行しています
CRS-2676: 'ora.mdnsd'('discus264')の起動が成功しました
CRS-2672: 'ora.gipcd'('discus264')の起動を試行しています
CRS-2676: 'ora.gipcd'('discus264')の起動が成功しました
CRS-2672: 'ora.gpnpd'('discus264')の起動を試行しています
CRS-2676: 'ora.gpnpd'('discus264')の起動が成功しました
CRS-2672: 'ora.cssdmonitor'('discus264')の起動を試行しています
CRS-2676: 'ora.cssdmonitor'('discus264')の起動が成功しました
CRS-2672: 'ora.cssd'('discus264')の起動を試行しています
CRS-2672: 'ora.diskmon'('discus264')の起動を試行しています
CRS-2676: 'ora.diskmon'('discus264')の起動が成功しました
CRS-2676: 'ora.cssd'('discus264')の起動が成功しました
CRS-2672: 'ora.ctssd'('discus264')の起動を試行しています
CRS-2676: 'ora.ctssd'('discus264')の起動が成功しました
CRS-2672: 'ora.drivers.acfs'('discus264')の起動を試行しています
CRS-2676: 'ora.drivers.acfs'('discus264')の起動が成功しました
CRS-2672: 'ora.asm'('discus264')の起動を試行しています
CRS-2676: 'ora.asm'('discus264')の起動が成功しました
CRS-2672: 'ora.crsd'('discus264')の起動を試行しています
CRS-2676: 'ora.crsd'('discus264')の起動が成功しました
CRS-2672: 'ora.evmd'('discus264')の起動を試行しています
CRS-2676: 'ora.evmd'('discus264')の起動が成功しました

discus264 2010/11/29 17:48:45 /u01/app/11.2.0/grid/cdata/discus264/backup_20101129_174845.olr
パッケージインストールの準備中...
cvuqdisk-1.0.7-1
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
クラスタウェアのインベントリ・プロパティの更新中
Oracle Universal Installerを起動中です...

スワップ領域の確認中: 500MBを超えている必要があります. 実際 5951MB 問題なし
The inventory pointer is located at /etc/oraInst.loc
The inventory is located at /u01/app/oraInventory
'UpdateNodeList'が成功しました。
[root@discus264 grid]#


root.sh実行おわり!


Grid Infrastructureインストール後の簡単な確認(RACを構成する全ノードのgrid infrastructureユーザ及び、rootユーザで実施)

crsの状態確認(RACを構成する全ノードのGrid Infrastructureユーザで

[grid@discus164 ˜]$ crsctl check crs
CRS-4638: Oracle高可用性サービスがオンラインです
CRS-4537: Cluster Ready Servicesがオンラインです
CRS-4529: Cluster Synchronization Servicesがオンラインです
CRS-4533: イベント・マネージャがオンラインです
[grid@discus164 ˜]$

[grid@discus264 ˜]$ crsctl check crs
CRS-4638: Oracle高可用性サービスがオンラインです
CRS-4537: Cluster Ready Servicesがオンラインです
CRS-4529: Cluster Synchronization Servicesがオンラインです
CRS-4533: イベント・マネージャがオンラインです
[grid@discus264 ˜]$


clusterノードの確認(RACを構成する全ノードのGrid Infrastructureユーザで)

[grid@discus164 ˜]$ olsnodes -n
discus164 1
discus264 2
[grid@discus164 ˜]$

[grid@discus264 ˜]$ olsnodes -n
discus164 1
discus264 2
[grid@discus264 ˜]$

リスナーの確認(RACを構成する全ノード

[grid@discus164 ˜]$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
LISTENER_SCAN2
LISTENER_SCAN3
LISTENER
[grid@discus164 ˜]$

[grid@discus264 ˜]$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' | awk '{print $9}'
LISTENER_SCAN1
LISTENER
[grid@discus264 ˜]$

以下、OUIを実行したノードから確認しとけばOKかな
ASMは起動してるかな〜(Grid Infrastructureユーザで

[grid@discus164 ˜]$ srvctl status asm -a
ASMはdiscus164,discus264で実行中です
ASMは有効です。
[grid@discus164 ˜]$

rootユーザでcrsctlコマンド実行してますが、Grid Infrastructureホームのbinにパス通しているだけです :) 楽なので。
Oracle Cluster Registry (OCR) - rootユーザで実施

[root@discus164 grid]# ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2364
Available space (kbytes) : 259756
ID : 1391852321
Device/File Name : +CRS
Device/File integrity check succeeded

Device/File not configured

Device/File not configured

Device/File not configured

Device/File not configured

Cluster registry integrity check succeeded

Logical corruption check succeeded

[root@discus164 grid]#


Voting Diskの確認(Grid Infrastructureユーザで

[grid@discus164 ˜]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 5d6c953bf3aa4fe6bfff2a0f9b1e0d37 (ORCL:CRSVOL1) [CRS]
1の投票ディスクを検出しました。
[grid@discus164 ˜]$

[grid@discus164 ~]$ crsctl status resource -w 'TYPE co ora' -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.LISTENER.lsnr
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.asm
ONLINE ONLINE discus164 Started
ONLINE ONLINE discus264 Started
ora.eons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.gsd
OFFLINE OFFLINE discus164
OFFLINE OFFLINE discus264
ora.net1.network
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.ons
ONLINE ONLINE discus164
ONLINE ONLINE discus264
ora.registry.acfs
ONLINE ONLINE discus164
ONLINE ONLINE discus264
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE discus264
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE discus164
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE discus164
ora.discus164.vip
1 ONLINE ONLINE discus164
ora.discus264.vip
1 ONLINE ONLINE discus264
ora.oc4j
1 OFFLINE OFFLINE
ora.scan1.vip
1 ONLINE ONLINE discus264
ora.scan2.vip
1 ONLINE ONLINE discus164
ora.scan3.vip
1 ONLINE ONLINE discus164
[grid@discus164 ~]$


root.shのバックアップが推奨されているので、これはやっといた。

Back Up the root.sh Script

Oracle recommends that you back up the root.sh script after you
complete an installation. If you install other products
in the same Oracle home directory, then the installer updates
the contents of the existing root.sh script during the installation.
If you require information contained in the original root.sh script,
then you can recover it from the root.sh file copy.

Back up the root.sh file on both Oracle RAC nodes as root:

[grid@discus164 ˜]$ su -
パスワード:
[root@discus164 ˜]# cd /u01/app/11.2.0/grid
[root@discus164 grid]# ls -l root.sh
-rwxr-x--- 1 grid oinstall 723 11月 29 14:10 root.sh
[root@discus164 grid]# cp -p root.sh root.sh.discus164_after_install20101129
[root@discus164 grid]#

[grid@discus264 ˜]$ su -
パスワード:
[root@discus264 ˜]# cd /u01/app/11.2.0
[root@discus264 11.2.0]# cd grid
[root@discus264 grid]# ls -l root.sh
-rwxr-x--- 1 grid oinstall 723 11月 29 14:12 root.sh
[root@discus264 grid]# cp -p root.sh root.sh.discus264_after_install20101129
[root@discus264 grid]#


Install Cluster Health Management Software が推奨されてるけど。別途時間があったらやる→TODO


次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14
VirtualBox de Oracle11g R2 RAC #15

| | | コメント (0) | トラックバック (0)

2011年1月 2日 (日)

VirtualBox de Oracle11g R2 RAC #15

VirtualBox de Oracle11g R2 RACのつづきです。

今回はOracle11g R2 11.2.0.1.0 RACインストール事前作業。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle11g R2 11.2.0.1.0 RACインストール事前作業

以下、Linux 64bit版をダウンロード
Oracle11g R2 11.2.0.1.0 for Linux (64bit)
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

Oracle11g R2 Grid Infrastructure for Linux (64bit)
linux.x64_11gR2_grid.zip

Oracle11g R2 Examples for Linux (64bit)
linux.x64_11gR2_examples.zip


ダウンロードした、Oracle Grid Infrastructureをgrid infrastructureユーザで解凍

[grid@discus164 oracle]$ ll
合計 1029240
-rw-r--r-- 1 grid oinstall 1052897657 11月 25 10:51 linux.x64_11gR2_grid.zip
[grid@discus164 oracle]$ unzip linux.x64_11gR2_grid.zip

・・・中略・・・

extracting: grid/install/addLangs.sh
inflating: grid/runInstaller
inflating: grid/welcome.html
inflating: grid/runcluvfy.sh
[grid@discus164 oracle]$


ダウンロードしたOracle11g R2 11.2.0.1.0とexamplesをOracle所有者で解凍

[oracle@discus164 oracle]$ ll
合計 2840744
-rw-r--r-- 1 oracle oinstall 1239269270 11月 25 10:56 linux.x64_11gR2_database_1of2.zip
-rw-r--r-- 1 oracle oinstall 1111416131 11月 25 10:57 linux.x64_11gR2_database_2of2.zip
-rw-r--r-- 1 oracle oinstall 555366950 11月 25 10:57 linux.x64_11gR2_examples.zip
[oracle@discus164 oracle]$ unzip linux.x64_11gR2_database_1of2.zip

・・・中略・・・

extracting: database/install/addLangs.sh
inflating: database/runInstaller
inflating: database/welcome.html
[oracle@discus164 oracle]$
[oracle@discus164 oracle]$ unzip linux.x64_11gR2_database_2of2.zip

・・・中略・・・

inflating: database/stage/Components/oracle.sysman.console.db/11.2.0.1.0/1/DataFiles/filegroup13.jar
inflating: database/stage/Components/oracle.sysman.console.db/11.2.0.1.0/1/DataFiles/filegroup8.jar
inflating: database/stage/Components/oracle.sysman.console.db/11.2.0.1.0/1/DataFiles/filegroup9.jar
[oracle@discus164 oracle]$
[oracle@discus164 oracle]$ unzip linux.x64_11gR2_examples.zip

・・・中略・・・

extracting: examples/install/addLangs.sh
inflating: examples/runInstaller
inflating: examples/welcome.html
[oracle@discus164 oracle]$


cvudiskパッケージのインストール(RACを構成する全ノードのrootユーザで)

[grid@discus164 ˜]$ cd ./software/oracle/grid/rpm
[grid@discus164 rpm]$ su
パスワード:
[root@discus164 rpm]# ll
合計 12
-rw-rw-r-- 1 grid oinstall 8173 7月 15 2009 cvuqdisk-1.0.7-1.rpm
[root@discus164 rpm]# CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
[root@discus164 rpm]# rpm -iv cvuqdisk-1.0.7-1.rpm
パッケージインストールの準備中...
cvuqdisk-1.0.7-1
[root@discus164 rpm]#


CVUによる事前チェック(RACを構成する全ノードのOracle Grid Infrastructureユーザで実施)
-fixupオプションを付加すると修正用スクリプトが作成されますが、下記例では付加していません。(修正スクリプトを作成させた方が楽ですけどね。)

今回は全ログを省略なしで!w

[grid@discus164 grid]$ pwd
/home/grid/software/oracle/grid
[grid@discus164 grid]$ ll
合計 76
drwxr-xr-x 9 grid oinstall 4096 8月 17 2009 doc
drwxr-xr-x 4 grid oinstall 4096 12月 3 11:05 install
drwxrwxr-x 2 grid oinstall 4096 8月 15 2009 response
drwxrwxr-x 2 grid oinstall 4096 8月 15 2009 rpm
-rwxr-xr-x 1 grid oinstall 3227 8月 15 2009 runInstaller
-rwxrwxr-x 1 grid oinstall 3795 1月 29 2009 runcluvfy.sh
drwxrwxr-x 2 grid oinstall 4096 8月 15 2009 sshsetup
drwxr-xr-x 14 grid oinstall 4096 8月 15 2009 stage
-rw-r--r-- 1 grid oinstall 4228 8月 18 2009 welcome.html
[grid@discus164 grid]$
[grid@discus164 grid]$
[grid@discus164 grid]$ ./runcluvfy.sh stage -pre crsinst -n discus164,discus264 -verbose

クラスタ・サービス設定の事前チェックを実行しています

ノード到達可能性をチェック中...

チェック: ノード"discus164"からのノード到達可能性
宛先ノード 到達可能ですか
------------------------------------ ------------------------
discus264 はい
discus164 はい
結果: ノード"discus164"からのノード到達可能性チェックに合格しました


ユーザー等価をチェック中...

チェック: ユーザー"grid"のユーザー等価
ノード名 コメント
------------------------------------ ------------------------
discus264 合格
discus164 合格
結果: ユーザー"grid"のユーザー等価チェックに合格しました

ノード接続性をチェック中...

ホスト構成ファイルをチェック中...
ノード名 ステータス コメント
------------ ------------------------ ------------------------
discus264 合格
discus164 合格

ホスト構成ファイルの検証に成功しました


ノード"discus264"のインタフェース情報
名前 IPアドレス サブネット ゲートウェイ デフォルト・ゲートウェイ HWアドレス MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.1.91 192.168.1.0 0.0.0.0 192.168.1.1 08:00:27:CC:3B:97 1500
eth1 192.168.3.91 192.168.3.0 0.0.0.0 192.168.1.1 08:00:27:2F:97:0D 1500
eth2 192.168.2.91 192.168.2.0 0.0.0.0 192.168.1.1 08:00:27:AD:F8:40 1500


ノード"discus164"のインタフェース情報
名前 IPアドレス サブネット ゲートウェイ デフォルト・ゲートウェイ HWアドレス MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.1.90 192.168.1.0 0.0.0.0 192.168.1.1 08:00:27:B1:38:96 1500
eth1 192.168.3.90 192.168.3.0 0.0.0.0 192.168.1.1 08:00:27:FC:A5:8E 1500
eth2 192.168.2.90 192.168.2.0 0.0.0.0 192.168.1.1 08:00:27:47:E9:2C 1500


チェック: サブネット"192.168.1.0"のノード接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus264:eth0 discus164:eth0 はい
結果: ノードdiscus264,discus164を持つサブネット"192.168.1.0"のノード接続性に合格しました


チェック: サブネット"192.168.1.0"のTCP接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus164:192.168.1.90 discus264:192.168.1.91 合格
結果: サブネット"192.168.1.0"のTCP接続性チェックに合格しました


チェック: サブネット"192.168.3.0"のノード接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus264:eth1 discus164:eth1 はい
結果: ノードdiscus264,discus164を持つサブネット"192.168.3.0"のノード接続性に合格しました


チェック: サブネット"192.168.3.0"のTCP接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus164:192.168.3.90 discus264:192.168.3.91 合格
結果: サブネット"192.168.3.0"のTCP接続性チェックに合格しました


チェック: サブネット"192.168.2.0"のノード接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus264:eth2 discus164:eth2 はい
結果: ノードdiscus264,discus164を持つサブネット"192.168.2.0"のノード接続性に合格しました


チェック: サブネット"192.168.2.0"のTCP接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus164:192.168.2.90 discus264:192.168.2.91 合格
結果: サブネット"192.168.2.0"のTCP接続性チェックに合格しました


VIPの候補となるサブネット"192.168.1.0"で見つかったインタフェースは次のとおりです:
discus264 eth0:192.168.1.91
discus164 eth0:192.168.1.90

プライベート・インターコネクトの候補となるサブネット"192.168.3.0"で見つかったインタフェースは次のとおりです:
discus264 eth1:192.168.3.91
discus164 eth1:192.168.3.90

プライベート・インターコネクトの候補となるサブネット"192.168.2.0"で見つかったインタフェースは次のとおりです:
discus264 eth2:192.168.2.91
discus164 eth2:192.168.2.90

結果: ノード接続性チェックに合格しました


チェック: メモリー合計
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 3.86GB (4051640.0KB) 1.5GB (1572864.0KB) 合格
discus164 3.86GB (4051640.0KB) 1.5GB (1572864.0KB) 合格
結果: メモリー合計チェックに合格しました

チェック: 使用可能なメモリー
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 3.5GB (3673300.0KB) 50MB (51200.0KB) 合格
discus164 3.34GB (3498792.0KB) 50MB (51200.0KB) 合格
結果: 使用可能なメモリーチェックに合格しました

チェック: スワップ領域
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 5.81GB (6094840.0KB) 3.86GB (4051640.0KB) 合格
discus164 5.81GB (6094840.0KB) 3.86GB (4051640.0KB) 合格
結果: スワップ領域チェックに合格しました

チェック: "discus264:/tmp"のディスク空き領域
パス ノード名 マウント・ポイント 使用可能 必須 コメント
---------------- ------------ ------------ ------------ ------------ ------------
/tmp discus264 / 37.78GB 1GB 合格
結果: "discus264:/tmp"のディスク空き領域チェックに合格しました

チェック: "discus164:/tmp"のディスク空き領域
パス ノード名 マウント・ポイント 使用可能 必須 コメント
---------------- ------------ ------------ ------------ ------------ ------------
/tmp discus164 / 33.62GB 1GB 合格
結果: "discus164:/tmp"のディスク空き領域チェックに合格しました

チェック: "grid"の既存ユーザー
ノード名 ステータス コメント
------------ ------------------------ ------------------------
discus264 存在します 合格
discus164 存在します 合格
結果: "grid"の既存ユーザーチェックに合格しました

チェック: "oinstall"のグループの存在
ノード名 ステータス コメント
------------ ------------------------ ------------------------
discus264 存在します 合格
discus164 存在します 合格
結果: "oinstall"のグループの存在チェックに合格しました

チェック: "dba"のグループの存在
ノード名 ステータス コメント
------------ ------------------------ ------------------------
discus264 存在します 合格
discus164 存在します 合格
結果: "dba"のグループの存在チェックに合格しました

チェック: グループ"oinstall"内のユーザー"grid"[プライマリ]のメンバーシップ
ノード名 ユーザーが存在します グループが存在します グループ内のユーザー プライマリ コメント
---------------- ------------ ------------ ------------ ------------ ------------
discus264 はい はい はい はい 合格
discus164 はい はい はい はい 合格
結果: グループ"oinstall"内のユーザー"grid"[プライマリ]のメンバーシップ・チェックに合格しました

チェック: グループ"dba"内のユーザー"grid"のメンバーシップ
ノード名 ユーザーが存在します グループが存在します グループ内のユーザー コメント
---------------- ------------ ------------ ------------ ----------------
discus264 はい はい いいえ 失敗
discus164 はい はい いいえ 失敗
結果: グループ"dba"内のユーザー"grid"のメンバーシップ・チェックが失敗しました

チェック: 実行レベル
ノード名 実行レベル 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 5 3,5 合格
discus164 5 3,5 合格
結果: 実行レベルチェックに合格しました

チェック: "最大オープン・ファイル記述子数"の強い制限
ノード名 タイプ 使用可能 必須 コメント
---------------- ------------ ------------ ------------ ----------------
discus264 強い 65536 65536 合格
discus164 強い 65536 65536 合格
結果: "最大オープン・ファイル記述子数"の強い制限チェックに合格しました

チェック: "最大オープン・ファイル記述子数"の弱い制限
ノード名 タイプ 使用可能 必須 コメント
---------------- ------------ ------------ ------------ ----------------
discus264 弱い 1024 1024 合格
discus164 弱い 1024 1024 合格
結果: "最大オープン・ファイル記述子数"の弱い制限チェックに合格しました

チェック: "最大ユーザー・プロセス"の強い制限
ノード名 タイプ 使用可能 必須 コメント
---------------- ------------ ------------ ------------ ----------------
discus264 強い 16384 16384 合格
discus164 強い 16384 16384 合格
結果: "最大ユーザー・プロセス"の強い制限チェックに合格しました

チェック: "最大ユーザー・プロセス"の弱い制限
ノード名 タイプ 使用可能 必須 コメント
---------------- ------------ ------------ ------------ ----------------
discus264 弱い 2047 2047 合格
discus164 弱い 2047 2047 合格
結果: "最大ユーザー・プロセス"の弱い制限チェックに合格しました

チェック: システム・アーキテクチャ
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 x86_64 x86_64 合格
discus164 x86_64 x86_64 合格
結果: システム・アーキテクチャチェックに合格しました

チェック: カーネル・バージョン
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 2.6.18-194.17.1.el5 2.6.9 合格
discus164 2.6.18-194.17.1.el5 2.6.9 合格
結果: カーネル・バージョンチェックに合格しました

チェック: "semmsl"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 250 250 合格
discus164 250 250 合格
結果: "semmsl"のカーネル・パラメータチェックに合格しました

チェック: "semmns"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 32000 32000 合格
discus164 32000 32000 合格
結果: "semmns"のカーネル・パラメータチェックに合格しました

チェック: "semopm"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 100 100 合格
discus164 100 100 合格
結果: "semopm"のカーネル・パラメータチェックに合格しました

チェック: "semmni"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 128 128 合格
discus164 128 128 合格
結果: "semmni"のカーネル・パラメータチェックに合格しました

チェック: "shmmax"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 68719476736 536870912 合格
discus164 68719476736 536870912 合格
結果: "shmmax"のカーネル・パラメータチェックに合格しました

チェック: "shmmni"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 4096 4096 合格
discus164 4096 4096 合格
結果: "shmmni"のカーネル・パラメータチェックに合格しました

チェック: "shmall"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 4294967296 2097152 合格
discus164 4294967296 2097152 合格
結果: "shmall"のカーネル・パラメータチェックに合格しました

チェック: "file-max"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 6815744 6815744 合格
discus164 6815744 6815744 合格
結果: "file-max"のカーネル・パラメータチェックに合格しました

チェック: "ip_local_port_range"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 between 9000 & 65500 between 9000 & 65500 合格
discus164 between 9000 & 65500 between 9000 & 65500 合格
結果: "ip_local_port_range"のカーネル・パラメータチェックに合格しました

チェック: "rmem_default"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 262144 262144 合格
discus164 262144 262144 合格
結果: "rmem_default"のカーネル・パラメータチェックに合格しました

チェック: "rmem_max"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 4194304 4194304 合格
discus164 4194304 4194304 合格
結果: "rmem_max"のカーネル・パラメータチェックに合格しました

チェック: "wmem_default"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 262144 262144 合格
discus164 262144 262144 合格
結果: "wmem_default"のカーネル・パラメータチェックに合格しました

チェック: "wmem_max"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 1048576 1048576 合格
discus164 1048576 1048576 合格
結果: "wmem_max"のカーネル・パラメータチェックに合格しました

チェック: "aio-max-nr"のカーネル・パラメータ
ノード名 構成済 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 1048576 1048576 合格
discus164 1048576 1048576 合格
結果: "aio-max-nr"のカーネル・パラメータチェックに合格しました

チェック: "make-3.80"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 make-3.81-3.el5 make-3.80 合格
discus164 make-3.81-3.el5 make-3.80 合格
結果: "make-3.80"のパッケージの存在チェックに合格しました

チェック: "binutils-2.15.92.0.2"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 binutils-2.17.50.0.6-14.el5 binutils-2.15.92.0.2 合格
discus164 binutils-2.17.50.0.6-14.el5 binutils-2.15.92.0.2 合格
結果: "binutils-2.15.92.0.2"のパッケージの存在チェックに合格しました

チェック: "gcc-3.4.6"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 gcc-4.1.2-48.el5 gcc-3.4.6 合格
discus164 gcc-4.1.2-48.el5 gcc-3.4.6 合格
結果: "gcc-3.4.6"のパッケージの存在チェックに合格しました

チェック: "libaio-0.3.105 (i386)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libaio-0.3.106-5 (i386) libaio-0.3.105 (i386) 合格
discus164 libaio-0.3.106-5 (i386) libaio-0.3.105 (i386) 合格
結果: "libaio-0.3.105 (i386)"のパッケージの存在チェックに合格しました

チェック: "libaio-0.3.105 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libaio-0.3.106-5 (x86_64) libaio-0.3.105 (x86_64) 合格
discus164 libaio-0.3.106-5 (x86_64) libaio-0.3.105 (x86_64) 合格
結果: "libaio-0.3.105 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "glibc-2.3.4-2.41 (i686)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 glibc-2.5-49.el5_5.6 (i686) glibc-2.3.4-2.41 (i686) 合格
discus164 glibc-2.5-49.el5_5.6 (i686) glibc-2.3.4-2.41 (i686) 合格
結果: "glibc-2.3.4-2.41 (i686)"のパッケージの存在チェックに合格しました

チェック: "glibc-2.3.4-2.41 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 glibc-2.5-49.el5_5.6 (x86_64) glibc-2.3.4-2.41 (x86_64) 合格
discus164 glibc-2.5-49.el5_5.6 (x86_64) glibc-2.3.4-2.41 (x86_64) 合格
結果: "glibc-2.3.4-2.41 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "compat-libstdc++-33-3.2.3 (i386)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 compat-libstdc++-33-3.2.3-61 (i386) compat-libstdc++-33-3.2.3 (i386) 合格
discus164 compat-libstdc++-33-3.2.3-61 (i386) compat-libstdc++-33-3.2.3 (i386) 合格
結果: "compat-libstdc++-33-3.2.3 (i386)"のパッケージの存在チェックに合格しました

チェック: "compat-libstdc++-33-3.2.3 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 compat-libstdc++-33-3.2.3-61 (x86_64) compat-libstdc++-33-3.2.3 (x86_64) 合格
discus164 compat-libstdc++-33-3.2.3-61 (x86_64) compat-libstdc++-33-3.2.3 (x86_64) 合格
結果: "compat-libstdc++-33-3.2.3 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "elfutils-libelf-0.97 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 elfutils-libelf-0.137-3.el5 (x86_64) elfutils-libelf-0.97 (x86_64) 合格
discus164 elfutils-libelf-0.137-3.el5 (x86_64) elfutils-libelf-0.97 (x86_64) 合格
結果: "elfutils-libelf-0.97 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "elfutils-libelf-devel-0.97"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 elfutils-libelf-devel-0.137-3.el5 elfutils-libelf-devel-0.97 合格
discus164 elfutils-libelf-devel-0.137-3.el5 elfutils-libelf-devel-0.97 合格
結果: "elfutils-libelf-devel-0.97"のパッケージの存在チェックに合格しました

チェック: "glibc-common-2.3.4"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 glibc-common-2.5-49.el5_5.6 glibc-common-2.3.4 合格
discus164 glibc-common-2.5-49.el5_5.6 glibc-common-2.3.4 合格
結果: "glibc-common-2.3.4"のパッケージの存在チェックに合格しました

チェック: "glibc-devel-2.3.4 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 glibc-devel-2.5-49.el5_5.6 (x86_64) glibc-devel-2.3.4 (x86_64) 合格
discus164 glibc-devel-2.5-49.el5_5.6 (x86_64) glibc-devel-2.3.4 (x86_64) 合格
結果: "glibc-devel-2.3.4 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "glibc-headers-2.3.4"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 glibc-headers-2.5-49.el5_5.6 glibc-headers-2.3.4 合格
discus164 glibc-headers-2.5-49.el5_5.6 glibc-headers-2.3.4 合格
結果: "glibc-headers-2.3.4"のパッケージの存在チェックに合格しました

チェック: "gcc-c++-3.4.6"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 gcc-c++-4.1.2-48.el5 gcc-c++-3.4.6 合格
discus164 gcc-c++-4.1.2-48.el5 gcc-c++-3.4.6 合格
結果: "gcc-c++-3.4.6"のパッケージの存在チェックに合格しました

チェック: "libaio-devel-0.3.105 (i386)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libaio-devel-0.3.106-5 (i386) libaio-devel-0.3.105 (i386) 合格
discus164 libaio-devel-0.3.106-5 (i386) libaio-devel-0.3.105 (i386) 合格
結果: "libaio-devel-0.3.105 (i386)"のパッケージの存在チェックに合格しました

チェック: "libaio-devel-0.3.105 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libaio-devel-0.3.106-5 (x86_64) libaio-devel-0.3.105 (x86_64) 合格
discus164 libaio-devel-0.3.106-5 (x86_64) libaio-devel-0.3.105 (x86_64) 合格
結果: "libaio-devel-0.3.105 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "libgcc-3.4.6 (i386)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libgcc-4.1.2-48.el5 (i386) libgcc-3.4.6 (i386) 合格
discus164 libgcc-4.1.2-48.el5 (i386) libgcc-3.4.6 (i386) 合格
結果: "libgcc-3.4.6 (i386)"のパッケージの存在チェックに合格しました

チェック: "libgcc-3.4.6 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libgcc-4.1.2-48.el5 (x86_64) libgcc-3.4.6 (x86_64) 合格
discus164 libgcc-4.1.2-48.el5 (x86_64) libgcc-3.4.6 (x86_64) 合格
結果: "libgcc-3.4.6 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "libstdc++-3.4.6 (i386)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libstdc++-4.1.2-48.el5 (i386) libstdc++-3.4.6 (i386) 合格
discus164 libstdc++-4.1.2-48.el5 (i386) libstdc++-3.4.6 (i386) 合格
結果: "libstdc++-3.4.6 (i386)"のパッケージの存在チェックに合格しました

チェック: "libstdc++-3.4.6 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libstdc++-4.1.2-48.el5 (x86_64) libstdc++-3.4.6 (x86_64) 合格
discus164 libstdc++-4.1.2-48.el5 (x86_64) libstdc++-3.4.6 (x86_64) 合格
結果: "libstdc++-3.4.6 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "libstdc++-devel-3.4.6 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 libstdc++-devel-4.1.2-48.el5 (x86_64) libstdc++-devel-3.4.6 (x86_64) 合格
discus164 libstdc++-devel-4.1.2-48.el5 (x86_64) libstdc++-devel-3.4.6 (x86_64) 合格
結果: "libstdc++-devel-3.4.6 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "sysstat-5.0.5"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 sysstat-7.0.2-3.el5_5.1 sysstat-5.0.5 合格
discus164 sysstat-7.0.2-3.el5_5.1 sysstat-5.0.5 合格
結果: "sysstat-5.0.5"のパッケージの存在チェックに合格しました

チェック: "unixODBC-2.2.11 (i386)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 unixODBC-2.2.11-7.1 (i386) unixODBC-2.2.11 (i386) 合格
discus164 unixODBC-2.2.11-7.1 (i386) unixODBC-2.2.11 (i386) 合格
結果: "unixODBC-2.2.11 (i386)"のパッケージの存在チェックに合格しました

チェック: "unixODBC-2.2.11 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 unixODBC-2.2.11-7.1 (x86_64) unixODBC-2.2.11 (x86_64) 合格
discus164 unixODBC-2.2.11-7.1 (x86_64) unixODBC-2.2.11 (x86_64) 合格
結果: "unixODBC-2.2.11 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "unixODBC-devel-2.2.11 (i386)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 unixODBC-devel-2.2.11-7.1 (i386) unixODBC-devel-2.2.11 (i386) 合格
discus164 unixODBC-devel-2.2.11-7.1 (i386) unixODBC-devel-2.2.11 (i386) 合格
結果: "unixODBC-devel-2.2.11 (i386)"のパッケージの存在チェックに合格しました

チェック: "unixODBC-devel-2.2.11 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 unixODBC-devel-2.2.11-7.1 (x86_64) unixODBC-devel-2.2.11 (x86_64) 合格
discus164 unixODBC-devel-2.2.11-7.1 (x86_64) unixODBC-devel-2.2.11 (x86_64) 合格
結果: "unixODBC-devel-2.2.11 (x86_64)"のパッケージの存在チェックに合格しました

チェック: "pdksh-5.2.14"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 pdksh-5.2.14-36.el5 pdksh-5.2.14 合格
discus164 pdksh-5.2.14-36.el5 pdksh-5.2.14 合格
結果: "pdksh-5.2.14"のパッケージの存在チェックに合格しました

チェック: "expat-1.95.7 (x86_64)"のパッケージの存在
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 expat-1.95.8-8.3.el5_5.3 (x86_64) expat-1.95.7 (x86_64) 合格
discus164 expat-1.95.8-8.3.el5_5.3 (x86_64) expat-1.95.7 (x86_64) 合格
結果: "expat-1.95.7 (x86_64)"のパッケージの存在チェックに合格しました

UID値0を持つ複数のユーザーをチェック中
結果: UID値0を持つ複数のユーザーのチェックに合格しました

チェック: 現行のグループID
結果: 現行のグループIDチェックに合格しました
コア・ファイル名パターンの一貫性をチェック中...
コア・ファイル名パターンの一貫性チェックに合格しました。

ユーザー"grid"が"root"グループにないことを確認中
ノード名 ステータス コメント
------------ ------------------------ ------------------------
discus264 存在しません 合格
discus164 存在しません 合格
結果: ユーザー"grid"は"root"グループの一部ではありません。チェックに合格しました

デフォルトのユーザー・ファイル作成マスクのチェック
ノード名 使用可能 必須 コメント
------------ ------------------------ ------------------------ ----------
discus264 0022 0022 合格
discus164 0022 0022 合格
結果: デフォルトのユーザー・ファイル作成マスクのチェックに合格しました

ネットワーク・タイム・プロトコル(NTP)を使用してクロック同期のチェックを開始中...

NTP構成ファイルのチェックが開始されました...
NTP構成ファイル"/etc/ntp.conf"はすべてのノードで使用できます
NTP構成ファイルのチェックに合格しました

デーモン活性をチェック中...

チェック: "ntpd"の活性
ノード名 実行中ですか
------------------------------------ ------------------------
discus264 はい
discus164 はい
結果: "ntpd"の活性チェックに合格しました

NTPデーモンのコマンドラインのslewオプション"-x"をチェック中
チェック: NTPデーモン・コマンド・ライン
ノード名 Slewオプションが設定されているか
------------------------------------ ------------------------
discus264 はい
discus164 はい
結果:
NTPデーモンのslewオプションのチェックに合格しました

ファイル"/etc/sysconfig/ntpd"内のNTPデーモンのブート時構成のslewオプション"-x"をチェック中

チェック: NTPデーモンのブート時構成
ノード名 Slewオプションが設定されているか
------------------------------------ ------------------------
discus264 はい
discus164 はい
結果:
NTPデーモンのブート時構成のslewオプションのチェックに合格しました

NTP共通タイム・サーバーのチェックが開始されました...
NTPタイム・サーバー"210.173.160.86"は、NTPデーモンが実行されているすべてのノードで共通です
NTPタイム・サーバー"210.173.176.251"は、NTPデーモンが実行されているすべてのノードで共通です
PRVF-5408 : NTPタイム・サーバー"210.173.160.56"は、次のノード"discus264"でのみ共通です
共通NTPタイム・サーバーのチェックに合格しました

NTPタイム・サーバーからのクロック時間オフセットのチェックが開始されました...
ノード"[discus264, discus164]"をチェック中...
チェック: NTP タイム・サーバーからのクロック時間オフセット

タイム・サーバー: 210.173.160.86
時間オフセット制限: 1000.0 ミリ秒
ノード名 時間オフセット ステータス
------------ ------------------------ ------------------------
discus264 -428.02 合格
discus164 0.164 合格
タイム・サーバー"210.173.160.86"の時間オフセットは、ノード"[discus264, discus164]"の許容限界内です。

タイム・サーバー: 210.173.176.251
時間オフセット制限: 1000.0 ミリ秒
ノード名 時間オフセット ステータス
------------ ------------------------ ------------------------
discus264 -427.36 合格
discus164 0.417 合格
タイム・サーバー"210.173.176.251"の時間オフセットは、ノード"[discus264, discus164]"の許容限界内です。
クロック時間オフセットのチェックに合格しました

結果: ネットワーク・タイム・プロトコル(NTP)を使用したクロック同期のチェックに合格しました


クラスタ・サービス設定の事前チェックはすべてのノードで失敗しました。

「結果: グループ"dba"内のユーザー"grid"のメンバーシップ・チェックが失敗しました」という箇所は無視可能というかマニュアルにもGrid Infrastructureユーザをdbaグループに属させる必要があると記載されていないので無視でOK.


次に、H/WとOSの設定の事前チェック(RACを構成する全ノードのOracle Grid Infrastructureユーザで実施)

[grid@discus164 grid]$ pwd
/home/grid/software/oracle/grid
[grid@discus164 grid]$ ll
合計 76
drwxr-xr-x 9 grid oinstall 4096 8月 17 2009 doc
drwxr-xr-x 4 grid oinstall 4096 12月 3 11:05 install
drwxrwxr-x 2 grid oinstall 4096 8月 15 2009 response
drwxrwxr-x 2 grid oinstall 4096 8月 15 2009 rpm
-rwxr-xr-x 1 grid oinstall 3227 8月 15 2009 runInstaller
-rwxrwxr-x 1 grid oinstall 3795 1月 29 2009 runcluvfy.sh
drwxrwxr-x 2 grid oinstall 4096 8月 15 2009 sshsetup
drwxr-xr-x 14 grid oinstall 4096 8月 15 2009 stage
-rw-r--r-- 1 grid oinstall 4228 8月 18 2009 welcome.html
[grid@discus164 grid]$
[grid@discus164 grid]$
[grid@discus164 grid]$ ./runcluvfy.sh stage -post hwos -n discus164,discus264 -verbose

ハードウェアとオペレーティング・システム設定の事後チェックを実行しています

ノード到達可能性をチェック中...

チェック: ノード"discus164"からのノード到達可能性
宛先ノード 到達可能ですか
------------------------------------ ------------------------
discus264 はい
discus164 はい
結果: ノード"discus164"からのノード到達可能性チェックに合格しました


ユーザー等価をチェック中...

チェック: ユーザー"grid"のユーザー等価
ノード名 コメント
------------------------------------ ------------------------
discus264 合格
discus164 合格
結果: ユーザー"grid"のユーザー等価チェックに合格しました

ノード接続性をチェック中...

ホスト構成ファイルをチェック中...
ノード名 ステータス コメント
------------ ------------------------ ------------------------
discus264 合格
discus164 合格

ホスト構成ファイルの検証に成功しました


ノード"discus264"のインタフェース情報
名前 IPアドレス サブネット ゲートウェイ デフォルト・ゲートウェイ HWアドレス MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.1.91 192.168.1.0 0.0.0.0 192.168.1.1 08:00:27:CC:3B:97 1500
eth1 192.168.3.91 192.168.3.0 0.0.0.0 192.168.1.1 08:00:27:2F:97:0D 1500
eth2 192.168.2.91 192.168.2.0 0.0.0.0 192.168.1.1 08:00:27:AD:F8:40 1500


ノード"discus164"のインタフェース情報
名前 IPアドレス サブネット ゲートウェイ デフォルト・ゲートウェイ HWアドレス MTU
------ --------------- --------------- --------------- --------------- ----------------- ------
eth0 192.168.1.90 192.168.1.0 0.0.0.0 192.168.1.1 08:00:27:B1:38:96 1500
eth1 192.168.3.90 192.168.3.0 0.0.0.0 192.168.1.1 08:00:27:FC:A5:8E 1500
eth2 192.168.2.90 192.168.2.0 0.0.0.0 192.168.1.1 08:00:27:47:E9:2C 1500


チェック: サブネット"192.168.1.0"のノード接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus264:eth0 discus164:eth0 はい
結果: ノードdiscus264,discus164を持つサブネット"192.168.1.0"のノード接続性に合格しました


チェック: サブネット"192.168.1.0"のTCP接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus164:192.168.1.90 discus264:192.168.1.91 合格
結果: サブネット"192.168.1.0"のTCP接続性チェックに合格しました


チェック: サブネット"192.168.3.0"のノード接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus264:eth1 discus164:eth1 はい
結果: ノードdiscus264,discus164を持つサブネット"192.168.3.0"のノード接続性に合格しました


チェック: サブネット"192.168.3.0"のTCP接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus164:192.168.3.90 discus264:192.168.3.91 合格
結果: サブネット"192.168.3.0"のTCP接続性チェックに合格しました


チェック: サブネット"192.168.2.0"のノード接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus264:eth2 discus164:eth2 はい
結果: ノードdiscus264,discus164を持つサブネット"192.168.2.0"のノード接続性に合格しました


チェック: サブネット"192.168.2.0"のTCP接続性
ソース 宛先 接続しましたか
------------------------------ ------------------------------ ----------------
discus164:192.168.2.90 discus264:192.168.2.91 合格
結果: サブネット"192.168.2.0"のTCP接続性チェックに合格しました


VIPの候補となるサブネット"192.168.1.0"で見つかったインタフェースは次のとおりです:
discus264 eth0:192.168.1.91
discus164 eth0:192.168.1.90

プライベート・インターコネクトの候補となるサブネット"192.168.3.0"で見つかったインタフェースは次のとおりです:
discus264 eth1:192.168.3.91
discus164 eth1:192.168.3.90

プライベート・インターコネクトの候補となるサブネット"192.168.2.0"で見つかったインタフェースは次のとおりです:
discus264 eth2:192.168.2.91
discus164 eth2:192.168.2.90

結果: ノード接続性チェックに合格しました


UID値0を持つ複数のユーザーをチェック中
結果: UID値0を持つ複数のユーザーのチェックに合格しました

ハードウェアとオペレーティング・システム設定の事後チェックは成功しました。

次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13
VirtualBox de Oracle11g R2 RAC #14

| | | コメント (0) | トラックバック (0)

2011年1月 1日 (土)

VirtualBox de Oracle11g R2 RAC #14

VirtualBox de Oracle11g R2 RACのつづきです。

今回は、ASMlibのインストール及び構成です。(やっと半分w)

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成

[root@discus164 tmp]# uname -a
Linux discus164.macdeoracle.jp 2.6.18-194.17.1.el5 #1 SMP Wed Sep 29 12:50:31 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux


CentOS5.5 2.6.18-194.17.1.el5 x86_64なので、以下のasmパッケージをRACを構成する全ノードでインストール、構成する。

oracleasm-support-2.1.3-1.el5.x86_64.rpm
oracleasmlib-2.0.4-1.el5.x86_64.rpm
oracleasm-2.6.18-194.17.1.el5-2.0.5-1.el5.x86_64.rpm

ダウンロード(RACを構成する全ノードのrootユーザで)CentOS5.5 x86_64ですが、ダウンロードするのはrhel5 amd64版でOK

[root@discus164 tmp]# wget http://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel5/amd64/2.1.3/oracleasm-support-2.1.3-1.el5.x86_64.rpm
--2010-11-24 16:19:15-- http://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel5/amd64/2.1.3/oracleasm-support-2.1.3-1.el5.x86_64.rpm
oss.oracle.com をDNSに問いあわせています... 141.146.12.120
oss.oracle.com|141.146.12.120|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 90444 (88K) [application/x-rpm]
`oracleasm-support-2.1.3-1.el5.x86_64.rpm' に保存中

100%[=================================================================================================>] 90,444 105K/s 時間 0.8s

2010-11-24 16:19:17 (105 KB/s) - `oracleasm-support-2.1.3-1.el5.x86_64.rpm' へ保存完了 [90444/90444]

[root@discus164 tmp]# wget http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el5.x86_64.rpm
--2010-11-24 16:19:30-- http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el5.x86_64.rpm
download.oracle.com をDNSに問いあわせています... 203.77.186.253, 203.77.186.254
download.oracle.com|203.77.186.253|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14176 (14K) [text/plain]
`oracleasmlib-2.0.4-1.el5.x86_64.rpm' に保存中

100%[=================================================================================================>] 14,176 --.-K/s 時間 0.01s

2010-11-24 16:19:30 (1.33 MB/s) - `oracleasmlib-2.0.4-1.el5.x86_64.rpm' へ保存完了 [14176/14176]

[root@discus164 tmp]# wget
http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel5/amd64/2.0.5/2.6.18-194.17.1.el5/oracleasm-2.6.18-194.17.1.el5-2.0.5-1.el5.x86_64.rpm
--2010-11-24 16:19:44-- http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel5/amd64/2.0.5/2.6.18-194.17.1.el5/oracleasm-2.6.18-194.17.1.el5-2.0.5-1.el5.x86_64.rpm
oss.oracle.com をDNSに問いあわせています... 141.146.12.120
oss.oracle.com|141.146.12.120|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 137417 (134K) [application/x-rpm]
`oracleasm-2.6.18-194.17.1.el5-2.0.5-1.el5.x86_64.rpm' に保存中

100%[=================================================================================================>] 137,417 161K/s 時間 0.8s

2010-11-24 16:19:46 (161 KB/s) - `oracleasm-2.6.18-194.17.1.el5-2.0.5-1.el5.x86_64.rpm' へ保存完了 [137417/137417]

[root@discus164 tmp]#

インストール(RACを構成する全ノードのrootユーザで)

[root@discus164 tmp]# rpm -ivh oracleasm-2.6.18-194.17.1.el5-2.0.5-1.el5.x86_64.rpm oracleasm-support-2.1.3-1.el5.x86_64.rpm oracleasmlib-2.0.4-1.el5.x86_64.rpm
警告: oracleasm-2.6.18-194.17.1.el5-2.0.5-1.el5.x86_64.rpm: ヘッダ V3 DSA signature: NOKEY, key ID 1e5e0159
準備中... ########################################### [100%]
1:oracleasm-support ########################################### [ 33%]
2:oracleasm-2.6.18-194.17########################################### [ 67%]
3:oracleasmlib ########################################### [100%]
[root@discus164 tmp]#


構成(RACを構成する全ノードのrootユーザで)

[root@discus164 ˜]# /usr/sbin/oracleasm configure
ORACLEASM_ENABLED=false
ORACLEASM_UID=
ORACLEASM_GID=
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
[root@discus164 ˜]# /usr/sbin/oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
[root@discus164 ˜]#
[root@discus164 ˜]# /usr/sbin/oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm
[root@discus164 ˜]#

ASMディスクの作成(RACを構成する1ノードのrootユーザで実行する)
iSCSIとして作成したデバイスへ作成する。

[root@discus164 iscsi]# ls -l /dev/iscsi/*
/dev/iscsi/openfiler:asm1:
合計 0
lrwxrwxrwx 1 root root 9 11月 24 10:39 part -> ../../sdb
lrwxrwxrwx 1 root root 10 11月 24 10:39 part1 -> ../../sdb1

/dev/iscsi/openfiler:asm2:
合計 0
lrwxrwxrwx 1 root root 9 11月 24 10:39 part -> ../../sdf
lrwxrwxrwx 1 root root 10 11月 24 10:39 part1 -> ../../sdf1

/dev/iscsi/openfiler:asm3:
合計 0
lrwxrwxrwx 1 root root 9 11月 24 10:39 part -> ../../sde
lrwxrwxrwx 1 root root 10 11月 24 10:39 part1 -> ../../sde1

/dev/iscsi/openfiler:asm4:
合計 0
lrwxrwxrwx 1 root root 9 11月 24 10:39 part -> ../../sdd
lrwxrwxrwx 1 root root 10 11月 24 10:39 part1 -> ../../sdd1

/dev/iscsi/openfiler:crs1:
合計 0
lrwxrwxrwx 1 root root 9 11月 24 10:39 part -> ../../sdg
lrwxrwxrwx 1 root root 10 11月 24 10:39 part1 -> ../../sdg1

/dev/iscsi/openfiler:crs2:
合計 0
lrwxrwxrwx 1 root root 9 11月 24 10:39 part -> ../../sdc
lrwxrwxrwx 1 root root 10 11月 24 10:39 part1 -> ../../sdc1
[root@discus164 iscsi]#
[root@discus164 iscsi]# /usr/sbin/oracleasm createdisk CRSVOL1 /dev/iscsi/openfiler:crs1/part1
Writing disk header: done
Instantiating disk: done
[root@discus164 iscsi]# /usr/sbin/oracleasm createdisk CRSVOL2 /dev/iscsi/openfiler:crs2/part1
Writing disk header: done
Instantiating disk: done
[root@discus164 iscsi]# /usr/sbin/oracleasm createdisk DATAVOL1 /dev/iscsi/openfiler:asm1/part1
Writing disk header: done
Instantiating disk: done
[root@discus164 iscsi]# /usr/sbin/oracleasm createdisk DATAVOL2 /dev/iscsi/openfiler:asm2/part1
Writing disk header: done
Instantiating disk: done
[root@discus164 iscsi]# /usr/sbin/oracleasm createdisk FRAVOL1 /dev/iscsi/openfiler:asm3/part1
Writing disk header: done
Instantiating disk: done
[root@discus164 iscsi]# /usr/sbin/oracleasm createdisk FRAVOL2 /dev/iscsi/openfiler:asm4/part1
Writing disk header: done
Instantiating disk: done
[root@discus164 iscsi]#

ASMディスクを確認(RACを構成する全ノードのrootユーザで)
ASMディスクを作成したノード以外で scandisksコマンドを実行して認識させる。

[root@discus264 ˜]# /usr/sbin/oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
Instantiating disk "FRAVOL2"
Instantiating disk "FRAVOL1"
Instantiating disk "DATAVOL1"
Instantiating disk "CRSVOL2"
Instantiating disk "DATAVOL2"
Instantiating disk "CRSVOL1"
[root@discus264 ˜]#

listdisksコマンドでASMディスクが認識されたか確認!

[root@discus164 ˜]# 
[root@discus164 ˜]#
[root@discus164 ˜]# /usr/sbin/oracleasm listdisks
CRSVOL1
CRSVOL2
DATAVOL1
DATAVOL2
FRAVOL1
FRAVOL2
[root@discus164 ˜]#

[root@discus264 ˜]# 
[root@discus264 ˜]#
[root@discus264 ˜]# /usr/sbin/oracleasm listdisks
CRSVOL1
CRSVOL2
DATAVOL1
DATAVOL2
FRAVOL1
FRAVOL2
[root@discus264 ˜]#

次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12
VirtualBox de Oracle11g R2 RAC #13

| | | コメント (0) | トラックバック (0)

2010年12月31日 (金)

VirtualBox de Oracle11g R2 RAC #13

VirtualBox de Oracle11g R2 RACのつづきです。

RACを構成する各ノードの構成ファイルを確認しておきま〜す。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle RACノード構成ファイルの確認

RACを構成する各ノードの構成ファイルをざっと確認。ここまでの作業でRACを構成する各ノードの構成ファイルは以下のようになっているはず…

/etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6

#for public network
192.168.1.90 discus164.macdeoracle.jp discus164
192.168.1.91 discus264.macdeoracle.jp discus264
192.168.1.92 arowana2.macdeoracle.jp arowana2

#for Oracle Interconnect private network
192.168.3.90 discus164-priv.macdeoracle.jp discus164-priv
192.168.3.91 discus264-priv.macdeoracle.jp discus264-priv

#for iSCSI private network
192.168.2.92 arowana2-priv.macdeoracle.jp arowana2-priv
192.168.2.90 discus164-iscsi.macdeoracle.jp discus164-iscsi
192.168.2.91 discus264-iscsi.macdeoracle.jp discus264-iscsi

#for virtual public network
192.168.1.190 discus164-vip.macdeoracle.jp discus164-vip
192.168.1.191 discus264-vip.macdeoracle.jp discus264-vip

192.168.1.2 lampeye.macdeoracle.jp lampeye


/etc/security/limits.conf

[root@discus164 security]# diff -u limits.conf.org limits.conf
--- limits.conf.org 2010-03-12 02:24:15.000000000 +0900
+++ limits.conf 2010-11-24 11:10:30.000000000 +0900
@@ -48,3 +48,11 @@
#@student - maxlogins 4

# End of file
+grid soft nproc 2047
+grid hard nproc 16384
+grid soft nofile 1024
+grid hard nofile 65536
+oracle soft nproc 2047
+oracle hard nproc 16384
+oracle soft nofile 1024
+oracle hard nofile 65536
[root@discus164 security]#


/etc/pam.d/login

[root@discus164 pam.d]# diff -u login.org login
--- login.org 2010-01-20 19:36:29.000000000 +0900
+++ login 2010-11-24 11:16:33.000000000 +0900
@@ -12,3 +12,4 @@
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
+session required pam_limits.so
[root@discus164 pam.d]#


/etc/profile

[root@discus164 etc]# diff -u profile.org profile
--- profile.org 2009-09-22 08:27:09.000000000 +0900
+++ profile 2010-11-24 11:21:27.000000000 +0900
@@ -56,3 +56,12 @@

unset i
unset pathmunge
+if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
+ if [ $SHELL = "/bin/ksh" ]; then
+ ulimit -p 16384
+ ulimit -n 65536
+ else
+ ulimit -u 16384 -n 65536
+ fi
+ umask 022
+fi
[root@discus164 etc]#


/etc/sysctl.conf

[root@discus164 ˜]# sysctl -a | grep -E '(se|sh)m|file-max|aio-max-nr|ip_local_port_range|(w|r)mem_(default|max)'
net.ipv4.ip_local_port_range = 32768 61000
net.core.rmem_default = 129024
net.core.wmem_default = 129024
net.core.rmem_max = 131071
net.core.wmem_max = 131071
vm.hugetlb_shm_group = 0
kernel.sem = 250 32000 32 128
kernel.shmmni = 4096
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
fs.aio-max-nr = 65536
fs.file-max = 371217
[root@discus164 ˜]#


/etc/udev/rules.d/55-openiscsi.rules

[root@discus164 ˜]# cat /etc/udev/rules.d/55-openiscsi.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c/part%n"
[root@discus164 ˜]#


/etc/udev/scripts

[root@discus164 ˜]# cd /etc/udev/scripts
[root@discus164 scripts]# cat iscsidev.sh
#!/bin/sh

# FILE: /etc/udev/scripts/iscsidev.sh

BUS=${1}
HOST=${BUS%%:*}
[ -e /sys/class/iscsi_host ] || exit 1

file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname"

target_name=$(cat ${file})

# This is not an open-scsi drive
if [ -z "${target_name}" ]; then
exit 1
fi

echo "${target_name##*.}"
[root@discus164 scripts]#

/etc/ntp.conf

[root@discus164 ˜]# cat /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
#restrict -6 ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).

#broadcast 192.168.1.255 key 42 # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 key 42 # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 key 42 # manycast client

# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
#server 127.127.1.0
#fudge 127.127.1.0 stratum 10

# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys

# Specify the key identifiers which are trusted.
#trustedkey 4 8 42

# Specify the key identifier to use with the ntpdc utility.
#requestkey 8

# Specify the key identifier to use with the ntpq utility.
#controlkey 8
server 192.168.1.2
server 192.168.1.2
server 192.168.1.2
restrict 192.168.1.2 mask 255.255.255.255 nomodify notrap noquery
[root@discus164 ˜]#


/etc/sysconfig/ntpd

[root@discus164 ˜]# cat /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=yes

# Additional options for ntpdate
NTPDATE_OPTIONS="-B"
[root@discus164 ˜]#

/etc/host.conf

[root@discus164 ˜]$ cat /etc/host.conf
order hosts,bind

Oracle Grid Infrastructureユーザや、Oracle所有者の確認はこちら

念のためにuserとgroupのスナップショットを乗せておきますね。

Users

Groups


Openfier側構成(ゾンビセッション抑止などは以前の記事参照のこと)


次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11
VirtualBox de Oracle11g R2 RAC #12

| | | コメント (0) | トラックバック (0)

2010年12月26日 (日)

VirtualBox de Oracle11g R2 RAC #12

VirtualBox de Oracle11g R2 RACのつづきです。

今回はRACノード構成ファイルの確認という予定だったのですが、DNSの構成を別建てにして置く事にします。量が多いので (^^;;

構成するDNSは、ローカルネットワークかつRACを構成するノードの管理さえできればいいので、ローカルネームサーバとして機能すれば十分。
ということで、RAC向けローカルネームサーバを構成することにします。(DNSは素人なので調べるほうが大変だったw)


では、さっそくやってみましょう。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

DNSの構成

悩んだのが、DNSをどこにたてるかということ。いろいろ悩んでいたんですが、元ネタの1つからいいアイデアもらいました。
それは、DNSをOpenfiler上に構成するということ。ストレージサーバなのでRACを構成する各ノードより先に起動していますし。:)

最初にやるのはDNSサーバを最新版にアップデートすること。でもでもでもですね。以前痛い目にあっていたのでOpenfilerというかrPath Linuxのパッケージ管理は無効化していたんです。このままじゃDNSの最新パッケージを使えないので一時的に使えるようにします。

Openfilerのパッケージ管理は、conaryというrPath Linux由来のものが利用されています。/etc/conaryrcの内容をすべてコメントアウトして利用できないようしてあります。

[root@arowana2 ˜]# cat /etc/conaryrc
#installLabelPath openfiler.rpath.org@ofns:2 conary.rpath.com@rpl:1
#pinTroves (kernel|linux-image-2\.6\.[0-9]+-[0-9]+(-[a-z]+)?)([:-].*|$)
#autoResolve True
#includeConfigFile /etc/conary/config.d/*
[root@arowana2 ˜]#

コメントアウトしていただけなのですぐに利用できるように戻せるのだ! :)

[root@arowana2 ˜]# cat /etc/conaryrc
installLabelPath openfiler.rpath.org@ofns:2 conary.rpath.com@rpl:1
pinTroves (kernel|linux-image-2\.6\.[0-9]+-[0-9]+(-[a-z]+)?)([:-].*|$)
autoResolve True
includeConfigFile /etc/conary/config.d/*
[root@arowana2 ˜]#

conaryをつかってbindを最新版にアップデート!!

[root@arowana2 ˜]# conary update bind:runtime

Conary

確認! 最新版になりました!

[root@arowana2 ˜]# conary q bind
bind=9.4.3_P5-1.1-1

再び、conaryを無効化しておく。(トラウマなだけで今は安定しているかもしれんw だけど止めとくw)

[root@arowana2 ˜]# cat /etc/conaryrc
#installLabelPath openfiler.rpath.org@ofns:2 conary.rpath.com@rpl:1
#pinTroves (kernel|linux-image-2\.6\.[0-9]+-[0-9]+(-[a-z]+)?)([:-].*|$)
#autoResolve True
#includeConfigFile /etc/conary/config.d/*
[root@arowana2 ˜]#


Openfiler(host名:arowana2)で、DNSの構成を始めるにあたって参考にしたサイトを書いておきますね。

Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux - 2.7.4 グリッド・ネーミング・サービスの構成例
Openfiler側にDNSを立てるというアイデアを頂いたサイト。元ネタの1つでもある。
DNSの素人なりにいろいろググって見つけたすげー参考になったサイト「月刊NetworkWorld連載『DNSの仕組み完全解説』」(ありがとうございます!)


今回構築するRACのネットワーク構成は以前の書いたが以下のように構成する。

RACを構成するノード1 (hostname=discus164.macdeoracle.jp)
Hostname タイプ IP address 名前解決方法
discus164 Public 192.168.1.90 hostsおよびDNS
discus164-iscsi Private 192.168.2.90
discus164-priv Private 192.168.3.90
discus164-vip Virtual 192.168.1.190
RACを構成するノード2 (hostname=discus264.macdeoracle.jp)
Hostname タイプ IP address 名前解決方法
discus264 Public 192.168.1.91 hostsおよびDNS
discus264-iscsi Private 192.168.2.91
discus264-priv Private 192.168.3.91
discus264-vip Virtual 192.168.1.191
SCAN VIP1/2/3
Hostname タイプ IP address 名前解決方法
discus-rac64-scan Virtual 192.168.1.200 DNS
discus-rac64-scan 192.168.1.201
discus-rac64-scan 192.168.1.202
Openfiler2.3(iSCSI) - (hostname=arowana2.macdeoracle.jp)
Hostname タイプ IP address 名前解決方法
arowana2 Public 192.168.1.92 hostsおよびDNS
arowana2-priv Private 192.168.2.92

・DNSの構成

/etc/resolv.confの構成は以下の通り。ローカルipアドレスを利用しているRACの各ノードやOpenfilerは/etc/hostsとdnsで解決できるようにしておきます。ipアドレスはすべて固定です。
[root@arowana2 ˜]# cat /etc/resolv.conf
search macdeoracle.jp
nameserver 192.168.1.92

; Forward Lookup Zone
discus164 IN A 192.168.1.90
discus264 IN A 192.168.1.91
discus164-priv IN A 192.168.3.90
discus264-priv IN A 192.168.3.91
discus164-iscsi IN A 192.168.2.90
discus264-iscsi IN A 192.168.2.91
discus164-vip IN A 192.168.1.190
discus264-vip IN A 192.168.1.191
arowana2 IN A 192.168.1.92
arowana2-priv IN A 192.168.2.92
discus-rac64-scan IN A 192.168.1.200
discus-rac64-scan IN A 192.168.1.201
discus-rac64-scan IN A 192.168.1.202

; Reverse Lookup Zone
90 IN PTR discus164.macdeoracle.jp.
91 IN PTR discus264.nacdeiracle,jp.
190 IN PTR discus164-vip.macdeoracle.jp.
191 IN PTR discus264-vip.macdeoracle.jp.
200 IN PTR discus-rac64-scan.macdeoracle.jp.
201 IN PTR discus-rac64-scan.macdeoracle.jp.
202 IN PTR discus-rac64-scan.macdeoracle.jp.
[root@arowana2 ˜]#


/etc/named.confの構成。(逆引き/正引きのゾーン設定や上位DNSへの回送設定)
逆引きの設定で、RACで利用しているローカルipアドレス以外はダーミーゾーンに設定しているところがポイント。気になっていたところなのでググってよい参考サイト見つけられてよかった。ほんと感謝、感謝。

[root@arowana2 ˜]# cat /etc/named.conf
# DNS configuration file for Oracle RAC 11g release 2

options {


// FORWARDERS: Forward any name this DNS can't resolve to my router.
forwarders { 192.168.1.1; };

// DIRECTORY: Directory where named will look for zone files.
directory "/srv/named/data";

//allow query requests
allow-query { 192.168.0.0/22; };
};

# ----------------------------------
# Forward Zone
# ----------------------------------

zone "macdeoracle.jp" IN {
type master;
file "macdeoracle.jp.zone";
allow-update { none; };
};

# ----------------------------------
# Reverse Zone
# ----------------------------------

zone "1.168.192.in-addr.arpa" IN {
type master;
file "1.168.192.in-addr.arpa.zone";
allow-update { none; };
};

zone "168.192.in-addr.arpa" IN {
type master;
file "dummy.zone";
notify no;
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa.zone";
notify no;
};

# ----------------------------------
# private addresses dummy Zone
# ---------------------------------

zone "10.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "16.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "17,172,in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "18.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "19.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "20.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "21.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "22.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "23.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "24.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "25.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "26.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "27.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "28.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "29.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "30.172.in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

zone "31.172,in-addr.arpa" {
type master;
file "dummy.zone";
notify no;
};

[root@arowana2 ˜]#


・以下、正引き/逆引き用ゾーンファイルの作成
/srv/named/data/macdeoracle.jp.zoneの作成(正引き用ゾーンファイル)

[root@arowana2 ˜]# cat /srv/named/data/macdeoracle.jp.zone
; +-------------------------------------------------------------------+
; | /srv/named/data/macdeoracle.jp.zone |
; | |
; | Forward zone definition file for macdeoracle.jp zone |
; +-------------------------------------------------------------------+

$ORIGIN macdeoracle.jp.

$TTL 86400 ; time-to-live - (1 day)

@ IN SOA arowana2.macdeoracle.jp. discus.lampeye.macdeoracle.jp. (
201011021 ; serial number - (yyyymmdd+s)
7200 ; refresh - (2 hours)
300 ; retry - (5 minutes)
604800 ; expire - (1 week)
60 ; minimum - (1 minute)
)
IN NS arowana2.macdeoracle.jp.
localhost IN A 127.0.0.1

; Oracle RAC Nodes
discus164 IN A 192.168.1.90
discus264 IN A 192.168.1.91
discus164-priv IN A 192.168.3.90
discus264-priv IN A 192.168.3.91
discus164-iscsi IN A 192.168.2.90
discus264-iscsi IN A 192.168.2.91
discus164-vip IN A 192.168.1.190
discus264-vip IN A 192.168.1.191

; Network Storage Server
arowana2 IN A 192.168.1.92
arowana2-priv IN A 192.168.2.92

; Single Client Access Name (SCAN) virtual IP
discus-rac64-scan IN A 192.168.1.200
discus-rac64-scan IN A 192.168.1.201
discus-rac64-scan IN A 192.168.1.202

; Miscellaneous Nodes
lampeye IN A 192.168.1.2
[root@arowana2 ˜]#


/srv/named/data/168.192.in-addr.arpa.zon(逆引き用ゾーンファイル)の作成

[root@arowana2 data]# cat 168.192.in-addr.arpa.zone
; +-------------------------------------------------------------------+
; | /srv/named/data/168.192.in-addr.arpa.zone |
; | |
; | Reverse zone definition file for 168.192.in-addr.arpa.zone |
; +-------------------------------------------------------------------+

$ORIGIN 168.192.in-addr.arpa.

$TTL 86400 ; time-to-live - (1 day)

@ IN SOA arowana2.macdeoracle.jp. discus.lampeye.macdeoracle.jp. (
201011021 ; serial number - (yyyymmdd+s)
7200 ; refresh - (2 hours)
300 ; retry - (5 minutes)
604800 ; expire - (1 week)
60 ; minimum - (1 minute)
)
IN NS arowana2.macdeoracle.jp.

; Oracle RAC Nodes
90 IN PTR discus164.macdeoracle.jp.
91 IN PTR discus264.macdeoracle.jp.
190 IN PTR discus164-vip.macdeoracle.jp.
191 IN PTR discus264-vip.macdeoracle.jp.

; Network Storage Server
92 IN PTR arowana2.macdeoracle.jp.

; Single Client Access Name (SCAN) virtual IP
200 IN PTR discus-rac64-scan.macdeoracle.jp.
201 IN PTR discus-rac64-scan.macdeoracle.jp.
202 IN PTR discus-rac64-scan.macdeoracle.jp.

; Miscellaneous Nodes
2 IN PTR lampeye.macdeoracle.jp.
[root@arowana2 data]#


ローカルホスト(127.0.0.1)の逆引きゾーンの定義

[root@arowana2 ˜]# cat /srv/named/data/0.0.127.in-addr.arpa.zone
; +-------------------------------------------------------------------+
; | /srv/named/data/0.0.127.in-addr.arpa.zone |
; | |
; | Reverse zone definition file for 0.0.127.in-addr.arpa.zone |
; +-------------------------------------------------------------------+

$ORIGIN 0.0.127.in-addr.arpa.

$TTL 86400 ; time-to-live - (1 day)

@ IN SOA arowana2.macdeoracle.jp. discus.lampeye.macdeoracle.jp. (
201011021 ; serial number - (yyyymmdd+s)
7200 ; refresh - (2 hours)
300 ; retry - (5 minutes)
604800 ; expire - (1 week)
60 ; minimum - (1 minute)
)
IN NS arowana2.macdeoracle.jp.

; localhost
1 IN PTR localhost.
[root@arowana2 ˜]#


/srv/named/data/dummy.zone(ダミーゾーンファイル)の作成
「月刊NetworkWorld連載『DNSの仕組み完全解説』」の記事を参考にローカルipアドレスの逆引きの問い合わせが外部のDNSに発生しないようにするために利用するダミーゾーンファイルの定義を以下のように作成した。

[root@arowana2 ˜]# cat /srv/named/data/dummy.zone
; +-------------------------------------------------------------------+
; | /srv/named/data/dummy.zone |
; +-------------------------------------------------------------------+


$TTL 86400 ; time-to-live - (1 day)

@ IN SOA arowana2.macdeoracle.jp. discus.lampeye.macdeoracle.jp. (
201011021 ; serial number - (yyyymmdd+s)
28800 ; refresh - (2 hours)
2700 ; retry - (5 minutes)
604800 ; expire - (1 week)
3600 ; minimum - (1 minute)
)
IN NS arowana2.macdeoracle.jp.
[root@arowana2 ˜]#


構成できたらnamedを自動起動設定にしてnamedを起動

[root@arowana2 ˜]# chkconfig named on
[root@arowana2 ˜]# chkconfig --list named
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@arowana2 ˜]# service named start
Starting named: [ OK ]

ここまでてdnsの設定はおしまい。前述の作業はすべてOpenfilerを乗せているサーバ上で行った。


つづいて、RACを構成する各ノードでOpenfiler上に構成したローカルネームサーバを参照させるように設定する。
/etc/host.confの構成(RACを構成する全ノード及び、Openfilerを構成したノード)

/etc/hostsを優先させる。/etc/hostsを見てもらうとわかるけど、dnsと重複定義している。無駄と言えばむだだと思うけど。SCAN VIPだけdns管理すればOKなのかってとこまでは見えてないからそれはそれで別途確認だな→TODO
[oracle@discus164 ˜]$ cat /etc/host.conf
order hosts,bind


/etc/hostsの構成(RACを構成する全ノード及び、Openfilerを構成したノード)

[oracle@discus164 ˜]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6

#for public network
192.168.1.90 discus164.macdeoracle.jp discus164
192.168.1.91 discus264.macdeoracle.jp discus264
192.168.1.92 arowana2.macdeoracle.jp arowana2

#for Oracle Interconnect private network
192.168.3.90 discus164-priv.macdeoracle.jp discus164-priv
192.168.3.91 discus264-priv.macdeoracle.jp discus264-priv

#for iSCSI private network
192.168.2.92 arowana2-priv.macdeoracle.jp arowana2-priv
192.168.2.90 discus164-iscsi.macdeoracle.jp discus164-iscsi
192.168.2.91 discus264-iscsi.macdeoracle.jp discus264-iscsi

#for virtual public network
192.168.1.190 discus164-vip.macdeoracle.jp discus164-vip
192.168.1.191 discus264-vip.macdeoracle.jp discus264-vip


192.168.1.2 lampeye.macdeoracle.jp lampeye
[oracle@discus164 ˜]$

これで準備OK.続いて動作確認!

・正引きテスト

最初に外部サイトが引けるか確認…OK.

[root@discus164 ˜]# nslookup openfiler.com
Server: 192.168.1.92
Address: 192.168.1.92#53

Non-authoritative answer:
Name: openfiler.com
Address: 84.45.94.236

[root@discus164 ˜]#

次に内部…
[root@discus164 ˜]# nslookup lampeye 
Server: 192.168.1.92
Address: 192.168.1.92#53

Name: lampeye.macdeoracle.jp
Address: 192.168.1.2

[root@discus164 ˜]# nslookup discus164
Server: 192.168.1.92
Address: 192.168.1.92#53

Name: discus164.macdeoracle.jp
Address: 192.168.1.90

[root@discus164 ˜]# nslookup discus164-vip
Server: 192.168.1.92
Address: 192.168.1.92#53

Name: discus164-vip.macdeoracle.jp
Address: 192.168.1.190

[root@discus164 ˜]# nslookup discus264
Server: 192.168.1.92
Address: 192.168.1.92#53

Name: discus264.macdeoracle.jp
Address: 192.168.1.91

[root@discus164 ˜]# nslookup discus264-vip
Server: 192.168.1.92
Address: 192.168.1.92#53

Name: discus264-vip.macdeoracle.jp
Address: 192.168.1.191

[root@discus164 ˜]# nslookup discus-rac64-scan
Server: 192.168.1.92
Address: 192.168.1.92#53

Name: discus-rac64-scan.macdeoracle.jp
Address: 192.168.1.201
Name: discus-rac64-scan.macdeoracle.jp
Address: 192.168.1.202
Name: discus-rac64-scan.macdeoracle.jp
Address: 192.168.1.200

[root@discus164 ˜]# nslookup localhost
Server: 192.168.1.92
Address: 192.168.1.92#53

Name: localhost.macdeoracle.jp
Address: 127.0.0.1


・逆引きテスト

[root@discus164 ˜]# nslookup 192.168.1.200
Server: 192.168.1.92
Address: 192.168.1.92#53

200.1.168.192.in-addr.arpa name = discus-rac64-scan.macdeoracle.jp.

[root@discus164 ˜]# nslookup 192.168.1.201
Server: 192.168.1.92
Address: 192.168.1.92#53

201.1.168.192.in-addr.arpa name = discus-rac64-scan.macdeoracle.jp.

[root@discus164 ˜]# nslookup 192.168.1.202
Server: 192.168.1.92
Address: 192.168.1.92#53

202.1.168.192.in-addr.arpa name = discus-rac64-scan.macdeoracle.jp.

[root@discus164 ˜]# nslookup 192.168.1.90
Server: 192.168.1.92
Address: 192.168.1.92#53

90.1.168.192.in-addr.arpa name = discus164.macdeoracle.jp.

[root@discus164 ˜]# nslookup 192.168.1.91
Server: 192.168.1.92
Address: 192.168.1.92#53

91.1.168.192.in-addr.arpa name = discus264.macdeoracle.jp.

[root@discus164 ˜]# nslookup 192.168.1.190
Server: 192.168.1.92
Address: 192.168.1.92#53

190.1.168.192.in-addr.arpa name = discus164-vip.macdeoracle.jp.

[root@discus164 ˜]# nslookup 192.168.1.191
Server: 192.168.1.92
Address: 192.168.1.92#53

191.1.168.192.in-addr.arpa name = discus264-vip.macdeoracle.jp.


[root@discus164 ˜]# nslookup 127.0.0.1
Server: 192.168.1.92
Address: 192.168.1.92#53

1.0.0.127.in-addr.arpa name = localhost.

[root@discus164 ˜]#

これでOK次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10
VirtualBox de Oracle11g R2 RAC #11

| | | コメント (0) | トラックバック (0)

2010年12月25日 (土)

VirtualBox de Oracle11g R2 RAC #11

VirtualBox de Oracle11g R2 RACのつづきです。

今回は、RACノード間リモートアクセスの構成です。
Oracle11g R2 11.2.0.2.0ではパスフレーズなしでSSHを構成する必要があるのですが、OUIが自動構成してくれるということ、また、インストレーションガイドでもOUIの自動構成を利用するよう推奨されているんですが、今回はちょっと意地悪なことをしてみます。事前にパスワード付きでSSHを構成しておき、OUIがパスワードなしのSSH構成行われていないと認識しちゃんと自動構成してくれるか見てみます。

Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux - 2.13 インストール時におけるSSHの自動構成
Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux - E.1 すべてのクラスタ・ノードでの手動によるSSHの構成

では、さっそくやってみましょう。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle RACノード間リモートアクセスの構成
念のために行った、多分、実施しなくても大丈夫だと思うけど…ちょいと意地悪な実験をしてみた)

sshパッケージの確認。(RACを構成する全ノードで)

[root@discus164 etc]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n"| grep ssh
openssh-server-4.3p2-41.el5_5.1 (x86_64)
openssh-askpass-4.3p2-41.el5_5.1 (x86_64)
openssh-clients-4.3p2-41.el5_5.1 (x86_64)
openssh-4.3p2-41.el5_5.1 (x86_64)
[root@discus164 etc]#


Oracle11g R2 11.2.0.2.0以降ではSSHのユーザの等価化ではパスフレーズなしのみサポートされているのだとか。なんなく面白そうなので、今回は手動でユーザの等価化をわざわざサポートされていないというパスフレーズ付きで実施してみた(ユーザの等価化チェックでエラーとなりOUI側で自動的にパスフレーズなしのユーザ等価化が行われるはず、なのでどうなるか楽しみ!!!)

RACを構成する全ノードのgrid infrastrucreユーザと/oracle所有者で実施する。(Oracle11g 11.2.0.2.0において手動でSSHのユーザ等価化を行う場合、パスフレーズを入力する箇所でパスフレーズを入力せず、[ENTER]キーをタイプすればOKなのですが、今回は、あえてパスフレーズを入力してあります。ログ上ではパスフレーズを入力していないように見えますが.)

[root@discus164 ˜]# su - grid
[grid@discus164 ˜]$
[grid@discus164 ˜]$ mkdir ˜/.ssh
[grid@discus164 ˜]$ chmod 700 ˜/.ssh
[grid@discus164 ˜]$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/grid/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/grid/.ssh/id_dsa.
Your public key has been saved in /home/grid/.ssh/id_dsa.pub.
The key fingerprint is:
ba:bb:09:72:94:94:d6:29:99:12:7f:d2:a6:a6:60:0a grid@discus164.macdeoracle.jp
[grid@discus164 ˜]$

[root@discus164 ˜]#
[root@discus164 ˜]# su - oracle
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ mkdir ˜/.ssh
[oracle@discus164 ˜]$ chmod 700 ˜/.ssh
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_dsa.
Your public key has been saved in /home/oracle/.ssh/id_dsa.pub.
The key fingerprint is:
88:5d:b0:ec:80:8c:59:ed:22:f7:d8:88:6d:6c:41:1a oracle@discus164.macdeoracle.jp
[oracle@discus164 ˜]$


以下の操作はRAC上の1ノードから行えばOK。ただ、gid infrastructureユーザとOracle所有者の両ユーザで行う必要があるのでご注意を。11.2.0.2.0以降では以前のリリースのように神経質にならなくてもいいかもね。sshの構成に関しては……
Oracle Grid Infrastructureユーザから…

[root@discus164 ˜]# su - grid
[grid@discus164 ˜]$
[grid@discus164 ˜]$
[grid@discus164 ˜]$ touch ˜/.ssh/authorized_keys
[grid@discus164 ˜]$ cd ˜/.ssh
[grid@discus164 .ssh]$ ls -l *.pub
-rw-r--r-- 1 grid oinstall 619 11月 24 13:11 id_dsa.pub
[grid@discus164 .ssh]$ ssh discus164 cat ˜/.ssh/id_dsa.pub >> ˜/.ssh/authorized_keys
The authenticity of host 'discus164 (192.168.1.90)' can't be established.
RSA key fingerprint is 15:90:e9:89:98:8e:ed:3f:67:7b:d4:e7:97:6b:58:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'discus164,192.168.1.90' (RSA) to the list of known hosts.
grid@discus164's password:
[grid@discus164 .ssh]$ ssh discus264 cat ˜/.ssh/id_dsa.pub >> ˜/.ssh/authorized_keys
The authenticity of host 'discus264 (192.168.1.91)' can't be established.
RSA key fingerprint is 55:80:d3:23:4f:82:44:4b:b8:89:02:d8:69:31:7e:f5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'discus264,192.168.1.91' (RSA) to the list of known hosts.
grid@discus264's password:
[grid@discus164 .ssh]$ scp ˜/.ssh/authorized_keys discus264:.ssh/authorized_keys
grid@discus264's password:
authorized_keys 100% 1238 1.2KB/s 00:00
[grid@discus164 .ssh]$ chmod 600 ˜/.ssh/authorized_keys
[grid@discus164 .ssh]$
[grid@discus164 ˜]$ ssh discus164 hostname
Enter passphrase for key '/home/grid/.ssh/id_dsa':
discus164.macdeoracle.jp
[grid@discus164 ˜]$ ssh discus264 hostname
Enter passphrase for key '/home/grid/.ssh/id_dsa':
discus264.macdeoracle.jp
[grid@discus164 ˜]$


次はOracle所有者で… 11.2.0.2.0以降パスブレーズなしにする必要があるのですがわざと入れてます (^^)

[root@discus164 ˜]# su - oracle
[oracle@discus164 ˜]$ touch ˜/.ssh/authorized_keys
[oracle@discus164 ˜]$ cd ˜/.ssh
[oracle@discus164 .ssh]$ ls -l *.pub
-rw-r--r-- 1 oracle oinstall 621 11月 24 13:14 id_dsa.pub
[oracle@discus164 .ssh]$ ssh discus164 cat ˜/.ssh/id_dsa.pub >> ˜/.ssh/authorized_keys
The authenticity of host 'discus164 (192.168.1.90)' can't be established.
RSA key fingerprint is 15:90:e9:89:98:8e:ed:3f:67:7b:d4:e7:97:6b:58:c5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'discus164,192.168.1.90' (RSA) to the list of known hosts.
oracle@discus164's password:
[oracle@discus164 .ssh]$ ssh discus264 cat ˜/.ssh/id_dsa.pub >> ˜/.ssh/authorized_keys
The authenticity of host 'discus264 (192.168.1.91)' can't be established.
RSA key fingerprint is 55:80:d3:23:4f:82:44:4b:b8:89:02:d8:69:31:7e:f5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'discus264,192.168.1.91' (RSA) to the list of known hosts.
oracle@discus264's password:
[oracle@discus164 .ssh]$ scp ˜/.ssh/authorized_keys discus264:.ssh/authorized_keys
oracle@discus264's password:
authorized_keys 100% 1242 1.2KB/s 00:00
[oracle@discus164 .ssh]$ chmod 600 ˜/.ssh/authorized_keys
[oracle@discus164 .ssh]$ cd
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ ssh discus164 hostname
Enter passphrase for key '/home/oracle/.ssh/id_dsa':
discus164.macdeoracle.jp

[oracle@discus164 ˜]$ ssh discus264 hostname
Enter passphrase for key '/home/oracle/.ssh/id_dsa':
discus264.macdeoracle.jp
[oracle@discus164 ˜]$


確認! gird infrastructureユーザとOracle所有者の両方で。

[oracle@discus164 ˜]$ 
[oracle@discus164 ˜]$ exec /usr/bin/ssh-agent $SHELL
[oracle@discus164 ˜]$ /usr/bin/ssh-add
Enter passphrase for /home/oracle/.ssh/id_dsa:
Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ ssh discus164 hostname
discus164.macdeoracle.jp
[oracle@discus164 ˜]$ ssh discus264 hostname
discus264.macdeoracle.jp
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ exit
exit
[root@discus164 ˜]# su - grid
[grid@discus164 ˜]$ exec /usr/bin/ssh-agent $SHELL
[grid@discus164 ˜]$ /usr/bin/ssh-add
Enter passphrase for /home/grid/.ssh/id_dsa:
Identity added: /home/grid/.ssh/id_dsa (/home/grid/.ssh/id_dsa)
[grid@discus164 ˜]$ ssh discus164 hostname
discus164.macdeoracle.jp
[grid@discus164 ˜]$ ssh discus264 hostname
discus264.macdeoracle.jp
[grid@discus164 ˜]$


最後に、sttyコマンドよるインストールエラーメッセージ抑止(全ノードの grid/oracleユーザで実施)

参考:Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux - 2.14.5 インストール中にsttyコマンドによって発生するエラーの防止

[grid@discus164 ˜]$ su - oracle
パスワード:
[oracle@discus164 ˜]$ vi .bashrc
[oracle@discus164 ˜]$ cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions
if [ -t 0 ]; then
stty intr ^C
fi
[oracle@discus164 ˜]$


ここで、やる予定ではなかったのですが、次いでなのでNTPの設定もついでにやっちゃいました。

Host OS側で公開NTPサーバと同期、VirtualBox上に作成したRACを構成する各Guest OSは、Host OSをNTPサーバとして同期する。
このようにしておけば公開NTPサーバを参照するのはHost OSだけなので余計な問い合わせを押さえることができますよね。


RACを構成する全ノード及び、iSCSIでも同じ構成にしてあります。ちなみに、192.168.1.2がHost OS

/etc/ntp.confと/etc/sysconfig/ntpdで構成します。ntpはslewモードで調整するよう設定します。

[root@discus164 ˜]# cat /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
#restrict -6 ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).

#broadcast 192.168.1.255 key 42 # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 key 42 # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 key 42 # manycast client

# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
#server 127.127.1.0
#fudge 127.127.1.0 stratum 10

# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys

# Specify the key identifiers which are trusted.
#trustedkey 4 8 42

# Specify the key identifier to use with the ntpdc utility.
#requestkey 8

# Specify the key identifier to use with the ntpq utility.
#controlkey 8
server 192.168.1.2
server 192.168.1.2
server 192.168.1.2
restrict 192.168.1.2 mask 255.255.255.255 nomodify notrap noquery
[root@discus164 ˜]#

[root@discus164 ˜]# cat /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=yes

# Additional options for ntpdate
NTPDATE_OPTIONS="-B"
[root@discus164 ˜]#


HostOS側は公開NTPサーバと同期するので以下のような設定にしてあります。

[root@lampeye ˜]# cat /etc/ntp.conf
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1

# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server -4 ntp.nict.jp minpoll 8 maxpoll 12
server -4 ntp.nict.jp minpoll 8 maxpoll 12
server -4 ntp.nict.jp minpoll 8 maxpoll 12

#broadcast 192.168.1.255 key 42 # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 key 42 # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 key 42 # manycast client

# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 127.127.1.0 #local clock
fudge 127.127.1.0 stratum 10

# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()'ing
# it to the file.
driftfile /var/lib/ntp/drift

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography.
keys /etc/ntp/keys

# Specify the key identifiers which are trusted.
#trustedkey 4 8 42

# Specify the key identifier to use with the ntpdc utility.
#requestkey 8

# Specify the key identifier to use with the ntpq utility.
#controlkey 8
restrict ntp.nict.jp mask 255.255.255.255 nomodify notrap noquery
[root@lampeye ˜]#

[root@lampeye ˜]# cat /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=yes

# Additional options for ntpdate
NTPDATE_OPTIONS="-B"
[root@lampeye ˜]#


service ntpd restart で再起動。しばらくしてから…

Host OSがntpサーバと同期できているか確認!!

[root@lampeye ˜]# ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
*210.171.226.40 .NICT. 1 u 38 1024 377 10.447 59.103 9.904
127.127.1.0 .LOCL. 10 l 22 64 377 0.000 0.000 0.001
[root@lampeye ˜]#

公開NTPサーバと同期できています。:)


次はRACを構成する各ノードでHost OSと同期しているか確認します。"*"が表示されているのでうまくいっているようですね。 :)

[root@discus164 ˜]# ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.1.2 210.171.226.40 2 u 95 128 377 0.179 121.450 39.443
[root@discus164 ˜]#

[root@discus264 ˜]# ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.1.2 210.171.226.40 2 u 5 128 377 0.288 214.652 43.610
[root@discus264 ˜]#

[root@arowana2 ˜]# ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.1.2 210.171.226.40 2 u 35 128 377 0.278 -83.188 0.087
[root@arowana2 ˜]#

ということで次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9
VirtualBox de Oracle11g R2 RAC #10

| | | コメント (0) | トラックバック (0)

2010年12月21日 (火)

VirtualBox de Oracle11g R2 RAC #10

VirtualBox de Oracle11g R2 RACのつづきです。

今回は、カーネルパラメータの調整、その他。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

Oracle Databaseインストレーション・ガイド 11gリリース2(11.2) for Linux - 2.8 Oracleインストール所有者のシェル制限の構成

前述のマニュアルに従い各構成ファイルを設定します。(RACを構成する全ノードで実施します。)

/etc/security/limits.confの設定(差分を載せています)

[root@discus164 security]# diff -u limits.conf.org limits.conf
--- limits.conf.org 2010-03-12 02:24:15.000000000 +0900
+++ limits.conf 2010-11-24 11:10:30.000000000 +0900
@@ -48,3 +48,11 @@
#@student - maxlogins 4

# End of file
+grid soft nproc 2047
+grid hard nproc 16384
+grid soft nofile 1024
+grid hard nofile 65536
+oracle soft nproc 2047
+oracle hard nproc 16384
+oracle soft nofile 1024
+oracle hard nofile 65536
[root@discus164 security]#


/etc/pam.d/loginの設定(差分のみ載せています)

[root@discus164 pam.d]# diff -u login.org login
--- login.org 2010-01-20 19:36:29.000000000 +0900
+++ login 2010-11-24 11:16:33.000000000 +0900
@@ -12,3 +12,4 @@
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open
session optional pam_keyinit.so force revoke
+session required pam_limits.so
[root@discus164 pam.d]#


/etc/profileの設定(差分のみ載せています)

[root@discus164 etc]# diff -u profile.org profile
--- profile.org 2009-09-22 08:27:09.000000000 +0900
+++ profile 2010-11-24 11:21:27.000000000 +0900
@@ -56,3 +56,12 @@

unset i
unset pathmunge
+if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
+ if [ $SHELL = "/bin/ksh" ]; then
+ ulimit -p 16384
+ ulimit -n 65536
+ else
+ ulimit -u 16384 -n 65536
+ fi
+ umask 022
+fi
[root@discus164 etc]#


メモリ及びスワップの要件確認(RACを構成する全ノードで実施)
Oracle Databaseインストレーション・ガイド 11gリリース2(11.2) for Linux - 2.2.1 メモリー要件

[root@discus264 ~]# 
[root@discus264 ~]# cat /proc/meminfo | grep MemTotal
MemTotal: 4051640 kB
[root@discus264 ~]# cat /proc/meminfo | grep SwapTotal
SwapTotal: 6094840 kB
[root@discus264 ~]#


カーネルパラメータの設定(RACを構成する全ノードで実施)
Oracle Databaseインストレーション・ガイド 11gリリース2(11.2) for Linux - 2.9 カーネル・パラメータの構成

[root@discus164 ~]# sysctl -a | grep -E '(se|sh)m|file-max|aio-max-nr|ip_local_port_range|(w|r)mem_(default|max)'
net.ipv4.ip_local_port_range = 32768 61000
net.core.rmem_default = 129024
net.core.wmem_default = 129024
net.core.rmem_max = 131071
net.core.wmem_max = 131071
vm.hugetlb_shm_group = 0
kernel.sem = 250 32000 32 128
kernel.shmmni = 4096
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
fs.aio-max-nr = 65536
fs.file-max = 371217
[root@discus164 ~]#

変更の必要があるのはsem/file-max/aio-max-nr/ip_local_port_range/rmem/wmenね。マニュアルの推奨値に設定します。
(以下、差分だけ載せています。)

[root@discus164 etc]# diff -u sysctl.conf.org sysctl.conf
--- sysctl.conf.org 2010-11-24 12:17:12.000000000 +0900
+++ sysctl.conf 2010-11-24 12:17:48.000000000 +0900
@@ -33,3 +33,12 @@

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
+# parameter setting for oracle
+net.ipv4.ip_local_port_range = 9000 65500
+kernel.sem = 250 32000 100 128
+fs.aio-max-nr = 1048576
+fs.file-max = 6815744
+net.core.rmem_default = 262144
+net.core.rmem_max = 4194304
+net.core.wmem_default = 262144
+net.core.wmem_max = 1048576
[root@discus164 etc]#
[root@discus164 etc]#
[root@discus164 etc]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.ip_local_port_range = 9000 65500
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
[root@discus164 etc]#


次回は、RACノード間リモートアクセスの構成へ続きます!(本場のミソカツ食べたお)






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8
VirtualBox de Oracle11g R2 RAC #9

| | | コメント (0) | トラックバック (0)

2010年12月19日 (日)

VirtualBox de Oracle11g R2 RAC #9

VirtualBox de Oracle11g R2 RACのつづきです。

さて、やっと、Oracle所有者と関連ディレクトリの作成及び環境変数の設定作業まできました〜。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2その3
  6. Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

・Oracle所有者、Oracle Grid Infrastructureユーザの作成と関連ディレクトリの作成及び環境変数の設定


Oracle11g R2からOracle Grid Infrastructure(以前はOracle Clusterwareって言われていたやつにASMが組み込まれたと思えばいいのかな?)となり、Oracle所有者以外にOracle Grid Infrastructreユーザの作成が推奨されるようになったので、今回からはOracle所有者に加えてOracle Grid Infrastructureユーザも作成します。

さらに、asmadminやasmdbaといった新顔のグループも必要になり以前より手間が増えてる。 :)

グループの追加方法や、ユーザの作成方法はコマンドでやるもよし、GUIでやるもよし。好きなのを選べばよいと思います。
ノード数が多いとGUIではやらないと思いますけど2ノードですから気にする事ないと思いますよ。:)

で、フループも必要最低限で、oinstall/dba/asmadmin/asmdbaの4グループを作成します。

グループやユーザをコマンドで作成する方法はマニュアルにも記載されていので省略します。
参考:
http://download.oracle.com/docs/cd/E16338_01/install.112/b56271/prelinux.htm#CFIJDFIB
http://download.oracle.com/docs/cd/E16338_01/install.112/b56273/pre_install.htm#BABHHEJD
http://download.oracle.com/docs/cd/E16338_01/install.112/b56271/prelinux.htm#BABBIDCF


以下完成した状態、以下のようになっていればOK. 
[root@discus164 ˜]# 
[root@discus164 ˜]# cat /etc/group | grep -E '(oinstall|dba|asm*)'
oinstall:x:601:oracle,grid
dba:x:602:oracle
asmadmin:x:603:grid
asmdba:x:604:oracle,grid
[root@discus164 ˜]#
[root@discus164 ˜]# cat /etc/passwd | grep -E '(oracle|grid)'
oracle:x:601:601:oracle:/home/oracle:/bin/bash
grid:x:602:601:grid:/home/grid:/bin/bash
[root@discus164 ˜]#
[root@discus164 ˜]# id -a grid
uid=602(grid) gid=601(oinstall) 所属グループ=601(oinstall),603(asmadmin),604(asmdba) context=user_u:system_r:unconfined_t
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# id -a oracle
uid=601(oracle) gid=601(oinstall) 所属グループ=601(oinstall),602(dba),604(asmdba) context=user_u:system_r:unconfined_t


・ORACLE_BASE及びORACLE_HOMEディレクトリの作成

Oracle Grid InfrastructureユーザのORACLE_BASE/ORACLE_HOMEディレクトリ及び、Oracleソフトウェア所有者のORACLE_BASEディレクトリを作成しておきます。

Oracle Grid InfrastrucreユーザのORACLE_BASE=/u01/app/grid、ORACLE_HOME=/u01/app/11.2.0/grid、そして、Oracleソフトウェア所有者のORACLE_BASE=/u01/app/oracle となるように作成しておきます。

RACを構成する全ノードで実施します。

[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# mkdir -p /u01/app/grid
[root@discus164 ˜]# mkdir -p /u01/app/11.2.0/grid
[root@discus164 ˜]# chown -R grid:oinstall /u01
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# mkdir -p /u01/app/oracle
[root@discus164 ˜]# chown -R oracle:oinstall /u01/app/oracle
[root@discus164 ˜]# chmod -R 755 /u01
[root@discus164 ˜]#

[root@discus264 ˜]#
[root@discus264 ˜]#
[root@discus264 ˜]# mkdir -p /u01/app/grid
[root@discus264 ˜]# mkdir -p /u01/app/11.2.0/grid
[root@discus264 ˜]# chown -R grid:oinstall /u01
[root@discus264 ˜]#
[root@discus264 ˜]#
[root@discus264 ˜]# mkdir -p /u01/app/oracle
[root@discus264 ˜]# chown -R oracle:oinstall /u01/app/oracle
[root@discus264 ˜]# chmod -R 755 /u01
[root@discus264 ˜]#
[root@discus264 ˜]#


・環境変数


インストールの際には必要最低限の環境変数でいいんだけどね。設定してても問題になった事は、いまのところないのでこの時点で設定しちゃってます。

参考:
http://download.oracle.com/docs/cd/E16338_01/server.112/b56317/admin_ora.htm#i46652

ところで、Oracle11g だけど、ORA_NLS10なんだね。

でも、http://otndnld.oracle.co.jp/document/products/oracle11g/111/doc_dvd/server.111/E05816-01/app_initparam.htm#BABGIEFDというGateways系のパラメータではORA_NLS11で同じパスをさすんだけど、紛らわしいから環境変数もORA_NLS11にしちゃえばわかりやすいのにと思うのは私だけ?…


・Oracle Grid Infrastructureユーザの環境変数の例(RACを構成する全ノードのOracle Grid Infrastructureユーザに設定します)

Oracleソフトウェア所有者とはORACLE_SID、ORACLE_BASE環境変数の値が異なっていることに注意!
Oracle Grid InfrastructureユーザはASM管理者でもあるので。

この辺の設定も以前より手間が増えた部分ですね〜。

なお、ついでなので2.14.5 インストール中にsttyコマンドによって発生するエラーの防止対応を行っています。


[grid@discus164 ˜]$  cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions
if [ -t 0 ]; then
stty intr ^C
fi
[grid@discus164 ˜]$
[grid@discus164 ˜]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ˜/.bashrc ]; then
. ˜/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

#for Oracle Grid Infrastructure Owner
#for Grid Infrastructure Owner
# ORACLE_SID : discus164では+ASM1 , discus264では+ASM2をセット
export ORACLE_SID=+ASM1
# ORACLE_BASE/ORACLE_HOME: Grid InfrastructreユーザとOracleソフトウェア所有者では異なるので要注意
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_PATH=.:/u01/app/oracle/common/oracle/sql
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$CLASSPATH
export NLS_LANG=Japanese_japan.al32utf8
export PATH=.:$ORACLE_HOME/bin:$PATH
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export TNS_ADMIN=$ORACLE_HOME/network/admin
umask 022
[grid@discus164 ˜]$
[grid@discus164 ˜]$

[grid@discus264 ˜]$  cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions
if [ -t 0 ]; then
stty intr ^C
fi
[grid@discus264 ˜]$
[grid@discus264 ˜]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ˜/.bashrc ]; then
. ˜/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

#for Grid Infrastructure Owner
# ORACLE_SID : discus164では+ASM1 , discus264では+ASM2をセット
export ORACLE_SID=+ASM2
# ORACLE_BASE/ORACLE_HOME: Grid InfrastructreユーザとOracleソフトウェア所有者では異なるので要注意
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_PATH=.:/u01/app/oracle/common/oracle/sql
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$CLASSPATH
export NLS_LANG=Japanese_japan.al32utf8
export PATH=.:$ORACLE_HOME/bin:$PATH
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export TNS_ADMIN=$ORACLE_HOME/network/admin
umask 022
[grid@discus264 ˜]$
[grid@discus264 ˜]$

・Oracleソフトウェア所有者の環境変数の例(RACを構成する全ノードのOracleソフトウェア所有者に設定します)


以下、全ノードの設定内容。Oracleソフトウェア所有者の役割はいままで通り。今回作成するデータベースのSIDプリフィックスを orcl にするので
各ノードのORACLE_SID環境変数は orcl1/orcl2 に設定してあります。
[oracle@discus164 ˜]$  cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions
if [ -t 0 ]; then
stty intr ^C
fi
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ˜/.bashrc ]; then
. ˜/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

#for Oracle Owner
# ORACLE_SID : discus164ではorcl1 , discus264ではorcl2をセット
export ORACLE_SID=orcl1
# ORACLE_BASE/ORACLE_HOME: Grid InfrastructreユーザとOracleソフトウェア所有者では異なるので要注意
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_PATH=.:$ORACLE_BASE/common/oracle/sql
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$CLASSPATH
export NLS_LANG=Japanese_japan.al32utf8
export PATH=.:$ORACLE_HOME/bin:$PATH
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export TNS_ADMIN=$ORACLE_HOME/network/admin
# enterprise manager向け (作成するデータベースユニーク名は:orclなのでorclを設定しておく)
export ORACLE_UNQNAME=orcl
umask 022
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$

[oracle@discus264 ˜]$  cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions
if [ -t 0 ]; then
stty intr ^C
fi
[oracle@discus264 ˜]$
[oracle@discus264 ˜]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ˜/.bashrc ]; then
. ˜/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

#for Oracle Owner
# ORACLE_SID : discus164ではorcl1 , discus264ではorcl2をセット
export ORACLE_SID=orcl2
# ORACLE_BASE/ORACLE_HOME: Grid InfrastructreユーザとOracleソフトウェア所有者では異なるので要注意
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_PATH=.:$ORACLE_BASE/common/oracle/sql
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/oracm/lib:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib:$CLASSPATH
export NLS_LANG=Japanese_japan.al32utf8
export PATH=.:$ORACLE_HOME/bin:$PATH
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export TNS_ADMIN=$ORACLE_HOME/network/admin
umask 022
[oracle@discus264 ˜]$

ということで次回カーネルパラメータなどの設定へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7
VirtualBox de Oracle11g R2 RAC #8

| | | コメント (0) | トラックバック (0)

2010年12月18日 (土)

VirtualBox de Oracle11g R2 RAC #8

VirtualBox de Oracle11g R2 RACのつづきです。

前回はiSCSI targetにローカルデバイス名をマッピングしたとこまででした。今回は前回iSCSIターゲットをマッピングしたローカルデバイスにパーティションを作成します。(
手順は前回と同じなので、そちらも参考に。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1その2、その3
  6. Oracle所有者と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成(念のために行った、多分、実施しなくても大丈夫だと思うけど。別途確認する予定)
  9. Oracle RACノード構成ファイルの確認
  10. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  11. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  12. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  13. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  14. Oracle11g R2 11.2.0.1.0 examplesのインストール
  15. Oracle Cluster databaseの作成
  16. Net Serviceの確認
  17. Oralce Grid InsfastructureとDatabase構成の確認
  18. Clusterの開始と停止の確認
  19. 簡単なTransparent Application Failover (TAF)の確認

・パーティション

iSCSIターゲットを対応づけたローカルデバイスへfdiskコマンドでパーティションを作成します。

今回は、/dev/iscsi/openfiler:asm1/part、/dev/iscsi/openfiler:asm2/part、/dev/iscsi/openfiler:asm3/part、/dev/iscsi/openfiler:asm4/part、/dev/iscsi/openfiler:crs1/part、/dev/iscsi/openfiler:crs2/partに対して1パーティションを作成し利用可能な全シリンダを割り当てる。
尚、この操作はRACを構成するノードの1ノードからrootユーザとして実施する。

手順は前回の記事を参照のこと。ということで省略します。

最終的に以下の赤字部分の6パーティションが追加されることになります。RACを構成する全ノードで実施。

[root@discus164 ˜]# partprobe
[root@discus164 ˜]# fdisk -l

Disk /dev/sda: 53.6 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 6527 52323705 8e Linux LVM

Disk /dev/sde: 2147 MB, 2147483648 bytes
67 heads, 62 sectors/track, 1009 cylinders
Units = シリンダ数 of 4154 * 512 = 2126848 bytes

デバイス Boot Start End Blocks Id System
/dev/sde1 1 1009 2095662 83 Linux

Disk /dev/sdc: 22.5 GB, 22548578304 bytes
64 heads, 32 sectors/track, 21504 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes

デバイス Boot Start End Blocks Id System
/dev/sdc1 1 21504 22020080 83 Linux

Disk /dev/sdd: 22.5 GB, 22548578304 bytes
64 heads, 32 sectors/track, 21504 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes

デバイス Boot Start End Blocks Id System
/dev/sdd1 1 21504 22020080 83 Linux

Disk /dev/sdf: 22.5 GB, 22548578304 bytes
64 heads, 32 sectors/track, 21504 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes

デバイス Boot Start End Blocks Id System
/dev/sdf1 1 21504 22020080 83 Linux

Disk /dev/sdg: 2147 MB, 2147483648 bytes
67 heads, 62 sectors/track, 1009 cylinders
Units = シリンダ数 of 4154 * 512 = 2126848 bytes

デバイス Boot Start End Blocks Id System
/dev/sdg1 1 1009 2095662 83 Linux

Disk /dev/sdb: 22.5 GB, 22548578304 bytes
64 heads, 32 sectors/track, 21504 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes

デバイス Boot Start End Blocks Id System
/dev/sdb1 1 21504 22020080 83 Linux
[root@discus164 ˜]#
[root@discus164 ˜]#


・確認
パーティションの作成が済んだらRACの全ノードでrootユーザとしてパーティションが認識されているか確認する。RACを構成する全ノードで。

[root@discus164 ˜]# 
[root@discus164 ˜]#
[root@discus164 ˜]# cd /dev/disk/by-path; ls -l *openfiler* | awk '{print $9 " " $10 " " $11}'
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm1-lun-0 -> ../../sdb
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm1-lun-0-part1 -> ../../sdb1
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm2-lun-0 -> ../../sdc
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm2-lun-0-part1 -> ../../sdc1
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm3-lun-0 -> ../../sdd
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm3-lun-0-part1 -> ../../sdd1
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm4-lun-0 -> ../../sdf
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm4-lun-0-part1 -> ../../sdf1
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs1-lun-0 -> ../../sde
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs1-lun-0-part1 -> ../../sde1
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs2-lun-0 -> ../../sdg
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs2-lun-0-part1 -> ../../sdg1
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# ls -l /dev/iscsi/*/*
lrwxrwxrwx 1 root root 9 12月 18 13:40 /dev/iscsi/openfiler:asm1/part -> ../../sdb
lrwxrwxrwx 1 root root 10 12月 18 13:40 /dev/iscsi/openfiler:asm1/part1 -> ../../sdb1
lrwxrwxrwx 1 root root 9 12月 18 13:40 /dev/iscsi/openfiler:asm2/part -> ../../sdc
lrwxrwxrwx 1 root root 10 12月 18 13:40 /dev/iscsi/openfiler:asm2/part1 -> ../../sdc1
lrwxrwxrwx 1 root root 9 12月 18 13:40 /dev/iscsi/openfiler:asm3/part -> ../../sdd
lrwxrwxrwx 1 root root 10 12月 18 13:40 /dev/iscsi/openfiler:asm3/part1 -> ../../sdd1
lrwxrwxrwx 1 root root 9 12月 18 13:40 /dev/iscsi/openfiler:asm4/part -> ../../sdf
lrwxrwxrwx 1 root root 10 12月 18 13:40 /dev/iscsi/openfiler:asm4/part1 -> ../../sdf1
lrwxrwxrwx 1 root root 9 12月 18 13:40 /dev/iscsi/openfiler:crs1/part -> ../../sde
lrwxrwxrwx 1 root root 10 12月 18 13:40 /dev/iscsi/openfiler:crs1/part1 -> ../../sde1
lrwxrwxrwx 1 root root 9 12月 18 13:40 /dev/iscsi/openfiler:crs2/part -> ../../sdg
lrwxrwxrwx 1 root root 10 12月 18 13:40 /dev/iscsi/openfiler:crs2/part1 -> ../../sdg1
[root@discus164 ˜]#


2010/12//20追記
忘れてた、前回気づいたCentOS5.5でのiscsidの問題。これに対処しておかないと、Openfiler側に多数のゾンビセッションが残ってしまうので要注意!

ということで次回へつづく。






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6
VirtualBox de Oracle11g R2 RAC #7


| | | コメント (0) | トラックバック (0)

VirtualBox de Oracle11g R2 RAC #7

VirtualBox de Oracle11g R2 RACのつづきです。

前回に引き続き、Oracle RACの各ノードでiSCSIボリュームの構成です。前回は各ノードからiSCSI targetへ自動接続するまででした。
今回は、そのつづき。各ノードで接続したiSCSI targetにローカルデバイス名をマッピングします。
以前行ったCentOS5.2(x86)内容と同じ手順でのでそちらの記事も参考してくださいね。(今回はマッピングするiSCSI targetが1つ多いだけです!)

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1、その2
  6. Oracle所有者と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

・ローカルデバイス名の作成
以前の記事も参考に。
iSCSIでは再起動/再接続する度にiscsi-targetにマッピングされるSCSIデバイス名が変わってしまうことがあるので、udevでマッピングするデバイス名を固定化します。

前回までの操作がうまく行っていれば、デバイス名のマッピングは異なると思いますがRACを構成する各ノードで以下のようになっているはず。(以下、discus164での例)

[root@discus164 ˜]# (cd /dev/disk/by-path; ls -l *openfiler* | awk '{FS=" "; print $9 " " $10 " " $11}')
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm1-lun-0 -> ../../sdb
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm2-lun-0 -> ../../sde
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm3-lun-0 -> ../../sdc
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm4-lun-0 -> ../../sdf
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs1-lun-0 -> ../../sdd
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs2-lun-0 -> ../../sdg
[root@discus164 ˜]#

udevを利用してデバイス名をiscsi-targetに固定割当する。(RACの全ノードのrootユーザで実施)

[root@discus164 ˜]# 
[root@discus164 ˜]# cat /etc/udev/rules.d/55-openiscsi.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM="/etc/udev/scripts/iscsidev.sh %b",SYMLINK+="iscsi/%c/part%n"
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# cd /etc/udev/scripts
[root@discus164 scripts]# cat iscsidev.sh
#!/bin/sh

# FILE: /etc/udev/scripts/iscsidev.sh

BUS=${1}
HOST=${BUS%%:*}
[ -e /sys/class/iscsi_host ] || exit 1

file="/sys/class/iscsi_host/host${HOST}/device/session*/iscsi_session*/targetname"

target_name=$(cat ${file})

# This is not an open-scsi drive
if [ -z "${target_name}" ]; then
exit 1
fi

echo "${target_name##*.}"
[root@discus164 scripts]#
[root@discus164 scripts]# chmod 755 iscsidev.sh
[root@discus164 scripts]#
[root@discus164 scripts]# cd
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# service iscsi stop
Logging out of session [sid: 1, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Logging out of session [sid: 2, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging out of session [sid: 3, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging out of session [sid: 4, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging out of session [sid: 5, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging out of session [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Logout of [sid: 1, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Logout of [sid: 2, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 3, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Logout of [sid: 4, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 5, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Logout of [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
Stopping iSCSI daemon:
[root@discus164 ˜]# [ OK ]
[root@discus164 ˜]#
[root@discus164 ˜]# service iscsi start
iscsid が停止していますが PID ファイルが残っています
Starting iSCSI daemon: [ OK ]
[ OK ]
iSCSI ターゲットを設定中: Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal:
192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
[ OK ]
[root@discus164 ˜]#
[root@discus164 ˜]#


再接続すると各ISCSIターゲットがマッピングされているSCSIデバイス名が前回と違っているのに気づくと思います。

[root@discus164 ˜]#
[root@discus164 ˜]# (cd /dev/disk/by-path; ls -l *openfiler* | awk '{FS=" "; print $9 " " $10 " " $11}')
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm1-lun-0 -> ../../sdb
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm2-lun-0 -> ../../sdc
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm3-lun-0 -> ../../sdg
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:asm4-lun-0 -> ../../sdd
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs1-lun-0 -> ../../sdf
ip-192.168.2.92:3260-iscsi-iqn.2006-01.com.openfiler:crs2-lun-0 -> ../../sde
[root@discus164 ˜]#
[root@discus164 ˜]#

udevでiSCSIターゲットがローカルデバイスへ固定マッピングできているか確認!
うまくいってます。RACの全ノードで同じローカルデバイスへマッピングできています。

が、しか〜〜し、記事書いてて気づいたけど ":"入っちゃってた (^^;;; そゆーところはまねしないでね。
狙いとしては ":"入れるつもりはなかったっす!。ミスった〜。
今回、iSCSIターゲット名をちょっと変えてしまったので、以前から流用しているiscsidev.shスクリプトの最後の行 

echo "${target_name##*.}"

のところがイケてない>< 今回設定したiSCSIターゲット名だと

echo "${target_name#*:}"

しないと asm1やasm2だけを抜き出せない ><
記載したiscsidev.shスクリプトをそのまま利用するのであれば、IQNは、iqn.2006-01.com.openfiler:xxx.asm1のように設定する必要があります!

そー作っちゃったのでそのまま載せときます。 (^^;;;;;;

[root@discus164 ˜]# ls -l /dev/iscsi/*/*
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/openfiler:asm1/part -> ../../sdb
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/openfiler:asm2/part -> ../../sdc
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/openfiler:asm3/part -> ../../sdg
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/openfiler:asm4/part -> ../../sdd
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/openfiler:crs1/part -> ../../sdf
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/openfiler:crs2/part -> ../../sde
[root@discus164 ˜]#
[root@discus164 ˜]#

ということで、当初の設定予定とは違うローカルデバイス名にしちゃいましたがiSCSIとローカルデバイスは以下のようにマッピングしました。

iscsi-targetとローカルデバイス名の対応
iscsi-target名ローカルデバイス名
iqn.2006-01.com.openfiler:asm1 /dev/iscsi/openfiler:asm1/part
iqn.2006-01.com.openfiler:asm2 /dev/iscsi/openfiler:asm2/part
iqn.2006-01.com.openfiler:asm3 /dev/iscsi/openfiler:asm3/part
iqn.2006-01.com.openfiler:asm4 /dev/iscsi/openfiler:asm4/part
iqn.2006-01.com.openfiler:crs1 /dev/iscsi/openfiler:crs1/part
iqn.2006-01.com.openfiler:crs2 /dev/iscsi/openfiler:crs2/part


でもほんとは以下のようなローカルデバイス名にしたかったんです〜〜。ごめんなさい。

[root@discus164 ˜]# ls -l /dev/iscsi/*/*
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/asm1/part -> ../../sdb
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/asm2/part -> ../../sdc
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/asm3/part -> ../../sdg
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/asm4/part -> ../../sdd
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/crs1/part -> ../../sdf
lrwxrwxrwx 1 root root 9 12月 17 22:36 /dev/iscsi/crs2/part -> ../../sde
[root@discus164 ˜]#


いやな間違いに気づいたので、今日はこの辺で… (RAC自体で作れたんですけど、気持ち悪いので)





これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5
VirtualBox de Oracle11g R2 RAC #6

| | | コメント (0) | トラックバック (0)

2010年12月12日 (日)

Oracle11g R2 EE 11.2.0.1.0 for Solaris10 (x86_64) on VirtualBox 3.2.12 for MacOS X

Oracle11g R2 for Solaris10 (x86_64) をVirtualBox 3.2.12 for MacOS X上に構築してみた。メモリ2GBしかないとCPU的にもきついのですげ〜時間かかりましたけどね。とりあえずできるっちゅーことで。 :)

MacBook Air 13inch RAM:2GB 128GBモデルでSnow LeopardにVirtualBox 3.2.12を入れて構築してます。ちなみに、Solaris10はファイルシステムにZFSを使ってみました。

20101211_183249

20101211_183219

20101212_165313

| | | コメント (0) | トラックバック (0)

2010年12月10日 (金)

VirtualBox de Oracle11g R2 RAC #6

VirtualBox de Oracle11g R2 RACのつづきです。

前回はOpenfiler側でその準備をしたところまででした。今回はOracle RACの各ノードでiSCSIボリュームの構成です。

今回も以前行ったCentOS5.2(x86)内容と同じ手順なのでそちらの記事も参考してくださいね。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成 その1
  6. Oracle所有者と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

・RACを構成する全ノードでiscsi-initiator-utilsがインストールされていることを確認。

インストールされていなかったらyumでインストールしてね。

[root@discus164 ˜]# 
[root@discus164 ˜]#
[root@discus164 ˜]# yum list installed iscsi-initiator-utils | grep installed
iscsi-initiator-utils.x86_64 6.2.0.871-0.16.el5 installed
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# ssh discus264 "yum list installed iscsi-initiator-utils | grep installed"
root@discus264's password:
iscsi-initiator-utils.x86_64 6.2.0.871-0.16.el5 installed
[root@discus164 ˜]#
[root@discus164 ˜]#

・iscsiの起動確認、起動してなかったら service iscsi startで起動.

[root@discus164 ˜]# 
[root@discus164 ˜]# service iscsi status
iscsid (pid 1998) を実行中...
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# ssh discus264 "service iscsi status"
root@discus264's password:
iscsid (pid 1996) を実行中...
[root@discus164 ˜]#
[root@discus164 ˜]#

・自動起動の確認、自動起動になってなかったら chkconfig iscsi on で設定.

[root@discus164 ˜]# chkconfig --list iscsi
iscsi 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@discus164 ˜]#
[root@discus164 ˜]# ssh discus264 "chkconfig --list iscsi"
root@discus264's password:
iscsi 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@discus164 ˜]#
[root@discus164 ˜]#

以下、CentOS5.5では iscsiを起動・停止すればiscsidも起動・停止されるので前述のようになっていればOK.
[root@discus164 ˜]#
[root@discus164 ˜]# cat /etc/rc.d/init.d/iscsi | grep iscsid
status iscsid
/etc/init.d/iscsid start
/etc/init.d/iscsid stop
status iscsid
[root@discus164 ˜]#
[root@discus164 ˜]#

/etc/iscsi/initiatorname.iscsiの設定.わかりやすいIQNにするといいですよん。

[root@discus164 ˜]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2010-10.jp.macdeoracle.discus1
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# ssh root@discus264 "cat /etc/iscsi/initiatorname.iscsi"
root@discus264's password:
InitiatorName=iqn.2010-10.jp.macdeoracle.discus2
[root@discus164 ˜]#

・iscsi-targetの検出
OpenfilerとRACの各ノードは、VirtualBoxの内部ネットワークアダプタ(VM間でしか通信できない)を利用してprivateネットワークで繋いでおり、Openfiler側で許可したipアドレスからの接続しか受け付けないよう設定していましたよね?、覚えてます?
で、Openfiler側のprivateネットワークのipアドレスは、192.168.2.92と設定したので、 iscsi-targetの検出先は前述のipアドレスということにまります。

なので iscsiadmコマンドの -p パラメータに設定する ipアドレスは 192.168.2.92となっているわけです。

iscsi-targetが検出されました〜! 検出されたiscsi-targetへの接続確認、自動接続設定へと続きます。

[root@discus164 ˜]# 
[root@discus164 ˜]# cat /etc/hosts | grep arowana2-priv
192.168.2.92 arowana2-priv.macdeoracle.jp arowana2-priv
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# iscsiadm -m discovery -t sendtargets -p 192.168.2.92
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm1
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm2
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm4
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:crs2
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm3
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:crs1
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# ssh discus264 "iscsiadm -m discovery -t sendtargets -p 192.168.2.92"
root@discus264's password:
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm3
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:crs2
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm1
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm2
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:asm4
192.168.2.92:3260,1 iqn.2006-01.com.openfiler:crs1
[root@discus164 ˜]#
[root@discus164 ˜]#

・iscsi-targetへの手動接続(RACを構成する全ノードで試してください。以下、discus164からの例。)

[root@discus164 ˜]# 
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:crs1 -p 192.168.2.92 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:crs2 -p 192.168.2.92 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm1 -p 192.168.2.92 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm2 -p 192.168.2.92 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm3 -p 192.168.2.92 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm4 -p 192.168.2.92 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
[root@discus164 ˜]#

ちなみに…手動ログアウトする場合は -l の部分を -u に変えて実行すればOK.

[root@discus164 ˜]# 
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:crs1 -p 192.168.2.92 -u
Logging out of session [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Logout of [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
[root@discus164 ˜]#
[root@discus164 ˜]#

iscsi-targetへの自動接続設定(RACを構成する全ノードで実施します。以下discus164からの例)

[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:crs1 -p 192.168.2.92 --op update -n node.startup -v automatic
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:crs2 -p 192.168.2.92 --op update -n node.startup -v automatic
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm1 -p 192.168.2.92 --op update -n node.startup -v automatic
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm2 -p 192.168.2.92 --op update -n node.startup -v automatic
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm3 -p 192.168.2.92 --op update -n node.startup -v automatic
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:asm4 -p 192.168.2.92 --op update -n node.startup -v automatic
[root@discus164 ˜]
[root@discus164 ˜]#

ちなみに…手動接続に戻す場合は automatic の部分を manual に変えて実行すればOK.(多分、使う事ないと思いますけど、念のため)

[root@discus164 ˜]# 
[root@discus164 ˜]#
[root@discus164 ˜]# iscsiadm -m node -T iqn.2006-01.com.openfiler:crs1 -p 192.168.2.92 --op update -n node.startup -v manual
[root@discus164 ˜]#
[root@discus164 ˜]#

自動接続設定がうまく言っているか確認しましょう。
これまでの手順通りに操作していれば、RACを構成する各ノードから各iscsi-targetへ接続されている状態になっているはずです。

まず、サービスを停止してiscsi-targetからログアウトされるか確認してみます。

[root@discus164 ˜]# 
[root@discus164 ˜]#
[root@discus164 ˜]# service iscsi stop
Logging out of session [sid: 1, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Logging out of session [sid: 2, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging out of session [sid: 3, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging out of session [sid: 4, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging out of session [sid: 5, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging out of session [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Logout of [sid: 1, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Logout of [sid: 2, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 3, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Logout of [sid: 4, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 5, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Logout of [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
Stopping iSCSI daemon:
[root@discus164 ˜]# [ OK ]
[root@discus164 ˜]#
[root@discus164 ˜]# ssh discus264 "service iscsi stop"
root@discus264's password:
Logging out of session [sid: 1, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging out of session [sid: 2, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging out of session [sid: 3, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Logging out of session [sid: 4, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging out of session [sid: 5, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging out of session [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Logout of [sid: 1, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Logout of [sid: 2, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 3, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Logout of [sid: 4, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 5, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Logout of [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
Stopping iSCSI daemon:
[root@discus164 ˜]#

うまくいきました。次はiscsiサービスを起動して各iscsi-targetへ自動接続されるか確認します。

[root@discus164 ˜]# service iscsi start
iscsid が停止していますが PID ファイルが残っています
Starting iSCSI daemon: [ OK ]
[ OK ]
iSCSI ターゲットを設定中: Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
[ OK ]
[root@discus164 ˜]#
[root@discus164 ˜]#
[root@discus164 ˜]# ssh discus264 "service iscsi start"
root@discus264's password:
iscsid が停止していますが PID ファイルが残っています
[ OK ] iSCSI daemon: [ OK ]
[ OK ]
iSCSI ターゲットを設定中: Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
[ OK ]
[root@discus164 ˜]#
[root@discus164 ˜]#

うまく接続できたようです。

最後にOpenfilerの管理画面で接続状態を確認してみます。

20101210_150418

今日はこの辺で。





これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4
VirtualBox de Oracle11g R2 RAC #5

| | | コメント (0) | トラックバック (0)

2010年12月 9日 (木)

VirtualBox de Oracle11g R2 RAC #5

VirtualBox de Oracle11g R2 RACのつづきです。

Openfiler2.3のインストールとiSCSIボリュームの構成なのですが、VMでもリアルなマシンへのインストールとの違いは無いので詳しくは書きません。以前の記事を参考にしてくださいね。(ネットワーク関連は前回の記事もあわせてご覧ください

なお、今回Openfier2.3 (x86)向けに作成したVM (x86 red hat linux)は、CPU*2/RAM:2GB/DISK:100GBとしてあります。
Openfiler2.3 (x86)インストール時のパーティションは/bootに100MB、/に4GB、swapにメモリサイズの倍で4GBを配分し、残りの91.9GBを未割当としました。
未割当とした91.9GBをiSCSIボリュームで利用することになります。(この未割当分が大切。この時点ではパーティションに割り当てないで残しておいてね)

NOTE:
この時点では/etc/hostsファイルだけで、DNSは利用していません。Oracle11g R2 11.2.0.1.0 RACインストール事前作業Oracle RACノード間リモートアクセスの構成が終わったあとでDNSの構成を行います。(OpenfilerにDNSを構成することにしたので、このタイミングでDNSの構成とhostsファイルの構成を行うほうがよいとは思うのですが…


Openfiler2.3によるiSCSIボリュームの構成はこちらを参考に…
Mac de Oracle - 10万円未満 de RAC (11g編)#4 - 4. Openfiler2.3によるiSCSIボリュームの構成

以前と違う点は、Oracle11g R2からVoting diskとOCRがASM管理可能となったので全ボリュームをASM管理で行うことにしました。

という1点だけ。(iSCSIボリュームで利用する残り91.9GBをどのような割合で論理ボリュームへ配分したかは後述)

以前までOracleの共有ディスク・クラスタ・ファイルシステム(ocfs2)をインストールしていましたが今回は利用しません。Oracle11g R2でもVoting diskとOCRの共有ディスク・クラスタ・ファイルシステム管理は可能なようですが…)

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成
  6. Oracle所有者と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

以前の記事参照ください…ばかりだと、今回書く事がなくなってしまうのでiSCSIのボリューム構成で今回変えたところを書いておきますね。
(今回はすべてASM管理下に置くので…)

Openfiler2.3(x86)インストール完了後、/etc/hostsに設定した内容は以下の通り。

[root@arowana2 ˜]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost

192.168.1.92 arowana2.macdeoracle.jp arowana2
192.168.1.90 discus164.macdeoracle.jp discus164
192.168.1.91 discus264.macdeoracle.jp discus264

192.168.2.92 arowana2-priv.macdeoracle.jp arowana2-priv
192.168.2.90 discus164-iscsi.macdeoracle.jp discus164-iscsi
192.168.2.91 discus264-iscsi.macdeoracle.jp discus264-iscsi

192.168.1.2 lampeye.macdeoracle.jp lampeye
[root@arowana2 ˜]#


今回作成するiSCSI論理ボリュームおよびターゲット名などは以下の通り。
(Openfilerの構成手順はMac de Oracle - 10万円未満 de RAC (11g編)#4を参照のこと。)

・ネットワークアクセスの構成

前回の書いた通り、iSCSI専用の経路でアクセスできるようdiscus164-iscsiおよびdiscus264-iscsiからのみOpenfilerへ接続できるよう設定した。
Network_access_configuration_2


・Partitionの作成および、Volume groupの作成

91.9GBの未割当領域を/dev/sda4としてパーティション割当を行った後、rac1というVolume Groupを作成し/dev/sda4を割り当てる。

Block_device_management

Volume_group_management


・論理ボリュームの割当

rac1(前述の操作で作成したVolume Group)を選択し、論理ボリュームを追加する。今回はcrs向けに2GBの論理ボリューム2つ、OracleのData向けに21GBの論理ボリューム2つ、そして、Fast Recovory Area向けに21GBの論理ボリュームを2つを追加作成する。(91.9GBのうち、88GBを利用したので3.9GBほど残っちゃいましたけどね)

Volume_management


・iSCSI Target Qualified Name(IQN)の設定

crs向けに2つ、Oracle data file向けに2つ、Oralce Fast Recovery Area向けに2つのボリュームグループを作成したので、それぞれにiSCSI Target Qualified Nameを割り当てた。

CRS向け - iqn.2006-01.com.openfiler:crs1 および crs2
Oracle Data file向け - iqn.2006-01.com.openfiler:asm1 および asm2
Oracle Fast Recovery Area向け - iqn.2006-01.com.openfiler:asm3 および asm4

asm1〜4より、data1/2とか fra1/2にしたほうがわかりやすかったですね〜…後から反省。


Iscsi_target


・Network ACLの設定

RACを構成する2ノードのiscsi用privateネットワーク(discus164-iscsiおよび、discus264-iscsi(からのアクセスを許可するよう設定した。

Network_acl


・LUNマッピング

iSCSI Target Qualified Name(IQN)の設定で作成した各IQNをLUNへマッピングする。
マッピング内容は以下の通り。

Lun_iqn_mapping

ここまでくればiSCSIの準備は終了!

次回へつづく。





これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3
VirtualBox de Oracle11g R2 RAC #4

| | | コメント (0) | トラックバック (0)

2010年12月 8日 (水)

VirtualBox de Oracle11g R2 RAC #4

VirtualBox de Oracle11g R2 RACのつづきです。

今回は、VirtuslBoxで作成したRed hat用64bitVMへCentOS5.5 (x86_64)をインストールします。が、もう既に何度も行っていることなのでインストール自体の解説は省略します。足りないパッケージがあればyumで都度インストールでもいいですし :) 端折りすぎと突っ込まれそうだが。
過去になんどか書いているのでそちらを参照していただいてもいいですし、元ネタを参照するもよし。(但し元ネタはOracle Enterprise Linuxですが、同じ系統なのでそれほど違いはないはず…Oracle Enterprise Linuxインスコしたことのないのに言うのもなんなんですが…)

Networkの構成については省略しないで書いてあるので m(_ _)m

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成
  6. Oracle所有者と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認

・CentOS5.5のダウンロード、DVDのisoイメージをダウンロードして今後のためにDVDに焼いておいた。MacOS XでisoイメージのDVDを焼く方法は以前の記事を参照のこと。
http://ftp.riken.jp/Linux/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-bin-DVD-1of2.iso
http://ftp.riken.jp/Linux/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-bin-DVD-2of2.iso

CentOS5.5になったからといって、特にインストール方法に大きな違いはないので詳細は以前の記事や、元ネタなどをご参考に。(元ネタはOracle Enterprise Linuxを利用していますが、系統は同じRed hatなので注意点などほぼ同じだと思います。)ちょっとだけ書いてくと、今回作成したCentOS5.5 x86_64用VMはメモリ4GB、DISK容量50GBを割り当てているので、swapはメモリと同サイズの4GB、/bootには100MB、残りを/へ配分しました。
また、SELinuxはPermissiveモード、FirewallはDisableにしておくというのはお約束なのでお忘れなく。FirewallをEnableにしたままだといろいろとハマりまるのでしっかりチェックしておくと吉ですよん。(ハマった人→私)


Oracle11g R2からネットワーク要件が変りネットワーク周りは大切なのでしっかり書いておきますね。
適当に書いた配置図も参照のこと。)また、IPv6はOFFで固定IPとしています。(IPv6はOFFにしなくても問題ないですが、今回のネタでは不要なので。)

以下、Openfiler(iSCSI)のノードも含めたネットワーク構成は以下。

RACを構成するノード1 (hostname=discus164.macdeoracle.jp)
device ip address sub-netmask 備考
eth0(ネットワークアダプタ:ブリッジアタプタ) 192.168.1.90 255.255.255.0 パブリックネットワーク用、ギガビット
eth1(ネットワークアダプタ:内部ネットワーク) 192.168.2.90 255.255.255.0 プライベートネットワーク用(iSCSIアクセス用)、ギガビット
eth2(ネットワークアダプタ:内部ネットワーク) 192.168.3.90 255.255.255.0 プライベートネットワーク用(Interconnect用)、ギガビット
RACを構成するノード2 (hostname=discus264.macdeoracle.jp)
device ip address sub-netmask 備考
eth0(ネットワークアダプタ:ブリッジアダプタ) 192.168.1.91 255.255.255.0 パブリックネットワーク用、ギガビット
eth1(ネットワークアダプタ:内部ネットワーク) 192.168.2.91 255.255.255.0 プライベートネットワーク用(iSCSIアクセス用)、ギガビット
eth2(ネットワークアダプタ:内部ネットワーク) 192.168.3.91 255.255.255.0 プライベートネットワーク用(Interconnect用)、ギガビット
iSCSIを構成するノード (hostname=arowana2.macdeoracle.jp)
device ip address sub-netmask 備考
eth0(ネットワークアダプタ:ブリッジアダプタ) 192.168.1.92 255.255.255.0 パブリックネットワーク用、ギガビット
eth1(ネットワークアダプタ:内部ネットワーク) 192.168.2.92 255.255.255.0 プライベートネットワーク用(iSCSIアクセス用)、ギガビット


上記を元に以下のドキュメントをおよび元ネタなどを参考に、hostsおよびDNSを利用して固定IPアドレスでネットワークを構成することにした。

Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux - 2.7.2.2 手動で構成する場合のIPアドレス要件

独り言:
2ノードRACでなぜ、3つのSCAN VIPが推奨されているのかは、未だによく理解できていない???? 2ノードRACだから2じゃだめなの? 3つだと何がおしいいの?
どんどん謎は深まる…。だれか教えてw どっかにSCAN VIPってなにがおいしいのか2ノードRACで3つのSCAN VIPが推奨される理由が書いてある資料ないのかな〜。3ノード以上のRACだとSCAN VIPをどの程度増やせばおいしくなるの〜などなど????w

Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux - 2.7.5 手動によるIPアドレスの構成例

http://www.oracle.com/technetwork/articles/hunter-rac11gr2-iscsi-088677.html

http://www.idevelopment.info/data/Oracle/DBA_tips/Oracle11gRAC/CLUSTER_12.shtml

前述のマニュアルなどを参考に今回構築する全ノードのhostsファイルやDNS構成の概要は以下の通り。

RACを構成するノード1 (hostname=discus164.macdeoracle.jp)
Hostname タイプ IP address 名前解決方法
discus164 Public 192.168.1.90 hostsおよびDNS
discus164-iscsi Private 192.168.2.90
discus164-priv Private 192.168.3.90
discus164-vip Virtual 192.168.1.190
RACを構成するノード2 (hostname=discus264.macdeoracle.jp)
Hostname タイプ IP address 名前解決方法
discus264 Public 192.168.1.91 hostsおよびDNS
discus264-iscsi Private 192.168.2.91
discus264-priv Private 192.168.3.91
discus264-vip Virtual 192.168.1.191
SCAN VIP1/2/3
Hostname タイプ IP address 名前解決方法
discus-rac64-scan Virtual 192.168.1.200 DNS
discus-rac64-scan 192.168.1.201
discus-rac64-scan 192.168.1.202
Openfiler2.3(iSCSI) - (hostname=arowana2.macdeoracle.jp)
Hostname タイプ IP address 名前解決方法
arowana2 Public 192.168.1.92 hostsおよびDNS
arowana2-priv Private 192.168.2.92


ということで次回へつづく。
(こちらの都合で慌てて書いたので、おそらくいつもよりタイポとか誤字脱字、リンク先ミスなどが多いかもしれない…気づいたら後で修正します!)

2010/12/9追記:
hostsファイルとDNSで同じ名前解決するのってどうなんだろーって思っておりますが…hosts優先だし…。まあ、そのまんまでいきます。はい。
で、インストール後、各ノードの/etc/hostsはどう設定したかというと…

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
#::1 localhost6.localdomain6 localhost6

#for public network
192.168.1.90 discus164.macdeoracle.jp discus164
192.168.1.91 discus264.macdeoracle.jp discus264
192.168.1.92 arowana2.macdeoracle.jp arowana2

#for Oracle Interconnect private network
192.168.3.90 discus164-priv.macdeoracle.jp discus164-priv
192.168.3.91 discus264-priv.macdeoracle.jp discus264-priv

#for iSCSI private network
192.168.2.92 arowana2-priv.macdeoracle.jp arowana2-priv
192.168.2.90 discus164-iscsi.macdeoracle.jp discus164-iscsi
192.168.2.91 discus264-iscsi.macdeoracle.jp discus264-iscsi

#for virtual public network
192.168.1.190 discus164-vip.macdeoracle.jp discus164-vip
192.168.1.191 discus264-vip.macdeoracle.jp discus264-vip

192.168.1.2 lampeye.macdeoracle.jp lampeye






これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…
VirtualBox de Oracle11g R2 RAC #3

| | | コメント (0) | トラックバック (0)

2010年12月 4日 (土)

VirtualBox de Oracle11g R2 RAC #3

VirtualBox de Oracle11g R2 RACのつづきです。

以下のような内容で進めていきます。ほぼ元ネタに近いですけどね :)

前々回前回と少々構成もあるあるていど書いてますが、全体像をまとめて書いておきますね。

  1. ハードウェア構成(VMなのでVMの構成も含めて)、ソフトウェア構成など
  2. Linux (CentOS 5.5 x86_64)のインストール
  3. Openfiler2.3 x86のインストール
  4. Openfiler2.3 x86によるiSCSIボリュームの構成
  5. Oracle RACノードでのiSCSIボリュームの構成
  6. Oracle所有者と関連ディレクトリの作成及び環境変数の設定
  7. Oracle向けLinuxサーバーの構成(カーネルパラメータの設定)
  8. Oracle RACノード間リモートアクセスの構成とntpの構成
    sshの構成は念のために行った、多分、実施しなくても大丈夫だと思うけど…ついでなので、ちょいと意地悪な実験をしてみた)
  9. ローカルネームサーバの構成
  10. Oracle RACノード構成ファイルの確認
  11. Oracle Automatic Storage Management(ASMLib 2.0.5 x84_64)のインストール及び構成
  12. Oracle11g R2 11.2.0.1.0 RACインストール事前作業
  13. Oracle11g R2 11.2.0.1.0 Grid Infrastractureのインストール
  14. Oracle11g R2 11.2.0.1.0 Database softwareのインストール
  15. Oracle11g R2 11.2.0.1.0 examplesのインストール
  16. Oracle Cluster databaseの作成
  17. Net Serviceの確認
  18. Oralce Grid InsfastructureとDatabase構成の確認
  19. Clusterの開始と停止の確認
  20. 簡単なTransparent Application Failover (TAF)の確認



・Hardware

・CPU - Intel Core i7-980X Extreme Edition 3.33Ghz (6 core / 12 thread) * 1
・Memory - 12GB (2GB * 6)
・Disk - S-ATA2 1TB * 2
・NIC - on board Gbit NIC * 1
グラフィックカードは気にしてなかったので安めの、 NVIDIA GeForce GTS 250 (512MB)

上記PCで3つのVMを起動するので結構いっぱいいっぱいなのでクライアントはいつものようにMacを使います。
MacProの12-Core (2.66GHz 6コア Intel Xeon"Westmere" * 2)ってお化けPCがもうちょっと早く発表されてたらな〜、Mac上でVM作って楽しめたんだがタイミングの問題なのでしかたない 
><


・Software

・Host OS - CentOS5.5 (kernel 2.6.18-194.17.1.el5) x86_64
・System virtual machine software - VirtualBox 3.2.8 x86_64 for Linux

・Guest OS (for iSCSI) - Openfiler2.3 x86 (rPath Linux)
・DNS - bind9.4.3_P5-1.1-1 (rPath Linuxのソフトウェア管理ツールであるconaryを利用してインストールします)

・Guest OS (for RAC) - CentOS5.5 x86_64 (kernel 2.6.18-194.17.1.el5)

VMの構成は前回の通りなのだが、一応書いておくと

・Openfiler2.3 x86向けVMの構成
ネットワークアダプタ1をブリッジアダプタで定義してPublicネットワーク用に利用し、ネットワークアダプタ1は内部ネットワークとして定義しPrivateネットワーク用(iSCSIのアクセス用)に利用する。
ちなみに、VirtualBoxの内部ネットワークは、VM間でのみ通信できるアダプタなのでInterConnectなどのPrivateネットワーク向きなんじゃないかと思っている。

・OSタイプ - Red Hat (32bit仮想マシン)
・メインメモリ - 2GB (ちょいと少なめ)
・プロセッサ数 - 2
・SATAポート0 - 100GB
・ネットワークアダプタ1 - Intel PRO/1000 MT Desktop (ブリッジアダプタ - eth0)
・ネットワークアダプタ2 - Intel PRO/1000 MT Desktop (内部ネットワーク - intnet)

・各RACノードのCentOS5.5 x86_64向けVMの構成
Openfiler向けVMと同様にネットワークアダプタ1はブリッジアダプタとして定義して、Publicネットワークとして利用し、ネットワーク2は内部ネットワークで定義してiSCSI用のPrivateネットワーク。ネットワークアダプタ3も内部ネットワークとして定義し、Interconnect用Privateネットワークとして使う。

・OSタイプ - Red Hat (64bit仮想マシン)
・メインメモリ - 4GB
・プロセッサ数 - 4
・SATAポート0 - 50GB
・ネットワークアダプタ1 - Intel PRO/1000 MT Desktop (ブリッジアダプタ - eth0)
・ネットワークアダプタ2 - Intel PRO/1000 MT Desktop (内部ネットワーク - intnet)
・ネットワークアダプタ3 - Intel PRO/1000 MT Desktop (内部ネットワーク - intnet)


ということで次回へつづく。





これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1
VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…

| | | コメント (0) | トラックバック (0)

2010年12月 2日 (木)

VirtualBox de Oracle11g R2 RAC #2 - 事前調査など…

VirtualBox de Oracle11g R2 RACの続きです。

構築記録の詳細は後にして、最初に事前調査など(Oracle11g R2でいろいろと変わってるところあるので…)

・hangcheck-timerカーネル・モジュール

Oracle11g R1まではhangcheck-timerカーネル・モジュールが必要となっていたが、Oracle11g R2では不要となっている。
(Oracle11g R1でも当初不要とマニュアルに記載されていたが、後に必要と訂正されていた。おそらくフライングね)


・RACノード間の時刻同期

Cluster Time Synchronization Service (CTSS)という新機能が追加され、NTPで時刻合わせできない環境やNTPを利用しない環境でも時刻同期できるようになった。

が、今回はNTPで時刻合わせするのでCTSSは使わない


・Single Client Access Name (SCAN) VIP

SCANなるものが登場した。まだ勉強不足でSCANを使うと何がどうおいしいのか理解できていないのであとでちゃんと読むw

参考:

http://www.oracle.com/technology/global/jp/products/database/clustering/pdf/scan.pdf


・ネットワーク要件

前述のSCAN VIPの構成にも関わるが、以下のマニュアルによれば固定IP方式である場合、hostsファイルおよび、DNSという構成で対応できるということは確認できたので、今回は、hostsファイル+DNSという構成にすることにした。

参考:

Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux - 2.7.5 手動によるIPアドレスの構成例


・ソフトウェア要件

いつもの通りCentOS5.5 x86_86を利用するのでRed Hadt系のソフトウェア要件を参考に…

参考:

Oracle Grid Infrastructureインストレーション・ガイド11gリリース2(11.2)for Linux 2.8.2 x86-64 - Linuxプラットフォームでのソフトウェア要件
Oracle Databaseクイック・インストレーション・ガイド 11gリリース2(11.2) for Linux x86-644 - ソフトウェア要件の確認


・ストレージ

Oracle11g R2からOracle ClusterファイルもASM管理化に置くことができるようになったので、OpenfilerのiSCSIのボリュームをすべてASM管理にしちゃう。
Oracle11g R1の時はOracle Clusterファイルだけocfs2を利用していたが、今回はocsf2のインストール・構成は不要になった。

参考:

Oracle Grid Infrastructureインストレーション・ガイド11gリリース2(11.2)for Linux 3.1.3 - サポートされている記憶域オプション


・仮想NIC

以前はまではInterconnect用とiSCSI用を兼用させていたけど、今回はそれぞれに個別にVNICを割り当てて使う。
どうせ仮想だからお金かからないのがいいところw リアルな環境だと予算の都合上できないことも簡単に試せる :)

2010/12/3追記:
・SSHユーザの等価関係の有効化

OUIでパスフレーズなしのユーザ等価関係の有効化を自動的にやってくれるようになったみたい。信用しないわけじゃないんだけどとりあえず、Oracle11g R1までのように手動でもやっとく。

Oracle Grid Infrastructureインストレーション・ガイド 11gリリース2(11.2)for Linux- E.1 すべてのクラスタ・ノードでの手動によるSSHの構成

という、ざっくりとした方針だけ決めてVirtualBox de Oracle11g R2 RACを構築〜。

以下、Openfier2.3 (x86)とRACのノードに利用するCentOS5.5(x86_64)向けVM構成(VirtualBox3.2.8を利用した3.2.10リリースされてるけど)のスナップショットなど…。

ちなみに、VirtualBox3.2.10と3.2.12でいろいろbug fixされてるけど、3.2.8のままで。


・Openfiler2.3 (iSCSI)に利用するVM構成は以下の通り。
※100GBのディスクにx86_64なんて名称をつけちゃってますが32bitの仮想マシンです!

20101202_132628


・Oracle11g R2 x86_64の各ノードで利用するCentOS5.5 x86_64向けVM構成は以下の通り。
※こちらは64bitの仮想マシンです。

20101202_132642

次回へつづく。





これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2



VirtualBox de Oracle11g R2 RAC #1

| | | コメント (0) | トラックバック (0)

2010年11月30日 (火)

VirtualBox de Oracle11g R2 RAC #1

前回VirtualBoxでOracle11g R1 RACを試したので今回はOracle11g R2 2ノードRACをVirtualBox上に構築してみた。

Oracle11g R1 RACをVirtualBox上に構築した際にも発生したdbcaの最後に表示される確認ダイアログを表示したまま固まるという状況があったものの今回もデータベースは作成されていた。
前回はdbcaの最後に表示される確認ダイアログで固まった後に強制終了させ、dbcaでデータベースの作成/削除を数度行い時間を要したもののハング?したような状態から正常に復帰したためそれ以外はなにも行わなかったのだが、今回はハング状態からVMを強制終了/起動してみた。
結果オーライという感じなのだが、dbcaの処理は終わっていたようで問題なくインスタンスが起動したのにはニッコリ!

[oracle@discus164 ˜]$ 
[oracle@discus164 ˜]$
[oracle@discus164 ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 火 11月 29 21:54:50 2010

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> conn system@orcl
パスワードを入力してください:
接続されました。
SQL>
SQL>
SQL> select * from gv$version;

INST_ID BANNER
---------- --------------------------------------------------------------------------------
1 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
1 PL/SQL Release 11.2.0.1.0 - Production
1 CORE 11.2.0.1.0 Production
1 TNS for Linux: Version 11.2.0.1.0 - Production
1 NLSRTL Version 11.2.0.1.0 - Production
2 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
2 PL/SQL Release 11.2.0.1.0 - Production
2 CORE 11.2.0.1.0 Production
2 TNS for Linux: Version 11.2.0.1.0 - Production
2 NLSRTL Version 11.2.0.1.0 - Production

10行が選択されました。

SQL>


20101130_161324


以下、前回よりもさらに適当に書いてしまった感じのする配置図。(雰囲気が伝われば問題ないのでこんなところで勘弁して〜w)

Virtualbox_de_rac_11g_r2_2


Oracle11g R2からGrid Infrastructure (Oracle11g R1までのOracle ASM + Oracle Clusterware)になりDNSまたはGNS(Grid Naming Service)が必要だってことで、iSCSIで利用しているOpenfiler上でDNSを構成したこと、および、RACを構成するノードごとVNICを3つ作成し、1つはPublicネットワーク用、1つはInterconnect専用、そしてもう1つは、iSCSIストレージアクセス専用としたところがポイント。(ちなみに、InterconnectとiSCSIはprivateネットワークとしてVirtualBoxの内部ネットワークアダプタを利用した)

参考にしたブログでは、nslookupを改造しちゃってDNSを使わない方法なんかもあったが今回はDNSを利用した。(普段やらないからDNSの構成ファイルの記述方法調べんのが一番めんどくさかったw)
SCAN (Single Client Access Name)を利用するのにDNSかGNSが必須なんですよー。新しい用語増え過ぎw

参考:

・SCANの解説でわかりやすい資料はこれかも↓
http://www.oracle.com/technology/global/jp/products/database/clustering/pdf/scan.pdf

・インストールおよび構成で参考にした記事
http://www.oracle.com/technetwork/articles/hunter-rac11gr2-iscsi-088677.html
http://www.idevelopment.info/data/Oracle/DBA_tips/Oracle11gRAC/CLUSTER_12.shtml





これまでのあらすじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1
VirtualBox de RAC (Oracle11g R1編) #2

| | | コメント (0) | トラックバック (0)

2010年10月31日 (日)

VirtualBox de RAC (Oracle11g R1編)#2

VirtualBox de RAC (Oracle11g R1編)の続きです。
試していて気付いた問題点やハマった点が幾つかあったので備忘録として残しておきますね。

まず最初はCentOS5.5でのiscsidの問題。

この問題、iscsiデバイスを利用しているCentOS5.5をshutdown/rebootすると停止時に以下のようなメッセージを表示した後、いきなりHALTしてしまう。Openfiler側が起動しっぱなりしの場合は、大量のゾンビセッションが残ってしまい 気付かないと大変なことになってしまうという、なかなかスリリングな事象なのでご用心を。

私の場合、停止時のエラーメッセージに気付き、Openfiler側のセッションがゾンビだらけで驚いた!〜っていうとこで気付いた。

ググってみたら、これは、Red hat Linux/CentOS 5.5でのバグということが判明。
暫定的な対処方法はいつくかあるが、私の環境では、/etc/init.d/iscsiを書き換え、run level 0/1/6でなにもしないで抜ける部分をコメントアウトして対処した。

ちなみに、run level 0/1/6以外ならiscsiは正しく動作してます。以下、stop/startで正しくiscsiが実行されてLogout/Logonが成功している状態。

[root@discus164  ˜]# service iscsi stop
Logging out of session [sid: 1, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Logging out of session [sid: 2, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging out of session [sid: 3, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging out of session [sid: 4, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging out of session [sid: 5, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging out of session [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Logout of [sid: 1, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Logout of [sid: 2, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 3, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Logout of [sid: 4, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Logout of [sid: 5, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Logout of [sid: 6, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
Stopping iSCSI daemon:
[root@discus164 ˜]# service iscsi start
iscsid が停止していますが PID ファイルが残っています
Starting iSCSI daemon: [ OK ]
[ OK ]
iSCSI ターゲットを設定中: Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm1, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm4, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs2, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:asm3, portal: 192.168.2.92,3260]: successful
Login to [iface: default, target: iqn.2006-01.com.openfiler:crs1, portal: 192.168.2.92,3260]: successful
[ OK ]
[root@discus164 ˜]#


この場合はなんの問題もないわけです。が…

Status_ok


Iscsi_stop


Iscsi_after_stop


Iscsi_start


Iscsi_after_start



ところが、対処前のCentOS5.5では、shutdown/reboot時に以下のログが表示されLogoutできずOpenfiler側のセッションがゾンビ化する。

Unmounting pipe file systems:                              [  OK  ]
connection2:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4300342437, last ping 4300347437, now 4300352437
connection2:0: detected conn error (1011)
connection1:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4300342437, last ping 4300347437, now 4300352439
connection1:0: detected conn error (1011)
connection4:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4300342437, last ping 4300347437, now 4300352449
connection4:0: detected conn error (1011)
connection3:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4300342437, last ping 4300347437, now 4300352463
connection3:0: detected conn error (1011)
connection5:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4300342437, last ping 4300347437, now 4300352472
connection5:0: detected conn error (1011)
connection6:0: ping timeout of 5 secs expired, recv timeout 5, last rx 4300342437, last ping 4300347437, now 4300352474
connection6:0: detected conn error (1011)
Unmounting file systems: [ OK ]
Halting system...

スクリーンショットは以下
Iscsi_eror



前述の問題の対処として/etc/init.d/iscsiを修正する方法を選択した。diffは以下のとおり。

[root@discus164 ˜]# diff -u /etc/init.d/iscsi.org /etc/init.d/iscsi
--- /etc/init.d/iscsi.org 2010-03-31 22:26:39.000000000 +0900
+++ /etc/init.d/iscsi 2010-10-31 01:33:12.000000000 +0900
@@ -35,10 +35,10 @@

# If this is a final shutdown/halt, do nothing since
# lvm/dm, md, power path, etc do not always handle this
- if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
- success
- return
- fi
+ #if [ "$RUNLEVEL" = "6" -o "$RUNLEVEL" = "0" -o "$RUNLEVEL" = "1" ]; then
+ # success
+ # return
+ #fi

# don't turn off iscsi if root is possibly on a iscsi disk
rootopts=$(awk '{ if ($1 !˜ /^[ \t]*#/ && $2 == "/") { print $4; }}' /etc/mtab)

修正後は以下のとおり問題なくiscsiのセッションがlogoutされている ;)
Iscsi_ok



参考:

Stray Penguin - Linux Memo (iSCSi) - シャットダウン/リブート時のSCSI cache エラー
Red Hat Bugzilla – Bug 583218





これまでのあらずじ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

VirtualBox de RAC (Oracle11g R1編) #1

| | | コメント (0) | トラックバック (0)

2010年10月18日 (月)

Mac de Oracle - 10万円未満 de RAC (11g編)改め、 VirtualBox de RAC (Oracle11g R1編) #1

いままでいろいろと遊んでいたPCやうちの奥さんのPCがじゃまになってきたのでCore i7 980x (6 core / ハイパースレッディングを使って12CPU)というやつ1台に集約!

さすがに"10万円未満 de"はとは言えなくなった(購入金額をVM数で割ってもちょいと足がでるが、電気代とか占有スペースとか必要に応じてVM作って遊べるのでお得だ。)ので、VirtualBox de RACと改名いたしましたw

とは言っても、Oracle11g R1 EE for Linux x86でiSCSIを使うというのは同じで、違うのは全部VMっていうところだけ。
手順もMac de Oracle - 10万円未満 de RAC (11g編)と同じ(OCFS2やASMlibのバージョンはCentOSのバージョンに対応する最新のものを利用しています。)なのでVM使ってて悩んだ所などを中心に書く予定。


・CPU - Intel Core i7-980X Extreme Edition 3.33Ghz (6 core / 12 thread) * 1
・Memory - 12GB (2GB * 6)
・Disk - S-ATA2 1TB * 2
・NIC - on board Gbit NIC
グラフィックカードは気にしてなかったので安めの、 NVIDIA GeForce GTS 250 (512MB)



Screenshotvirtualbox


Screenshotoracle_vm_virtualbox1_2


Screenshotoracle_vm_virtualbox_2


Screenshotoracle_vm_virtualbox2_2

ソフトウェアは以下の通り。

ホストOS等
・CentOS5.5 x86_64 (Kernel:2.6.18-194.17.1.e15)
・VirtualBox3.2.8 x86_64


ゲストOS等
・CentOS5.5 x86 (kernel:2.6.18-194.17.1.e15PAE)
・Openfiler2.3 x86
・Oracle11g 11.1.0.6.0 EE for Linux x86
 など…

以下、適当に書いた配置図。
VNICの設定では、外部ネットワークにも行けるようにBridge Adapterを使ったこととInterconnect向けにInternal Networkを使った(VirtualBoxのInternal NetworkはGestOS間でのみ通信できHostOSからも見えない)
Virtualbox_de_rac_11g_r1

という案で、VMごとクラッシュさせたりいろいろ悩みながらなんとかインスコ&構築done。現在は以下ような状態! :)
Oem1

Virtualbox_de_rac_11g_r1_2


次回へつづく。



関連エントリ
Mac de Oracle - 10万円未満 de RAC (11g編)#28

| | | コメント (0) | トラックバック (0)

2010年10月 3日 (日)

How to install Oracle VM VirtualBox guest additions.

Guest Additionsインストールで悩んだ時はこれね!

Oracle VM VirtualBoxでguest additionsインストールでbash: ./VBoxLinuxAdditions-x86.run: /bin/sh: bad interpreter: 許可がありませんエラーに遭遇したんですが、多分皆さん一度はハマったかなっと思った事もあり、メモ替わりに載せておきます。

解決策は、見ての通りなのですが、ちょいと一瞬悩んじゃいました。:)

「VM上のメニュー」→「デバイスアイテム」→「Guest Additionsのインストール」を選択後、xtermを開く、まではいいんですが…。
Img01

[root@discus2 ˜]# cd /media
[root@discus2 media]# ll
合計 2
dr-xr-xr-x 4 root root 2048 8月 5 20:58 VBOXADDITIONS_3.2.8_64453
[root@discus2 media]# cd VBOXADDITIONS_3.2.8_64453
[root@discus2 VBOXADDITIONS_3.2.8_64453]# ll
合計 30317
dr-xr-xr-x 3 root root 2048 8月 5 20:58 32Bit
dr-xr-xr-x 2 root root 2048 8月 5 20:58 64Bit
-r-xr-xr-x 1 root root 222 6月 3 01:33 AUTORUN.INF
-r-xr-xr-x 1 root root 3286480 8月 5 20:50 VBoxLinuxAdditions-amd64.run
-r-xr-xr-x 1 root root 2846156 8月 5 20:57 VBoxLinuxAdditions-x86.run
-r-xr-xr-x 1 root root 11253760 8月 5 21:52 VBoxSolarisAdditions.pkg
-r-xr-xr-x 1 root root 7669024 8月 5 20:44 VBoxWindowsAdditions-amd64.exe
-r-xr-xr-x 1 root root 5701080 8月 5 20:41 VBoxWindowsAdditions-x86.exe
-r-xr-xr-x 1 root root 277008 8月 5 20:41 VBoxWindowsAdditions.exe
-r-xr-xr-x 1 root root 4890 8月 5 20:54 autorun.sh
[root@discus2 VBOXADDITIONS_3.2.8_64453]#
[root@discus2 VBOXADDITIONS_3.2.8_64453]#
[root@discus2 VBOXADDITIONS_3.2.8_64453]# ./VBoxLinuxAdditions-x86.run
bash: ./VBoxLinuxAdditions-x86.run: /bin/sh: bad interpreter: 許可がありません
[root@discus2 VBOXADDITIONS_3.2.8_64453]#
[root@discus2 VBOXADDITIONS_3.2.8_64453]#
[root@discus2 VBOXADDITIONS_3.2.8_64453]#
[root@discus2 VBOXADDITIONS_3.2.8_64453]# /bin/sh VBoxLinuxAdditions-x86.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 3.2.8 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 3.2.8 of VirtualBox Guest Additions...
Building the VirtualBox Guest Additions kernel modules
Your guest system does not seem to have sufficient OpenGL support to enable
accelerated 3D effects (this requires Linux 2.6.27 or later in the guest
system). This Guest Additions feature will be disabled.


Building the main Guest Additions module [ OK ]
Building the shared folder support module [ OK ]
Doing non-kernel setup of the Guest Additions [ OK ]
You should restart your guest to make sure the new modules are actually used

Installing the Window System drivers
Installing X.Org 7.1 modules [ OK ]
Setting up the Window System to use the Guest Additions [ OK ]
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services componen[ OK ]
[root@discus2 VBOXADDITIONS_3.2.8_64453]#



Img02

| | | コメント (0) | トラックバック (0)

2010年10月 1日 (金)

VirtualBoxのWindowsXPにPanda Cloud Antivirusを入れた

Oracle VM VirtualBox上のWindowsXPにPanda Cloud Antivirusをいれてみた。リアルなWindowsXPの時は、SymantecのInternet Securityにお世話になってたけど、起動する回数も少なくなったしIEでWebページのレイアウトとか確認する程度しか使わなくなったので、もうPanda Cloud Antivirusの無料版で十分な。

6

Screenshot0

Screenshot1

Screenshot2

Screenshot3

Screenshot5

| | | コメント (0) | トラックバック (0)

2010年8月22日 (日)

WindowsXP and CentOS5.5 on VirtualBox3.2.8 on CentOS5.5 x86_64

結局Oracle VirtualBoxをCentOS5.5 x86_64へインストール。
必要な数だけVMを作成してOracle11g R2など入れてみたり、WindowsXP ProにCPU思いっきり割り当てて遊んでみたりと、リアルなPCでやっていた事以上のことは可能な状況までになった(まだ終わってないところもありますが…)

いろいろやって行きますよ〜Macから繋いでw

Myvms

以下、GuestOSをCentOS5.5(x86)としてOracle11gR2のインストールを試しているところ :)
Centos_x86_on_vm_ora11g2

以下、GuestOS:WindowsXP Proで試しに12CPUにしてみたところ
Winxp_on_vm_with_12cpus

| | | コメント (0) | トラックバック (0)