Oracle
Oracle 9i Gold DBA(II) メモ
(not ever)
Oracle 9i Gold DBA(II) メモ
●ネットワーク
Oracle Netの階層構造の真ん中3つの順番。 高い順に
Two Task Common、Foundationレイヤー、Oracle Protocol Support。
Oracle Netはクライアントとサーバーにインストールが必要は× (HTTPを使ってWeb経由でアクセスする際にはクライアントには不要だから)
リスナー名はマシン上で一意である必要はない
(listener.oraごとに一意)
「さまざまなプロトコルに対応させるためのOracleのソフトウェア」はOracle Net (Oracle Net Servicesではない)
解釈される順序「接続文字列」⇒「接続識別子」⇒「接続記述子」
Oracle Connection Managerでできること=多重化、アクセス制御、プロトコル変換
Oracle Connection Managerを使う場合はクライアントはローカルネーミングにする必要がある
ホスト・ネーミング・メソッドを構成するときに、クライアント側で編集されるファイルは sqlnet.ora (ホストネーミングの場合tnsnames.oraは不要)
ホスト・ネーミングの構成は、動的=SERVICE_NAMES初期化パラメータ、静的=listener.oraのGLOBAL_DBNAME
ホスト・ネーミングはTCP/IPプロトコルが必須
GUIによるリスナー設定が可能なツール=
Oracle Net Manager(旧Oracle Net8 Assistant)
動的サービス登録を行うプロセスはPMON
動的サービス登録のリスナーをデフォルト以外にしたい場合= 「LOCAL_LISTENER初期化パラメータ」 or 「DISPATCHERSパラメータのLISTENER属性の値」
静的サービス登録が必要なのは外部proc、異機種間サービスの時(listener.oraに書く)
Oracle Net Configuration Assistantでできること=
リスナー、ネーミングメソッド、ローカルネットサービス、ディレクトリ構成
ネーミング・メソッドの選択はsqlnet.oraのnames.directory_pathに書かれる
デフォルト以外のリスナーの登録方法
・DISPATCHERS初期化パラメータのLISTENER属性を使用
・LOCAL_LISTENER初期化パラメータを使用
Oracle9i JVMに接続するために必要な構成
×動的サービス登録のみサポート
○TCP/IPでServerがOracle8i以前の場合は、静的サービス登録が必要
lsnrctlのSETコマンドの設定をlistner.oraに反映するにはSAVE_CONFIGコマンドを実行
ディスパッチャが正しく起動されたかを確認するコマンドは 「lsnrctl services」(lsnrctl statusではない)
Oracle Advanced Securityはサーバ、クライアント両方にインストールが必要
●共有サーバーとか
要求キューは全ディスパッチャが共有するが、応答キューはディスパッチャごとに専用保持
共有サーバー接続で起動した共有サーバープロセスの最大数が見れるのはV$SHARED_SERVER_MONITOR
ユーザセッションが共有サーバー接続を正しく使っているかを確認できるのはV$CIRCUIT
専用サーバー接続=Bequeath接続
初期化パラメータでdispatchers=で指定していないプロトコルに対しては、 ALTER SYSTEMでdispatcherの設定を変えることはできない。
dispatchersには、
ADDRESS、DESCRIPTION、PROTOCOL
のいずれか1つの指定が必須
CIRCUITSの設定は、SGAの大きさに影響を与える。
●バックアップとリカバリ(RMAN不使用)
ログスイッチ時に、チェックポイントが発生する。
LOG_ARCHIVE_FORMATの%sはログ順序番号の左0詰めなしに、%Sは左0詰めありに置き換わる。
DBVERIFYでは、REDOログファイルは検証できない。
NOARCHIVELOGでREDOログファイル以外をリストアした場合は、RESETLOGSの前に取消しベースのリカバリが必要
LOG_CHECK_INTERVALの単位はブロック数 (秒数は〜TIMEOUT)
LOG_ARCHIVE_MIN_SUCCEED_DESTが設定されていれば、MANDATORY,OPTIONALの設定に関わらず、 LOG_ARCHIVE_MIN_SUCCEED_DESTの数のアーカイブが作られなければ、REDOの上書きはできない
FAST_START_MTTR_TARGETで変動するパラメータは、 FAST_START_IO_TARGETとLOG_CHECKPOINT_INTERVAL(TIMEOUTではない)
インスタンス回復の並列化=RECOVERY_PARALLELISM
ALTER TABLESPACE 〜 END BACKUPはデータベースがオープンでないと使えない。 MOUNT状態の場合は ALTER DATABASE DATAFILE 〜 END BACKUPか、 (9iから) ALTER DATABSE END BACKUPを使う。
MOUNT状態では、表領域はオフラインにできない(データファイル単位でオフラインにする)
カレントREDOログが全損してRECOVERするとき、RECOVERの最後に提案されるアーカイブログファイルはまだ作られていない(cancelで終了する)
24時間運用でバックアップが必要なファイルは「オンラインバックアップ」とアーカイブログファイル。パスワードファイルは含まれない。
リカバリが必要なファイルを知るにはV$RECOVER_FILE、 リカバリに必要なアーカイブログファイルを知るには V$RECOVERY_LOG (両者を区別)
アーカイブログファイルが本来の場所以外にある場合の対処方法は3つ
a. RECOVERのプロンプトで指定
b. ALTER SYSTEM ARCHIVE LOG START TO 〜
c. RECOVER FROM 〜 DATABASE
「サーバー障害があっても、新しいHWが導入されるまでの間、業務を止めることができない。」 このときの対策はOracle9i Data Guard
●不完全リカバリ
NOARCHIVELOGでのリカバリは実質リストア動作だけ。これは、不完全回復とは言わない。
制御ファイルを全損した場合、再作成できるなら不完全リカバリにはならない。
不完全リカバリ前に行うべきこと:カレントのREDOログ・ファイルと制御ファイルをバックアップ
不完全リカバリ時に必ずリストアが必要なのはデータファイルだけ。 制御ファイルは、バックアップ時とDB構造が不変ならばリストア不要。REDOは常にリストア不要
不完全リカバリ時、制御ファイルをリストアした場合は (問題文に誤って表領域を削除してしまった等書かれている)、 RMANのRECOVERコマンドで「USING BACKUP CONTROLFILE」の指定が必要
RMANのRECOVER DATABASE UNTILで指定する日付は、
秒まで含む
。
●Recovery Manager(RMAN)
RMANでバックアップするときのデータベースの状態はマウントかオープン (オープンでできるのはARCHIVELOGの場合のみ)
RMANでリストアするときのデータベースの状態はマウントかオープン (オープンでできるのはARCHIVELOGの場合のみ)
LIST EXPIRE BACKUP; ... 期限切れのバックアップはLISTで分かる。
LISTではなくREPORTでなければ分からない情報
・データベースはどんな構造をしているか(REPORT SCHEMA)
・どのファイルをバックアップする必要があるか(REPORT NEED BACKUP ...)
・どのバックアップが不要か(REPORT OBSOLETE)
・リカバリ不能操作(NOLOGGING)によりリカバリ不可になったファイルはどれか(REPORT UNRECOVERABLE ...)
OSでとったバックアップをRMANに登録できるのは データ・ファイル、アーカイブ・ログ・ファイル、制御ファイル(3個とも)
RMANでバックアップするとき、破損の許容値は 「SET MAXCORRUPT FOR DATAFILE n TO m;」で指定できる。
バックアップセットの損失防止のための二重化を行うコマンド: 「BACKUP COPIES」「SET BACKUP COPIES」「CONFIGURE 〜 BACKUP COPIES」の3種類
スタンドアロンにできないRMANコマンド(必ずRUNで囲む)は、 ALTER SYSTEM SWITCH LOGFILE や ALTER DATABASE ARCHIVELOG
データファイルを別の場所に復旧してリカバリする操作手順 SET NEWNAME
RESTORE DATABASE
SWITCH DATAFILE n
RECOVER DATABASE
NOARCHIVELOGデータベースでも、RECOVER DATABASEはエラーにはならない。
バックアップ・セットやイメージ・コピーの情報出力はLISTコマンド
REDOログファイル内のDMLを表示できるのはRMANの機能ではなく、LogMinerの機能
RMANのチャネル設定は全自動化可能
RMANで不完全回復するとき、SET UNTILで位置を指定(RECOVER UNTILというオプションはない)
RMANクライアントはNLS_DATE_FORMAT,NLS_LANGを適切に設定する必要がある (RECOVERコマンドと異なり、日付書式は固定ではない)
BACKUP 〜 DATABASEで、データファイル#1を含めると制御ファイルもバックアップされる。 またはINCLUDE CURRENT CONTROLFILEオプションで明示も可能
CONFIGURE CONTROLFILE AUTOBACKUPを有効にすると、BACKUPまたはCOPYコマンドの 「後に」制御ファイルもバックアップする。
RMANバックアップ中に更新が発生しても、REDO発生量は変わらない (ALTER TABLESPACE 〜 BEGIN BACKUPは使用不可)
RMANで半年間(or半永久的に)バックアップを保存したい場合の対処 …リカバリ・カタログの取得。CONTROL_FILE_RECORD_KEEP_TIMEの設定関係の選択肢はいずれも×
SWITCHコマンドの変更内容は、制御ファイルに反映される。
SWITCH DATABASEというコマンドはない(SWITCH DATAFILE ALL)
BACKUPコマンドのDELETE INPUTオプション: 入力元のバックアップセット、データファイルのイメージコピー、アーカイブログファイルを削除
ディスクに余裕がないときのリカバリカタログのバックアップ方法 …リカバリ・カタログのスキーマ・オブジェクトをスキーマ・モードでエクスポート
アーカイブログを別の場所にリストアするには SET ARCHIVELOG DESTINATION TO 'location'コマンド
リカバリ・カタログを作成後、このカタログにてターゲット・データベース情報を管理する …データベース、カタログ両方に接続した状態で、REGISTER DATABASEを実行する必要あり
リカバリ・カタログには、表などのセグメント情報は含まれない。 「DB物理構造・ストアドスクリプト・RMANのCONFIGURE内容・RMANバックアップ履歴」を持つ
リカバリ・カタログを使用しているときだけ関係するコマンドはRESYNC CATALOG とRESET DATABASE
登録されているストアド・スクリプトを確認できるビューは RC_STORED_SCRIPT
RMANのCHANGE 〜 UNCATALOG コマンドはリポジトリ情報を削除するが、実際のファイルは削除しない
●SQL*Loader、imp/exp
ダイレクトパスでSQL*Loaderを使った場合も、ARCHIVELOGでNOLOGGING,UNRECOVERABLEでなければ、REDOログは作成される。 「データベース・バッファ・キャッシュを迂回」は正しい。
SYSDBA権限をもつユーザーにてエクスポートする必要があるのは
・トランスポータブル表領域
・Oracle社のカスタマ・サポートからの要求があった場合
full=Yモードのエクスポートファイルには、SYSスキーマ以外の全DBオブジェクトが含まれる。
もくじ
Oracle
(C) 2002-2003 MISUMI URANO (2005/08/17 - (not ever))