Windowsでの非CDBのOracle Database 11.2.0.3の手動アップグレードの例

次の例では、Oracle Database 11gリリース2 (11.2.0.3)をOracle Database 12cリリース2 (12.2)にアップグレードするために実行するアップグレード前チェック、アップグレード、アップグレード後のチェックのステップを示しています。

これらのトピックの個々の例は、Microsoft Windowsプラットフォームでのアップグレードを示しています。これらではWindows環境固有のツールが使用されます。ただし、これらの例では手動インストールの概要を提供しています。

コマンドライン・ユーティリティを使用した、Windowsでの非CDBのアップグレードの準備

この例は、非CDBのOracle Database 11gリリース2 (11.2.0.3)を非CDBのOracle Database 12c以降のリリースにアップグレードする前に実行する、アップグレード前のステップを示しています。

この手順では、Windows上で非CDBのOracle Databaseから現行リリースの非CDBのOracle Databaseに手動アップグレードを実行するために、どのようにコマンドライン・ユーティリティを使用してシステムを準備するかの例を示しています。この例ではアップグレードするOracle DatabaseはOracle Database 11gリリース2 (11.2.0.3)です。アップグレードの例はOracle Database 12cですが、手順はOracle Database 18cの場合と同じです。

ORA_DBAグループのメンバーとしてログインします。新しいリリースのOracle Databaseバイナリをサーバーにインストールすることをお薦めします。その手順を実行するには、Windows用の『Oracle Databaseインストレーション・ガイド』を参照してください。

アップグレード前作業は次のステップで構成されます。

  1. Oracleインストール所有者ユーザー・アカウント(Oracleユーザー)のユーザー環境変数を新しいリリースのOracleホームから11.2.0.3のOracleホームに再設定します。

  2. 11.2.0.3 Oracle Databaseへの接続をテストします。

  3. 11.2.0.3 Oracle Databaseホームでアップグレード前情報ツールを実行します。

  4. アップグレード前情報ツールのログ(preupgrade.log)を確認します。実行が必要なpreupgrade_fixups.sqlスクリプトがある場合は、そのスクリプトを実行します。この例では、次のエラーについての手動修正が表示されています。

    • Oracle Enterprise Managerが存在する(em_present)。

    • OLAPカタログが存在する(amd_exists)。

    • ADMINISTER DATABASE TRIGGER権限が不要されている必要がある(trgowner_no_admndbtrg)。

    • マテリアライズド・ビューがリフレッシュされていない(mv_refresh)。

    • Oracle Application Expressがアップグレードされていない(apex_upgrade_msg)。

  5. preupgrade_fixups.sqlスクリプトを実行します。

  6. データベースをバックアップします。

これらの例では次のシステム、パス、ユーザーを使用します。

Oracle Database 11gリリース2(11.2.0.3)

  • Oracleインストレーション所有者ユーザー・アカウント: oracle1、ORA_DBAグループのメンバーです。

  • Oracleホーム: C:\app\oracle\product\11.2.0\dbhome_1

Oracle Database 12cリリース2 (11.2.0.3)

  • Oracleインストレーション所有者ユーザー・アカウント: oracle2、ORA_DBAグループのメンバーです。

  • Oracleホーム: C:\app\oracle1\product\12.2.0\dbhome_1

例3-7 ユーザー環境変数のリセット

この例は、12.2.0.1インストールで設定された環境変数の変更方法を示しています。

C:\app\oracle1\product\12.2.0\dbhome_1\rdbms\admin>set ORACLE_HOME=C:\app\oracle2\product\11.2.0\dbhome_1
C:\app\oracle1\product\12.2.0\dbhome_1\rdbms\admin>set ORACLE_SID=orcl11

例3-8 データベースへの接続のテスト

この例では、データベースへの接続のテストして、アップグレードするリリース11.2.0.3データベースに接続していることを確認する方法を示します。

C:\app\oracle1\product\12.2.0\dbhome_1\rdbms\admin>sqlplus / as sysdba

	SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 5 12:14:49 2016

	Copyright (c) 1982, 2011, Oracle.  All rights reserved.


	Connected to:
	Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
	With the Partitioning, OLAP, Data Mining and Real Application Testing options

	SQL> select version from v$instance;

	VERSION
	-----------------
	11.2.0.3.0

	SQL>

例3-9 アップグレード前情報ツール(preupgrade.jar)の実行

この例は、コマンドjava -jar %ORACLE_HOME12.2%\rdbms\admin\preupgrade.jarを使用したツールの実行方法を示しています。

アップグレード前情報ツールはログ・ファイルのパスと修正スクリプトのパスを出力します。デフォルトで、修正スクリプトは%ORACLE_BASE%にあります。

C:\app\oracle1\product\12.2.0\dbhome_1\rdbms\admin>java -jar preupgrade.jar

