JPOUG> SET EVENTS 20140907参加メモ

JPOUG> SET EVENTS 20140907 | Japan Oracle User Group (JPOUG)に参加させて頂きました。
ので、typo沢山ありそうなのですが、そのメモはりつけ。
企画運営の皆様、会場のIIJ様ありがとうございました。
12cは触ってないので知らないことだらけ、ターミナルの件はbashあんまり使いこなしてないのでその辺、MySQLはロック周りの挙動を改めて勉強し直しとどれもとても勉強になる話ばかりでとても満足。

知られざる Oracle Database 12c の新機能

スライドは後日公開できるようになったら公開したいとのこと。

・列データ型の制限拡張
 varchar/rawが32kまで拡張
 char系は2000バイト制限のまま
 標準では無効なので、設定変更必要で変更したら戻せない
 実態はインライン格納のBLOB
  物理フォーマットは初期化パラメータdb_securefileと表領域タイプで変わる
 インデックス張れる
  制限とか
   ファンクションインデックス
   列サイズが「ブロックサイズ×75% - オーバーヘッド」の制限はそのままで引っかかりやすくなる
 LOB使わないやり方
  後から列のmodifyで増やす
  初期化パラメータ:_scalar_type_lob_storage_threshold でのLOBしきい値の調整
 
・Identify列
 テーブルの列に一意な値を自動設定する機能
 自動採番された値をユーザが更新できるかどうか、を設定できる
 実態は自動生成されるSEQUENCEとデフォルトの組み合わせ
  シーケンスの制限がそのまま適用される
 自動生成されたシーケンスは ALTER SEQUENCE はエラーになる
  ALTER TABLE で調整
  でもnextvalはできる
 列のデフォルト値でシーケンスを指定することもできるようになった
  この場合は依存関係をチェックされていないので、シーケンスだけ削除することができてしまう

・fetch n rows only
 これまでは row_number,rownumでやってた
 12cではoffset / fetch next / only などを使って簡単にかけるようになった
 他にあまりないのはパーセント指定、同値の値を出す機構など
 実行計画見ると、row_numberとサブクエリ、caseでの書き換えをして実行されている
 制限
  下記あたりと一緒には使えない
   for update
   シーケンス

・In-Database Arvhiving
 レコードの有効・無効フラグを自動判定させる機構
 テーブルの設定で row archival 属性設定
  all_tab_colsで見えるけど、all_tab_columnsでは見えない列
 ora_archive_state 列を 0(0x30) 以外に設定した行はwhereをつけなくても勝手に見えなくなる
 alter session set row archival visibility=ALL で制御を無効化もできる
 実行計画見ると勝手にwhereをつけた動きをしている
 注意点
  制約は有効なので、一意制約とか注意
  列が勝手に追加されているので、列数maxが減る
  属性を消すときは大量のI/Oが起きちゃうので大規模テーブルは注意

・SEQUENCEの拡張
 セッションという属性ができた
 セッション単位で初期化されるシーケンス
 永続化されていない様子
 KEEP/Partitionという属性があるがこれは不明

・非表示列
 select * での表示列を見えなくするだけで、列指定すれば見える
 desc も見えなくなる
 visibleで属性設定するが、有効・無効を変更するとdescで見たときに末尾につく

・オンライン操作
 ONLINE指定できるDDLが増えた
 データファイルの移動がオンラインでできるようになった(オフライン化不要)
 セグメントの移動(パーティションの表領域移動など)
  ADO(データライフサイクルの機能)あたりはこの辺の恩恵でできるようになった

・マルチスレッドインスタンス
 バックグラウンドプロセスのスレッド化
  threaded_execution
  インスタンスを6プロセスくらいに集約
 サーバプロセスのスレッド化
  listener.ora DEDICATED_THROUGH_BROKER_〜をon
 DB接続時に / as sysdba とかがNGに
 共有メモリ使用は変わらず

PGA制限
 pga_aggregate_limitで制限値が設定できるように
  設定すると一番メモリ使っているプロセスが勝手に切られる

・unified auditing
 標準、SYS、ファイングレインを統合
 create audito policyで設定する感じ
 標準で有効になっている
 11gからの監査も有効なままなので、二重監査状態なので設定注意

・パッチセット12.1.0.2
 大量に新機能追加
 初期化パラメータも増減、デフォルト値変更あり
  ドキュメントは最新を見ること

