ORACLE MANIAC

ORACLE技を研究中...

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

既存のテーブルからDDLを作成するプロシージャ Oracle

はこうすればよい。

select dbms_metadata.get_ddl('TABLE','EMP','SCOTT') from dual;

テーブルに限らず、インデックス、表領域なども可能。


スポンサーサイト

テーマ:データベース - ジャンル:コンピュータ

  1. 2008/03/08(土) 09:33:51|
  2. ORACLE
  3. | トラックバック:0
  4. | コメント:0

V$UNDOSTAT DBA_HIST_UNDOSTAT ORACLE

V$UNDOSTATは10分おきのUNDO情報が取得できる。

10分おきにORA-01555が発生した回数や、UNDOブロックをどんだけ使用したかがわかる。

これによりUNDO_RETENSIONなどを見積もるとよいだろう。

さらにV$UNDOSTATは1週間で消えてしまうが、
過去の値はDBA_HIST_UNDOSTATに保存されている。

10g以降このパターンが多くなった。

テーマ:データベース - ジャンル:コンピュータ

  1. 2008/03/02(日) 11:40:01|
  2. ORACLE
  3. | トラックバック:0
  4. | コメント:0

procedureの実行者 Oracle

プロシージャは通常、procedureのowner権限で実行される。

create procedure aaa.p1 ~

で作成すると、bbbユーザで実行してもプロシージャ自体はaaaユーザで実行される。

これをどうにかしたい場合は
AUTHID CURRENT_USER をつけると実行者権限で実行される。

create procedure aaa.p1
AUTHID CURRENT_USER


とすると、bbbユーザの場合は、bbbユーザでプロシージャが実行される。


テーマ:データベース - ジャンル:コンピュータ

  1. 2008/03/02(日) 11:35:11|
  2. ORACLE
  3. | トラックバック:0
  4. | コメント:0

umask Oracle exp expdp

umask は、新しくファイルを作成する際に、許可しないビットを示すものである。
普通、ファイルの新規作成時はファイルの実行ビット (execute) は立てないので、umask が 022 ということは、666 から 022 を引いた 644 というパーミッションで新規ファイルが作られることになる。
umask が 002 なら 664 、 umask が 000 なら 666 となる。

ということらしい。

例えば

umaskが022に設定されていた場合

新規にファイルを作成すると644で勝手に作られる。

では、expコマンドのdmpファイルは?

これもまた、644である。


ではでは、expdpは??

実は640である。

これはどうやらORACLEの仕様でパーミッションを制限しているらしい。
otherに権限を与えたくないみたい。

テーマ:データベース - ジャンル:コンピュータ

  1. 2008/03/02(日) 11:27:41|
  2. ORACLE
  3. | トラックバック:0
  4. | コメント:0

set -u UNIXコマンド 引数

set -u

を記述していると引数チェックされる。

例えば、

aaa.sh 内で以下のように記述していた場合、
bbb.sh $1 $2

$ ./aaa.sh arg1

を実行するとエラーになる。

$ ./aaa.sh arg1 arg2

は問題ない。

$ ./aaa.sh arg1 arg2 arg3

も問題ない。(arg3は無視される)

テーマ:UNIX/Linux - ジャンル:コンピュータ

  1. 2008/03/01(土) 18:34:15|
  2. コマンド
  3. | トラックバック:0
  4. | コメント:0

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。