ORACLE仕事備忘録

ORACLEやORACLE周りの仕事でのちょっとしたメモに使っています。

Oracle Database 10g Release2

2005-09-24 08:22:24 | Weblog
そろそろ、10gの勉強に本腰を入れようと思う。

●出荷開始予定/プラットフォーム
2005年9月7日 Linux x86
2005年10月18日 Solaris Operating System (SPARC)、HP-UX PA-RISC(64-bit)、AIX5L Based Systems
2005年11月1日 Microsoft Windows (32-bit)
2005年12月6日 Linux x86-64、Linux Itanium、IBM Power Based Linux
2005年12月下旬 Microsoft Windows x64
2006年1月 HP-UX Itanium、Microsoft Windows Itanium
2006年第一四半期 Solaris Operating System (x86-64)、Solaris Operating System (x86)
2006年上半期 IBM zSeries Based Linux、Apple Mac OS X、HP Tru64 UNIX、HP OpenVMS Alpha、HP OpenVMS Itanium

U.SからWin32版の10gR2を入れました。
とりあえず、いぢってみます。

続(完):NAS(玄箱)+RAC10g(HP-UX Itanium)

2005-09-20 18:59:12 | RAC
OMFの動きが9iまでとは違うようだ。

db_create_file_dest=/opt/nas1/v10/oradata/v10/
と設定すると、
===================================
ls /opt/nas1/v10/oradata/v10/V10
controlfile datafile onlinelog
===================================
という具合になる。むぅぅ。変なディレクトリ構成になってしまった。

O型なのだが、このディレクトリ構成は気に入らないので再度
Create Databaseする。
・ORACLE_SID=v10rac
・db_create_file_dest=/opt/nas1/v10/oradata

やれやれ。
次に定例の
@?/rdbms/admin/catalog
@?/rdbms/admin/catproc
の実行。
ほんでもってインスタンスを再起動すると

ORA-00205: error in identifying controlfile, check alert log for more info

あ、そうか。OMFの制御ファイル問題(←勝手に命名)だ。
初期パラに
controlfile=/opt/nas1/v10/oradata/V10RAC/controlfile/o1_mf_1lz8vnss_.ctl
を指定してインスタンス起動。
OMFに手を入れたんなら制御ファイル問題にも着手してほしいものだ。

Database opened.

よかったよかった。

もう負荷をかけるような処理はないのでCRSを起動させ
RACオプションを元に戻す。
make -f ins_rdbms.mk rac_on
make -f ins_rdbms.mk ioracle
(※実行時はORACLEのインスタンスを止めること)

ぬぉ!make中にTeraTermが落ちた(=OS落ちた)。make時にも落ちてしまうとは。。
これはTCP通信が詰まっているわけではなく、ノードの高負荷状態による
VotingDiskへの書き込み遅延が原因かなぁ。。
それはやばい。せっかくDB作ったのにRAC-DBとしてSTARTUPしたときの
負荷で落ちたりして・・・。でもここまで来てしまったので作業続行あるのみ!
気を取り直してOS再起動した頃に再ログイン、CRSを止めて
もう一度make。今度は上手くいった。
その後CRS起動。とりあえず、cluster_database=falseで
立ち上げてみる。ここは慎重に行おう。
===================================
SQL> startup nomount
ORACLE instance started.

Total System Global Area 155189248 bytes
Fixed Size 1296272 bytes
Variable Size 153630832 bytes
Database Buffers 0 bytes
Redo Buffers 262144 bytes
SQL> alter database mount;

Database altered.

SQL> alter database open;

Database altered.
===================================
おお、耐えた!神様ありがとう。
調子こいて以下を試す。
startup force;



Database opened.

おお、これも大丈夫だ。

さて、最後に本当のRACとしてDBを立ち上げてみよう。

環境変数ORACLE_SID=v10rac1とし
初期パラを以下のように変更。
clustere_database=true
v10rac1.instance_number=1
あとは、*を前につけて、全体としてはこんな感じ。
==================================================================
#cluster_database=false
cluster_database=true
v10rac1.instance_number=1

# replace DEFAULT with your database name
*.db_name=v10rac

*.db_files = 80 # SMALL
*.db_file_multiblock_read_count = 8 # SMALL
*.db_block_buffers = 100 # SMALL

