プライマリ・コンテンツに移動
Oracle® Database管理者リファレンス
11gリリース2 (11.2) for Linux and UNIX-Based Operating Systems
B56317-12
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

B LinuxシステムでのOracle Databaseの管理

この付録では、LinuxシステムでOracle Databaseを管理する方法について説明します。

内容は次のとおりです。


注意:

Oracle Database 11gリリース2(11.2)からは、Linux x86-64メディアにはLinux x86バイナリは含まれません。32ビットOracleホームをインストールするには、Linux x86メディアを使用する必要があります。

B.1 拡張バッファ・キャッシュのサポート


注意:

この項の内容は、Linux x86にのみ適用されます。

Oracle Databaseでは、データベース・バッファ・キャッシュとして、4GBを超えるメモリーを割り当てて使用できます。この項では、Linux x86システムの拡張バッファ・キャッシュ機能の制限事項と要件について説明します。


関連項目:

詳細は、「Linux x86のVery Large Memory」を参照してください。


関連項目:

拡張バッファ・キャッシュ機能の詳細は、『Oracle Database概要』を参照してください。

メモリー内ファイル・システム

拡張バッファ・キャッシュ機能を使用するには、データベース・バッファ・キャッシュに使用するメモリー量以上のサイズのメモリー内ファイル・システムを/dev/shmマウント・ポイントに作成します。たとえば、8GBのファイル・システムを/dev/shmマウント・ポイントに作成するには、次の手順を実行します。

  1. rootユーザーで次のコマンドを実行します。

    # mount -t tmpfs shmfs -o size=8g /dev/shm
    
  2. システムの再起動時にメモリー内ファイル・システムが確実にマウントされるようにするには、/etc/fstabファイルに次のようなエントリを追加します。

    shmfs /dev/shm tmpfs size=8g 0 0
    

拡張バッファ・キャッシュ機能を有効にしてOracle Databaseを起動すると、Oracleバッファ・キャッシュに対応するファイルが/dev/shmディレクトリに作成されます。


注意:

メモリー内ファイル・システムが/dev/shmマウント・ポイントにマウント済の場合は、その大きさがデータベース・バッファ・キャッシュに使用するメモリー量以上であることを確認します。

USE_INDIRECT_DATA_BUFFERS初期化パラメータ

拡張バッファ・キャッシュ機能を有効にするには、パラメータ・ファイルでUSE_INDIRECT_DATA_BUFFERS初期化パラメータをTRUEに設定します。これによって、Oracle Databaseは大きいバッファ・キャッシュを指定できるようになります。

動的キャッシュ・パラメータ

拡張キャッシュ機能が有効になっている場合は、DB_BLOCK_BUFFERSパラメータを使用してデータベース・キャッシュ・サイズを指定する必要があります。

拡張バッファ・キャッシュ機能が有効になっている間は、次の動的キャッシュ・パラメータを使用しないでください。

  • DB_CACHE_SIZE

  • DB_2K_CACHE_SIZE

  • DB_4K_CACHE_SIZE

  • DB_8K_CACHE_SIZE

  • DB_16K_CACHE_SIZE

制限事項

拡張バッファ・キャッシュ機能には、次の制限事項が適用されます。

  • 作成または使用できる表領域はデフォルト・ブロック・サイズの表領域のみです。DB_BLOCK_SIZEパラメータで指定されたブロック・サイズのみを使用した表領域を作成できます。

  • インスタンスの実行中はバッファ・キャッシュのサイズを変更できません。


関連項目:

CREATE TABLESPACEコマンドで使用するデフォルト・ブロック・サイズの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。


注意:

デフォルトのVLMウィンドウ・サイズは512MBです。このメモリー・サイズは、プロセスのアドレス空間に割り当てられます。この値を増減させるには、環境変数VLM_WINDOW_SIZEをバイト単位の新しいサイズに設定します。たとえば、VLM_WINDOW_SIZEを256MBに設定するには、次のコマンドを実行します。
$ export VLM_WINDOW_SIZE=268435456

環境変数VLM_WINDOW_SIZEに指定する値は、64KBの倍数である必要があります。


