流転工房

シンギュラリティをこの目に

これは使えるOracle新機能活用術(矢田龍太郎他)読了、、つまみ食いに最適のDBマガジン連載本。


1章 パーティション表でデータを分割統治せよ
2章 Data Guardに見るスタンバイデータベースの進化
3章 システムを停止させないバックアップの手法
4章 RMANの活用とバックアップ運用の改善
5章 パラレル実行による真の性能向上とは
6章 ASMによるストレージ管理の簡素化
7章 ディスクドライブの性能特性から見たASMの活用
8章 性能を意識したデータベースの作成
9章 接続のフェイルオーバー機能と障害検出
10章 Oracleカーネルの高速な全文検索機能
11章 Oracleの自動化 前編
12章 Oracleの自動化 後編

久々のOracle再スタディ。

参画プロジェクトで使うところだけ重点読みとつらつら書き。

3章のバックアップ、特にユーザー管理バックアップによるホットバックアップ手法は定番ながら面倒。

スナップショットやスプリットミラーのストレージ機能と組み合わせる形をよく見るけど、ストレージと管理ソフトウェアの費用は高額すぎるので、昨今の流れではイマイチな手法。ベンダーブラックボックスだし。


4章のRMAN運用によるバックアップ時間短縮はどれほどのものか。バックアップセットによる未使用データブロックスキップは強力だけど目新しくはない。。

リカバリータイムの短縮まで言及しているけど、昨今の大規模データストレージはまずバックアップ時間の短縮が最優先、、けど結局はディスクIO性能依存だろうし、大規模DBバックアップならDataGuard+スタンバイDBでのデータ退避が自然なのか。


6章。Oracle on UNIXで定番だった、RAWデバイス運用はそろそろ衰退。ボリューム管理はOSにまかせてOracleはDBに特化してほしいと思わなくもないけど、RAW運用の増設時のデメリット(面倒、ストライプ設計崩壊)は見逃せない。
となるとASM。Oracleを使うなら、特に11gからならもうサポート的に必須。
OracleインスタンスとASMインスタンスCSSと、運用管理対象が増えるけど、ボリューム管理が楽になるなら苦労は構築時だけだと思いたい。ま、OracleからASMはファイルのように扱えるけど、OSからはASMはファイルとしていじれないのは要注意かも。

あとこの章で美味しかったのは、ディスクドライブ性能の測定方法(Linux)が整理されているところ。簡単に要約。

シーケンシャルアクセスの測定方法:
このアクセスはddコマンド(dd of=/dev/null bs=1024k if=/dev/sdb1)で実施可能。
で、sdb1に対するIOPSと帯域を読み取る(iostat -kx)ことで、r/s(1秒当たりの読み取り回数 IOPS)やrkB/s(1秒あたりの読み取りキロバイト数 帯域)を取得できる。
帯域÷IOPSで、1回あたりの平均I/Oサイズも算出できる。(OSによってはI/Oサイズ上限が512KBの場合あり)

ランダムアクセスの測定方法:
これはOS付属ツールのみでは難しく、OracleのORIONというI/O性能測定ツールによって算出できる。
ORIONはランダムアクセスもシーケンシャルアクセスも可能だが、I/Oサイズが大きいと、OS内部でI/Oリクエストが分割される場合がある為、iostatの出力との比較は注意。


8章。性能についてより、キャラクタセットの整理があって助かる。。TildeとWaveDushアタックは、なぜかよく喰らうし。
で、EUC系(JA16EUS、JA16EUSTILDE)とSJIS系(JA16SJIS、JA16SJISTILDE)とUnicode(AL32UTF8)の3つ。

EUC系とSJIS系でTILDEなしのキャラクタセットのDBからWindowsプラットフォーム上にデータを取り出す場合、TildeとWaveDushが文字化けするのは知られた話。WindowsのプラットフォームでのUnicodegと、EUCSJIS文字コードマッピングはずれているから、TILDEつきを使う必要があると。

今後厄介なのは、Unicodeの4バイト文字(サロゲートペア)と、Windows Vistaの新しい文字コード。AL32UTF8が必要になるか。。


ああ、、久々のOracleは相変わらず頭痛がする、、向いてないけどシステムのデータをコントロールするためには避けて通れない。。