*.shared_pool_size = 118198988 # SMALL
*.log_checkpoint_interval = 10000
*.processes = 50 # SMALL
*.parallel_max_servers = 5 # SMALL
*.log_buffer = 32768 # SMALL

*.control_files=/opt/nas1/v10/oradata/V10RAC/controlfile/o1_mf_1lz8vnss_.ctl
*.db_create_file_dest=/opt/nas1/v10/oradata
==================================================================

最後に確認。

SQL> show parameter cluster_database

NAME TYPE VALUE
------------------------------------ ----------- ------------------
cluster_database boolean TRUE
cluster_database_instances integer 1
SQL> show parameter instance

NAME TYPE VALUE
------------------------------------ ----------- -------------------
active_instance_count integer
cluster_database_instances integer 1
instance_groups string
instance_name string v10rac1
instance_number integer 1
instance_type string RDBMS
open_links_per_instance integer 4
parallel_instance_group string
parallel_server_instances integer 1

SQL> select * from v$option where parameter like '%Real%';

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
Real Application Clusters
TRUE

これで完了。
今日もいい仕事をした。(自己満)

続:NAS(玄箱)+RAC10g(HP-UX Itanium)

2005-09-16 17:53:18 | RAC
ようやく作業を再開しました。

CRSが動いているからリブートが掛かるなら
1.CRSを止めて通常DB作成
2.DB作成後、CRS起動
3.シングルDBをRAC-DBに移行
にしようと思いついた。スタート!

まずは、初期パラに
cluster_database=false
を設定し、startup nomount。すると

ORA-29702: error occurred in Cluster Group Service operation

と怒られる。
仕方なく一時的にRACオプションを外す。
make -f ins_rdbms.mk rac_off ioracle
これで無事にStartup nomountできた!

DB作成はOMFを使い超簡単な方法で。
1.control_filesパラメータコメント
2.db_create_file_dest=/opt/nas1/~/ パラメータ追加
3.create database v10
  character set ja16sjis
  national character set al16utf16;


Database created.

やった!NAS上にORACLE10gが出来ました!(普通やん)

ついにXMLに触るときが来た!

2005-09-16 10:28:47 | Weblog
今までEXCELで管理していた情報をシームレスに検索・利用できるようにするため
XML(XMLデータを生成しOracleXMLDBに格納)にしてみようと勝手に思いついた。

2001年、アルバイト時代に「これからは、XMLを使うから覚えとけ」と
言われてから丸4年、ようやくXMLを触ることになりそうだ。
やっぱり、必要に迫られないと技術は身につかないんですよね(言い訳)
今回はXMLスキーマを使うのだが、これがまた理解に苦しむ。
2001年に登場したものらしいので会社にあるXML関連書籍は古くて載っていない。
WEBでもまとまった情報を提供しているサイトがない。
仕方なく本屋にいって一番解りやすい「XML辞典」というものを購入。
JDeveloper10gを使い、お絵かき感覚でなんとかXMLスキーマファイルの
作成を完了した。
で、早速EXCELデータとXMLスキーマのマッピングを行ってみたが
上手くいかない。EXCELファイルのセル結合等により上手くマッピングができない。

これは無理だと1日で諦めました。今まで通りEXCELの運用で凌ごう!

RMANを使ったリカバリ

2005-09-13 23:29:02 | Weblog
久々にRMANの仕事だ。障害時のリストア&リカバリなどなかなかお目にかかれないので
しっかりとメモしておこう。

背景:Oracle10gデータベースがORA-600でOpenできなくなった。
   ・既知の不具合情報なし。
   ・隠しパラメータを使った強制Openも効かなかった。
   ・調査に時間を費やすことも出来ないため
    バックアップファイルからのリストアを敢行。
   ・バックアップはRMAN+Networkerで取得
    (但し、最新のバックアップファイルは一ヶ月前のファイル)
   ・アーカイブは、多分揃っている。
   ・リストアするファイルはLTOに入っている
   ・LTOはLTOライブラリに入っている
