atsukanrockのブログ

Microsoft系技術を中心にぼちぼち更新します

Oracle Tips

今までに紙にメモしていたOracle Tipsを転記する。

バッファキャッシュをクリアする

SQL> ALTER SYSTEM FLUSH BUFFER_CACHE;

初期化パラメータ関連

値の確認

SQL*Plusで

SQL> show parameter <パラメータ名>
値の設定
SQL> ALTER SYSTEM SET <パラメータ名>=<値> SCOPE=(SPFILE|MEMORY|BOTH);

SCOPEの値の意味は概ね以下のとおり。

SPFILE
SPFILEを更新する。設定された値が適用されるのは、次回のインスタンス起動時。
MEMORY
メモリ内で更新する。設定された値は即座に適用される。値の変更は、現在のインスタンスをシャットダウンしたらクリアされる。
BOTH
SPFILEとMEMORYの両方。つまり、変更が、即座に適用され、インスタンスをシャットダウンしても残る。

オブジェクトのコンパイル

SQL> ALTER <オブジェクト種類> <オブジェクト名> COMPILE;

ログインしているユーザー名を表示

SQL> SELECT USERNAME FROM USER_USERS;

接続しているデータベース名を表示

SQL> SELECT NAME FROM V$DATABASE;

Oracle(サーバー)のバージョン、エディションを表示

SQL> SELECT * FROM V$VERSION;

セッションを強制切断

SQL> ALTER SYSTEM KILL SESSION '<SID>, <SERIAL#>';

V$SESSIONからSIDとSERIAL#を取得する。

アーカイブログ関連

状態確認

SQL*Plusで

SQL> archive log list
有効/無効の切り替え
SQL> ALTER DATABASE (ARCHIVELOG|NOARCHIVELOG);
削除

RMANを使う。

(1) RMAN起動

シェル上で

rman target <SID>

(2) 削除実行

RMANで

RMAN> delete archivelog (until sequence m thread n|until time 'sysdate - 7'とか|all)

実行されたSQLの確認

例:

SQL> SELECT SQL_TEXT, EXECUTIONS, ELAPSED_TIME FROM V$SQL;

SQL*Plusでバインド変数を設定

AUTOTRACEする際などに使えるTips。

SQL> var <変数名(コロンなし)> <型>
SQL> exec <変数名(コロンあり)> := <値>

AUTOTRACEを準備

SQL*Plusで

SQL> @?/sqlplus/admin/plustrce.sql
SQL> GRANT PLUSTRACE TO <ユーザーID>;

SQL*Plusの@コマンドで、「?」はORACLE_HOMEを指す。