B.2 LinuxでのHugePagesの使用

Linuxにおいて、Oracle Databaseでラージ・ページ(HugePagesとも呼ばれる)を使用可能にするには、vm.nr_hugepagesカーネル・パラメータの値を設定し、予約するラージ・ページ数を指定します。データベース・インスタンスのSGA全体を保持するだけの十分なラージ・ページ数を指定する必要があります。必要なパラメータ値を判断するには、インスタンスのSGAサイズをラージ・ページのサイズで除算してから、結果の端数を切り上げて最も近い整数にします。

デフォルトのラージ・ページ・サイズを判断するには、次のコマンドを実行します。

# grep Hugepagesize /proc/meminfo

たとえば、/proc/meminfoにラージ・ページのサイズが2MBとリストされ、インスタンスの総SGAサイズが1.6GBの場合は、vm.nr_hugepagesカーネル・パラメータの値を820(1.6GB / 2MB = 819.2)に設定します。


関連項目:

HugePagesによるSGAのチューニング、およびHugePages構成の制限の詳細は、「HugePagesの概要」を参照してください。

B.3 非同期入出力サポート

Oracle Databaseでは、カーネルの非同期入出力がサポートされます。デフォルトでは、非同期入出力はRAWボリュームで使用可能です。デフォルトでは自動ストレージ管理で非同期入出力が使用されます。

デフォルトでは、パラメータ・ファイルのDISK_ASYNCH_IO初期化パラメータはTRUEに設定されています。ファイル・システムのファイルに対して非同期入出力を有効にするには、次の手順を実行します。

  1. すべてのOracle Databaseファイルが、非同期入出力をサポートしているファイル・システム上にあることを確認します。

  2. パラメータ・ファイルのFILESYSTEMIO_OPTIONS初期化パラメータをASYNCHまたはSETALLに設定します。


    注意:

    ファイルシステムのファイルがODMライブラリ・インタフェースまたはdNFSで管理されている場合、デフォルトで、非同期入出力が有効になります。これらの環境では、非同期入出力を有効にするために、FILESYSTEMIO_OPTIONSを設定する必要はありません。

B.4 直接入出力サポート

直接入出力サポートは使用可能であり、Linuxでサポートされます。

直接入出力サポートを有効にする手順

  • FILESYSTEMIO_OPTIONS初期化パラメータをDIRECTIOに設定します。

  • パラメータ・ファイルのFILESYSTEMIO_OPTIONS初期化パラメータをSETALLに設定することにより、非同期入出力および直接入出力の両方を有効にできます。

B.5 マルチスレッド同時処理

同時マルチスレッドが有効になっている場合、v$osstatビューは、オンライン論理(NUM_LCPUS)および仮想CPU(NUM_VCPUS)に対応した2つの行を追加して報告します。

B.6 共有リソースの割当て

MEMORY_TARGETまたはMEMORY_MAX_TARGET機能を使用するには、次のカーネル・パラメータを変更する必要があります。

  • /dev/shmマウント・ポイントは、SGA_MAX_SIZEの値が設定されていれば、その値以上にするか、MEMORY_TARGETMEMORY_MAX_TARGETのうちいずれか大きいほうの値以上に設定する必要があります。たとえば、MEMORY_MAX_TARGET=4GBのみが設定されている場合、4GBのシステムを/dev/shmマウント・ポイントに作成するには、次の手順を実行します。

    • rootユーザーで次のコマンドを実行します。

      # mount -t tmpfs shmfs -o size=4g /dev/shm
      
    • システムの再起動時にインメモリー・ファイル・システムが確実にマウントされるように、/etc/fstabファイルに次のようなエントリを追加します。

        tmpfs /dev/shm tmpfs size=4g 0
      
  • 各Oracleインスタンスのファイル記述子の数は、512*PROCESSESだけ増加します。したがって、ファイル記述子の最大数は、少なくともこの値以上にし、オペレーティング・システムの要件に応じてさらに数を足す必要があります。たとえば、cat /proc/sys/fs/file-maxコマンドで32768が返され、PROCESSESが100である場合、Oracleに対して51200使用可能にするには、rootとしてこの値を6815744以上に設定します。次のどちらかのオプションを使用して、file-max記述子の値を設定します。

    • 次のコマンドを実行します。

      echo 6815744 > /proc/sys/fs/file-max
      

      または

    • /etc/sysctl.confファイル内で次のエントリを変更し、rootとしてシステムを再起動します。

      fs.file-max = 6815744
      
  • プロセスごとのファイル記述子の数は、512以上である必要がありますたとえば、rootとして次のコマンドを実行します。

    • bashおよびshの場合

      # ulimit -n
      
    • cshの場合

      # limit descriptors
      

    前のコマンドで200が返される場合、次のコマンドを実行して、プロセッサごとのファイル記述子の上限の値(たとえば、1000)を設定します。

    • bashおよびshの場合

      # sudo sh
      # ulimit -n 1000
      
    • cshの場合

      # sudo sh
      # limit descriptors 1000
      
  • LOCK_SGAが有効になっている場合、MEMORY_TARGETおよびMEMORY_MAX_TARGETは使用できません。MEMORY_TARGETおよびMEMORY_MAX_TARGETは、LinuxのHugeページでも使用できません。

