ORACLE SE
JPOUG in 15 minutes #1 | Japan Oracle User Group (JPOUG)で自分がやってきたOracle SEでの運用方法について話をさせてもらいました。 Oracle Database Standard Editionでの運用いろいろ from kenken0807 www.slideshare.net 主な話としてはSEでASHっぽく…
RMANで別ホストに移行した時にOEMの作成でいろいろ嵌ったのでメモ。 emca -config dbcontrol db -repos recreate実行時 パターン1 設定: ORA-01031: ???????-?????????? ・ ・ ・ 2014/10/09 9:58:40 oracle.sysman.emcp.util.GeneralUtil initSQLEngineLoa…
Oracleを使用していると、断片化がつらい。 頻繁に更新しているインデックスの断片化が特につらい。 そして表領域を圧迫していく。。 そういう時にEnterpriseEditionであればindex rebuild onlineなんてできるけど、 StandardEditionだとできないのでshrink…
あるOracleDBを同一サーバ上に複製させるメモ。 環境は12cSE2。 現在、稼動中のインスタンス名をtestdb、複製先DBをcopydbとする。 準備 初期化パラメータをコピーして、リネーム cp -p $ORACLE_HOME/dbs/inittestdb.ora $ORACLE_HOME/dbs/initcopydb.ora パ…
基表に対してSELECT権限がないVIEWに対してEXPLAIN PLAN FORを使用して実行計画を取得しようとすると SQL> explain plan for select * from test.test1_view; explain plan for select * from test.test1_view * 行1でエラーが発生しました。: ORA-01039: ビ…
Oracle 12cの新機能のオンライン操作をOracle Standard Edition2でできるか確認したのでメモ。 ↓を基にいろいろ確認した。 docs.oracle.com バージョンはOracle 12.1.0.2 SE2 オンラインでのデータファイル移動 結果: × これはもちろんできません。 alter da…
12cからの新機能のプロセスのマルチスレッド化を試してみました。 今回はバックグラウンドプロセスではなく専用サーバのスレッド化についてです。 環境はOracle database 12.1.0.2 SE2 マルチスレッドの有効化 初期化パラメータのTHREADED_EXECUTIONとUSE_DE…
JPOUGで2回目のLTしました。 さすがに1回目より緊張しないかなーと思たけど、 500人以上の会場の規模にさすがにビビった。。。 イベント内容 Oracle Database Connect 2016 | Japan Oracle User Group (JPOUG) スライド Oracle常駐接続プーリング(DRCP)を…
テーブルごとの1時間あたりのDML(INSERT,UPDATE,DELETE)の平均を取得するために考えた方法。 確認手段としてDBA_TAB_MODIFICATIONSを使用する。 ALL_TAB_MODIFICATIONS 以下のように確認できる。 SELECT table_name,inserts,updates,deletes,to_char(time…
OracleSERAC+ASMのRMANバックアップから非ASM(ファイルシステム)のシングル環境へリストアしたのでメモ。 環境 Oracle11.2.0.4 DB_NAME:orcl 前提 RMANバックアップは毎日0時にフルバックアップを取得(backupset plus archivelog) delete noprompt obsol…
RMANでアクティブなデータベースから同じSIDを持った複製データベースを作成したのでメモ。 複製先サーバ側の設定 複製先サーバでOracleインスタンスが起動できる状態にしておく 同じバージョンORACLEソフトウェアのインストールをしておく 環境変数も設定す…
データリカバリアドバイザを使用してリカバリを行うと楽に復旧可能だったのでメモ。 Oracle RACでは対応してないみたい、シングルインスタンスのみ対応。 環境はOracle database 11.2.0.4 SEone。 以下条件で実施している。 1. 高速リカバリ領域の有効化(バ…
GUIを使用せずに簡単にORACLE DATABASEを作成する。 SIDはorclで作成。 環境 今回はdockerを使用する。 dockerのデフォルトshmsizeが64MBで小さすぎてORACLEインスタンス起動できなかったので --shm-sizeを指定できるversion1.10を使用。 # docker --version…
OracleとMySQLを使用しているとカラム変更の動作がいろいろと違ってくるので、 どっちがどっちかわからなくなることか多いのでまとめ。 OracleDatabaseSE(11.2.0.4)とMySQL5.6.29(INNODB)で調査。 1. 実行可能なものは(可) 2. 実行が即時で終了するもの…
結構前にJPOUGでLTしたOracleDatabaseセミオンラインDDLを作成しました。 ベンチマークツールのswingbenchで試したりしたのですが、たぶん動くはず。。。 OracleDatabase11gR2に対応。 仕組みは以下を参照 kenken0807.hatenablog.com github.com できること…
スキーマMVIEW_MOTOのテーブルTESTに対して スキーマMVIEW_SAKIにFAST REFRESH ON COMMITモードのマテリアライズドビューを作成する MVIEW_MOTOにテーブルとマテリアライズドビューログの作成 CREATE TABLE test (id NUMBER,id2 NUMBER,del_flg NUMBER,CONST…
前回記述したブログを元に解析ツールを作成した。 kenken0807.hatenablog.com Oracle-ArchiveLog-Analyzer github.com MySQLのmysqlbinlogのような感じでLogMinerを使用してトランザクションごとにコミット順にテキストフォーマットで表示する。 インストー…
アーカイブログやオンラインREDOログからLogMinerを使用して、実行されたSQLを調査する際に 不要な内部SQLがあったりして確認が手間だったりする。 不要な内部SQLを取得せずにトランザクションごとにまとめて、コミットした順番で表示させる。 前提 サプリメ…
sqlloaderで既存のシーケンスのNEXTVALを使用には コントロールファイルの対象カラムにexpression句と対象のシーケンスを指定してあげる。 以下例ではtest_seqidカラムにSEQ_SEQTEST.NEXTVALの値を格納する。 コントロールファイルを作成 $ vim test.ctl LOA…
1.現在のSQL経過時間を確認するSQL SELECT AUDSID, nvl(round((sysdate - SQL_EXEC_START) * 24 * 60 * 60,0),0) as ACTIVE_TIME ,sql_id ,username FROM v$session WHERE username in ('ORAUSER','ORAUSER2') AND --チェックするユーザを入れる status='ACT…
ざっくりこんなことがしたい 指定したユーザのみSQL監査(例:KANSA)、KANSAユーザにはselect権限のみ ↓ ログインした段階でログイン情報をテキストに出力 ↓ ログオフした段階でいままで実行したORAUSERユーザのオブジェクトへのクエリをテキストに出力 ↓ そ…
JPOUG Advent Calendar 2015の3日目のエントリーです。 昨日はShinnosuke Akitaさんの「Oracle DatabaseのASMディスクグループの空き容量を調べる」でした。 普段ORACLEとMySQLを使用してるとよくSQL*PlusでもSHOW構文を使ってしまって、こうなっちゃうので…
あるスキーマのLOBカラムを持つテーブルを洗い出していたときに、 たまたまCMP3$104964というテーブルが引っかかった。 このようなテーブル作った覚えはなかったが、再度検索するとすでなくなっていた。。 ORACLE内部でcreate tableしてすぐにdrop tableして…
だいぶ遅くなってしまったが、JPOUG> SET EVENTS 20151017でLTをさせていただきました。 あまり登壇する機会はないので非常に緊張しました。 Oracle Database Standard EditionでセミオンラインDDL from kenken0807 www.slideshare.net 内容としては、 oracl…
とある理由でOracleサプリメンタルロギングを有効にすることがあり、 本番サーバのトラフィックがある中で実行してみたのでメモ。 実行するSQLは以下、 alter database add supplemental log data (primary key,unique) columns; すでに最小サプリメンタルロ…
kenken0807.hatenablog.com 前回の記事でASHっぽく分析するようにMySQLにv$sessionを投入していたが、 今回はそれをMuninにてグラフ化することでOracle Enterprise Managerの平均アクティブ・セッションのグラフっぽくする。 ↓Oracle Enterprise Managerの平…
Oracle Database Standard EditionではASHはもちろんできない。 なので、それっぽい監視の仕組みを導入している。 仕組みとしては、 1、30秒毎にV$SESSIONの情報を取得しMySQLに突っ込む 2、MySQLのデータをMuninでグラフ化 1、30秒毎にV$SESSIONの情…
コメント を見ているとオンライン・アプリケーション・アップグレードのヒントってのでいくつかあったけど なにかよくわからなかったから試してみた。 1.CHANGE_DUPKEY_ERROR_INDEXヒント INSERT操作およびUPDATE操作時に指定した索引に対して一意キー違反が…
巨大なテーブルでカラムの定義変更中はDML処理が enq: TM - contentionやlibrary cache lockなどで待機してしまう。 待機させないためにカラム定義変更を即時で完了させることのできる方法をまとめたメモ。 とあるテーブル SQL>desc ab Name Null? Type ----…
ANALYZE INDEX VALIDATE STRUCTUREでインデックス情報を取得し違いをさくっと検証した。 注意:ANALYZE INDEX VALIDATE STRUCTURE 実行中のDML処理は、ANALYZEによるロックが開放されるまで待機してしまう。 現在のインデックスの状態 SQL> analyze index TE…