|ω・`).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
再作成されている。。
ロックが増えた、じゃなくてアクセスが増えたに書き直さないと。
返信削除