B.7 32ビットLinuxから64ビットLinuxへのデータベースの移行

Oracle Database 11gリリース2(11.2) for 32-bit LinuxをOracle Database 11gリリース2(11.2) for 64-bit Linuxに移行するには、次の手順を実行する必要があります。

B.7.1 RMANを使用したデータベースのオンライン・バックアップ

オンライン・バックアップでは、データベースを停止せずに、データベースのバックアップを取ることができます。これを実行する手順を次に示します。

  1. SYSDBAとしてデータベース・インスタンスに接続します。

    SQL> CONNECT / AS SYSDBA;
    
  2. 次のコマンドを実行して、データベースがARCHIVELOGモードであることを確認します。

    SQL> SHUTDOWN IMMEDIATE
    Database closed
    Database dismounted
    Oracle instance shutdown
    
    SQL> STARTUP MOUNT
    Oracle instance started
    
    Total System Global Area  272629760 bytes
    Fixed Size                   788472 bytes
    Variable Size             103806984 bytes
    Database Buffers          167772160 bytes
    Redo Buffers                 262144 bytes
    Database mounted
    
    SQL>ALTER DATABASE ARCHIVELOG;
    Database altered
    
    SQL> ALTER DATABASE OPEN;
    Database altered
    
  3. 次のコマンドを実行してRMANを起動します。RMANは$ORACLE_HOME/binディレクトリにあります。

    RMAN>connect target
    
  4. 32ビットのデータベースとすべてのアーカイブREDOログ・ファイルをバックアップするには、次のコマンドを実行します。

    RMAN>backup database plus archivelog delete input;
    

    注意:

    アーカイブREDOログは、データベースのリカバリに非常に重要です。これをデータベースとともにバックアップすることをお薦めします。次のコマンドを発行することで、アーカイブREDOログを随時バックアップできます。
    RMAN>backup archivelog all delete input;
    

B.7.2 32ビットLinuxデータベースから64ビットLinuxデータベースへの移行

この項では、次の項目について説明します。

B.7.2.1 データファイルのディレクトリ構造が同一の32ビット・データベースから64ビット・データベースへの移行

