プライマリ・コンテンツに移動
Oracle® Enterprise Manager Cloud Controlアップグレード・ガイド
12cリリース5 (12.1.0.5)
B65086-18
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

J Oracle Database 11.1.0.7または10.2.0.5のMicrosoft Windows 32ビット・ホストからMicrosoft Windows 64ビット・ホストへのリカバリ

この付録では、バックアップされたOracle Database 11gリリース1 (11.1.0.7)または10gリリース2 (10.2.0.5)をMicrosoft Windows 32ビットからMicrosoft Windows 64ビットにリカバリする方法を説明します。この付録は次のノートを基準にしています。

How To Change Oracle 11g Wordsize from 32-bit to 64-bit [ID 548978.1]

リポジトリのリカバリの詳細は、「How To Change Oracle 11g Wordsize from 32-bit to 64-bit [ID 548978.1]」を参照してください。

win32のolapデータの場合は、第J.2項の手順(21)の最後でノート[ID 386990.1]に示されている手順に従ってください。

この付録の内容は次のとおりです。

J.1 Oracle Database 11.1.0.7または10.2.0.5のMicrosoft Windows 32ビット・ホストからMicrosoft Windows 64ビット・ホストへのリカバリを行うためにソース・ホスト(Microsoft Windows 32ビット)で実行する手順

バックアップされたOracle Database 11gリリース1 (11.1.0.7)または10gリリース2 (10.2.0.5)をMicrosoft Windows 32ビットからMicrosoft Windows 64ビットにリカバリするには、ソース・ホストで次の手順を実行します。

  1. データベース・ホーム<DB_HOME>\bin\sqlplus /NOLOGにアクセスします。

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

    SQL> CONNECT / AS SYSDBA :


    注意:

    Oracle Database 10gリリース2 (10.2.0.5)を使用している場合:
    • <DB HOME>/admin/<SID>/udumpにアクセスし、このバックアップをローカル・システムに作成します。

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

      <OMS_HOME>\bin>

      emctl config emkey -copy_to_repos -sysman_pwd <sysman_password>

      次に例を示します。

      C:\Oracle\Middleware\oms\BIN>emctl config emkey -copy_to_repos -sysman_pwd Welcome1


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

    SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;


    注意:

    • Oracle Database 10gリリース2 (10.2.0.5)を使用している場合、トレース・ファイルは<DB HOME>/admin/<SID>/udumpに生成されます。ファイルを、バックアップした<DB HOME>/admin/<SID>/udumpと比較します。新規のトレース・ファイルがいくつか見つかります。新しいトレース・ファイルの1つに、Microsoft Windows 64ビットの宛先ホストで後に実行する手順が含まれています。

    • Oracle Database 11gリリース1 (11.1.0.7)データベースを使用している場合、コマンドによって新規の<sid>_ora_XX.trcファイルが<DB_BASE>\diag\rdbms\<SID>\<SID>\trace\<sid>_ora_xx.trc内に作成されます。次に例を示します。

      C:\DB\diag\rdbms\orcl\orcl\traceorcl_ora_3832.trc

      このファイルは宛先ホストでの制御ファイルの作成に使用できます。

      このファイルは<DB_BASE>\diag\rdbms\<SID>\<SID>\trace\alert_<Sid>.logによって特定できます。

      生成されたトレース・ファイルの詳細は、最後の数行に移動してください。

      次に、アップグレードのための手順に従ったコンソールに移動します。「リポジトリ・バックアップ詳細の指定」を選択してから、特定したばかりのトレース・ファイルの作成日時を指定します。


  4. データベースの全体オフライン・バックアップを実行します(オプション)。

  5. 次のコマンドを実行します:

    SQL> SHUTDOWN IMMEDIATE;

    SQL> STARTUP;

J.2 Oracle Database 11.1.0.7または10.2.0.5のMicrosoft Windows 32ビット・ホストからMicrosoft Windows 64ビット・ホストへのリカバリを行うために宛先ホスト(Microsoft Windows 64ビット)で実行する手順

