web-dev-qa-db-ja.com

OracleDatabaseの隠し機能

私の日常の仕事はOracleDBを中心に回っていますが、開発者としてもDBAとしても、DBを日常的に使用するのに役立つ隠れた機能はないでしょうか。

3
Kamil Zadora

Oracle DBAとして、目に見えるOracleデータベース機能に関する知識を増やすことは、文書化されていない予測不可能な隠し機能よりもはるかに役立つことがわかりました。まだ読んでいない場合は、 概念ガイド (pdf)から始めて、 管理者ガイド (pdf)を読んでください。詳細な読み取りオプションについては、いくつかのスタックオーバーフローの質問 ここ および ここ を参照してください。

6
Leigh Riffel

これがどのように「隠されている」かはわかりませんが、バージョン9i以降、 フラッシュバッククエリ メカニズムが導入されました。

フラッシュバッククエリを使用すると、過去の特定の時点でのOracleオブジェクトの内容と構造を確認できます(これらの情報がUNDO表領域に格納されている限り)。次に例を示します。

select * from 
mytable 
AS OF TIMESTAMP TO_TIMESTAMP ('2009-05-16 10:20:20', 'YYYY-MM-DD HH24:MI:SS'));

5分前の「mytable」からレコードを取得します。

3

過去数年間、オラクルのテクニカルサポートから文書化されていないパラメータが提供されることがありますが、通常、文書化されていない(〜=非表示)理由は、トラブルシューティングと特定の問題にのみ使用する必要があるためです。

このページ (Donald Burlesonによる)は、文書化されていないパッケージとビューを見つける方法についての良い内訳を持っていますが、私が使用する原因となったものはあまりありません...

1
Mark Regensberg

アクティブなセッションを見つける:

 SELECT SID, Serial#, UserName, Status, SchemaName, Logon_Time 
    FROM V$Session 
    WHERE
        Status=‘ACTIVE’ AND
        UserName IS NOT NULL;

RAC構成がある場合:

SELECT Inst_Id, SID, Serial#, UserName, Status, SchemaName, Logon_Time
    FROM GV_$Session
    WHERE 
       Status=’ACTIVE’ AND
       UserName IS NOT NULL;

参照: http://dbalink.wordpress.com/2008/06/08/find-active-sessions-in-Oracle-database/

0
MarlonRibunal

隠された機能があなたが予期しないものであるかもしれないことを考えると、私はあなたがあなた自身に対して悪用されたくないものに投票します(あなたがそれらを無効にしなければならないことを知らなかったという理由だけで)。

オラクルのハッキングについての話からのホラーシナリオを覚えています(私はそれが これ -また ビデオ だったと思います)。最も印象的な機能は完全なデータベース暗号化でした。これは利用可能であるように見えますが、ライセンスされていません。したがって、攻撃を受けていて、誰かが必要な特権でSQLインジェクションを悪用した場合、パスフレーズを要求されたときに次の再起動で認識されるデータベースの暗号化がトリガーされる可能性があります。暗号化は「業界標準」であるため、暗号化されていないバックアップを用意するか、攻撃者が要求した場合に身代金を支払う準備をすることをお勧めします。

これは、開発者またはDBAとしてuseには便利ではありませんが、知っておく価値がありますセキュリティを意識したDBAとして。

話を誤って引用して間違った話をした場合は、私に知らせてください。もっと深く掘り下げます。

0
Olaf