ターゲット・コンピュータの制御ファイル、データファイル、REDOログ・ファイルの構造がソース・コンピュータと同じである場合は、次の手順を実行します。

  1. 移行処理を開始する前に、データベースのオンライン・バックアップを実行します。詳細は、「RMANを使用したデータベースのオンライン・バックアップ」を参照してください。

  2. Oracle Database 11gリリース2(11.2) for 64-bit Linuxを新しいOracle Databaseホームにインストールします。32ビット・コンピュータと同じバージョンのOracle Databaseホームを使用することをお薦めします。


    関連項目:

    『Oracle Databaseインストレーション・ガイド for Linux』

  3. 32ビットLinuxコンピュータから、init.ora、データファイル、制御ファイルおよびREDOログ・ファイルを、64ビットLinuxコンピュータの対応する場所にコピーします。

  4. init.oraファイルを編集して、次の変更を含めます。

    • ファイルに含まれるメモリー要件を更新します。

    • 必要に応じて、制御ファイルの場所を編集します。


    注意:

    init.oraファイルにリストされた共有プール、Javaプール、sga_targetおよびラージ・プールの値を2倍にすることをお薦めします。

  5. SYSDBAとしてデータベース・インスタンスに接続します。

    SQL> CONNECT / AS SYSDBA;
    
  6. 後で成功を確認できるように、ログ・ファイルに結果をスプールするためのシステム設定を行います。次に例を示します。

    SQL> SPOOL /tmp/utlirp.log
    
  7. 64ビットOracle Databaseを起動します。

    SQL> STARTUP UPGRADE pfile=init.ora;
    

    注意:

    32ビットから64ビットへの変更の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

  8. 64ビットOracle Databaseで次のコマンドを実行して、すべてのPL/SQLモジュールを無効化します。

    SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql 
    
  9. 64ビットOracle Databaseを停止します。

    SQL>shutdown immediate; 
    
  10. 64ビットOracle Databaseを起動します。

    SQL> STARTUP pfile=init.ora;
    
  11. JServer JAVA仮想マシン・コンポーネントがインストールされている場合は、SYSとして接続してから次の手順を実行します。

    begin
      update obj$ set status=5 where obj#=(select obj# from obj$,javasnm$
        where owner#=0 and type#=29 and short(+)=name and
        nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
      commit;
      declare
        cursor C1 is select
           'DROP JAVA DATA "' || u.name || '"."' || o.name || '"'
           from obj$ o,user$ u where o.type#=56 and u.user#=o.owner#;
    
        ddl_statement varchar2(200);
        iterations number;
        previous_iterations number;
        loop_count number;
        my_err     number;
      begin
        previous_iterations := 10000000;
        loop
          -- To make sure we eventually stop, pick a max number of iterations
          select count(*) into iterations from obj$ where type#=56;
          exit when iterations=0 or iterations >= previous_iterations;
          previous_iterations := iterations;
          loop_count := 0;
          open C1;
         loop
           begin
             fetch C1 into ddl_statement;
             exit when C1%NOTFOUND or loop_count > iterations;
          exception when others then
             my_err := sqlcode;
             if my_err = -1555 then -- snapshot too old, re-execute fetch query
               exit;
             else
               raise;
            end if;
          end;
          initjvmaux.exec(ddl_statement);
          loop_count := loop_count + 1;
         end loop;
         close C1;
        end loop;
      end;
      commit;
      initjvmaux.drp('delete from java$policy$shared$table');
      update obj$ set status=1 where obj#=(select obj# from obj$,javasnm$ 
        where owner#=0 and type#=29 and short(+)=name and
        nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
      commit;
    end;
    /
    create or replace java system;
    /
    
  12. すべての既存のPL/SQLモジュールを、64ビットOracle Databaseに必要な形式で再び有効にします。

    SQL>$ORACLE_HOME/rdbms/admin/utlrp.sql;
    

B.7.2.2 データファイルのディレクトリ構造が異なる32ビット・データベースから64ビット・データベースへの移行