Preupgrade generated files:
        C:\app\oracle2\cfgtoollogs\orcl11\preupgrade\preupgrade.log
        C:\app\oracle2\cfgtoollogs\orcl11\preupgrade\preupgrade_fixups.sql
        C:\app\oracle2\cfgtoollogs\orcl11\preupgrade\postupgrade_fixups.sql
C:\app\oracle1\product\12.2.0\dbhome_1\rdbms\admin>

例3-10 アップグレード前情報ツールのログ(preupgrade.log)の確認

この例では、ログ・ファイルpreupgrade.logが、パスC:\app\oracle2\cfgtoollogs\orcl11\preupgrade\preupgrade.logに作成されます。

このログ・ファイルを使用してSQL修正ファイルに移動し、それらを手動で実行できます。SQLファイルの実行を指示されたら、該当するファイルを以前のリリース11.2.0.3のOracleホームにコピーして、スクリプトを実行します。

例3-11 アップグレード前修正SQLスクリプト(preupgrade_fixups.sql)の実行

C:\app\oracle1\product\12.2.0\dbhome_1\rdbms\admin>sqlplus / as sysdba @C:\app\oracle2\cfgtoollogs\orcl11\preupgrade\preupgrade_fixups.sql

	SQL*Plus: Release 11.2.0.3.0 Production on Tue Jul 5 12:34:08 2016

	Copyright (c) 1982, 2011, Oracle.  All rights reserved.


	Connected to:
	Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
	With the Partitioning, OLAP, Data Mining and Real Application Testing options

	Executing Oracle PRE-Upgrade Fixup Script

	Auto-Generated by:       Oracle Preupgrade Script
							 Version: 12.2.0.1.0 Build: 1
	Generated on:            2016-07-05 12:18:06

	Source Database:         ORCL11
	Source Database Version: 11.2.0.3.0
	For Upgrade to Version:  12.2.0.1.0
							  Fixup
	Check Name                Status  Further DBA Action
	----------                ------  ------------------
	em_present                Failed  Manual fixup recommended.
	amd_exists                Failed  Manual fixup recommended.
	dictionary_stats          Failed  Manual fixup recommended.
	trgowner_no_admndbtrg     Failed  Manual fixup recommended.
	mv_refresh                Failed  Manual fixup recommended.
	apex_upgrade_msg          Failed  Manual fixup recommended.

	PL/SQL procedure successfully completed.
	

この例では一部の自動チェックが失敗し、手動での修正が必要です。手動修正の実行方法は、次の例を参照してください。

例3-12 Oracle Enterprise Managerの手動での削除(em_present)

preupgrade_fixups.sqlログ・ファイルは、手動でOracle Enterprise Managerを削除するよう、指示しています(em_present)。

+ Remove the EM repository.
		 
		 - Copy the rdbms/admin/emremove.sql script from the target 12.2.0.1.0
		 ORACLE_HOME into the source 11.2.0.3.0 ORACLE_HOME.
		 
		 Step 1: If database control is configured, stop EM Database Control,
		 using the following command
		 
		   $> emctl stop dbconsole
		 
		 Step 2: Connect to the database using the SYS account AS SYSDBA
		 
		   SET ECHO ON;
		   SET SERVEROUTPUT ON;

		  @emremove.sql
		...
		...
		...
		
		Execution:
		
		Step 1 - Stop dbconsole:

			C:\app\oracle1\product\12.1.0\dbhome_1\rdbms\admin> emctl stop dbconsole

			Oracle Enterprise Manager 11g Database Control Release 11.2.0.3.0
			Copyright (c) 1996, 2011 Oracle Corporation.  All rights reserved.
			https://db01.example.com:1158/em/console/aboutApplication
			The OracleDBConsoleorcl11 service is stopping...........
			The OracleDBConsoleorcl11 service was stopped successfully.
		
		Step 2 - Remove em (provide credentials if needed)

			...
			...
			...

			Dropping synonym : SETEMVIEWUSERCONTEXT ...
			Dropping synonym : SMP_EMD_AVAIL_OBJ ...
			Dropping synonym : SMP_EMD_DELETE_REC_ARRAY ...
			Dropping synonym : SMP_EMD_INTEGER_ARRAY ...
			Dropping synonym : SMP_EMD_INTEGER_ARRAY_ARRAY ...
			Dropping synonym : SMP_EMD_NVPAIR ...
			Dropping synonym : SMP_EMD_NVPAIR_ARRAY ...
			Dropping synonym : SMP_EMD_STRING_ARRAY ...
			Dropping synonym : SMP_EMD_STRING_ARRAY_ARRAY ...
			Dropping synonym : SMP_EMD_TARGET_OBJ ...
			Dropping synonym : SMP_EMD_TARGET_OBJ_ARRAY ...
			Finished phase 5
			Starting phase 6 : Dropping Oracle Enterprise Manager related other roles ...
			Finished phase 6
			The Oracle Enterprise Manager related schemas and objects are dropped.
			Do the manual steps to studown the DB Control if not done before running this
			script and then delete the DB Control configuration files

			PL/SQL procedure successfully completed.

			SQL>