Oracle Database 11gリリース1 (11.1.0.7)または10gリリース2 (10.2.0.5)をMicrosoft Windows 32ビットからMicrosoft Windows 64ビットにリカバリするには、宛先ホストで次の手順を実行します。

  1. コンピュータ上で、Oracle Databaseソフトウェアのソフトウェアのみのインストールを実行します。


    注意:

    インストールするデータベースは、Microsoft Windows 32ビットのソース・ホストのデータベースと同じパスであることを確認します。これによってリカバリの速度が向上します。

  2. Microsoft Windows 32ビットのソース・ホストから<DB_Base>\oradataディレクトリ全体をMicrosoft Windows 64ビットの宛先ホストの<DB_Base>\ディレクトリにコピーします。

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

    <DB_HOME>\bin\oradim -new -sid <SID> -maxusers <no. of users> -startmode auto -pfile <DB_HOME>\database\init<SID>.ora

    For example:
    
    C:\DB\db\BIN>oradim.exe -new -sid orcl -maxusers 3 -startmode auto -pfile C:\DB\db\database\initorcl.ora
    

    注意:

    • Oracle Database 10gリリース2 (10.2.0.5)では、MAXUSERSは動作しない場合があります。

    • ここでエラーが表示される場合があります。このエラーは無視しても問題ありません。ただし、インスタンスが作成されることを確認してください。また、init<SID>.oraはここで作成されません。


  4. Microsoft Windows 32ビットのソース・ホストから<DB_Base>\adminディレクトリ全体をMicrosoft Windows 64ビットの宛先ホストの<DB_Base>\ディレクトリにコピーします。

  5. Microsoft Windows 32ビットのソース・ホストから<DB_Base>\fast_recovery_areaディレクトリ全体をMicrosoft Windows 64ビットの宛先ホストの<DB_Base>\ディレクトリにコピーします。

  6. Microsoft Windows 32ビットのソース・ホストから<DBHOME>\database\*.*ファイルをMicrosoft Windows 64ビットの宛先ホストの<DBHOME>\database\ディレクトリにコピーします。


    注意:

    Oracle Database 10gリリース2 (10.2.0.5)を使用している場合は、win32から<DB_HOME>\dbs\SPFILE<SID>.ORAをwin64の同じ場所にコピーします。このファイルの例は次のとおりです。

    C:\DB\db\dbs\SPFILEORCL.ORA


  7. 次の環境変数を設定します。

    • set ORACLE_HOME=<DB_home>

    • set ORACLE_SID=<SID>

  8. DB_HOME\rdbms\adminディレクトリにアクセスします。


    注意:

    この中でsqlplusを見つけられない場合は、<DB_HOME>\binに移動します。

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

    sqlplus /NOLOG

  10. /as sysdbaに接続します。

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

    SQL> create pfile from spfile;


    注意:

    • Oracle Database 10gリリース5 (10.2.0.5)を使用している場合、次のコマンドを実行します。

      create pfile='<DB_HOME>\database\init<SID>.ora' from SPFILE='<DB_HOME>\dbs\SPFILE<SID>.ORA';

      For example:
      create pfile='C:\DB\db\database\initorcl.ora' from SPFILE='C:\DB\db\dbs\SPFILEORCL.ORA';
      
    • Oracle Database 11gリリース1 (11.1.0.7)を使用している場合、次のコマンドを実行します。

      create pfile='<DB_HOME>\database\init<SID>.ora' from SPFILE='<DB_HOME>\database\SPFILE<SID>.ORA';

      For example:
      create pfile='C:\DB\db\database\initorcl.ora' from SPFILE='C:\DB\db\database\SPFILEORCL.ORA';
      

  12. <DB_HOME>\database\init<SID>.oraを、_SYSTEM_TRIG_ENABLED=FALSEを追加して編集します。

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

    SQL> create spfile from pfile

    spfileが同じディレクトリ内で作成されます。

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

    SQL> startup nomount

    インスタンスがnomountとして起動します。


    注意:

    次のような失敗メッセージを受け取る場合があります。

    ORA-00119: invalid specification for system parameter LOCAL_LISTENER

    ORA-00132: syntax error or unresolved network name '<listener name>'

    これを修正するには、pfile, spfile;の編集が必要な可能性があります。

    pfileおよびspfileを編集するには、'<DB_HOME>\database\init<SID>.ora'を開いて次の行を削除します。

    LOCAL_LISTENER

    続いて、次のコマンドを実行します。

    Sql> create spfile from pfile


  15. 第J.1項の手順(3)に示されているファイル<sid>_ora_xx.trcに移動します。このファイルで、手順(15)、手順(16)および手順(17)を実行します。参考のため、これらの手順の例を次に示します。

    SQL > CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  NOARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 292
    LOGFILE
      GROUP 1 'C:\DB\ORADATA\ORCL\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
      GROUP 2 'C:\DB\ORADATA\ORCL\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
      GROUP 3 'C:\DB\ORADATA\ORCL\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
    DATAFILE
      'C:\DB\ORADATA\ORCL\SYSTEM01.DBF',
      'C:\DB\ORADATA\ORCL\SYSAUX01.DBF',
      'C:\DB\ORADATA\ORCL\UNDOTBS01.DBF',
      'C:\DB\ORADATA\ORCL\USERS01.DBF',
      'C:\DB\ORADATA\ORCL\MGMT_ECM_DEPOT1.DBF',
      'C:\DB\ORADATA\ORCL\MGMT.DBF',
      'C:\DB\ORADATA\ORCL\mgmt_deepdive.dbf'
    CHARACTER SET WE8MSWIN1252;
    

    注意:

    ここでエラーが表示された場合は、次のコマンドを実行します。

    SQL> RECOVER DATABASE;


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

    SQL>ALTER DATABASE OPEN;

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

    SQL>ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\DB\ORADATA\ORCL\TEMP01.DBF' SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;

    このコマンドは一時表領域を更新します。

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

    SQL> SHUTDOWN IMMEDIATE;

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

    SQL> startup upgrade;

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

    SQL> SPOOL mig32-64.log;

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

    SQL> SET ECHO ON;

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

    SQL> @utlirp.sql;


    注意:

    sqlplusを<DB_HOME>\bin\から使用している場合、次のコマンドを実行します。

    SQL> @ <DB_HOME>\RDBMS\ADMIN\utlirp.sql

    または

    SQL> @ ?/RDBMS/ADMIN?utlirp.sql


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

    SQL> spool off;

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

    SQL> shutdown immediate;

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

    SQL> startup

  26. 次のスクリプトを実行します。スクリプトを実行するには、SQL>プロンプトに貼り付けて[Enter]を押します。

    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;
    /
    
  27. 次のコマンドを実行します。

    SQL> @utlrp.sql


    注意:

    sqlplusを<DB_HOME>\bin\から使用している場合、次のコマンドを実行します。

    SQL> @ <DB_HOME>\RDBMS\ADMIN\utlrp.sql

    または

    SQL> @ ?/RDBMS/ADMIN?utlrp.sql


    成功した場合、手順(28)に進みます。それ以外でエラーが発生した場合、次を実行します。

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

      SQL> alter system reset "_system_trig_enabled" scope = spfile;

      エラーが表示された場合は無視して次の手順に進みます。

    2. 次のコマンドを実行してolapを削除します。

      SQL> @?/olap/admin/catnoamd.sql


      注意:

      見つからないファイルに関連するエラーが、個々のファイルについて表示される場合は、次のコマンドを使用します。

      SQL>@C:\DB\db\olap\admin\<filename>.sql;

      ただし、エラーが発生した場合でも続行できます。


      SQL> @?/olap/admin/catnoaps.sql

      SQL> @?/olap/admin/olapidrp.plb

    3. 次のコマンドを実行してolapを追加します。

      SQL> connect SYS as SYSDBA

      SQL> spool olap.log

      SQL> @?/olap/admin/olap.sql SYSAUX TEMP;

    4. 次のコマンドを再入力します。

      SQl> @utlrp.sql


      注意:

      sqlplusを<DB_HOME>\bin\から使用している場合、次のコマンドを実行します。

      SQL> @ <DB_HOME>\RDBMS\ADMIN\utlrp.sql

      または

      SQL> @ ?/RDBMS/ADMIN?utlrp.sql


    5. 次の確認作業を行います(オプション)。

      - 無効なOLAPSYSオブジェクトについて、次のコマンドを実行します。

      SQL> select owner, object_name, object_type, status from dba_objects where status = 'INVALID' and OWNER = 'OLAPSYS' ;

      - DBA_REGISTRY内のOLAPコンポーネントについて、次のコマンドを実行します。

      SQL> column comp_name format a35

      SQL> SELECT comp_name, status, substr(version,1,10) as version from dba_registry;

      SQL> Spool Off

  28. 手順11でinit<SID>.oraの行_SYSTEM_TRIG_ENABLED=FALSEを削除して、次のコマンドを実行します。

    SQL> ALTER SYSTEM RESET "_system_trig_enabled" SCOPE=SPFILE sid='*';

    commit;

    shutdown immediate;

    startup;