※後になって考えると、クラスタソフトの挙動がおかしかった
 (Active-Activeになっていた)との事。
 ORA-600の内容から考えると、クラスタソフトが両ノードから
 インスタンスを上げたのではないだろうか。
 こんな背景なのできっとOracle社にトレースを提供しても原因追及できないだろう。


用意されていたリストアコマンドファイル
************************************************************
set dbid=xxxxxxxxxx;
connect target sys/sys
startup force nomount;
run {
allocate channel c1 type 'SBT_TAPE';
send 'NSR_ENV=(NSR_SERVER=xxxxxxxx,
NSR_DATA_VOLUME_POOL=TEST)';

restore controlfile from autobackup;

alter database mount;

restore database;

restore archivelog all;

release channel c1;
}
************************************************************

全てのデータファイル、REDO、制御ファイルを退避させ
上記スクリプト実行!

すると
restore controlfile from autobackup;
の箇所にて下記エラー発生。

==================================================================
restoreが開始されました(開始場所: 05-09-13)
チャネルORA_DISK_1の使用

チャネルORA_DISK_1: 曜日の自動バックアップを探しています: 20050913
チャネルORA_DISK_1: 曜日の自動バックアップを探しています: 20050912
チャネルORA_DISK_1: 曜日の自動バックアップを探しています: 20050911
チャネルORA_DISK_1: 曜日の自動バックアップを探しています: 20050910
チャネルORA_DISK_1: 曜日の自動バックアップを探しています: 20050909
チャネルORA_DISK_1: 曜日の自動バックアップを探しています: 20050908
チャネルORA_DISK_1: 曜日の自動バックアップを探しています: 20050907
チャネルORA_DISK_1: 7曜日の自動バックアップが見つかりません
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 09/13/2005 20:35:50
RMAN-06172: no autobackup found or specified handle is not a valid copy or piece
==================================================================
どうやら、デフォルトでは7日前までの制御ファイルしか探しに行かない。

これからは、スクリプトファイルに頼らず、
ちょびちょびと実行していくことにした。

■restore controlfile from autobackup maxdays=365;
とコマンドに手を加え実行

==================================================================
チャネルc1: 曜日の自動バックアップを探しています: 20050816
チャネルc1: 自動バックアップが見つかりました: c-295683763-20050816-04
==================================================================
と、無事リストアすべき制御ファイルが見つかった。
ところが、待てど暮らせど次のメッセージ(リストア完了のMSG)が出ない。。
Networkerのログを見てみると、LTOがセットされるのを待っているようだ。
LTOを一度取り出し、再度挿入するが無反応。
「nwadmin」コマンドをROOTで実行しGUIを立ち上げて
メディアをマウントさせることが必要だった。

マウント後、待っていたRMAN処理は流れ、無事制御ファイルをリストアできた。
==================================================================
チャネルc1: 自動バックアップからの制御ファイルのリストアが完了しました
出力ファイル名=/storage/oracle/oradata/cosmo/control01.ctl
出力ファイル名=/storage/oracle/oradata/cosmo/control02.ctl
出力ファイル名=/storage/oracle/oradata/cosmo/control03.ctl
restoreが完了しました(完了場所: 05-09-13)
==================================================================

■alter database mount;
これは全く問題なし

■restore database;
==================================================================
データ・ファイルXXXを/xxx/xxx.dbfへリストア
チャネルc1: バックアップ・ピース1がリストアされました
ピース・ハンドル=df_3kgs8123_1_1.bak タグ=TAG20050816T153115
チャネルc1: リストアが完了しました
restoreが完了しました(完了場所: 05-09-13)
チャネル: c1がリリースされました
==================================================================
これも無事完了。

■restore archivelog all;
一部エラーは出るもののとりあえず完了。

ここで、アーカイブログの状況を確認してみる。