例3-13 OLAPカタログの手動での削除(amd_exists)

preupgrade_fixups.sqlログ・ファイルは、手動でOLAPカタログを削除するよう、指示しています(amd_exists)。

 + Remove OLAP Catalog by running the 11.2.0.3.0 SQL script
     $ORACLE_HOME/olap/admin/catnoamd.sql script.  
     
     The OLAP Catalog component, AMD, exists in the database.
	 
	 sqlplus / as sysdba @%ORACLE_HOME%\olap\admin\catnoamd.sql
		...
		...
		...
	
		Synonym dropped.

		User dropped.

		Role dropped.

		SQL>

例3-14 現在のディクショナリ統計の収集(dictionary_stats)

preupgrade_fixups.sqlログ・ファイルはディクショナリ統計を収集するよう、指示しています(dictionary_stats)。

	   + Gather dictionary statistics prior to database upgrade in off-peak time
     using:
     
       EXECUTE dbms_stats.gather_dictionary_stats; 
	
		SQL> EXECUTE dbms_stats.gather_dictionary_stats;

		PL/SQL procedure successfully completed.

例3-15 ADMINISTER DATABASE TRIGGER権限の収集(trgowner_no_admndbtrg)

preupgrade_fixups.sqlログ・ファイルは、ADMINISTER DATABASE TRIGGER権限を付与するよう、指示しています(trgowner_no_admndbtrg)。

+ Directly grant ADMINISTER DATABASE TRIGGER privilege to the owner of the
		 trigger or drop and re-create the trigger with a user that was granted
		 directly with such. You can list those triggers using "SELECT OWNER,
		 TRIGGER_NAME FROM DBA_TRIGGERS WHERE BASE_OBJECT_TYPE='DATABASE' AND
		 OWNER NOT IN (SELECT GRANTEE FROM DBA_SYS_PRIVS WHERE
		 PRIVILEGE='ADMINISTER DATABASE TRIGGER')"  
	
			SQL> SELECT OWNER,
			  2       TRIGGER_NAME FROM DBA_TRIGGERS WHERE BASE_OBJECT_TYPE='DATABASE' AND
			  3       OWNER NOT IN (SELECT GRANTEE FROM DBA_SYS_PRIVS WHERE
			  4       PRIVILEGE='ADMINISTER DATABASE TRIGGER');

			OWNER                          TRIGGER_NAME
			------------------------------ ------------------------------
			MDSYS                          SDO_DROP_USER
			MDSYS                          SDO_ST_SYN_CREATE
			MDSYS                          SDO_TOPO_DROP_FTBL
			MDSYS                          SDO_GEOR_BDDL_TRIGGER
			MDSYS                          SDO_GEOR_ADDL_TRIGGER
			MDSYS                          SDO_NETWORK_DROP_USER

			6 rows selected.

			SQL> grant ADMINISTER DATABASE TRIGGER to MDSYS;

			Grant succeeded.	

例3-16 マテリアライズド・ビューの更新(mv_refresh)

preupgrade_fixups.sqlログ・ファイルは、マテリアライズド・ビューを更新するよう、指示しています(mv_refresh)。

+ Please make sure that all the MVs are refreshed and sys.sumdelta$
		 becomes empty before doing upgrade, unless you have strong business
		 reasons not to do so. You can use dbms_mview.refresh() to refresh the
		 MVs except those stale ones  to be kept due to business need. If there
		 are any stale MVs depending on changes in sys.sumdelta$, do not truncate
		 it, because doing so will cause wrong results after refresh.   	
			 
			SQL> declare
			  2  num_failures integer(3) :=0;
			  3  begin
			  4  DBMS_MVIEW.REFRESH_ALL_MVIEWS(num_failures,'C','', TRUE, FALSE);
			  5  end;
			  6  /

			PL/SQL procedure successfully completed.

			SQL> select count(1) from sumdelta$;

			  COUNT(1)
			----------
					 0

			SQL>

例3-17 Oracle Application Expressのアップグレード(apex_upgrade_msg)