ソース・コンピュータと比較して、ターゲット・コンピュータの制御ファイル、データファイル、REDOログ・ファイルの構造が異なる場合は、次の手順を実行します。

  1. 移行処理を開始する前に、データベースのオンライン・バックアップを実行します。詳細は、「RMANを使用したデータベースのオンライン・バックアップ」を参照してください。

  2. Oracle Database 11gリリース2(11.2) for 64-bit Linuxを新しいOracle Databaseホームにインストールします。32ビット・コンピュータと同じバージョンのOracle Databaseホームを使用することをお薦めします。


    関連項目:

    『Oracle Databaseインストレーション・ガイド for Linux』

  3. 64ビット・コンピュータのinit.oraファイルを編集して、次の変更を含めます。

    • ファイルに含まれるメモリー要件を更新します。

    • init.oraファイルには、32ビットの制御ファイルのパスが記述されています。control_filesパラメータ値を手動で更新して、64ビットの制御ファイルの場所を含める必要があります。


    注意:

    init.oraファイルにリストされた共有プール、Javaプール、sga_targetおよびラージ・プールの値を2倍にすることをお薦めします。

  4. 64ビットのターゲット・コンピュータに含まれるデータファイルの構造が異なる場合は、制御ファイルを再作成するか、64ビット・コンピュータにデータベースをマウントする必要があります。詳細は、「データファイルのパスおよび名前の再調整」を参照してください。


    注意:

    制御ファイルの再作成時にRESETLOGSオプションを使用することは推奨されません。

  5. 後で成功を確認できるように、ログ・ファイルに結果をスプールするためのシステム設定を行います。次に例を示します。

    SQL> SPOOL /tmp/utlirp.log
    
  6. 64ビットOracle Databaseで次のコマンドを実行して、すべてのPL/SQLモジュールを無効化します。

    SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql 
    
  7. ログ・ファイルへのスクリプト結果のスプーリングを無効化します。

    SQL> SPOOL OFF;
    
  8. 64ビットOracle Databaseを停止します。

    SQL>shutdown immediate; 
    
  9. 64ビットOracle Databaseを起動します。

    SQL> STARTUP pfile=init.ora;
    
  10. JServer JAVA仮想マシン・コンポーネントがインストールされている場合は、SYSとして接続してから次の手順を実行します。

    begin
      update obj$ set status=5 where obj#=(select obj# from obj$,javasnm$
        where owner#=0 and type#=29 and short(+)=name and
        nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
      commit;
      declare
        cursor C1 is select
           'DROP JAVA DATA "' || u.name || '"."' || o.name || '"'
           from obj$ o,user$ u where o.type#=56 and u.user#=o.owner#;
    
        ddl_statement varchar2(200);
        iterations number;
        previous_iterations number;
        loop_count number;
        my_err     number;
      begin
        previous_iterations := 10000000;
        loop
          -- To make sure we eventually stop, pick a max number of iterations
          select count(*) into iterations from obj$ where type#=56;
          exit when iterations=0 or iterations >= previous_iterations;
          previous_iterations := iterations;
          loop_count := 0;
          open C1;
         loop
           begin
             fetch C1 into ddl_statement;
             exit when C1%NOTFOUND or loop_count > iterations;
          exception when others then
             my_err := sqlcode;
             if my_err = -1555 then -- snapshot too old, re-execute fetch query
               exit;
             else
               raise;
            end if;
          end;
          initjvmaux.exec(ddl_statement);
          loop_count := loop_count + 1;
         end loop;
         close C1;
        end loop;
      end;
      commit;
      initjvmaux.drp('delete from java$policy$shared$table');
      update obj$ set status=1 where obj#=(select obj# from obj$,javasnm$ 
        where owner#=0 and type#=29 and short(+)=name and
        nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
      commit;
    end;
    /
    create or replace java system;
    /
    
  11. すべての既存のPL/SQLモジュールを、64ビットOracle Databaseに必要な形式で再び有効にします。

    SQL>$ORACLE_HOME/rdbms/admin/utlrp.sql;
    

データファイルのパスおよび名前の再調整

データファイルの名前およびパスが正しい場所を指すように再調整するには、次のような方法があります。

制御ファイルの再作成

