「Oracle Database」のエンジニアを対象にデータベース運用のためのテクニックなどに関するノウハウを紹介するイベントOracle Database Connect 2016に参加してきました。
その時のLTセッションのまとめです。
ORA-04031について
大野様
- 毎年70件前後はお問い合わせがある
- ラージプールか共有プールかでわかれるが今回は共有プールの話
- 予兆検知することはできないか?とよくいわれる
- 内部表を使って断片化を確認するか、メモリ使用率を監視するかだが指標がなくて難しい
- 発生するまで
- フリーリストスキャン→永続メモリ領域
- 10G以降はバッファキャッシュからメモリを移動するようになった
- V$memory_resize_opsを確認してメモリ移動ないかどうかをみれば判断することができる
- OPERTY`EがGROWならメモリサイズの見直しが必要
- statspackからもメモリサイズ変更の情報は確認できる
- MODE列がIMM、STA列がERRのものを見ておく
- 一回発生するとサービス提供できない状況になるケースが多い
Tuning Tips
清水様
- 目標:最終的に達成したいこと
- 目的を達成するための目安/指標を決めてチューニングしているか
- 目的を達成するための方法
- SQLの改修、初期化パラメータ調整、物理構成変更など
- filesystemio_optionsについて
- none
- setall
- directIO
- asynch
- ALL FlashやSSDといった高速ストレージで動かすのに最適なものは
- REDOの平均書き込み時間を計測して比較してみた
- statspackからredo write timeをredowriteで算出した
- 一番時間がかかった結果を100とし、相対的にだしたところ、setallが一番時間がかかった
- そのつぎにdirectio, async, noneという順番になった
- disk_sync_ioがtrueだったのでnoneとasyncがだいたい同じ
- kernelバージョンで環境変えたらパフォーマンスが変わった
- Kernel2.6とUEK3でやったが、UEK3を使ったらとてもはやかった
- FlameGraphというツールがおすすめ
Oracleでの論理削除
小生の発表。
tableにrow archivalをつけるとora_archive_stateという列が追加されるのでそれを用いて論理削除できるよというお話。
追加検証などはこちらを参照
SQL Developerって必要ですか?
河野様
- Oracle SQL Developerはオラクルが無償で提供しているGUIのDB開発ツール
- 使い方はOTNからDLして解凍するだけ
- DBがインストールされているならORACLE_HOMEにおいてあるのですぐに使えます
- 入力補完
- PDBを簡単に作れる
- 実行する操作のコマンドを把握できる
- RMANコマンドも把握できる
- GUIでRMANのコマンドを作成できる
- 実行計画がすぐに確認できる
- タブの色を変えられる
- ドキュメントの検索ができる
- サードパーティDBにも対応している
- まとめ
- SQL Developerは必要
- 開発の人じゃなくてDBAも使える
Yahoo!Japan 最新プラットフォーム
宇佐美様
YahooのRDB環境
- Oracleは214台
- バージョンは11.2.0.2, 11.2.0.4, 12.1.0.2(導入中)
- MySQLは619台
社内のOracleに対する要望
最新Oracleプラットフォーム
- IBM FlashSystemを採用した
- 130万IOPS出せました
- 現行環境の約5倍
- SQL性能も改善
- RACを6ノードで構成する予定
- その上にショッピングやオークション広告などを乗っける
- 運用管理の自動化をしようとしている
- 絶賛一緒にやるDBAを募集中なので興味がある方は宇佐美様へご連絡を!
PDBを簡単に超速複製! SNAPSHOT COPYを使ってみよう!
吉田成利様
- PDBを沢山複製して開発環境として使ってもらいたい
- →複製する作業に時間かけたくないし、ストレージ領域ももったいないので更新可能なスナップショットとか使って効率よくやりたい
- PDBをクローンする時にクローンしたPDBは更新分のデータのみ保持したい
- 結論としてはsnapshot copyという機能を使えば簡単にできる
- 12.1.0.2以降であればACFSじゃなくてもローカルファイルシステムで使える
SQL> alter system set clonedb = TRUE scope = spfile;
SQL> alter pluggable database hoge open read only;
SQL> create ...
- EM Database Expressからでも使える
- 注意
- 複製元となるPDBはクローンが存在する限りREAD ONLYのままキープしておく必要がある
- TDE表領域暗号化が有効になっている環境ではクローン後にキーのインポートを行う必要がある
- おまけ
- x$dbgalerttextをみるとアラートログが時間付きでみれます
- FAQ
- アラートログの監視はXMLを見ているのか?
- XMLをみているので11gからOracleでその表が見れるようになりました
- XMLをローテートされたら見れなくなるか?
Oracle常駐接続プーリング(DRCP)を導入した話
北川健太郎様
- 基本PHPが多く、コネクションプーリングがないため、処理毎に新規接続を繰り返す
- リスナーが原因不明で落ちる
- OSのカーネルCPUの使用率が高い
- 常駐接続プーリング(DRCP)を導入してみた
- 各SEで利用できる
- Oracle側でコネクションプーリングができます
- 利用法
- サーバ側:execute dbms_connection_pool.start_pook();
- クライアント側:tnsnames.oraに(SERVER=pooled)を記述しておく
- オンラインで設定可能
- 設定値はほとんどデフォルトで大丈夫だが、MINSIZE, MAXSIZE, NUM_CBROKは設定しておいたほうがいい
- 見積もり
- NUM_BROKER:セッション数、専用サーバ確立数で確認
- MAXSIZE:PGA_SIEと初期化パラメータのprocessesで見積もる
- NUM_BROKER:MINSIZEとだいたい同じ
導入後
- リスナーが落ちなくなり、CPUの使用率が1/3になり、ログオン数が増えた
起こったこと
- 接続ブローカーの拒否数が増加した → 接続ブローカ数を増やせば解決する
- サーバプールの待機の増加 → MINSIZEを増やす
- 共有プールが1ヶ月で10Gくらい肥大化した
- CCLASS_NAMEがランダムに生成されてキャッシュされていたので、クライアント側にORA_CONNECTION_CLASSを設定したら肥大化が止まった
- POOLED接続切断時の挙動として、最後にクライアントがRSTパケットを飛ばすのは理由が不明
まとめ
はじめてのLightning Talks
瀧本様
- 入社してすぐ、データウェアハウス、データマート、データマイニング、データベースが頭にあふれた
- 関係を書いてみたらしっくりした説明ができなかったので、先輩にきいた結果、DBとはなにかがわからなかったので先輩にOracle DB入学式に参加しようと誘われた
- しかし中止になってしまった
- 裏目標として入学式で学んだことをLTで演る予定だったので入学式を楽しみにしています
LTの締め
諸橋様
- 5/10はJPOUGを作ろうと言い出した日です
- 5年前にとあるセミナーに参加したらJOUGがなぜないのかと疑問をつぶやいている人がいた
- タイのユーザのようにやってみたかった
- 勉強会はよくわからないので、勉強会と銘打ったイベントは開催していない→イベントと銘打っている
- 設立趣旨を作ろうとなって作った
- JPOUGはみんなのことです!
- JPOUGは普段は小さいところでイベントをやっていたりします
- ギークな方々とまた皆様集まりましょう!
LTから会場との空気がガラリと変わってLightningっぽい空気になりましたが、それでも人数が多い中でのLTというのはある程度の緊迫感があります。
LTは様々なtipsを聞けるのでじつにためになるセッションでした。
個人的にはSQL Developerが困ったときにはすごい役立ちそうなので今後、使っていこうと思います。
View Comments
Thank you very much for sharing. Your article was very helpful for me to build a paper on gate.io. After reading your article, I think the idea is very good and the creative techniques are also very innovative. However, I have some different opinions, and I will continue to follow your reply.
Your article helped me a lot, is there any more related content? Thanks!