J.3 Oracle Database 11.1.0.7または10.2.0.5のMicrosoft Windows 32ビット・ホストからMicrosoft Windows 64ビット・ホストへのリカバリを行うために実行する最終手順

プロセスを完了するには、次の作業を行います。

J.3.1 Oracle Database 11.1.0.7または10.2.0.5のMicrosoft Windows 32ビット・ホストからMicrosoft Windows 64ビット・ホストへのリカバリを行うためにMicrosoft Windows 32ビット・ホストで実行する最終手順

Microsoft Windows 32ビットのソース・ホストで、次を実行します。

  1. <DB_HOME>\binにアクセスします。

    sqlplus "/as sysdba"

    SQL>startup;

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

    <OMS_HOME>\bin>emctl config emkey -remove_from_repos

    次に例を示します。

    C:\Oracle\Middleware\oms\BIN>emctl config emkey -remove_from_repos

  3. <DB_HOME>\binにアクセスします。

    sqlplus "/as sysdba"

    shutdown immediate;

    startup;

J.3.2 Oracle Database 11.1.0.7または10.2.0.5のMicrosoft Windows 32ビット・ホストからMicrosoft Windows 64ビット・ホストへのリカバリを行うためにMicrosoft Windows 64ビット・ホストで実行する最終手順