制御ファイルを再作成するには、次の手順を実行します。

  1. 次のコマンドを実行して、制御ファイルをトレース・ファイルにバックアップします。トレース・ファイルは、32ビットLinuxコンピュータのdiagnostic_destディレクトリにあります。次のコマンドにより、制御ファイルの再作成に必要なSQLを含むトレース・ファイルが生成されます。

    SQL> alter database backup controlfile to trace;
    

    注意:

    制御ファイルが作成された後、UPGRADEモードでOracle Databaseをオープンしてください。

  2. 32ビットLinuxコンピュータで.sql形式で生成されたトレース・ファイルの名前を変更します。次に例を示します。

    $ cp trace.ora control.sql
    

    制御ファイルの内容は、たとえば次のようになります。

    • NORESETLOGSオプションを指定して制御ファイルを再作成する場合。

      NORESETLOGSオプションが指定された32ビット制御ファイルを次に示します。

      STARTUP NOMOUNT pfile=t_init1.ora
      CREATE CONTROLFILE REUSE DATABASE "L32" NORESETLOGS  NOARCHIVELOG
          MAXLOGFILES 32
          MAXLOGMEMBERS 2
          MAXDATAFILES 32
          MAXINSTANCES 1
          MAXLOGHISTORY 454
      LOGFILE
           GROUP 1 '/ade/aime_l32/oracle/dbs/t_log1.f'  SIZE 25M,
           GROUP 2 '/ade/aime_l32/oracle/dbs/t_log2.f'  SIZE 25M
      DATAFILE
           '/ade/aime_l32/oracle/dbs/t_db1.f'
           '/ade/aime_l32/oracle/dbs/t_ax1.f'
           '/ade/aime_l32/oracle/dbs/t_undo1.f'
      CHARACTER SET AL32UTF8;
      RECOVER DATABASE;
      ALTER DATABASE OPEN UPGRADE;
      ALTER TABLESPACE TEMP ADD TEMPFILE '/ade/aime_l32/oracle/dbs/t_tmp1.f' SIZE 41943040  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
      

      次は、変更された64ビット制御ファイルです。

      STARTUP NOMOUNT pfile=t_init1.ora
      CREATE CONTROLFILE REUSE DATABASE "L32" NORESETLOGS  NOARCHIVELOG
          MAXLOGFILES 32
          MAXLOGMEMBERS 2
          MAXDATAFILES 32
          MAXINSTANCES 1
          MAXLOGHISTORY 454
      LOGFILE
           GROUP 1 '/ade/aime_l64/oracle/dbs/t_log1.f'  SIZE 25M,
           GROUP 2 '/ade/aime_l64/oracle/dbs/t_log2.f'  SIZE 25M
      DATAFILE
           '/ade/aime_l64/oracle/dbs/t_db1.f'
           '/ade/aime_l64/oracle/dbs/t_ax1.f'
           '/ade/aime_l64/oracle/dbs/t_undo1.f'
      CHARACTER SET AL32UTF8;
      RECOVER DATABASE;
      ALTER DATABASE OPEN UPGRADE;
      ALTER TABLESPACE TEMP ADD TEMPFILE '/ade/aime_l64/oracle/dbs/t_tmp1.f' SIZE 41943040  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
      
    • RESETLOGSオプションを指定して制御ファイルを再作成する場合。

      RESETLOGSオプションが指定された32ビット制御ファイルを次に示します。

      STARTUP NOMOUNT pfile=t_init1.ora
      CREATE CONTROLFILE REUSE DATABASE "L32" RESETLOGS  NOARCHIVELOG
          MAXLOGFILES 32
          MAXLOGMEMBERS 2
          MAXDATAFILES 32
          MAXINSTANCES 1
          MAXLOGHISTORY 454
      LOGFILE
           GROUP 1 '/ade/aime_l32/oracle/dbs/t_log1.f'  SIZE 25M,
           GROUP 2 '/ade/aime_l32/oracle/dbs/t_log2.f'  SIZE 25M
      DATAFILE
           '/ade/aime_l32/oracle/dbs/t_db1.f'
           '/ade/aime_l32/oracle/dbs/t_ax1.f'
           '/ade/aime_l32/oracle/dbs/t_undo1.f'
      CHARACTER SET AL32UTF8;
      RECOVER DATABASE USING BACKUP CONTROLFILE;
      ALTER DATABASE OPEN RESETLOGS UPGRADE;
      ALTER TABLESPACE TEMP ADD TEMPFILE '/ade/aime_l32/oracle/dbs/t_tmp1.f' SIZE 41943040  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
      

      次は、変更された64ビット制御ファイルです。

      STARTUP NOMOUNT pfile=t_init1.ora
      CREATE CONTROLFILE REUSE DATABASE "L32" RESETLOGS  NOARCHIVELOG
          MAXLOGFILES 32
          MAXLOGMEMBERS 2
          MAXDATAFILES 32
          MAXINSTANCES 1
          MAXLOGHISTORY 454
      LOGFILE
           GROUP 1 '/ade/aime_l64/oracle/dbs/t_log1.f'  SIZE 25M,
           GROUP 2 '/ade/aime_l64/oracle/dbs/t_log2.f'  SIZE 25M
      DATAFILE
           '/ade/aime_l64/oracle/dbs/t_db1.f'
           '/ade/aime_l64/oracle/dbs/t_ax1.f'
           '/ade/aime_l64/oracle/dbs/t_undo1.f'
      CHARACTER SET AL32UTF8;
      RECOVER DATABASE USING BACKUP CONTROLFILE;
      ALTER DATABASE OPEN RESETLOGS UPGRADE;
      ALTER TABLESPACE TEMP ADD TEMPFILE '/ade/aime_l64/oracle/dbs/t_tmp1.f' SIZE 41943040  REUSE AUTOEXTEND ON NEXT 8192  MAXSIZE 32767M;
      
  3. 正しい場所を指すようにファイル・パスを再調整する際に使用した方法に基づいて、ソースの32ビットLinuxコンピュータからターゲットの64ビットLinuxコンピュータに必要なファイルをコピーする必要があります。

    • NORESETLOGSオプション: 32ビットLinuxコンピュータから、init.ora、データファイル、再作成した制御ファイル(control.sql)およびREDOログ・ファイルを、64ビットLinuxコンピュータの対応する場所にコピーします。

    • RESETLOGSオプション: 32ビットLinuxコンピュータから、init.ora、データファイルおよび再作成した制御ファイル(control.sql)を、64ビットLinuxコンピュータの対応する場所にコピーします。

  4. SYSDBAとしてデータベース・インスタンスに接続します。

    SQL> CONNECT / AS SYSDBA;
    
  5. Linux 64ビットのOracle Databaseホームから次のコマンドを実行して、32ビットから64ビットに変更します。

    sql>set echo on
    sql>@control.sql
    

