透過遷移資料庫檔案方式來實現10gR2升級11gR2

龍山游龍發表於2015-08-09
Oracle 10gR2遷移資料庫檔案(引數檔案、控制檔案、資料檔案、聯機日誌檔案、歸檔日誌檔案)至Oracle 11gR2,啟到mount狀態,startup upgrade模式開啟資料庫,刷資料字典即升級catupgra.sql
主端:
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE    10.2.0.5.0      Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production

SQL>

備端:
[oracle@bei ~]$ sqlplus -v

SQL*Plus: Release 11.2.0.3.0 Production

[oracle@bei admin]$ ll|grep utlu112i.sql
-rw-r--r--. 1 oracle oinstall  213918 Jul 13  2011 utlu112i.sql
[oracle@bei admin]$ scp utlu112i.sql oracle@192.168.186.123:/home/oracle
oracle@192.168.186.123's password:
utlu112i.sql                                                                                                                      100%  209KB 208.9KB/s   00:00  

主端:
[oracle@zhu ~]$ ls -rtl
total 216
-rw-r--r-- 1 oracle oinstall 213918 Aug  9 21:40 utlu112i.sql
[oracle@zhu ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sun Aug 9 21:44:07 2015

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @utlu112i.sql

Oracle Database 11.2 Pre-Upgrade Information Tool 08-09-2015 21:44:14
Script Version: 11.2.0.3.0 Build: 001
.
**********************************************************************
Database:
**********************************************************************
--> name:          NODE
--> version:       10.2.0.5.0
--> compatible:    10.2.0.5.0
--> blocksize:     8192
--> platform:      Linux x86 64-bit
--> timezone file: V4
.
**********************************************************************
Tablespaces: [make adjustments in the current environment]
**********************************************************************
--> SYSTEM tablespace is adequate for the upgrade.
.... minimum required size: 548 MB
--> UNDOTBS1 tablespace is adequate for the upgrade.
.... minimum required size: 400 MB
--> SYSAUX tablespace is adequate for the upgrade.
.... minimum required size: 228 MB
--> TEMP tablespace is adequate for the upgrade.
.... minimum required size: 60 MB
.
**********************************************************************
Flashback: OFF
**********************************************************************
**********************************************************************
Update Parameters: [Update Oracle Database 11.2 init.ora or spfile]
Note: Pre-upgrade tool was run on a lower version 64-bit database.
**********************************************************************
--> If Target Oracle is 32-Bit, refer here for Update Parameters:
-- No update parameter changes are required.
.

--> If Target Oracle is 64-Bit, refer here for Update Parameters:
-- No update parameter changes are required.
.
**********************************************************************
Renamed Parameters: [Update Oracle Database 11.2 init.ora or spfile]
**********************************************************************
-- No renamed parameters found. No changes are required.
.
**********************************************************************
Obsolete/Deprecated Parameters: [Update Oracle Database 11.2 init.ora or spfile]
**********************************************************************
--> background_dump_dest         11.1       DEPRECATED   replaced by  "diagnostic_dest"
--> user_dump_dest               11.1       DEPRECATED   replaced by  "diagnostic_dest"
.

**********************************************************************
Components: [The following database components will be upgraded or installed]
**********************************************************************
--> Oracle Catalog Views         [upgrade]  VALID
--> Oracle Packages and Types    [upgrade]  VALID
--> JServer JAVA Virtual Machine [upgrade]  VALID
--> Oracle XDK for Java          [upgrade]  VALID
--> Oracle Workspace Manager     [upgrade]  VALID
--> Oracle XML Database          [upgrade]  VALID
--> Oracle Java Packages         [upgrade]  VALID
--> Oracle interMedia            [upgrade]  VALID
--> Expression Filter            [upgrade]  VALID
--> Rule Manager                 [upgrade]  VALID
.
**********************************************************************
Miscellaneous Warnings
**********************************************************************
WARNING: --> Database is using a timezone file older than version 14.
.... After the release migration, it is recommended that DBMS_DST package
.... be used to upgrade the 10.2.0.5.0 database timezone version
.... to the latest version which comes with the new release.
WARNING: --> Your recycle bin is turned on and currently contains no objects.
.... Because it is REQUIRED that the recycle bin be empty prior to upgrading
.... and your recycle bin is turned on, you may need to execute the command:
        PURGE DBA_RECYCLEBIN
.... prior to executing your upgrade to confirm the recycle bin is empty.
.
**********************************************************************
Recommendations
**********************************************************************
Oracle recommends gathering dictionary statistics prior to
upgrading the database.
To gather dictionary statistics execute the following command
while connected as SYSDBA:

    EXECUTE dbms_stats.gather_dictionary_stats;

**********************************************************************
Oracle recommends reviewing any defined events prior to upgrading.

To view existing non-default events execute the following commands
while connected AS SYSDBA:
  Events:
    SELECT (translate(value,chr(13)||chr(10),' ')) FROM sys.v$parameter2
      WHERE  UPPER(name) ='EVENT' AND  isdefault='FALSE'

  Trace Events:
    SELECT (translate(value,chr(13)||chr(10),' ')) from sys.v$parameter2
      WHERE UPPER(name) = '_TRACE_EVENTS' AND isdefault='FALSE'

Changes will need to be made in the init.ora or spfile.

**********************************************************************
SQL> PURGE DBA_RECYCLEBIN;
SQL> EXECUTE dbms_stats.gather_dictionary_stats;
SQL>
根據utlu112i.sql反饋的結果,進行配置
SQL> create pfile='/home/oracle/initorcl.ora' from spfile;
[oracle@zhu ~]$ ls -rlt
total 220
-rw-r--r-- 1 oracle oinstall 213918 Aug  9 21:40 utlu112i.sql
-rw-r--r-- 1 oracle oinstall    931 Aug  9 21:47 initorcl.ora
[oracle@zhu ~]$ scp initorcl.ora oracle@192.168.186.88:/u01/app/base/product/11.2.0/db_1/dbs/
oracle@192.168.186.88's password:
initorcl.ora                                                                                                                      100%  931     0.9KB/s   00:00  
[oracle@bei dbs]$ ls -rtl
total 8
-rw-r-----. 1 oracle oinstall 1536 Aug  7 14:27 orapworcl
-rw-r--r--. 1 oracle oinstall  931 Aug  9 14:45 initorcl.ora
修改備庫初始化引數檔案
[oracle@bei dbs]$ more initorcl.ora
*.audit_file_dest='/u01/app/base/admin/node/adump'
*.diagnostic_dest='/u01/app/base'
*.compatible='10.2.0.5.0'
*.control_files='/oradata/standby/control01.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='node'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=nodeXDB)'
*.job_queue_processes=10
*.log_archive_dest_1='LOCATION=/oradata/archivelog'
*.log_archive_dest_state_1='ENABLE'
*.open_cursors=300
*.pga_aggregate_target=93323264
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=629145600
*.sga_target=629145600
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'

[oracle@zhu ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sun Aug 9 21:58:34 2015

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


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

SQL> alter system archive log current;

System altered.

SQL> alter database begin backup;

Database altered.

[oracle@zhu node]$ ls -rtl
total 1043044
-rw-r----- 1 oracle oinstall  52429312 Aug  9 21:32 redo03.log
-rw-r----- 1 oracle oinstall  20979712 Aug  9 21:45 temp01.dbf
-rw-r----- 1 oracle oinstall  52429312 Aug  9 21:59 redo01.log
-rw-r----- 1 oracle oinstall   5251072 Aug  9 21:59 users01.dbf
-rw-r----- 1 oracle oinstall 335552512 Aug  9 21:59 undotbs01.dbf
-rw-r----- 1 oracle oinstall 398467072 Aug  9 21:59 system01.dbf
-rw-r----- 1 oracle oinstall 146808832 Aug  9 21:59 sysaux01.dbf
-rw-r----- 1 oracle oinstall  52429312 Aug  9 21:59 redo02.log
-rw-r----- 1 oracle oinstall   7061504 Aug  9 22:00 control03.ctl
-rw-r----- 1 oracle oinstall   7061504 Aug  9 22:00 control02.ctl
-rw-r----- 1 oracle oinstall   7061504 Aug  9 22:00 control01.ctl
[oracle@zhu node]$ scp * oracle@192.168.186.88:/oradata/standby
oracle@192.168.186.88's password:
control01.ctl                                                                                                                     100% 6896KB   6.7MB/s   00:00    
control02.ctl                                                                                                                     100% 6896KB   6.7MB/s   00:00    
control03.ctl                                                                                                                     100% 6896KB   6.7MB/s   00:00    
redo01.log                                                                                                                        100%   50MB  16.7MB/s   00:03    
redo02.log                                                                                                                        100%   50MB  10.0MB/s   00:05    
redo03.log                                                                                                                        100%   50MB  10.0MB/s   00:05    
sysaux01.dbf                                                                                                                      100%  140MB  10.8MB/s   00:13    
system01.dbf                                                                                                                      100%  380MB  11.9MB/s   00:32    
temp01.dbf                                                                                                                        100%   20MB  20.0MB/s   00:01    
undotbs01.dbf                                                                                                                     100%  320MB  16.8MB/s   00:19    
users01.dbf                                                                                                                       100% 5128KB   5.0MB/s   00:01    

SQL> alter system archive log current;

System altered.

SQL> alter database end backup;

Database altered.

[oracle@zhu archivelog]$ ls -rtl
total 80316
-rw-r----- 1 oracle oinstall 27262464 Jul 30 00:23 1_31_886375689.dbf
-rw-r----- 1 oracle oinstall     1024 Jul 30 00:23 1_32_886375689.dbf
-rw-r----- 1 oracle oinstall     2048 Jul 30 00:23 1_33_886375689.dbf
-rw-r----- 1 oracle oinstall  6198272 Jul 31 20:15 1_34_886375689.dbf
-rw-r----- 1 oracle oinstall  9528832 Jul 31 23:00 1_22_886537215.dbf
-rw-r----- 1 oracle oinstall  1504768 Aug  7 21:20 1_23_886537215.dbf
-rw-r----- 1 oracle oinstall 20880384 Aug  7 22:55 1_24_886537215.dbf
-rw-r----- 1 oracle oinstall  1700864 Aug  7 23:28 1_25_886537215.dbf
-rw-r----- 1 oracle oinstall    34304 Aug  7 23:54 1_26_886537215.dbf
-rw-r----- 1 oracle oinstall    20480 Aug  7 23:55 1_27_886537215.dbf
-rw-r----- 1 oracle oinstall   827392 Aug  8 00:05 1_28_886537215.dbf
-rw-r----- 1 oracle oinstall    21504 Aug  8 00:08 1_29_886537215.dbf
-rw-r----- 1 oracle oinstall    26624 Aug  9 21:32 1_30_886537215.dbf
-rw-r----- 1 oracle oinstall 18986496 Aug  9 21:59 1_31_886537215.dbf
-rw-r----- 1 oracle oinstall  1298944 Aug  9 22:03 1_32_886537215.dbf
[oracle@zhu archivelog]$ scp * oracle@192.168.186.88:/archive/standby
oracle@192.168.186.88's password:
1_22_886537215.dbf                                                                                                                100% 9306KB   9.1MB/s   00:00    
1_23_886537215.dbf                                                                                                                100% 1470KB   1.4MB/s   00:00    
1_24_886537215.dbf                                                                                                                100%   20MB  19.9MB/s   00:01    
1_25_886537215.dbf                                                                                                                100% 1661KB   1.6MB/s   00:00    
1_26_886537215.dbf                                                                                                                100%   34KB  33.5KB/s   00:00    
1_27_886537215.dbf                                                                                                                100%   20KB  20.0KB/s   00:00    
1_28_886537215.dbf                                                                                                                100%  808KB 808.0KB/s   00:00    
1_29_886537215.dbf                                                                                                                100%   21KB  21.0KB/s   00:00    
1_30_886537215.dbf                                                                                                                100%   26KB  26.0KB/s   00:00    
1_31_886375689.dbf                                                                                                                100%   26MB  26.0MB/s   00:01    
1_31_886537215.dbf                                                                                                                100%   18MB  18.1MB/s   00:00    
1_32_886375689.dbf                                                                                                                100% 1024     1.0KB/s   00:00    
1_32_886537215.dbf                                                                                                                100% 1269KB   1.2MB/s   00:00    
1_33_886375689.dbf                                                                                                                100% 2048     2.0KB/s   00:00    
1_34_886375689.dbf                                                                                                                100% 6053KB   5.9MB/s   00:00    

[oracle@bei dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 9 15:09:34 2015

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

Connected to an idle instance.

SQL> create spfile from pfile;

File created.

SQL> startup mount;
ORACLE instance started.

Total System Global Area  626327552 bytes
Fixed Size                  2230952 bytes
Variable Size             184550744 bytes
Database Buffers          436207616 bytes
Redo Buffers                3338240 bytes
Database mounted.
SQL>
SQL> alter database rename file '/oradata/node/system01.dbf' to '/oradata/standby/system01.dbf';     

Database altered.

SQL> alter database rename file '/oradata/node/undotbs01.dbf' to '/oradata/standby/undotbs01.dbf';

Database altered.

SQL> alter database rename file '/oradata/node/sysaux01.dbf' to '/oradata/standby/sysaux01.dbf';

Database altered.

SQL> alter database rename file '/oradata/node/users01.dbf' to '/oradata/standby/users01.dbf';

Database altered.

SQL> alter database rename file '/oradata/node/redo01.log' to '/oradata/standby/redo01.log';

Database altered.

SQL> alter database rename file '/oradata/node/redo02.log' to '/oradata/standby/redo02.log';

Database altered.

SQL> alter database rename file '/oradata/node/redo03.log' to '/oradata/standby/redo03.log';

Database altered.

SQL> recover database;
Media recovery complete.
SQL> alter database open upgrade;

Database altered.
SQL> create temporary tablespace temp1 tempfile '/oradata/standby/temp1.dbf' size 10M;

Tablespace created.

SQL> alter database default temporary tablespace temp1;

Database altered.

SQL> drop tablespace temp including contents and datafiles cascade constraints;

Tablespace dropped.

SQL> create temporary tablespace temp tempfile '/oradata/standby/temp01.dbf' size 1G;

Tablespace created.

SQL>  alter database default temporary tablespace temp;

Database altered.

SQL> drop tablespace temp1 including contents and datafiles cascade constraints;

Tablespace dropped.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  626327552 bytes
Fixed Size                  2230952 bytes
Variable Size             184550744 bytes
Database Buffers          436207616 bytes
Redo Buffers                3338240 bytes
Database mounted.
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /oradata/archivelog
Oldest online log sequence     31
Next log sequence to archive   33
Current log sequence           33
SQL> alter database noarchivelog;

Database altered.

SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /oradata/archivelog
Oldest online log sequence     31
Current log sequence           33
SQL> alter database open upgrade;

Database altered.
如果在升級時啟用歸檔,則會產生大量歸檔日誌,建議在升級時禁用歸檔
SQL> @?/rdbms/admin/catupgrd.sql   #upgrade模式
[oracle@bei admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Sun Aug 9 21:01:49 2015

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> @?/rdbms/admin/catuppst.sql   #非upgrade模式

TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP POSTUP_BGN 2015-08-09 21:02:06


PL/SQL procedure successfully completed.


This script will migrate the Baseline data on a pre-11g database
to the 11g database.

Move BL Data "SYS"."WRH$_FILESTATXS" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SQLSTAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SYSTEM_EVENT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_WAITSTAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_LATCH" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_LATCH_CHILDREN" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_LATCH_PARENT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_LATCH_MISSES_SUMMARY" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_DB_CACHE_ADVICE" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_ROWCACHE_SUMMARY" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SGASTAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SYSSTAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_PARAMETER" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SEG_STAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_DLM_MISC" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SERVICE_STAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_TABLESPACE_STAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_OSSTAT" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SYS_TIME_MODEL" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_SERVICE_WAIT_CLASS" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_INST_CACHE_TRANSFER" (0 rows in 0 seconds)
Move BL Data "SYS"."WRH$_ACTIVE_SESSION_HISTORY" (0 rows in 0 seconds)
...                                       ...
... Completed Moving the Baseline Data    ...
...                                       ...
... If there are no Move BL Data messages ...
... above, then there are no renamed      ...
... baseline tables in the system.        ...
...                                       ...
Drop Renamed Baseline Table SYS."WRH$_FILESTATXS_BR"
Drop Renamed Baseline Table SYS."WRH$_SQLSTAT_BR"
Drop Renamed Baseline Table SYS."WRH$_SYSTEM_EVENT_BR"
Drop Renamed Baseline Table SYS."WRH$_WAITSTAT_BR"
Drop Renamed Baseline Table SYS."WRH$_LATCH_BR"
Drop Renamed Baseline Table SYS."WRH$_LATCH_CHILDREN_BR"
Drop Renamed Baseline Table SYS."WRH$_LATCH_PARENT_BR"
Drop Renamed Baseline Table SYS."WRH$_LATCH_MISSES_SUMMARY_BR"
Drop Renamed Baseline Table SYS."WRH$_DB_CACHE_ADVICE_BR"
Drop Renamed Baseline Table SYS."WRH$_ROWCACHE_SUMMARY_BR"
Drop Renamed Baseline Table SYS."WRH$_SGASTAT_BR"
Drop Renamed Baseline Table SYS."WRH$_SYSSTAT_BR"
Drop Renamed Baseline Table SYS."WRH$_PARAMETER_BR"
Drop Renamed Baseline Table SYS."WRH$_SEG_STAT_BR"
Drop Renamed Baseline Table SYS."WRH$_DLM_MISC_BR"
Drop Renamed Baseline Table SYS."WRH$_SERVICE_STAT_BR"
Drop Renamed Baseline Table SYS."WRH$_TABLESPACE_STAT_BR"
Drop Renamed Baseline Table SYS."WRH$_OSSTAT_BR"
Drop Renamed Baseline Table SYS."WRH$_SYS_TIME_MODEL_BR"
Drop Renamed Baseline Table SYS."WRH$_SERVICE_WAIT_CLASS_BR"
Drop Renamed Baseline Table SYS."WRH$_INST_CACHE_TRANSFER_BR"
Drop Renamed Baseline Table SYS."WRH$_ACTIVE_SESSION_HISTORY_BR"
...                                       ...
... Completed the Dropping of the         ...
... Renamed Baseline Tables               ...
...                                       ...
... If there are no Drop Table messages   ...
... above, then there are no renamed      ...
... baseline tables in the system.        ...
...                                       ...

PL/SQL procedure successfully completed.


5 rows created.


Commit complete.


Table created.


2 rows created.


1 row updated.


2 rows updated.


5 rows updated.


Table dropped.


Commit complete.


4 rows updated.


Commit complete.


4 rows updated.


Commit complete.


4 rows updated.


Commit complete.


4 rows created.


Commit complete.


10 rows created.


Commit complete.


PL/SQL procedure successfully completed.

TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP POSTUP_END 2015-08-09 21:02:11


PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.


PL/SQL procedure successfully completed.

Generating apply and rollback scripts...
Check the following file for errors:
/u01/app/base/cfgtoollogs/catbundle/catbundle_PSU_NODE_GENERATE_2015Aug09_21_02_18.log
Apply script: /u01/app/base/product/11.2.0/db_1/rdbms/admin/catbundle_PSU_NODE_APPLY.sql
Rollback script: /u01/app/base/product/11.2.0/db_1/rdbms/admin/catbundle_PSU_NODE_ROLLBACK.sql

PL/SQL procedure successfully completed.

Executing script file...

SQL> COLUMN spool_file NEW_VALUE spool_file NOPRINT
SQL> SELECT '/u01/app/base/cfgtoollogs/catbundle/' || 'catbundle_PSU_' || name || '_APPLY_' || TO_CHAR(SYSDATE, 'YYYYMonDD_hh24_mi_ss', 'NLS_DATE_LANGUAGE=''AMERICAN''') || '.log' AS spool_file FROM v$database;
SQL> SPOOL &spool_file
SQL> exec dbms_registry.set_session_namespace('SERVER')

PL/SQL procedure successfully completed.

SQL> ALTER SESSION SET current_schema = SYS;

Session altered.

SQL> PROMPT Updating registry...
Updating registry...
SQL> INSERT INTO registry$history
  2    (action_time, action,
  3     namespace, version, id,
  4     bundle_series, comments)
  5  VALUES
  6    (SYSTIMESTAMP, 'APPLY',
  7     SYS_CONTEXT('REGISTRY$CTX','NAMESPACE'),
  8     '11.2.0.3',
  9     0,
 10     'PSU',
 11     'Patchset 11.2.0.2.0');

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SPOOL off
SQL> SET echo off
Check the following log file for errors:
/u01/app/base/cfgtoollogs/catbundle/catbundle_PSU_NODE_APPLY_2015Aug09_21_02_20.log
SQL>
SQL> select count(*) from dba_objects where status='INVALID';

  COUNT(*)
----------
      4466
DOC>  Use the following queries to track recompilation progress:
DOC>  1. Query returning the number of invalid objects remaining. This
DOC>     number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE statusIN (4, 5, 6);
DOC>  2. Query returning the number of objects compiled so far. This number
DOC>     should increase with time.
DOC>         SELECT COUNT(*) FROMUTL_RECOMP_COMPILED;
SQL> select count(*) from dba_objects where status='INVALID';

  COUNT(*)
----------
      4466

SQL> @?/rdbms/admin/utlrp.sql

TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_BGN  2015-08-09 21:04:21

DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid
DOC>   objects in the database. Recompilation time is proportional to the
DOC>   number of invalid objects in the database, so this command may take
DOC>   a long time to execute on a database with a large number of invalid
DOC>   objects.
DOC>
DOC>   Use the following queries to track recompilation progress:
DOC>
DOC>   1. Query returning the number of invalid objects remaining. This
DOC>      number should decrease with time.
DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);
DOC>
DOC>   2. Query returning the number of objects compiled so far. This number
DOC>      should increase with time.
DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;
DOC>
DOC>   This script automatically chooses serial or parallel recompilation
DOC>   based on the number of CPUs available (parameter cpu_count) multiplied
DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).
DOC>   On RAC, this number is added across all RAC nodes.
DOC>
DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel
DOC>   recompilation. Jobs are created without instance affinity so that they
DOC>   can migrate across RAC nodes. Use the following queries to verify
DOC>   whether UTL_RECOMP jobs are being created and run correctly:
DOC>
DOC>   1. Query showing jobs created by UTL_RECOMP
DOC>         SELECT job_name FROM dba_scheduler_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>
DOC>   2. Query showing UTL_RECOMP jobs that are running
DOC>         SELECT job_name FROM dba_scheduler_running_jobs
DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';
DOC>#

PL/SQL procedure successfully completed.

TIMESTAMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COMP_TIMESTAMP UTLRP_END  2015-08-09 21:13:39

DOC> The following query reports the number of objects that have compiled
DOC> with errors (objects that compile with errors have status set to 3 in
DOC> obj$). If the number is higher than expected, please examine the error
DOC> messages reported with each object (using SHOW ERRORS) to see if they
DOC> point to system misconfiguration or resource constraints that must be
DOC> fixed before attempting to recompile these objects.
DOC>#

OBJECTS WITH ERRORS
-------------------
                  0

DOC> The following query reports the number of errors caught during
DOC> recompilation. If this number is non-zero, please query the error
DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors
DOC> are due to misconfiguration or resource constraints that must be
DOC> fixed before objects can compile successfully.
DOC>#

ERRORS DURING RECOMPILATION
---------------------------
                          0

Function created.

PL/SQL procedure successfully completed.

Function dropped.

PL/SQL procedure successfully completed.

SQL>
SQL> select count(*) from dba_objects where status='INVALID';

  COUNT(*)
----------
         0

SQL>
SQL> col COMP_NAME for a40
SQL> select comp_name,version, status from dba_registry;

COMP_NAME                                VERSION                        STATUS
---------------------------------------- ------------------------------ ----------------------
Oracle Multimedia                        11.2.0.3.0                     VALID
Oracle XML Database                      11.2.0.3.0                     VALID
Oracle Expression Filter                 11.2.0.3.0                     VALID
Oracle Rules Manager                     11.2.0.3.0                     VALID
Oracle Workspace Manager                 11.2.0.3.0                     VALID
Oracle Database Catalog Views            11.2.0.3.0                     VALID
Oracle Database Packages and Types       11.2.0.3.0                     VALID
JServer JAVA Virtual Machine             11.2.0.3.0                     VALID
Oracle XDK                               11.2.0.3.0                     VALID
Oracle Database Java Packages            11.2.0.3.0                     VALID

10 rows selected.

SQL>
SQL> select * from v$timezone_file;

FILENAME                VERSION
-------------------- ----------
timezlrg_4.dat                4

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup upgrade;  #uograde模式
ORACLE instance started.

Total System Global Area  626327552 bytes
Fixed Size                  2230952 bytes
Variable Size             184550744 bytes
Database Buffers          436207616 bytes
Redo Buffers                3338240 bytes
Database mounted.
Database opened.
SQL> set serveroutput on
SQL> purge dba_recyclebin;

DBA Recyclebin purged.

SQL> TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;

Table truncated.

SQL> TRUNCATE TABLE sys.dst$affected_tables;

Table truncated.

SQL> TRUNCATE TABLE sys.dst$error_table;

Table truncated.

SQL> alter session set "_with_subquery"=materialize;

Session altered.

SQL> EXEC DBMS_DST.BEGIN_UPGRADE(14);
An upgrade window has been successfully started.

PL/SQL procedure successfully completed.

SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
  2  FROM DATABASE_PROPERTIES
  3  WHERE PROPERTY_NAME LIKE 'DST_%'
  4  ORDER BY PROPERTY_NAME;

PROPERTY_NAME                  VALUE
------------------------------ ------------------------------------------------------------
DST_PRIMARY_TT_VERSION         14
DST_SECONDARY_TT_VERSION       4
DST_UPGRADE_STATE              UPGRADE

SQL> SELECT OWNER, TABLE_NAME, UPGRADE_IN_PROGRESS FROM ALL_TSTZ_TABLES where UPGRADE_IN_PROGRESS='YES';

no rows selected

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area  626327552 bytes
Fixed Size                  2230952 bytes
Variable Size             184550744 bytes
Database Buffers          436207616 bytes
Redo Buffers                3338240 bytes
Database mounted.
Database opened.
SQL> alter session set "_with_subquery"=materialize;

Session altered.

SQL> set serveroutput on
SQL> VAR numfail number
SQL> BEGIN
  2  DBMS_DST.UPGRADE_DATABASE(:numfail,
  3  parallel => TRUE,
  4  log_errors => TRUE,
  5  log_errors_table => 'SYS.DST$ERROR_TABLE',
  6  log_triggers_table => 'SYS.DST$TRIGGER_TABLE',
  7  error_on_overlap_time => FALSE,
  8  error_on_nonexisting_time => FALSE);
  9  DBMS_OUTPUT.PUT_LINE('Failures:'|| :numfail);
 10  END;
 11  /
Failures:0

PL/SQL procedure successfully completed.

SQL> VAR fail number
SQL> BEGIN
  2  DBMS_DST.END_UPGRADE(:fail);
  3  DBMS_OUTPUT.PUT_LINE('Failures:'|| :fail);
  4  END;
  5  /
An upgrade window has been successfully ended.
Failures:0

PL/SQL procedure successfully completed.

SQL> SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value
  2  FROM DATABASE_PROPERTIES
  3  WHERE PROPERTY_NAME LIKE 'DST_%'
  4  ORDER BY PROPERTY_NAME;

PROPERTY_NAME                  VALUE
------------------------------ ------------------------------------------------------------
DST_PRIMARY_TT_VERSION         14
DST_SECONDARY_TT_VERSION       0
DST_UPGRADE_STATE              NONE

SQL> SELECT * FROM v$timezone_file;

FILENAME                VERSION
-------------------- ----------
timezlrg_14.dat              14

SQL>
SQL> @?/rdbms/admin/utlu112s.sql
.
Oracle Database 11.2 Post-Upgrade Status Tool           08-09-2015 21:50:23
.
Component                               Current      Version     Elapsed Time
Name                                    Status       Number      HH:MM:SS
.
Oracle Server
.                                         VALID      11.2.0.3.0  00:10:40
JServer JAVA Virtual Machine
.                                         VALID      11.2.0.3.0  00:07:06
Oracle Workspace Manager
.                                         VALID      11.2.0.3.0  00:00:35
Oracle XDK
.                                         VALID      11.2.0.3.0  00:01:19
Oracle XML Database
.                                         VALID      11.2.0.3.0  00:04:27
Oracle Database Java Packages
.                                         VALID      11.2.0.3.0  00:00:22
Oracle Multimedia
.                                         VALID      11.2.0.3.0  00:07:03
Oracle Expression Filter
.                                         VALID      11.2.0.3.0  00:00:11
Oracle Rules Manager
.                                         VALID      11.2.0.3.0  00:00:10
Gathering Statistics
.                                                                00:01:42
Total Upgrade Time: 00:33:42

PL/SQL procedure successfully completed.

SQL>
注意:
將10g Restore到11g的2個關鍵點:
1. 必須在10g庫上先執行@?/rdbms/admin/utlu112i.sql指令碼,然後在遷移,否則Restore之後的升級catupgrd.sql報如下錯誤:
SELECT TO_NUMBER('MUST_HAVE_RUN_PRE-UPGRADE_TOOL_FOR_TIMEZONE')
                *
ERROR at line 1:
ORA-01722: invalid number
2. 10g的版本必須大於10.2.0.2

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30310891/viewspace-1766493/,如需轉載,請註明出處,否則將追究法律責任。

相關文章