preupgrade_fixups.sqlログ・ファイルは、Oracle Application Expressのアップグレードを薦めています(apex_upgrade_msg)。このアップグレードを実行すると、Oracle Databaseのアップグレードに必要なダウンタイムを短縮できます。ログ・ファイルには、このアップグレードの完了方法に関する詳細が示されています。
+ Consider upgrading APEX manually, before the database upgrade.  
		 
		 The database contains APEX version 3.2.1.00.12 and will need to be
		 upgraded to at least version 5.0.4.00.11.
		 
		 To reduce database upgrade time, you can upgrade APEX manually before
		 the database upgrade.  Refer to My Oracle Support Note 1088970.1 for
		 information on APEX installation upgrades.
	
		Download: http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html provide credentials.
		
		Then go to: http://www.oracle.com/technetwork/developer-tools/apex/application-express/upgrade-apex-for-xe-154969.html and
					https://docs.oracle.com/cd/E59726_01/install.50/e39144/toc.htm to guide you to do the upgrade.
					
		Once downloaded, please go to the directory and unzip the files, run the apex upgrade from there.
		
		...
		...
			Completing registration process. 12:07:41
			Validating installation.  12:07:41
			...Starting validation 12:07:41
			...Database user "SYS", database schema "APEX_050000", user# "90" 12:07:41
			...272 packages
			...265 package bodies
			...465 tables
			...8 functions
			...16 procedures
			...4 sequences
			...497 triggers
			...1582 indexes
			...255 views
			...0 libraries
			...14 types
			...5 type bodies
			...0 operators
			...0 index types
			...Begin key object existence check 12:07:53
			...Completed key object existence check 12:07:54
			...Setting DBMS Registry 12:07:54
			...Setting DBMS Registry Complete 12:07:54
			...Exiting validate 12:07:54

			PL/SQL procedure successfully completed.

			timing for: Validate Installation
			Elapsed: 00:00:13.00

			Session altered.

			timing for: Complete Installation
			Elapsed: 00:18:40.49
			
		...
		...

注意:

アップグレード前ステップが完了したら、アップグレードを続行する前にデータベースをバックアップすることをお薦めします。

コマンドライン・ユーティリティを使用した、Windowsでの非CDBの手動アップグレード

これらの例は、非CDBのOracle Database 11gリリース2 (11.2.0.3)を非CDBのOracle Databaseにアップグレードするステップを示しています。

アップグレード前ステップを実行した後で、非CDBのOracle Databaseを新しいリリースの非CDBのOracle Databaseにアップグレードできます。アップグレードを開始する前に、データベース・サービスを停止する必要があります。データベース・サービスは、コマンドライン・コマンドを使用するか、またはMicrosoft Windows PowerShellスクリプトを使用して停止できます。

アップグレードを完了するステップの順序は次のとおりです。
  1. コマンドライン・コマンドまたはPowerShellを使用して、データベース・サービスを停止します。

  2. 以前のリリースのOracleホームからデータベース・サービスを削除します。

  3. 以前のリリースのOracleホームのリスナーを停止します。

  4. 環境変数を新しいOracleホームに設定します。

  5. tnsnames.oralistener.ora、パスワード・ファイル、ウォレット、その他のデータベース・ファイルを新しいOracleホームにコピーします。

  6. PFILEを新しいOracle Database Oracleホームにコピーし、OracleホームでOracle Databaseバイナリを使用して新規サービスを作成します。(この例で、PFILEは新しいリリースと互換性があると想定しています。お使いのPFILEが新しいリリースと互換性がない場合もあります。)

  7. データベースのアップグレードを開始します。

  8. アップグレード後のステップを完了します。

例3-18 コマンドライン・コマンドを使用したデータベース・サービスの停止

  1. サービス名がわからない場合は、サービス名を特定します。

    c:\apex\apex>sc query type= service | find /i "orcl11"
    				SERVICE_NAME: OracleServiceORCL11
    				DISPLAY_NAME: OracleServiceORCL11
    
  2. サービス名を使用して、サービスのステータスを調べます。

    c:\apex\apex>sc query  OracleServiceORCL11
    
    				SERVICE_NAME: OracleServiceORCL11
    					TYPE               : 10  WIN32_OWN_PROCESS
    					STATE              : 4  RUNNING
    											(STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
    					WIN32_EXIT_CODE    : 0  (0x0)
    					SERVICE_EXIT_CODE  : 0  (0x0)
    					CHECKPOINT         : 0x0
    					WAIT_HINT          : 0x0
    
  3. サービスを停止します

    c:\apex\apex>sc stop  OracleServiceORCL11
    
    				SERVICE_NAME: OracleServiceORCL11
    					TYPE               : 10  WIN32_OWN_PROCESS
    					STATE              : 3  STOP_PENDING
    											(STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
    					WIN32_EXIT_CODE    : 0  (0x0)
    					SERVICE_EXIT_CODE  : 0  (0x0)
    					CHECKPOINT         : 0x5
    					WAIT_HINT          : 0x15f90		
    
  4. 数分間待ってからステータスを確認します。

    c:\apex\apex>sc query  OracleServiceORCL11
    
    				SERVICE_NAME: OracleServiceORCL11
    					TYPE               : 10  WIN32_OWN_PROCESS
    					STATE              : 1  STOPPED
    					WIN32_EXIT_CODE    : 0  (0x0)
    					SERVICE_EXIT_CODE  : 0  (0x0)
    					CHECKPOINT         : 0x0
    					WAIT_HINT          : 0x0		

    サービスが停止したら、サービスの削除を続行できます。

例3-19 Microsoft Windows PowerShellスクリプトを使用したデータベース・サービスの停止

  1. サービスのステータスをチェックします。

    PS C:\app\oraclbm\cfgtoollogs\orcl\preupgrade> Get-Service | Where-Object {$_.displayName.Contains("ORCL11")}
    
    				Status   Name               DisplayName
    				------   ----               -----------
    				Stopped  OracleJobSchedu... OracleJobSchedulerORCL11
    				Running  OracleServiceOR... OracleServiceORCL11
    				Running  OracleVssWriter... Oracle ORCL11 VSS Writer Service
    
    
  2. サービスを停止します。

    PS C:\app\oraclbm\cfgtoollogs\orcl\preupgrade> Get-Service | Where-Object {$_.displayName.Contains("ORCL11")} | Stop-Ser
    				vice
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				WARNING: Waiting for service 'OracleServiceORCL11 (OracleServiceORCL11)' to stop...
    				
    

    サービスが停止したら、データベース・サービスの削除を続行できます。

例3-20 以前のリリースのOracleホームからのデータベース・サービスの削除

Windows上のOracle Database 11gリリース2 (11.2.0.3)の場合は、以前のリリースのOracleホームのORADIMを使用します。ORADIMはWindowsサービスの管理に使用できるWindows固有のユーティリティです。

c:\apex\apex>oradim -delete -sid orcl11
			Unable to stop service, OS Error = 1062
			Instance deleted.

例3-21 以前のリリースのOracleホームのリスナーの停止

c:\apex\apex>lsnrctl status

			LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 13-JUL-2016 13:58:52

			Copyright (c) 1991, 2011, Oracle.  All rights reserved.

			Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
			STATUS of the LISTENER
			------------------------
			Alias                     LISTENER
			Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
			Start Date                05-JUL-2016 10:01:30
			Uptime                    8 days 3 hr. 57 min. 23 sec
			Trace Level               off
			Security                  ON: Local OS Authentication
			SNMP                      OFF
			Listener Parameter File   C:\app\oracle2\product\11.2.0\dbhome_1\network\admin\listener.ora
			Listener Log File         C:\app\oracle2\diag\tnslsnr\slc01auu\listener\alert\log.xml
			Listening Endpoints Summary...
			  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1522ipc)))
			  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=db01.example.com)(PORT=1522)))
			Services Summary...
			Service "CLRExtProc" has 1 instance(s).
			  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
			The command completed successfully

