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
・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