Oracleをアーカイブ・モードに切り替える手順と問題解決

4144 ワード

現在のデータベース・モードを問題のように直接表示
接続はデータベースに入り、次のコマンドを入力します.
 
  
 SQL> archive log list;
 

現在のデータベースのスキーマを表示できます.「≪データベース・ログ・スキーマ非アーカイブ・モード|Database Log Mode Non-Archive Mode|emdw≫」の場合は、次の切り替えプロセスが必要です.
切り替える前に、次のパラメータの設定を確認してください.
log_archive_dest_nパラメータは、nが数値で置換されたアーカイブログターゲットを設定します.Oracle 9 iではnの範囲は1~5であり、Oracle 10 gではnは1~10の値をとることができる.次のように設定します.
 
  
 SQL> alter system set log_archive_dest_1="location=path" scope=both;
 

ここでpathは、アーカイブログファイルを格納するフォルダパスです.最後のscope=bothは、現在のデータベースインスタンスに設定を適用し、パラメータ設定をSPFILEに保存し、データベースの再起動時にSPFILEのパラメータ情報を直接ロードするためです.
複数のアーカイブ・ログ・ターゲットを設定できます.複数のターゲットを設定し、アーカイブを行う際にアーカイブログファイルを複数のアーカイブバージョンに同時に保存できるので、複数のターゲットを設定するのは良い習慣ですが、問題が発生する前に必要ないようです^^;
データベースを閉じる
 
  
 SQL> shutdown immediate
 

データベースを閉じるのは一般的に問題はありませんが、データベースの使用が開始された後、データベースを閉じるのはやむを得ない(故意に閉じてもやむを得ない、ほほほ)――閉じるのは誰もデータベースを使用していないことを確認したほうがいいです.そうしないと、あなたが待っています^^.
データベースの起動が保留中(mount)状態
 
  
SQL> startup mount

ここまで行くと、本当の問題が発生します.mountは何度もstartupに行かず、リスナーが現在のルーチンを傍受できないと言っています.もちろん、リスナーの構成が適切であれば、このような問題はここでは発生しません.リスナーに問題がある以上、ここから解決します.Oracleデータベースのインストールディレクトリ(E:oracleproduct10.2.0db_1NETWORKADMINなど)でlistenerを見つけることができます.oraというパラメータファイルは、編集および保存のために手帳で開くことができます.もちろん、この書類を直接手作業で修正するのは賢明ではありません.括弧は無数の脳細胞を殺すことができるからです.Oracleをインストールすると、一般的にNet Managerというコンポーネントがデフォルトでインストールされます.これにより、リスナーの煩わしいパラメータ:Oracle Net構成リスナー」LISTENERを簡単に構成できます.フォームの右側の一番上のドロップダウン・ボックスで「データベース・サービス」を選択します.データベース・サービスを傍受していない場合は、問題を解決する鍵です.データベースを追加し、グローバルデータベースとSIDをtnsnamesに設定.oraファイルのSERVICE_NAMEの値は同じです(注意:tnsnames.oraファイルはlistener.oraファイルと同じディレクトリの下にあります).保存、listener.oraでは、以下のように設定されています.
 
  
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
      (SID_NAME = ORCL)
    )
  )

赤い部分の正式なリスナーでは完全なコンテンツが構成されていません.これで構成が完了すると、データベースを保留状態にすることはできません.なお、以上はtnsnamesとする.oraファイルのSERVICE_NAMEはORCLです.もちろん、リスナーパラメータを構成した後、すぐにリスナーに適用されません.リスナーを再ロードし、コマンドラインに進む必要があります.
 
  
 C:\>lsnrctl
 LSNRCTL> reload

データベースを再接続すると、「アイドル・インスタンスに接続されました」という結果になります.このときstartup mountを再起動すると、スムーズに保留状態に入ることができます.
保留中のデータベース・インスタンスでのモードの切り替え
 
  
 SQL> alter system archivelog;
 

「データベースが変更されました」というメッセージが表示されます.データベースを開いた後、archive log listを使用して、現在のモード:データベースログモードアーカイブモードを表示します.
データベースを開く
 
  
 SQL> alter database open;
 

保留中の状態のデータベースは、実際に使用可能な状態ではありません.開いているデータベースだけが実行中に使用可能なインスタンスです.
最後の作業
自動アーカイブを開く
 
  
 SQL> alter system set log_archive_start = true; scope=both;
 

手動アーカイブ;
 
  
 SQL> alter system switch logfile; --

フラッシュ領域のサイズの設定
 
  
 SQL> alter system set db_recovery_file_dest_size=5368709102;  --5G
 

他の問題はモードを切り替える過程で、タブレットでSPFILEを開いたときに何気なく保存を押したという問題にも遭遇しました.小さな保存は大きな問題をもたらし、SPFILEはバイナリファイルで、タブレットは通常の閲覧の大部分の内容を開くことができますが、ファイルの最初の行のファイルIDを読み取ることができません(通常はタブレットでファイルの最初の行を開くのは文字化けで、肝心ですね).保存、得、SPFILEは普通のテキストに変更され、人は読みやすいが、Oracleは知らない.仕方ないですね.もう一つ建て直しましょう.
SPFILEの再構築にはシステム内のPFILEが必要です.PFILEの良いところはテキストファイルです^^;一般的には、データベースを構築すると同時に作成されます.そのパスは、E:oracleproduct10.2.0adminorclpfileのようになります.この経路の下にinitがある.ora.ファイル名の先頭にあるファイルです.ファイル名の末尾の部分は数値の列です(デフォルト).sysdbaとしてデータベースのアイドル・インスタンスに接続します(SPFILEデータベースがないと起動できません.アイドル・インスタンス(conn/as sysdbaなど)に接続できます.SPFILEを再構築するコマンドは次のとおりです.
 
  
SQL> create spfile='E:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA' from pfile='E:\oracle\product\10.2.0\admin\orcl\pfile\init.ora.************';

再構築に成功すると、「ファイルが作成されました」というメッセージが表示されます.新しいSPFILEを作成するとデータベースは正常に起動しますが、後でシステムコマンドalter system setで...scope=spfile;SPFILEの内容を修正します.