c:\apex\apex>lsnrctl stop

			LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 13-JUL-2016 13:59:00

			Copyright (c) 1991, 2011, Oracle.  All rights reserved.

			Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
			The command completed successfully	

例3-22 新しいOracleホームへの環境変数の設定

c:\apex\apex>set ORACLE_HOME=C:\app\oracle1\product\18.1.0\dbhome_1

c:\apex\apex>SET PATH=%ORACLE_HOME%\BIN;%PATH%

c:\apex\apex>SET ORACLE_SID=ORCL11	

例3-23 新しいOracleホームへのPFILEのコピー、および新しいOracle Databaseバイナリを使用した新規サービスの作成

この例ではWindows固有のORADIMユーティリティを使用して新規データベース・サービスを作成する方法を示しています。この例では、以前のリリースのPFILEは新しいリリースと互換性があります。

c:\apex\apex>C:\app\oracle1\product\18.1.0\dbhome_1\bin\oradim -new -sid orcl11 -syspwd 
My-sys-password -maxusers 1000 -startmode auto -pfile  C:\app\oracle1\product\18.1.0\dbhome_1\database\initorcl11.ora

			Enter password for Oracle service user:
			Instance created.

例3-24 データベースのアップグレードの開始

パラレル・アップグレード・ユーティリティを使用してアップグレードを開始します。

ノート:

PFILEにあるパスのフォルダ・シンボリック・リンク(DIAGNOSTIC_DESTなど)を変更する必要がある場合があります。その場合は、次の例のようなエラーが表示されます。

ORA-48173: error checking directory existence during ADR initialization [C:\app\oracle2\diag\rdbms\orcl11]
ORA-00205: error in identifying control file, check alert log for more info

これらのエラーが表示された場合は、以前のリリースのOracleホーム、および継承関係を持つすべてのフォルダに対する権限をユーザーに付与します。データベースがアクセスするすべてのアクセス制御リスト(ACL)(ウォレット・ファイルなど)にも、この変更を加えます。以前のリリースのOracleホームをORADATAの場所として使用している場合、このステップは特に必要です。

組込みアカウントを使用している場合、サービスはLocalSystemとして実行されます。仮想アカウントを使用している場合は、サービスはWindows仮想アカウントを使用して実行され、そのアカウントの名前はサービス名に由来します。Oracle Databaseリリース2 (12.2)バイナリの所有者が仮想アカウントである場合は、その仮想アカウントをOracleホーム・ユーザーではなく、グループORA_Homename_SVCAACCTSに追加する必要があります。