==================================================================
bash-2.05$ ls -lst|tail
(下記出力結果は一部加工しています)
oracle oinstall 10087936 8月 17日 17:00 1_9_566498800.dbf
oracle oinstall 10087936 8月 17日 17:00 1_8_566498800.dbf
oracle oinstall 10087936 8月 17日 17:00 1_7_566498800.dbf
oracle oinstall 10087936 8月 17日 17:00 1_6_566498800.dbf
oracle oinstall 10085376 8月 17日 16:42 1_5_566498800.dbf
oracle oinstall 10087936 8月 17日 11:00 1_4_566498800.dbf
oracle oinstall 10220032 8月 17日 03:20 1_3_566498800.dbf
oracle oinstall 10087936 8月 16日 22:44 1_2_566498800.dbf
oracle oinstall 10087936 8月 16日 22:00 1_1_566498800.dbf
oracle oinstall 212992 8月 16日 16:03 1_4_566492238.dbf
oracle oinstall 6144 8月 16日 15:xx 1_3_566492238.dbf
oracle oinstall 28160 8月 16日 15:xx 1_2_566492238.dbf
oracle oinstall 1790976 8月 16日 15:xx 1_1_566492238.dbf
==================================================================
ん?いやな予感が。8/16の22時以降はインカネーションが変わっているように見える。
しかし、この状況はどうにもできないのでとりあえず作業を進める。

■select controlfile_time from v$database;
リストア直後のDB日時を見てみる。
2005/08/16 15:32:46
だそうだ。

■recover database using backup controlfie;
バックアップした制御ファイルからのリカバリなので
「using backup controlfile」が必要。
AUTOリカバリは怖いのでログ指定でリカバリを進めた。
==================================================================
SQL> recover database using backup controlfile;
ORA-00279: 変更1861408(08/16/2005 15:31:15で生成)にはスレッド1が必要です
ORA-00289: 検討すべきログ・ファイル:/storage/oracle/archive/cosmo/1_2_566492238.dbf
ORA-00280: 変更1861408(スレッド1)は順序番号2に存在します。


ログの指定: {<RET>=suggested | filename | AUTO | CANCEL}
/storage/oracle/archive/cosmo/1_2_566492238.dbf
ORA-00279: 変更1861447(08/16/2005 15:32:40で生成)にはスレッド1が必要です
ORA-00289: 検討すべきログ・ファイル:/storage/oracle/archive/cosmo/1_3_566492238.dbf
ORA-00280: 変更1861447(スレッド1)は順序番号3に存在します。
ORA-00278: ログ・ファイル'/storage/oracle/archive/cosmo/1_2_566492238.dbf'はこのリカバリでは必要なくなりました


ログの指定: {<RET>=suggested | filename | AUTO | CANCEL}
/storage/oracle/archive/cosmo/1_3_566492238.dbf
ORA-00279: 変更1861458(08/16/2005 15:32:42で生成)にはスレッド1が必要です
ORA-00289: 検討すべきログ・ファイル:/storage/oracle/archive/cosmo/1_4_566492238.dbf
ORA-00280: 変更1861458(スレッド1)は順序番号4に存在します。
ORA-00278: ログ・ファイル'/storage/oracle/archive/cosmo/1_3_566492238.dbf'はこのリカバリでは必要なくなりました


ログの指定: {<RET>=suggested | filename | AUTO | CANCEL}
/storage/oracle/archive/cosmo/1_4_566492238.dbf
ログが適用されました。
メディア・リカバリが完了しました。
==================================================================
・・・。やはり終わってしまった。

■悪あがき
==================================================================
SQL> alter database open;
alter database open
*
行1でエラーが発生しました。:
ORA-01589: データベースをオープンするにはRESETLOGSまたはNORESETLOGSを使用する必要があります

[感想]ですよねー。

SQL> recover database using backup controlfile;
ORA-00279: 変更1861726(08/16/2005 15:33:53で生成)にはスレッド1が必要です
ORA-00289: 検討すべきログ・ファイル:/storage/oracle/archive/cosmo/1_4_566492238.dbf
ORA-00280: 変更1861726(スレッド1)は順序番号4に存在します。


ログの指定: {<RET>=suggested | filename | AUTO | CANCEL}
/storage/oracle/archive/cosmo/1_4_566492238.dbf
ORA-00328: アーカイブ・ログは変更1861725で終了します。さらに新しい変更1861726が必要です
ORA-00334: アーカイブ・ログ: '/storage/oracle/archive/cosmo/1_4_566492238.dbf'

[感想]さっき適用したのに何してるんだ、俺?

SQL> recover database using backup controlfile;
ORA-00279: 変更1861726(08/16/2005 15:33:53で生成)にはスレッド1が必要です
ORA-00289: 検討すべきログ・ファイル:/storage/oracle/archive/cosmo/1_4_566492238.dbf
ORA-00280: 変更1861726(スレッド1)は順序番号4に存在します。


