私の日常の仕事はOracleDBを中心に回っていますが、開発者としてもDBAとしても、DBを日常的に使用するのに役立つ隠れた機能はないでしょうか。
これがどのように「隠されている」かはわかりませんが、バージョン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」からレコードを取得します。
過去数年間、オラクルのテクニカルサポートから文書化されていないパラメータが提供されることがありますが、通常、文書化されていない(〜=非表示)理由は、トラブルシューティングと特定の問題にのみ使用する必要があるためです。
このページ (Donald Burlesonによる)は、文書化されていないパッケージとビューを見つける方法についての良い内訳を持っていますが、私が使用する原因となったものはあまりありません...
アクティブなセッションを見つける:
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/
隠された機能があなたが予期しないものであるかもしれないことを考えると、私はあなたがあなた自身に対して悪用されたくないものに投票します(あなたがそれらを無効にしなければならないことを知らなかったという理由だけで)。
オラクルのハッキングについての話からのホラーシナリオを覚えています(私はそれが これ -また ビデオ だったと思います)。最も印象的な機能は完全なデータベース暗号化でした。これは利用可能であるように見えますが、ライセンスされていません。したがって、攻撃を受けていて、誰かが必要な特権でSQLインジェクションを悪用した場合、パスフレーズを要求されたときに次の再起動で認識されるデータベースの暗号化がトリガーされる可能性があります。暗号化は「業界標準」であるため、暗号化されていないバックアップを用意するか、攻撃者が要求した場合に身代金を支払う準備をすることをお勧めします。
これは、開発者またはDBAとしてuseには便利ではありませんが、知っておく価値がありますセキュリティを意識したDBAとして。
話を誤って引用して間違った話をした場合は、私に知らせてください。もっと深く掘り下げます。