Oracle Database 12cリリース2 (12.2)には新しいシェル・スクリプトdbupgradeが含まれています。このシェル・スクリプトはパラレル・アップグレード・ユーティリティ(catctl.pl)を呼び出すので、アップグレードをコマンドとして実行できます。この例はOracle Databaseリリース11.2.0.4からリリース12.2へのアップグレードを示しています。使用しているシステムでアップグレードにかかる時間は、次の例の結果により異なる場合があります。

C:\app\oracle1\product\18.1.0\dbhome_1\bin>dbupgrade 
			...
			...
			...
				C:\app\oracle1\product\18.1.0\dbhome_1\bin>REM Batch file to execute catctl.pl

				Argument list for [C:\app\oracle1\product\18.1.0\dbhome_1\rdbms\admin\catctl.pl]
				Run in                c = 0
				Do not run in         C = 0
				Input Directory       d = 0
				Echo OFF              e = 1
				Simulate              E = 0
				Forced cleanup        F = 0
				Log Id                i = 0
				Child Process         I = 0
				Log Dir               l = c:\temp2
				Priority List Name    L = 0
				Upgrade Mode active   M = 0
				SQL Process Count     n = 4
				SQL PDB Process Count N = 0
				Open Mode Normal      o = 0
				Start Phase           p = 0
				End Phase             P = 0
				Reverse Order         r = 0
				AutoUpgrade Resume    R = 0
				Script                s = 0
				Serial Run            S = 0
				RO User Tablespaces   T = 0
				Display Phases        y = 0
				Debug catcon.pm       z = 0
				Debug catctl.pl       Z = 0

				catctl.pl VERSION: [18.1.0]
                    STATUS: [production]
                    BUILD: [RDBMS_MAIN_WINDOWS.X64_160624]


				C:\app\oracle1\product\12.2.0\dbhome_1\rdbms\admin\orahome.exe = [C:\app\oracle1\product\18.1.0\dbhome_1]
				C:\app\oracle1\product\12.2.0\dbhome_1\bin\orabasehome.exe = [C:\app\oracle1\product\18.1.0\dbhome_1]
				catctlGetOrabase = [C:\app\oracle1\product\18.1.0\dbhome_1]

				Analyzing file C:\app\oracle1\product\18.1.0\dbhome_1\rdbms\admin\catupgrd.sql

				Log file directory = [c:\temp2]

				catcon: ALL catcon-related output will be written to [c:\temp2/catupgrd_catcon_3252.lst]
				catcon: See [c:\temp2/catupgrd*.log] files for output generated by scripts
				catcon: See [c:\temp2/catupgrd_*.lst] files for spool files, if any

				Number of Cpus        = 2
				Database Name         = orcl11
				DataBase Version      = 11.2.0.3.0
				Parallel SQL Process Count            = 4
				Components in [orcl11]
					Installed [APEX APS CATALOG CATJAVA CATPROC CONTEXT JAVAVM ORDIM OWM SDO XDB XML XOQ]
				Not Installed [DV EM MGW ODM OLS RAC WK]

				------------------------------------------------------
				Phases [0-109]         Start Time:[2016_07_13 15:49:40]
				------------------------------------------------------
				***********   Executing Change Scripts   ***********
				Serial   Phase #:0    [orcl11] Files:1			

			...
			...
			...
				------------------------------------------------------
				Phases [0-109]         End Time:[2016_07_13 16:53:27]
				------------------------------------------------------

				Grand Total Time: 3830s

				 LOG FILES: (c:\temp2\catupgrd*.log)

				Upgrade Summary Report Located in:
				c:\temp2\upg_summary.log

				Grand Total Upgrade Time:    [0d:1h:3m:50s]

例3-25 アップグレード後チェックの実行

アップグレードしたOracle Databaseを起動し、バージョンとステータスを確認します。

C:\app\oracle1\product\18.1.0\dbhome_1\bin>sqlplus / as sysdba

				SQL*Plus: Release 18.1.0 Production on Thu Jul 14 09:38:50 2016

				Copyright (c) 1982, 2018, Oracle.  All rights reserved.

				Connected to an idle instance.

				SQL> startup
				ORACLE instance started.

				Total System Global Area 1828716544 bytes
				Fixed Size                  8740096 bytes
				Variable Size             503317248 bytes
				Database Buffers         1308622848 bytes
				Redo Buffers                8036352 bytes
				Database mounted.
				Database opened.
				SQL> select open_mode from v$database;

				OPEN_MODE
				--------------------
				READ WRITE

				SQL> select version from v$instance;

				VERSION
				-----------------
				18.0.0.0.0

				SQL>			

アップグレードが完了したら、アップグレード後チェックを実行し、オブジェクトが有効であること、そして、残っている問題がないことを確認します。

非CDBデータベースのアップグレード後のアップグレード後修正スクリプトの実行

これらの例では、非CDBから非CDBへのアップグレードのために、postupgrade_fixups.sqlスクリプトを実行するプロセスを示します。

次の各例では、非CDBのOracle Database 11g リリース2 (11.2.0.3)から非CDBのOracle Database 12c リリース2 (12.2)へのアップグレードを示します。