64ビット・コンピュータへのデータベースのマウント

64ビット・コンピュータにデータベースをマウントするには、次の手順を実行します。

  1. 32ビットLinuxコンピュータから、init.ora、データファイル、制御ファイルおよびREDOログ・ファイルを、64ビットLinuxコンピュータの対応する場所にコピーします。

  2. SYSDBAとしてデータベース・インスタンスに接続します。

    SQL> CONNECT / AS SYSDBA;
    
  3. 64ビットOracle Databaseを起動します。

    SQL> STARTUP mount pfile=init.ora;
    
  4. すべての32ビットのデータファイルの場所を更新して、64ビットのデータファイルの場所を含めます。次に例を示します。

    sql> alter database rename file '/ade/aime_l32/oracle/dbs/t_db1.f' to '/ade/aime_l64/oracle/dbs/t_db1.f'
    sql> Database altered.
    
  5. すべての32ビットのログ・ファイルの場所を更新して、64ビットのログ・ファイルの場所を含めます。次に例を示します。

    sql> alter database rename file '/ade/aime_l32/oracle/dbs/t_log.f' to '/ade/aime_l64/oracle/dbs/t_log.f'
    sql> Database altered.
    
  6. Linux 64ビットのOracle Databaseホームから次のコマンドを実行して、32ビットから64ビットに変更します。

    sql> ALTER DATABASE OPEN UPGRADE;
    

    注意:

    32ビットから64ビットへの変更の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

B.7.3 データのASMへの移行およびASMからの移行

自動ストレージ管理(ASM)を利用するために、Recovery Manager(RMAN)を使用してOracle 11gリリース2(11.2)データベースをASMディスク・グループに移行、およびASMディスク・グループから移行できます。この移行は、プライマリ・バックアップおよびリカバリ計画にRMANを使用していなくても、RMANを使用して実行されます。


関連項目:

データベースの移行の詳細は、『Oracle Automatic Storage Management管理者ガイド』の第8章「RMANでのASMデータ移行の実行」を参照してください。