とあるDBAの黒い画面(ターミナル)II ~端末作業を快適にするヒント、お届けします(その2)~

JPOUG> SET EVENTS 20140907 で話してきました - Keep It Simple, Stupid

三種の神器:vim/zsh/screen

・SQLplus
 ユーザプロファイル
  SQLPATH/login.sql
 プロンプトの調整
  事前定義変数を使ってもうちょっと見やすく
  set time on で時刻表時
  事前変数以外も変数設定可能
  ただ、50文字くらいまでぽい
 SQLバッファ
  _editorを設定するとエディタを指定できる
  define _editor=vim 

・リファレンス
 吉川さんツールgithub
  yoshikaw/oracle-cui-reference · GitHub
 生成するコマンドをたたいたターミナルの幅に合わせて生成されるのと、EUCでできあがる
 ローカルにおいておくと便利

・シェル機能を使いこなす
 Ctrl/Esc 経由での操作が可能
 移動 Ctrl-a/e
 切り取り Ctrl-k/u/w/y
 ヒストリ検索 Ctrl-r/s
 ヒストリ利用 !!/!$
 ヒストリの置換 ^xxx^yyy もしくは !!:gs/xxx/yyy
  置換してすぐ実行されるので注意ではある
 ``の代わりに$()
 cd - で、1つ前のディレクトリと行ったり来たり

・rlwrap
 epelでぶち込みできる
 rlwap sqlplus でいい感じに
 保管用辞書使って、さらに便利に〜

・三種の神器
 時間無くてskip

MySQLのロックについて

スライド手直し中とのことで、出たら更新 → 更新されました
MySQLのロックについて - SH2の日記

MySQL デフォルトのトランザクション分離レベルである REPEATABLE READ が、InnoDB でどう振る舞うのかというお話をギャップロック、ネクストキーロック周りの挙動をとても分かりやすくまとめられていました
内容はスライドを見れば分かるので、ひたすら聞く方に集中してメモ取らず
InnoDBのロックのかかり方はSQLから想像するのが難しいので、何回聞いても勉強になります
平塚さんは READ COMMITTED で良いんじゃ…とのことで、今日の挙動を聞くと確かに…と感じました(笑
あと直前までツールデバッグで忘れてたというurandomの件はたぶんこの件
LinuxサーバからOracle JDBC接続するとEnd of TNS data channelやConnection resetが発生する場合の対処法 - けみかるはてな

LT

●LT:MySQLユーザから見た「ここが{ヘンだ,スゴい}よOracle Database」
 YahooのDB管理
  11g EE 200DB/ExaFullとかも
  MySQL 300DBとか他チームのものもある
 
 変なところ
  Webに情報無い、ソースが見れない
  sqlplus貧弱
  「データベース」がスキーマじゃない
  レプリケーションが脇役

 ここがすごい
  DBAという存在が明確に組み込まれていること
  データが消えないのが当たり前
  パラレルクエリ
  RACでの書き込みのスケール

 まとめ
  同じRDBMSでも結構違う
  複数勉強すると理解が深まる
  適材適所で選定できるように

●LT:WindowsでもChefしたい!
JPOUG> SET EVENTS 20140907で、LTしました:記憶に頼るんじゃない、記録するんだ:So-netブログ
 Chef-soloで作る
 C:¥opscode のPATHでインストールが必須
 knife-solo は個別インストール
  no-user-install
  もう1個 ignore〜 があったけどメモるのが間に合わず
 Berkshelf
  コミュニティのcookbook管理ツール
 後はお料理

●LT:安くて速くて安心な構成を目指して
 DBサーバ、ストレージの冗長化
  RAC/ASM
 NWの冗長化
  Bonding/Multipath
  Interconnectはact/actで帯域稼ぎ

 高速化
  InfiniBand
  ストレージ層ではiSer使用
  HDD&10Gからのメリット
   速い
   値段もあまり変わらず
   RDMA通信の考慮が必要

 Q&A:ASMの冗長化数はいくつ?
  標準冗長が多い、3コピーは議論にはなるけど今はあまり

●LT:続・IIJもデータベースのサービスやっています
 Hadoop連携できるカラムナーなDWHも追加
 リソース占有型のRACサービスもある


●聞けなかったもののスライドなど
http://www.slideshare.net/kitayamat/20140907-jpoug-myoldmemoriesofdatabase