ログの指定: {<RET>=suggested | filename | AUTO | CANCEL}
/storage/oracle/archive/cosmo/1_1_566498800.dbf
ORA-00342: アーカイブ・ログに予期したリセットログSCN 1859559がありません
ORA-00334: アーカイブ・ログ: '/storage/oracle/archive/cosmo/1_1_566498800.dbf'

[感想]やっぱインカネーション違うんですよね。。
==================================================================

■諦めてopen resetlogs
==================================================================
SQL> alter database open resetlogs;

データベースが変更されました。
==================================================================

あーあ、Openしてしまった。
アーカイブは今日の分まであるのに。。

■総括
データベースは
2005/08/16 15:33:53
の時点に復旧できました。めでたしめでたし。。

Linuxのシステムレポートを作る!!

2005-09-04 01:52:02 | OS、ハードのお話
委託業務でサーバー管理をしているため
システム状態のレポートを出せるとクライアントウケがいいと思い
MRTGの導入を決めました。
(ほしいレポートはCPUとメモリの使用率グラフ)

手始めにSNMPの設定をしました。
> rpm -qa |grep snmp
net-snmp-5.0.9-2.90.1

SNMPが入っていると思い
snmpwalk
コマンドを実行したら、command not found と言われた。
どうやら、snmp-utils も必要なようだ。
ということで
http://rpmfind.net/linux/RPM/index.html
から snmp-utils をダウンロード & rpm -ivh してインストール完了。

service snmp start で無事プロセスが起動した。
但し、設定ファイルをまだいじってないので設定をしました。

色々試行錯誤した結果、下記のような設定になりました。
(変更した部分だけを掲載)
################################################################
# First, map the community name "public" into a "security name"

# sec.name source community
#com2sec notConfigUser default public
com2sec local localhost public

####
# Second, map the security name into a group name:

# groupName securityModel securityName
#group notConfigGroup v1 notConfigUser
#group notConfigGroup v2c notConfigUser
group local_group v1 local
group local_group v2c local
group local_group usm local



####
# Third, create a view for us to let the group have rights to:

# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
#view systemview included .1.3.6.1.2.1.1
#view systemview included .1.3.6.1.2.1.25.1.1
view iin_all included .1
#view view_mib2 included .1.3.6.1.2.1
#view view_ucdavis included .1.3.6.1.4.1.2021


####
# Finally, grant the group read-only access to the systemview view.

# group context sec.model sec.level prefix read write notif
#access notConfigGroup "" any noauth exact systemview none none
access local_group "" any noauth exact iin_all none none
access secure_group "" any noauth exact view_mib2 none none



# Check the / partition and make sure it contains at least 10 megs.

#disk / 10000
disk /var 10

################################################################

このあと、以下手順で正常に動作することを確認。
[root@www log]# service snmpd restart
Stopping snmpd: [ OK ]
Starting snmpd: [ OK ]
[root@www log]# snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9
UCD-SNMP-MIB::dskIndex.1 = INTEGER: 1
UCD-SNMP-MIB::dskPath.1 = STRING: /var
UCD-SNMP-MIB::dskDevice.1 = STRING: /dev/sda5
UCD-SNMP-MIB::dskMinimum.1 = INTEGER: 10
UCD-SNMP-MIB::dskMinPercent.1 = INTEGER: -1
UCD-SNMP-MIB::dskTotal.1 = INTEGER: 4127076
UCD-SNMP-MIB::dskAvail.1 = INTEGER: 147692
UCD-SNMP-MIB::dskUsed.1 = INTEGER: 3769740
UCD-SNMP-MIB::dskPercent.1 = INTEGER: 96
UCD-SNMP-MIB::dskPercentNode.1 = INTEGER: 0
UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: 0
UCD-SNMP-MIB::dskErrorMsg.1 = STRING:


次に、MRTGの設定。
snmp-utils と同じようにMRTGのRPMをDLしてインストール完了。

