忍者ブログ

OracleDBAの技術メモ

最近物覚えが悪くなったので 仕事中に調べた後々役立つ情報をメモしております。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ROWIDからブロックを特定する方法

ROWIDからブロックを特定したい場合 DBMS_ROWID パッケージを使用する。

以下使用例

SELECT DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) FROM EMP;

例では抽出条件を指定していないので、全てのレコードのブロック番号がリストされる。
PR

初期化パラメータ LOG_BUFFER について

初期化パラメータ LOG_BUFFER についてメモ。

変更するには再起動が必要。
SPファイルを使用しているのであれば。

ALTER SYSTEM SET LOG_BUFFER = 5,242,880 SCOPE = SPFILE;

サイズの指定はバイト単位。
”K” や ”M” の指定はできない。
初期見積もりは以下の式にて
MAX(0.5M, (128K * number of cpus))
Oracle Databaseパフォーマンス・チューニング・ガイド 11gリリース2(11.2)
7.4.1 ログ・バッファのサイズ設定 より

チューニングはこの値から初めて、様子をみて増減させる。
足りない場合は、待機イベント「redo buffer allocation retries」増加する。

未確認だが、LOG_BUFFERが大きすぎる場合は、待機イベント「log file sync」が多発するらしい。

LOG_BUFFER は AutoSGA の対象外である。
(MEMORY_TARGET については未確認)

SQL*Plusのログをシェルからきれいに出す方法

テーブルのレコードのみをシェルから出力したい場合などは
以下のようなコマンドをシェル等に組み込むとよいかも。

sqlplus -s ユーザ名/パスワード@接続識別子 <<EOF >/dev/null 2>&1
[set linesize 等の各種SQL*Plus見た目制御セッティング]
spool [ログファイル名]
[SQL文]
EOF

SQL*Plusの見た目制御は

linesize
pagesize
trimspool
column

等をセットするとよい。

Linuxでログ参照する場合に注意すること

Linuxでログ参照する場合、viewコマンドを使用するのはやめた方がよい。

viewコマンドはファイル全体を読み込んでしまうため、
うっかりサイズの大きなログファイルを開いてしまうと大量にメモリを消費してしまう。

場合によっては、他の重要なプロセスの実行を妨げることになってしまう。

できるだけ、普段からpager?系のコマンド(more、less、lv)を使用するように癖をつけておくようにする方がよい。

以下、簡単に検証。

/var/log 配下の退避された messages ファイル(約1GByte)をそれぞれのコマンドで開いた場合のメモリ使用量を見てみる。

□view コマンド
$ ps aux | grep view
root       950 48.0 32.4 1391452 1273940 pts/0 S+   16:12   0:11 view messages-20130414
503       1156  0.0  0.0 107456   916 pts/1    S+   16:12   0:00 grep view


□more コマンド
$ ps aux | grep more
root      1461  0.0  0.0 103356   944 pts/0    S+   16:13   0:00 more messages-20130414
503       1511  0.0  0.0 107460   924 pts/1    S+   16:13   0:00 grep more


□less コマンド
$ ps aux | grep less
root      1722  0.0  0.0 105440   876 pts/0    S+   16:13   0:00 less messages-20130414
503       1781  0.0  0.0 107456   924 pts/1    S+   16:14   0:00 grep less
※USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND


※私の環境では lv コマンドが使用できなかった;;

当然ながら view では、実メモリが1G程使用されている。

プロセスのメモリ使用量の調べ方

psコマンドでプロセスのメモリ使用量を知りたい場合は”aux”オプションを指定します。

表示されたリストで確認すべきは「VSZ」列と「RSS」列です。

VSZ:プロセスの仮想メモリサイズ(単位:KByte)
RSS:プロセスが使用している物理メモリサイズ(単位:KByte)
   ※スワップされていない分


topコマンドの場合は「VIRT」列と「RES」列が同じものです。

VIRT:psコマンドの「VSZ」と同じ
RES:psコマンドの「RSS」と同じ

ブログ内検索

プロフィール

HN:
宇佐 義男
性別:
男性
自己紹介:
都内で活動中のフリーエンジニア
最近はOracle DBに関する作業が主です。

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

最新CM

[08/06 Apagajid]
[06/23 Ajimehof]
[05/28 ovkftcz]
[05/20 Adeepen]
[05/13 Ajirubuy]

バーコード

P R

忍者アナライズ

免責事項

当ブログは日本オラクル株式会社 及びその子会社、関連会社とは一切関係ありません。 当ブログに記述の内容については、実際とは異なる場合があります。 記載しているコマンド、スクリプトを利用したことによって発生した問題、障害等については一切責任を負いません。 利用は自己責任にてお願い致します。