例3-26 アップグレード後修正スクリプトの実行

アップグレードを開始する前に、以前のリリースのOracleホームでアップグレード前情報ツールを使用して生成したpostupgrade_fixups.sqlスクリプトを実行します。

SQL> @C:\app\oracle\cfgtoollogs\orcl11\preupgrade\postupgrade_fixups.sql

                  SQL> REM

                  SQL> REM    Oracle POST-Upgrade Fixup Script

                  SQL> REM

                  SQL> REM    Auto-Generated by: Oracle Preupgrade Script

                  SQL> REM    Version: 12.2.0.1.0 Build: 1

                  SQL> REM    Generated on:            2016-07-05 12:18:07

                  SQL> REM

                  SQL> REM    Source Database:         ORCL11

                  SQL> REM    Source Database Version: 11.2.0.3.0

                  SQL> REM    For Upgrade to Version:    12.2.0.1.0

                  SQL> REM

                  SQL>

                  SQL> REM

                  SQL> REM    Setup Environment

                  SQL> REM

                  SQL> SET ECHO OFF SERVEROUTPUT ON FORMAT WRAPPED TAB OFF LINESIZE 200;

                  Executing Oracle POST-Upgrade Fixup Script

                  Auto-Generated by:       Oracle Preupgrade Script

         Version: 12.2.0.1.0 Build: 1

                  Generated on:            2016-07-05 12:18:07

 

                  Source Database:         ORCL11

                  Source Database Version: 11.2.0.3.0

                  For Upgrade to Version:  12.2.0.1.0

         Fixup

                     Check Name                Status  Further DBA Action

                     ----------                ------  ------------------

                     depend_usr_tables         Failed  Manual fixup recommended.

                     old_time_zones_exist      Failed  Manual fixup recommended.

                     post_dictionary           Failed  Manual fixup recommended.

                     fixed_objects             Passed  None

                     upg_by_std_upgrd          Passed  None

                     PL/SQL procedure successfully completed.

                     Elapsed: 00:00:11.26

 SQL>      

この例では、postupgrade_fixup.sqlスクリプトが3つの修正を完了できないため、手動修正を実行するように指示されます。この結果は正常です。手動修正を実行するには、ログ・ファイルpreupgrade.logを見つけます。これには手動修正スクリプトの実行方法に関する指示とスクリプト情報が含まれています。これらの修正スクリプトはpostupgrade_fixups.sqlスクリプトにより生成されます。このログ・ファイルで提供される指示に従って、問題を修正します。

例3-27 ユーザー表のOracleで維持される型に対する手動修正の指示(depend_usr_tables)

    + If you use the -T option for the database upgrade, then run

                    @?/rdbms/admin/utluptabdata.sql after the upgrade is complete, to

                    VALIDATE and UPGRADE any user tables affected by changes to

                    Oracle-Maintained types.                                                          
                                              

  SQL> @C:\app\oracle\product\12.2.0\dbhome_1\rdbms\admin\utluptabdata.sql

  PL/SQL procedure successfully completed.

                    SQL>

例3-28 タイム・ゾーン・バージョンに対する手動修正の指示(old_time_zones_exist)

