Oracle OpenWorld のJPOUGのセッションに触発されて。
私もGoogleでよくマニュアルやエラーメッセージを検索しています。
以前だとマニュアルもPDFだったので、Googleで「Oracle ドキュメントライブラリ 11.2 filetype:pdf」等で検索していました。
※今はPDFのマニュアルがなかったり、マニュアル以外のPDF資料が引っかかることが多いかもしれません。。
他にはエラーメッセージをダブルクォーテーションでくくることで完全一致で検索するのもおすすめかと思います。
・余談
今、下記のサイトからマニュアルを検索しようとしたら、エラーになっちゃいました。 https://blogs.oracle.com/oracle4engineer/entry/oracle11gr2112
一度開けると、そのままうまく見れたりもするのですが…
|ω・`) 最近たまに見かけるので、何とかならないもんかなぁ。
まめろぐ
2012年4月8日日曜日
ORA-01102を発生できるか試してみる(2)
|д・`) ロックの件はさておき、むりくり事象を再現してみた。
・demoインスタンスを起動
[oracle@mame ~]$ echo $ORACLE_SID
demo
[oracle@mame ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 06:34:53 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
・orclインスタンスを起動
[oracle@mame ~]$ echo $ORACLE_SID
orcl
[oracle@mame ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 06:35:26 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 238530560 bytes
Fixed Size 1344144 bytes
Variable Size 83889520 bytes
Database Buffers 150994944 bytes
Redo Buffers 2301952 bytes
ORA-01102: ????????????????????????????
・アラートログを確認
[oracle@mame ~]$ tail -10 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
Sun Apr 08 06:35:32 2012
MMNL started with pid=16, OS id=9227
Sun Apr 08 06:35:32 2012
ALTER DATABASE MOUNT
sculkget: failed to lock /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkORCL exclusive
sculkget: lock held by PID: 9012
ORA-09968: ??????????????
Linux Error: 11: Resource temporarily unavailable
Additional information: 9012
ORA-1102 signalled during: ALTER DATABASE MOUNT...
・今回はロックファイルを上記2インスタンスで使用していたため発生
[oracle@mame dbs]$ ls -l
合計 36
-rw-rw---- 1 oracle oinstall 1544 4月 8 06:13 hc_demo.dat
-rw-rw---- 1 oracle oinstall 1544 4月 8 06:33 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall 2851 5月 15 2009 init.ora
-rw-r--r-- 1 oracle oinstall 35 4月 8 05:55 lkDEMO
lrwxrwxrwx 1 oracle oinstall 6 4月 8 06:34 lkORCL -> lkDEMO
-rw-r----- 1 oracle oinstall 24 4月 8 06:16 lkORCL.org
-rw-r----- 1 oracle oinstall 1536 3月 10 06:06 orapwdemo
-rw-r----- 1 oracle oinstall 1536 4月 8 06:16 orapworcl
-rw-r----- 1 oracle oinstall 2560 4月 8 06:13 spfiledemo.ora
-rw-r----- 1 oracle oinstall 2560 4月 8 06:31 spfileorcl.ora
・demoインスタンスを起動
[oracle@mame ~]$ echo $ORACLE_SID
demo
[oracle@mame ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 06:34:53 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
・orclインスタンスを起動
[oracle@mame ~]$ echo $ORACLE_SID
orcl
[oracle@mame ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 06:35:26 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 238530560 bytes
Fixed Size 1344144 bytes
Variable Size 83889520 bytes
Database Buffers 150994944 bytes
Redo Buffers 2301952 bytes
ORA-01102: ????????????????????????????
・アラートログを確認
[oracle@mame ~]$ tail -10 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log
Sun Apr 08 06:35:32 2012
MMNL started with pid=16, OS id=9227
Sun Apr 08 06:35:32 2012
ALTER DATABASE MOUNT
sculkget: failed to lock /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkORCL exclusive
sculkget: lock held by PID: 9012
ORA-09968: ??????????????
Linux Error: 11: Resource temporarily unavailable
Additional information: 9012
ORA-1102 signalled during: ALTER DATABASE MOUNT...
・今回はロックファイルを上記2インスタンスで使用していたため発生
[oracle@mame dbs]$ ls -l
合計 36
-rw-rw---- 1 oracle oinstall 1544 4月 8 06:13 hc_demo.dat
-rw-rw---- 1 oracle oinstall 1544 4月 8 06:33 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall 2851 5月 15 2009 init.ora
-rw-r--r-- 1 oracle oinstall 35 4月 8 05:55 lkDEMO
lrwxrwxrwx 1 oracle oinstall 6 4月 8 06:34 lkORCL -> lkDEMO
-rw-r----- 1 oracle oinstall 24 4月 8 06:16 lkORCL.org
-rw-r----- 1 oracle oinstall 1536 3月 10 06:06 orapwdemo
-rw-r----- 1 oracle oinstall 1536 4月 8 06:16 orapworcl
-rw-r----- 1 oracle oinstall 2560 4月 8 06:13 spfiledemo.ora
-rw-r----- 1 oracle oinstall 2560 4月 8 06:31 spfileorcl.ora
Linuxのflockがわからん
後で調べる。
・端末1でロック取得
[oracle@mame dbs]$ flock -x /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO sleep 300
・端末2でさらにロック取得 - 待ち
[oracle@mame dbs]$ flock lkDEMO LOCK_EX
sleep時間経過後、以下のメッセージ
flock: LOCK_EX: Success
・ロック待機中にfuser
[root@mame ~]# fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 6881 6882 6883
・さらにロック待機中にDatabaseを起動してみる
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
|ω・`) 起動できちゃう。
flock、よくわからん…
Cで書いて試してみたいけどめんどくさい(ノ)・ω・(ヾ)ムニムニ
・端末1でロック取得
[oracle@mame dbs]$ flock -x /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO sleep 300
・端末2でさらにロック取得 - 待ち
[oracle@mame dbs]$ flock lkDEMO LOCK_EX
sleep時間経過後、以下のメッセージ
flock: LOCK_EX: Success
・ロック待機中にfuser
[root@mame ~]# fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 6881 6882 6883
・さらにロック待機中にDatabaseを起動してみる
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
|ω・`) 起動できちゃう。
flock、よくわからん…
Cで書いて試してみたいけどめんどくさい(ノ)・ω・(ヾ)ムニムニ
ORA-01102を発生できるか試してみる(1)
|ω・`).oO( 宿題は残念ながら見れていないけど、面白そうなので ablogの記事をパクって試してみた。
■ 参考にさせていただいたブログ
ablog
http://d.hatena.ne.jp/yohei-a/20120407/1333782974
■ 環境
- Oracle Enterprise Linux 5.6 x86
- Oracle Database 11.2.0.3
■ ORA-01102を起こせるかなテスト
・lkDEMOファイルのロックがないことを確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:24:33 JST
・lkDEMOファイルをロックしてみる
[oracle@mame dbs]$ date; perl -e 'open(FH,">> /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO") and flock(FH,2) and sleep(300)'
2012年 4月 8日 日曜日 04:24:42 JST
・lkDEMOファイルがロックされていることを確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:24:49 JST
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 10506
・データベースを起動!
[oracle@mame ~]$ date; sqlplus / as sysdba
2012年 4月 8日 日曜日 04:25:15 JST
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 04:25:15 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>
|д・`) あれ?起動できちゃった…?
・lkDEMOファイルのロック状態を確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:26:04 JST
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 10506 10593 10597 10607 10615 10623 10627 10631 10635 10639 10643 10647 10651
|ω・`) Databaseからのロックが増えてます。
・Databaseを停止してみる
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
・lkDEMOファイルのロック状態を確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:26:43 JST
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 10506
元のだけになってる…。なぜ?
ファイルのロックの仕方が悪いのかなぁと思い、色々試してみたけどうまくいかず。
flock /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO sleep 300
■ 腹がたったのでlkDEMOファイルを削除してみる
・lkDEMOファイルを確認
[oracle@mame dbs]$ date; ls -l
2012年 4月 8日 日曜日 04:27:55 JST
合計 20
-rw-rw---- 1 oracle oinstall 1544 4月 8 04:26 hc_demo.dat
-rw-r--r-- 1 oracle oinstall 2851 5月 15 2009 init.ora
-rw-r----- 1 oracle oinstall 24 3月 10 05:46 lkDEMO
-rw-r----- 1 oracle oinstall 1536 3月 10 06:06 orapwdemo
-rw-r----- 1 oracle oinstall 2560 4月 8 04:25 spfiledemo.ora
・ファイルをリネーム
[oracle@mame dbs]$ date; mv lkDEMO lkDEMO.org
2012年 4月 8日 日曜日 04:28:08 JST
・Databaseを起動してみる
[oracle@mame ~]$ date; sqlplus / as sysdba
2012年 4月 8日 日曜日 04:28:27 JST
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 04:28:27 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>
|ω・`#) 起動できる!
・lkDEMOファイルを確認してみる
[oracle@mame dbs]$ date; ls -l
2012年 4月 8日 日曜日 04:32:43 JST
合計 24
-rw-rw---- 1 oracle oinstall 1544 4月 8 04:28 hc_demo.dat
-rw-r--r-- 1 oracle oinstall 2851 5月 15 2009 init.ora
-rw-r----- 1 oracle oinstall 24 4月 8 04:28 lkDEMO
-rw-r----- 1 oracle oinstall 24 3月 10 05:46 lkDEMO.org
-rw-r----- 1 oracle oinstall 1536 3月 10 06:06 orapwdemo
-rw-r----- 1 oracle oinstall 2560 4月 8 04:28 spfiledemo.ora
再作成されている。。
■ 参考にさせていただいたブログ
ablog
http://d.hatena.ne.jp/yohei-a/20120407/1333782974
■ 環境
- Oracle Enterprise Linux 5.6 x86
- Oracle Database 11.2.0.3
■ ORA-01102を起こせるかなテスト
・lkDEMOファイルのロックがないことを確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:24:33 JST
・lkDEMOファイルをロックしてみる
[oracle@mame dbs]$ date; perl -e 'open(FH,">> /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO") and flock(FH,2) and sleep(300)'
2012年 4月 8日 日曜日 04:24:42 JST
・lkDEMOファイルがロックされていることを確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:24:49 JST
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 10506
・データベースを起動!
[oracle@mame ~]$ date; sqlplus / as sysdba
2012年 4月 8日 日曜日 04:25:15 JST
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 04:25:15 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>
|д・`) あれ?起動できちゃった…?
・lkDEMOファイルのロック状態を確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:26:04 JST
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 10506 10593 10597 10607 10615 10623 10627 10631 10635 10639 10643 10647 10651
|ω・`) Databaseからのロックが増えてます。
・Databaseを停止してみる
SQL> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
・lkDEMOファイルのロック状態を確認
[root@mame ~]# date; fuser /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO
2012年 4月 8日 日曜日 04:26:43 JST
/u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO: 10506
元のだけになってる…。なぜ?
ファイルのロックの仕方が悪いのかなぁと思い、色々試してみたけどうまくいかず。
flock /u01/app/oracle/product/11.2.0/dbhome_1/dbs/lkDEMO sleep 300
■ 腹がたったのでlkDEMOファイルを削除してみる
・lkDEMOファイルを確認
[oracle@mame dbs]$ date; ls -l
2012年 4月 8日 日曜日 04:27:55 JST
合計 20
-rw-rw---- 1 oracle oinstall 1544 4月 8 04:26 hc_demo.dat
-rw-r--r-- 1 oracle oinstall 2851 5月 15 2009 init.ora
-rw-r----- 1 oracle oinstall 24 3月 10 05:46 lkDEMO
-rw-r----- 1 oracle oinstall 1536 3月 10 06:06 orapwdemo
-rw-r----- 1 oracle oinstall 2560 4月 8 04:25 spfiledemo.ora
・ファイルをリネーム
[oracle@mame dbs]$ date; mv lkDEMO lkDEMO.org
2012年 4月 8日 日曜日 04:28:08 JST
・Databaseを起動してみる
[oracle@mame ~]$ date; sqlplus / as sysdba
2012年 4月 8日 日曜日 04:28:27 JST
SQL*Plus: Release 11.2.0.3.0 Production on 日 4月 8 04:28:27 2012
Copyright (c) 1982, 2011, Oracle. All rights reserved.
アイドル・インスタンスに接続しました。
SQL> startup
ORACLEインスタンスが起動しました。
Total System Global Area 422670336 bytes
Fixed Size 1345380 bytes
Variable Size 285214876 bytes
Database Buffers 130023424 bytes
Redo Buffers 6086656 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>
|ω・`#) 起動できる!
・lkDEMOファイルを確認してみる
[oracle@mame dbs]$ date; ls -l
2012年 4月 8日 日曜日 04:32:43 JST
合計 24
-rw-rw---- 1 oracle oinstall 1544 4月 8 04:28 hc_demo.dat
-rw-r--r-- 1 oracle oinstall 2851 5月 15 2009 init.ora
-rw-r----- 1 oracle oinstall 24 4月 8 04:28 lkDEMO
-rw-r----- 1 oracle oinstall 24 3月 10 05:46 lkDEMO.org
-rw-r----- 1 oracle oinstall 1536 3月 10 06:06 orapwdemo
-rw-r----- 1 oracle oinstall 2560 4月 8 04:28 spfiledemo.ora
再作成されている。。
登録:
投稿 (Atom)