Microsoft Windows 64ビットの宛先ホストで、次を実行します。

  1. 次のコマンドを実行してリスナーを起動します。

    <DB_HOME>\bin\listener.exe start

    あるいは、次のコマンドを実行してリスナーを起動することもできます。

    <DB_HOME>\bin\netca

    この作業はリカバリの前または後に実行できます。

  2. リスナーが起動しない場合、次のコマンドを<SID>とともに実行します。

    <DB_HOME>\bin\sqlplus "/as sysdba"

    SQL>alter system register;

    SQL>commit;

    SQL>shutdown immediate;

    SQL>startup;

J.3.3 Oracle Database 11.1.0.7または10.2.0.5のMicrosoft Windows 32ビット・ホストからMicrosoft Windows 64ビット・ホストへのリカバリにおける問題のトラブルシューティング

まだ問題が発生する場合は、次の手順を実行します。


注意:

これらの手順はデータベース10.2.0.5でテストされています。

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

    <DB_HOME>\BIN\orapwd file=<DB_HOME>\database\PWDorcl.ora password=<enter_password> entries=30 FORCE=Y

  2. tnsnames.oraでエンティティの追加が必要になる場合があります。エンティティの例は次のとおりです。

    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = host.example.com)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl.example.com)
        )
      )
     
    Where, orcl is the SID.
    
  3. 次のコマンドを実行して、データベースをSQLPlusからバウンスします。

    <DB_HOME>\bin\sqlplus "/as sysdba"

    SQL>shutdown immediate;

    SQL>startup;

  4. 次のコマンドを実行してリスナーをバウンスします。

    <DB_HOME>\bin\listener.exe stop

    <DB_HOME>\bin\listener.exe start

    <DB_HOME>\bin\listener.exe status (to be repeated till you see the service name)