kenken0807_DBメモ

つば九郎が好きなDBAです。Oracle Standard Editionでの運用やツールとかとかの備忘録。特に記載がない場合はoracle11gR2です。時々MySQL

ORACLE SE

バインド変数が使用できないバッチ処理の共有プール肥大化対処方法

とあるバッチ処理がバインド変数を使用できずに共有プールが肥大化していた。 そのためstatspackを1時間毎に取得していたが、1時間では取得処理が終わらない状況になってしまった。 select pool, name, bytes/1024/1024 MB from v$sgastat where pool = 's…

常駐接続プーリング(DRCP)で共有プールが肥大化する

前回導入したDRCPを使用しているOracleのshared_poolが異常な勢いで増えてしまったため、 ORA-04031: 共有メモリーの○○バイトを割当てできません が発生してしまった。 SQL文でバインド変数を使用してないところも多いので共有SQL領域が増えているのかなと思…

Oracle デフォルト設定でテーブルがselectされてるかさくっと調査する

とあるテーブルがselectされているか教えてほしいと言われたので、 標準監査の設定をしていなかったが明示的にaudit_trailをNONEにしていなければ 11gR2からaudit_trailがデフォルトではDBとなっている。 確認 >show parameter audit_trail NAME TYPE VALUE …

Oracle NULLも容量として加算されるテーブル構成

NULL許容のカラムの後にNOT NULL制約のついたカラムがあるとNULL値も容量を使ってしまう。 テーブル作成 create table nullfirst ( id number, [PRIMARY KEY] id2 number, [NULL許容] id3 number, [NULL許容] id4 number, [NULL許容] idnotnull number not n…

シーケンスを再作成せずに指定した番号に進める方法

シーケンスを作成した際に、初期値はstart withで指定してあげた値から始めることができる。 create sequence TEST_SEQ start with 10000; select SEQUENCE_NAME ,MIN_VALUE,CACHE_SIZE,LAST_NUMBER from user_sequences; SEQUENCE_NAME MIN_VALUE CACHE_SIZ…

Oracle 読み取り専用ユーザー(READ ONLY)の作成

とあるユーザに対して、読み取り専用でユーザーを作成したのでメモ。 書き込み兼読み取りユーザー・・TEST 読み取りユーザー・・TEST_READONLY TESTユーザーの読み取り専用ユーザーTEST_READONLYを作成する。 すでにTESTユーザーには複数のテーブルが存在し…

Oracleデータベース作成時の自動メンテナンスタスクとは

Oracle11gR2でDBCAを使用してデータベースを作成していると、↓のような自動メンテナンスタスクのチェックボックスを選択する項目がある。 この自動メンテナンスタスクはもちろんONにしたほうが良いが(defalt ON)何をやっているのか調べてみた。 自動メンテナ…

Oracle Standard Editionで可能なフィジカル・スタンバイ・データベース検証(基本スタンバイ)

ディザスターリカバリ用に基本スタンバイの検証を行う。 プライマリデータベース(P)とスタンバイデータベース(S)の冗長構成を作成することができ、プライマリデータベースにて作成されたアーカイブログを逐次スタンバイデータベースへ転送し適用するとい…

Oracleリスナーの追加方法メモ

Oracle Listenerを追加する際にいつもわからなくなるのでメモ。 環境はOracle 11.2.0.4。 1.動的リスナー追加 2.動的リスナーを大量に追加 3.静的リスナー追加 1.動的リスナー追加 LISTENER2とLISTENER3を追加する listener.ora編集 vim listener.ora LISTEN…

Oracle Textを使用したチェックボックスでの検索

Oracle(RDB)でのチェックボックス検索はけっこう鬼門だったりする。 チェックボックスで持っている項目をカラムとして列持ちしてあげると 項目がなくなったり追加の際にカラム自体の追加、削除をすることになり、表ロックがかかりメンテナンスが難しい。 ま…

Oracle Standard Editionでも使えたフラッシュバックデータアーカイブ

まず、フラッシュバックデータアーカイブとは その存続期間中、表に対するすべてのトランザクションによる変更を追跡および格納できます。 レコード・ステージ・ポリシーと監査レポートのコンプライアンスに役立ちます。 Oracle® Databaseアドバンスト・アプ…

Oracle常駐接続プーリング(DRCP)を導入して苦労したメモ(3)

4.DRCPの監視と調整方法 まず、DRCPおいて監視すべき項目を洗い出す。 ・ listenerへの確立回数と拒否回数 ・ 現在のプールサーバ数と使用されているプールサーバ数 ・ DRCPへのリクエスト回数とウェイト回数 これらの項目をグラフ化すれば、DRCPはオンライ…

Oracle常駐接続プーリング(DRCP)を導入して苦労したメモ(2)

2. 初期プールサーバ数ではまったこと 初期プールサーバ数デフォルトで検証 DBA_CPOOL_INFOビューで確認すると、 maxsizeがデフォルト40であり、これは変更しなくてはいけないものだというのはわかるが、 minsizeがデフォルト4で接続が足りないとincrsizeが…

Oracle常駐接続プーリング(DRCP)を導入して苦労したメモ(1)

うちのシステムでPHPを使用していて専用サーバ接続で結構な頻度で接続切断を繰り返しているので、サーバリプレースのタイミングでDRCPを導入することになり、いろいろと嵌ったのでメモ。 環境は11.2.0.4 SEone。 インストール方法と設定値確認方法 初期プー…

Oracleでカラムの順序が重複したインデックスの検索の違いを見る

カラム順序が重複したインデックスが存在していると、検索にどのような違いがでるのか、また不要であれば削除すればよいか確認する。 環境は11.2.0.4 SEone。 読み込みブロック数を確認する まず、以下テーブル(行10000件)を用意。 SQL> desc INDTEST; 名…

OracleからMySQLへODBC経由のデータベースリンクで接続したメモ

Oracle Standard Editionで可能なDatabase Gateway for ODBC (DG4ODBC)を使用してMySQLに接続したのでメモ。 Database Gateway for ODBC (DG4ODBC)を使用すれば ODBC接続でOracleから他のDB(MySQL)などにデータベースリンク経由で接続可能となる。 環境 DB…

Oracleでページング処理を高速化する方法

oracleでのページング処理を行う場合、指定した件数のみのフェッチ回数で処理終了するようにSQLを記述してあげることで高速に処理できます。 mysqlのlimit句のような動きが可能になります。 そのためには必要なことは ・ 適切なカラムに対してインデックスを…

Oracle SEでINSERT TRIGGERとVIEWで作るパーティション

oracleのパーティション機能はoracle EE+optionで使用可能です。 これをなんとかstandard editionで実現できないかと模索。。。 insertとselectのみであればtriggerとviewを使用し、 パーティション風の機能の実現可能だったのでメモ。 バージョンはoracle 1…

Oracle SEでインデックス圧縮について考える

oracleの運用をしていると問題になることの一つは容量不足。 特に頻繁にupdateされるインデックスの容量増加率は激しい。 EE+Oracle Advanced Compressionを使用すれば色々できるが。。。。 それは私にとっては夢の話なのでw oracle SEで可能な圧縮について…

Oracle SEでできるパラレルupdate処理

ご存知パラレルSQLはEEしか使用できないが、SEでもPL/SQLを使用すれば簡単にパラレルで処理することができる。 それがDBMS_PARALLEL_EXECUTE 11gR2以降から使用できるみたい。 Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス このパッケージ…