「Malformed UTF-8 character」というエラーが出た為、
localeを確認。
LANG=en_US.UTF-8 だったので、一時的に
export LANG=ja_JP.ujis
としておく。
気を取り直して
indexmaker -t INDEX mrtg.cfg > index.html
とすると、
Possible precedence problem on bitwise | operator at /usr/bin/../lib/mrtg2/BER.pm line 601.
Can't locate package $VERSION for @MRTG_lib::ISA at /usr/bin/indexmaker line 49
main::BEGIN() called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
eval {...} called at /usr/bin/../lib/mrtg2/MRTG_lib.pm line 49
ERROR: Line 9 (/home/users/e-newest/public_html/mrtg) in CFG file (mrtg.cfg) does not make sense
と、またまたエラー。。新しいことをすると壁も多いもんだ。
原因を調べたら
http://www.linuxhomenetworking.com/linux-hn/appendix-diff.htm

にビンゴな答えが。
言われた通り、
@ISA = qw(Exporter $VERSION);
の部分を
@ISA = qw(Exporter);
と修正。
Possible precedence problem on bitwise | operator at /usr/bin/../lib/mrtg2/BER.pm line 601.
のエラーは、設定ファイルに不備があったようだ。
# WorkDir: /home/http/mrtg
/home/users/e-newest/public_html/mrtg
をいう設定を
# WorkDir: /home/http/mrtg
WorkDir: /home/users/e-newest/public_html/mrtg
として再び
indexmaker -t INDEX mrtg.cfg > index.html
を実行。

Possible precedence problem on bitwise | operator at /usr/bin/../lib/mrtg2/BER.pm line 601.
というメッセージが出るが無視。

mrtg mrtg.cfg
を実行して、index.htmlをブラウザで表示させると
一応、グラフが表示された。
あとは、cronにmrtgコマンドの登録をして寝てまとう。

P.S お世話になったサイト様
http://www.jpring.net/jitaku/snmp-mrtg.html
http://www.atmarkit.co.jp/flinux/rensai/root08/root08c.html
http://www.ushio.net/linux/mrtg.htm

/varがピンチ

2005-09-01 17:56:31 | OS、ハードのお話
Linuxの/varがピンチである。
Used 100%ではないか。このサーバーではApacheが動いており
そいつが週に700Mのaccess_logを吐く。
先日、DiskFullでSendmailの送信が出来なくなってしまった。
そこで、/etc/logrotate.conf をいじってローテーションを2にしたのだが
それでも甘いようだ。
compress を有効にしといた。これで大丈夫だろう。

尚、logrotateについてここを参考にさせて頂きました。感謝。

NAS上にORACLEを!

2005-08-31 14:03:41 | OS、ハードのお話
会社のUNIX系マシンは空き領域が少ないので
NAS上にDBを作ることにした。
(NASって単なるNFSサーバーなんですね。IT用語は単語が多くて困る。。)

と、いうことで玄箱HGを購入。400GのHDDをくっつけてNFSマウントし
いざDB作成!が、失敗。(OracleのモジュールはローカルHDD内)
Linux+玄箱の場合はうまくいくのだが
Unix(Solaris,HP-UX PA-RISC,HP-UX Itanium)+玄箱の場合は
Create Database 文を実行した後、
制御ファイルを1つ作っただけで処理が止まっている。
恐らく制御ファイル作成完了のI/Oシグナルを受け取れていないのだろう。

今回の主たる目的はHP-UX Itanium上に100GB程度のDBを構築することなので
なんとしてもUNIX+NASでNAS上へのDB構築が必須である。
かくして、茨の道が始まった。。次回に続く!

NAS+RAC

2005-08-30 17:32:14 | RAC
先日からやっているNAS(玄箱)+RAC(10g)の構築をさっさとしなければ!
DBを作るところまでいったが、TCP通信が多すぎてVotingDiskの
書き込みが遅延している模様。CreateDatabase中にリブートがかかってしまう。

ちなみにDBサーバーはHPのrx16xx(HP-UX Itanium)です。
Unix-LinuxでのNFSマウントには苦労しました。。

開設祝!

2005-08-30 17:24:11 | Weblog
やろうやろうと思ってから、ようやく「ブログ」なるものを開設しました。
たぶん、ほとんどORACLEネタになるでしょう。
さすが、Goo。Ajaxしてますね。