+ Upgrade the database time zone version using the DBMS_DST package. 


                   The database is using timezone datafile version 14 and the target

                   12.2.0.1.0 database ships with timezone datafile version 26.

                   Oracle recommends using the most recent timezone data.  For further

                   information, refer to My Oracle Support Note 1585343.1
                                           

                   SQL> @C:\Users\oracle\Downloads\DBMS_DST_scriptsV1.9\DBMS_DST_scriptsV1.9\countstatsTSTZ.sql

                   .

                   Amount of TSTZ data using num_rows stats info in DBA_TABLES.

                   .

                   For SYS tables first...

                   Note: empty tables are not listed.

                   Stat date  - Owner.Tablename.Columnname - num_rows

                   05/07/2016 - SYS.AQ$_ALERT_QT_S.CREATION_TIME - 5

                   ...


                   Total numrow of SYS TSTZ columns is : 14652

                   There are in total 154 non-SYS TSTZ columns.

                   .

                   ...

                   For non-SYS tables ...

                   Note: empty tables are not listed.

                   ...

                   ...

                   Stat date  - Owner.Tablename.Columnname - num_rows

                   Total numrow of non-SYS TSTZ columns is : 17

                   There are in total 32 non-SYS TSTZ columns.

                   Total Minutes elapsed : 0

                   SQL>                                                     

                   SQL> spool upg_tzv_check.log

                   SQL> @C:\Users\oracle\Downloads\DBMS_DST_scriptsV1.9\DBMS_DST_scriptsV1.9\upg_tzv_check.sql

                   INFO: Starting with RDBMS DST update preparation.

                   INFO: NO actual RDBMS DST update will be done by this script.

                   INFO: If an ERROR occurs the script will EXIT sqlplus.

                   INFO: Doing checks for known issues ...

                   INFO: Database version is 12.2.0.1 .

                   INFO: Database RDBMS DST version is DSTv14 .

                   INFO: No known issues detected.

                   INFO: Now detecting new RDBMS DST version.

                   A prepare window has been successfully started.

                   INFO: Newest RDBMS DST version detected is DSTv26 .

                   INFO: Next step is checking all TSTZ data.

                   INFO: It might take a while before any further output is seen ...

                   A prepare window has been successfully ended.

                   INFO: A newer RDBMS DST version than the one currently used is found.

                   INFO: Note that NO DST update was yet done.

                   INFO: Now run upg_tzv_apply.sql to do the actual RDBMS DST update.

                   INFO: Note that the upg_tzv_apply.sql script will

                   INFO: restart the database 2 times WITHOUT any confirmation or prompt.

                   SQL> spool off                                                                                  

                   SQL> @C:\Users\oracle\Downloads\DBMS_DST_scriptsV1.9\DBMS_DST_scriptsV1.9\upg_tzv_apply.sql

                   INFO: If an ERROR occurs the script will EXIT sqlplus.

                   INFO: The database RDBMS DST version will be updated to DSTv26 .

                   WARNING: This script will restart the database 2 times

                   WARNING: WITHOUT asking ANY confirmation.

                   WARNING: Hit control-c NOW if this is not intended.

                   INFO: Restarting the database in UPGRADE mode to start the DST upgrade.

                   Database closed.

                   Database dismounted.  <--------- you might need to wait a couple of minutes and hit enter a couple of times.           

                   ORACLE instance shut down.

                   ORACLE instance started.


                  Total System Global Area 1828716544 bytes

                  Fixed Size                  8740096 bytes

                  Variable Size             503317248 bytes

                  Database Buffers         1308622848 bytes

                  Redo Buffers                8036352 bytes

                  Database mounted.

                  Database opened.

                  INFO: Starting the RDBMS DST upgrade.

                  INFO: Upgrading all SYS owned TSTZ data.

                  INFO: It might take time before any further output is seen ... <--------- you might need to wait a couple of minutes
                  and hit enter a couple of times.               

                  An upgrade window has been successfully started.

                  INFO: Restarting the database in NORMAL mode to upgrade non-SYS TSTZ data.

                  Database closed.

                  Database dismounted.

                  ORACLE instance shut down.

                  ORACLE instance started. 


                  Total System Global Area 1828716544 bytes

                  Fixed Size                  8740096 bytes

                  Variable Size             503317248 bytes

                  Database Buffers         1308622848 bytes

                  Redo Buffers                8036352 bytes

                  Database mounted.

                  Database opened.   ... <--------- you might need to wait a couple of minutes and hit enter a couple of times.

                  INFO: Upgrading all non-SYS TSTZ data.

                  INFO: It might take time before any further output is seen ...

                  INFO: Do NOT start any application yet that uses TSTZ data! ... <--------- you might need to wait a couple of minutes
                  and hit enter a couple of times.               

                  INFO: Next is a list of all upgraded tables:

                  Table list: "IX"."AQ$_ORDERS_QUEUETABLE_L"

                  Number of failures: 0

                  Table list: "IX"."AQ$_ORDERS_QUEUETABLE_S"

                  Number of failures: 0

                  Table list: "IX"."AQ$_STREAMS_QUEUE_TABLE_L"

                  Number of failures: 0

                  Table list: "IX"."AQ$_STREAMS_QUEUE_TABLE_S"

                  Number of failures: 0

                  Table list: "APEX_050000"."WWV_FLOW_DEBUG_MESSAGES"

                  Number of failures: 0

                  Table list: "APEX_050000"."WWV_FLOW_DEBUG_MESSAGES2"

                  Number of failures: 0

                  Table list: "APEX_050000"."WWV_FLOW_FEEDBACK"

                  Number of failures: 0

                  Table list: "APEX_050000"."WWV_FLOW_FEEDBACK_FOLLOWUP"

                  Number of failures: 0

                  Table list: "APEX_050000"."WWV_FLOW_WORKSHEET_NOTIFY"

                  Number of failures: 0

                  Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_L"

                  Number of failures: 0

                  Table list: "GSMADMIN_INTERNAL"."AQ$_CHANGE_LOG_QUEUE_TABLE_S"

                  Number of failures: 0

                  INFO: Total failures during update of TSTZ data: 0 .

                  An upgrade window has been successfully ended.

                  INFO: Your new Server RDBMS DST version is DSTv26 .

                  INFO: The RDBMS DST update is successfully finished.

                  INFO: Make sure to exit this sqlplus session.

                  INFO: Do not use it for timezone related selects.

            SQL>     

                                                

例3-29 ディクショナリ統計の更新に対する手動修正(post_dictionary)

+ Gather dictionary statistics after the upgrade using the command:

                 EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS; 

                 This recommendation is given for all preupgrade runs.                 

         SQL> EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;

         PL/SQL procedure successfully completed.

 
         SQL>