您好,欢迎来到网暖!

当前位置:网暖 » 站长资讯 » 建站基础 » 网络技术 » 文章详细 订阅RssFeed

RMAN同字节序跨平台跨版本迁移数据库(一)

来源:网络整理 浏览:323次 时间:2022-01-25

跨平台传输数据库
RMAN的convert database命令被用来将整个数据库从一个平台移动到另一个平台。当源平台与目标平台字节序相同时,RMAN会在目标平台自动完成创建新数据库的大部分操作。当跨平台传输数据库时convertdatabase命令的处理过程将会很长。与传输表空间一样,RMAN的convert database命令可以在源平台或目标平台执行。

当跨平台传输数据库时文件会自动被传输到目标平台,这些文件包括:
1.属于永久表空间的数据文件,注意,不管源平台与目标平吧的字节序是否相同,传输数据库的数据文件必须要进行转换不能简单的从一个平台复制到另一个平台。与跨平台传输表空间不一样,传输整个数据库要求特定类型的数据块,比如undo段,要被重新格式化确保与目标平台兼容

2.如果使用PFILE,PFILE文件会被传输。如果使用SPFILE,会基于SPFILE生成PFILE并将其传输,并在目标平基于PFILE来生成新的SPFILE。注意,在大多数情况下,PFILE文件中的有些参数对于新数据库需要手动修改。例如db_name,control_files

跨平台传输数据库的限制
跨平台传输数据库的主要限制是源平台与目标平台必须有相同的字节序。例如,当将数据库从Windows平台传输到Linux平台(都是小字节序)或者从HP-UX到AIX(都是大字节序),不能将整个数据库从HP-UX传输到Linux平台上。然而,可以在目标平台上创建一个新数据库,并使用表空间传输功能将需要的表空间从源数据库中使用跨平台与跨字节序传输到目标数据库中。

在源平台执行转换
将32位windows平台上的数据库jingyong(10.2.0.1)迁移到32位的Linux平台上(10.2.0.5)。在源平台上执行RMAN的convert database操作的步骤如下:
1.将源数据库以只读模式打开

C:\Users\Administrator>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 31 15:08:36 2015Copyright (c) 1982, 2005, Oracle.  All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mountORACLE 例程已经启动。Total System Global Area  419430400 bytesFixed Size                  1249320 bytesVariable Size             125833176 bytesDatabase Buffers          285212672 bytesRedo Buffers                7135232 bytes数据库装载完毕。SQL> alter database open read only;数据库已更改。

 

2.对源数据库执行dbms_tdb.check_db检查

SQL> set serveroutput onSQL> declare  2   db_ready boolean;  3  begin  4   db_ready :=dbms_tdb.check_db('Linux IA (32-bit)',dbms_tdb.skip_readonly);  5  end;  6  /PL/SQL procedure successfully completed

 

3.对源数据库执行dbms_tdb.check_external来识别外部对象

SQL> set serveroutput on;SQL> declare  2    external boolean;  3  begin  4    external:=dbms_tdb.check_external;  5  end;  6  /The following external tables exist in the database:SH.SALES_TRANSACTIONS_EXTThe following directories exist in the database:SYS.TEST_DUMP, SYS.SUBDIR, SYS.XMLDIR, SYS.MEDIA_DIR, SYS.LOG_FILE_DIR, SYS.DATA_FILE_DIR, SYS.WORK_DIR, SYS.ADMIN_DIR, SYS.DATA_PUMP_DIRThe following BFILEs exist in the database:PM.PRINT_MEDIAPL/SQL procedure successfully completed

 

4.执行convert database命令,指定目标平台和输出文件名称。RMAN会生成需要移动到目标平台上的文件,包含以下文件:
--数据库完整的数据文件副本
--在目标平台使用的新的PFILE参数文件,包含来自源数据库PFILE或SPFILE中的设置。在目标平台使用之前需要进行相应修改
--传输脚本,包含在目标平台创建新数据库的SQL语句

RMAN> convert database new database 'jingyong'2> transport script 'E:\oradata\transport\transport_db_script.sql'3> to platform 'Linux IA (32-bit)'4> db_file_name_convert('E:\oradata\JINGYONG\DATAFILE', 'E:\oradata\transport','E:\oradata\JINGYONG', 'E:\oradata\transport');启动 convert 于 31-3月 -15使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=152 devtype=DISK在数据库中找到外部表 SH.SALES_TRANSACTIONS_EXT在数据库中找到目录 SYS.TEST_DUMP在数据库中找到目录 SYS.SUBDIR在数据库中找到目录 SYS.XMLDIR在数据库中找到目录 SYS.MEDIA_DIR在数据库中找到目录 SYS.LOG_FILE_DIR在数据库中找到目录 SYS.DATA_FILE_DIR在数据库中找到目录 SYS.WORK_DIR在数据库中找到目录 SYS.ADMIN_DIR在数据库中找到目录 SYS.DATA_PUMP_DIR在数据库中找到 BFILE PM.PRINT_MEDIA在口令文件中找到用户 SYS (具有 SYSDBA and SYSOPER 权限)通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00001 name=E:\ORADATA\JINGYONG\DATAFILE\O1_MF_SYSTEM_BKLLOT8Z_.DBF已转换的数据文件 = E:\ORADATA\TRANSPORT\O1_MF_SYSTEM_BKLLOT8Z_.DBF通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:25通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00003 name=E:\ORADATA\JINGYONG\DATAFILE\O1_MF_SYSAUX_BKLLOTFL_.DBF已转换的数据文件 = E:\ORADATA\TRANSPORT\O1_MF_SYSAUX_BKLLOTFL_.DBF通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:16通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00005 name=E:\ORADATA\JINGYONG\DATAFILE\O1_MF_EXAMPLE_BKLLRKG2_.DBF已转换的数据文件 = E:\ORADATA\TRANSPORT\O1_MF_EXAMPLE_BKLLRKG2_.DBF通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:07通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00006 name=E:\ORADATA\JINGYONG\TSPITR01.DBF已转换的数据文件 = E:\ORADATA\TRANSPORT\TSPITR01.DBF通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:03通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00007 name=E:\ORADATA\JINGYONG\TEST01.DBF已转换的数据文件 = E:\ORADATA\TRANSPORT\TEST01.DBF通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:03通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00002 name=E:\ORADATA\JINGYONG\DATAFILE\O1_MF_UNDOTBS1_BKLLOTM0_.DBF已转换的数据文件 = E:\ORADATA\TRANSPORT\O1_MF_UNDOTBS1_BKLLOTM0_.DBF通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:03通道 ORA_DISK_1: 启动数据文件转换输入数据文件 fno=00004 name=E:\ORADATA\JINGYONG\DATAFILE\O1_MF_USERS_BKLLOTM6_.DBF已转换的数据文件 = E:\ORADATA\TRANSPORT\O1_MF_USERS_BKLLOTM6_.DBF通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01在目标平台上运行 SQL 脚本 E:\ORADATA\TRANSPORT\TRANSPORT_DB_SCRIPT.SQL 以创建数据库编辑 init.ora 文件 D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INIT_00Q37GUS_1_0.ORA。此 PFILE 将用于在目标平台上创建数据库据要重新编译所有 PL/SQL 模块, 请在目标平台上运行 utlirp.sql 和 utlrp.sql要更改内部数据库标识符, 请使用 DBNEWID 实用程序完成 backup 于 31-3月 -15

 

5.将转换操作生成的所有文件传输到目标主机上存储数据库文件的目录中当convert database执行完成后,源数据库可以以读写模式打开,生成的所有文件都要被传输到目标主机上。

ftp> put INIT_00Q37GUS_1_0.ORA200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 1415 字节,用时 0.00秒 1415.00千字节/秒。ftp> put O1_MF_EXAMPLE_BKLLRKG2_.DBF200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 104865792 字节,用时 8.57秒 12233.53千字节/秒。ftp> put O1_MF_SYSTEM_BKLLOT8Z_.DBF200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 503324672 字节,用时 49.54秒 10160.38千字节/秒。ftp> put TSPITR01.DBF200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 52436992 字节,用时 4.46秒 11762.45千字节/秒。ftp> put TEST01.DBF200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 52436992 字节,用时 3.48秒 15050.80千字节/秒。ftp> put O1_MF_UNDOTBS1_BKLLOTM0_.DBF200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 31465472 字节,用时 2.05秒 15341.53千字节/秒。ftp> put O1_MF_USERS_BKLLOTM6_.DBF200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 5251072 字节,用时 0.20秒 26520.57千字节/秒。ftp> put TRANSPORT_DB_SCRIPT.SQL200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 2582 字节,用时 0.00秒 2582000.00千字节/秒。ftp> put O1_MF_SYSAUX_BKLLOTFL_.DBF200 PORT command successful. Consider using PASV.150 Ok to send data.226 File receive OK.ftp: 发送 251666432 字节,用时 19.63秒 12817.89千字节/秒。[oracle@oracle11g jingyong]$ ls -lrttotal 978976-rwxrwxrwx 1 oracle oinstall      1415 Mar 31 16:18 INIT_00Q37GUS_1_0.ORA-rwxrwxrwx 1 oracle oinstall 104865792 Mar 31 16:18 O1_MF_EXAMPLE_BKLLRKG2_.DBF-rwxrwxrwx 1 oracle oinstall 503324672 Mar 31 16:20 O1_MF_SYSTEM_BKLLOT8Z_.DBF-rwxrwxrwx 1 oracle oinstall  52436992 Mar 31 16:21 TSPITR01.DBF-rwxrwxrwx 1 oracle oinstall  52436992 Mar 31 16:21 TEST01.DBF-rwxrwxrwx 1 oracle oinstall  31465472 Mar 31 16:22 O1_MF_UNDOTBS1_BKLLOTM0_.DBF-rwxrwxrwx 1 oracle oinstall   5251072 Mar 31 16:22 O1_MF_USERS_BKLLOTM6_.DBF-rwxrwxrwx 1 oracle oinstall      2582 Mar 31 16:23 TRANSPORT_DB_SCRIPT.SQL-rwxrwxrwx 1 oracle oinstall 251666432 Mar 31 16:24 O1_MF_SYSAUX_BKLLOTFL_.DBF

 

6.在目标主机上创建数据库需要的目录,并修改PFILE参数文件中的相关参数,并修改传输脚本中指示数据文件的位置。

创建相关目录

[oracle@oracle11g dbs]$ mkdir -p /u01/app/oracle/admin/jingyong/adump[oracle@oracle11g dbs]$ mkdir -p /u01/app/oracle/admin/jingyong/bdump[oracle@oracle11g dbs]$ mkdir -p /u01/app/oracle/admin/jingyong/cdump[oracle@oracle11g dbs]$ mkdir -p /u01/app/oracle/admin/jingyong/udump[oracle@oracle11g dbs]$ chmod -R 777 /u01/app/oracle/admin/jingyong*

 

修改PFILE参数文件

[oracle@oracle11g jingyong]$ vi initjingyong.ora# Please change the values of the following parameters:  audit_file_dest          = '/u01/app/oracle/admin/jingyong/adump'  background_dump_dest     = '/u01/app/oracle/admin/jingyong/bdump'  user_dump_dest           = '/u01/app/oracle/admin/jingyong/udump'  core_dump_dest           = '/u01/app/oracle/admin/jingyong/udump'  db_name                  = "JINGYONG"  control_files='/u01/app/oracle/oradata/test/control01.ctl'# Please review the values of the following parameters:  dispatchers              = "(PROTOCOL=TCP) (SERVICE=jingyongXDB)"# The values of the following parameters are from source database:  processes                = 150  nls_language             = "SIMPLIFIED CHINESE"  nls_territory            = "CHINA"  sga_target               = 130M  db_block_size            = 8192  compatible               = "10.2.0.1.0"  db_file_multiblock_read_count= 16  undo_management          = "AUTO"  undo_tablespace          = "UNDOTBS1"  job_queue_processes      = 10  open_cursors             = 300  pga_aggregate_target     = 32M

 

修改convert database命令生成的传输脚本

[oracle@oracle11g jingyong]$ vi TRANSPORT_DB_SCRIPT.SQL-- The contents of online logs will be lost and all backups will-- be invalidated. Use this only if online logs are damaged.-- After mounting the created controlfile, the following SQL-- statement will place the database in the appropriate-- protection mode:--  ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCESTARTUP NOMOUNT PFILE='/u01/app/oracle/10.2.0/db/dbs/initjingyong.ora'-- Create SPFILECREATE SPFILE FROM PFILE = '/u01/app/oracle/10.2.0/db/dbs/initjingyong.ora';STARTUP FORCE NOMOUNTCREATE CONTROLFILE REUSE SET DATABASE "JINGYONG" RESETLOGS  NOARCHIVELOG    MAXLOGFILES 16    MAXLOGMEMBERS 3    MAXDATAFILES 100    MAXINSTANCES 8    MAXLOGHISTORY 292LOGFILE  GROUP 1 '/u02/jingyong/redo01.log' SIZE 50M,  GROUP 2 '/u02/jingyong/redo02.log' SIZE 50M,  GROUP 3 '/u02/jingyong/redo03.log' SIZE 50MDATAFILE  '/u02/jingyong/O1_MF_SYSTEM_BKLLOT8Z_.DBF',  '/u02/jingyong/O1_MF_UNDOTBS1_BKLLOTM0_.DBF',  '/u02/jingyong/O1_MF_SYSAUX_BKLLOTFL_.DBF',  '/u02/jingyong/O1_MF_USERS_BKLLOTM6_.DBF',  '/u02/jingyong/O1_MF_EXAMPLE_BKLLRKG2_.DBF',  '/u02/jingyong/TSPITR01.DBF',  '/u02/jingyong/TEST01.DBF'CHARACTER SET ZHS16GBK;-- Database can now be opened zeroing the online logs.ALTER DATABASE OPEN RESETLOGS;-- Commands to add tempfiles to temporary tablespaces.-- Online tempfiles have complete space information.-- Other tempfiles may require adjustment.ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/jingyong/temp01.dbf'     SIZE 50M  AUTOEXTEND OFF;-- End of tempfile additions.--set echo offprompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~prompt * Your database has been created successfully!prompt * There are many things to think about for the new database. Hereprompt * is a checklist to help you stay on track:prompt * 1. You may want to redefine the location of the directory objects.prompt * 2. You may want to change the internal database identifier (DBID)prompt *    or the global database name for this database. Use theprompt *    NEWDBID Utility (nid).prompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~SHUTDOWN IMMEDIATESTARTUP UPGRADE@@ ?/rdbms/admin/utlirp.sqlSHUTDOWN IMMEDIATESTARTUP-- The following step will recompile all PL/SQL modules.-- It may take serveral hours to complete.@@ ?/rdbms/admin/utlrp.sql

 

7.使用SQL*Plus来执行传输脚本中的内容在目标主机上创建新的数据库

[oracle@oracle11g jingyong]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on Tue Mar 31 18:11:36 2015Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.Connected to an idle instance.SQL> STARTUP NOMOUNT PFILE='/u01/app/oracle/10.2.0/db/dbs/initjingyong.ora'ORACLE instance started.Total System Global Area  138412032 bytesFixed Size                  1272432 bytesVariable Size              62915984 bytesDatabase Buffers           71303168 bytesRedo Buffers                2920448 bytesSQL> CREATE CONTROLFILE REUSE SET DATABASE "JINGYONG" RESETLOGS  NOARCHIVELOG  2      MAXLOGFILES 16  3      MAXLOGMEMBERS 3  4      MAXDATAFILES 100  5      MAXINSTANCES 8  6      MAXLOGHISTORY 292  7  LOGFILE  8    GROUP 1 '/u02/jingyong/redo01.log' SIZE 50M,  9    GROUP 2 '/u02/jingyong/redo02.log' SIZE 50M, 10    GROUP 3 '/u02/jingyong/redo03.log' SIZE 50M 11  DATAFILE 12    '/u02/jingyong/O1_MF_SYSTEM_BKLLOT8Z_.DBF', 13    '/u02/jingyong/O1_MF_UNDOTBS1_BKLLOTM0_.DBF', 14    '/u02/jingyong/O1_MF_SYSAUX_BKLLOTFL_.DBF', 15    '/u02/jingyong/O1_MF_USERS_BKLLOTM6_.DBF', 16    '/u02/jingyong/O1_MF_EXAMPLE_BKLLRKG2_.DBF', 17    '/u02/jingyong/TSPITR01.DBF', 18    '/u02/jingyong/TEST01.DBF' 19  CHARACTER SET ZHS16GBK 20  ;Control file created.SQL> ALTER DATABASE OPEN RESETLOGS;ALTER DATABASE OPEN RESETLOGS*ERROR at line 1:ORA-01092: ORACLE instance terminated. Disconnection forced

 

在以open resetlogs方式打开数据库是出错了,alert.log中的错误信息如下所示:

Errors in file /u01/app/oracle/admin/jingyong/udump/jingyong_ora_5406.trc:ORA-00704: bootstrap process failureORA-39700: database must be opened with UPGRADE optionError 704 happened during db open, shutting down databaseUSER: terminating instance due to error 704Instance terminated by USER, pid = 5406ORA-1092 signalled during: alter database open...

 

错误信息指示需要以升级模式来启动数据库,因为迁移过来的源数据库的版本是10.2.0.1,而目标主机上的数据库版本是10.2.0.5。

以升级模式启动数据库

[oracle@oracle11g jingyong]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on Tue Mar 31 18:11:36 2015Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.Connected to an idle instance.SQL> startup upgrade;ORACLE instance started.Total System Global Area  138412032 bytesFixed Size                  1272432 bytesVariable Size              62915984 bytesDatabase Buffers           71303168 bytesRedo Buffers                2920448 bytesDatabase mounted.ORA-01113: file 1 needs media recovery if it was restored from backup, or ENDBACKUP if it was notORA-01110: data file 1: '/u02/jingyong/O1_MF_SYSTEM_BKLLOT8Z_.DBF'

 

执行恢复并关闭数据库

SQL> recover database;Media recovery complete.SQL> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.

 

再次以升级模式启动数据库

SQL> startup upgrade;ORACLE instance started.Total System Global Area  138412032 bytesFixed Size                  1272432 bytesVariable Size              62915984 bytesDatabase Buffers           71303168 bytesRedo Buffers                2920448 bytesDatabase mounted.Database opened.

 

创建临时表空间

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/u02/jingyong/temp01.dbf'  2       SIZE 50M  AUTOEXTEND OFF;

 

SQL>@$ORACLE_HOME//rdbms/admin/utlirp.sql省略...SQL>SQL> Rem Continue even if there are SQL errorsSQL> WHENEVER SQLERROR CONTINUE;SQL>SQL> Rem ===========================================================================SQL> Rem END utlip.sqlSQL> Rem ===========================================================================SQL>SQL> DOCDOC>#######################################################################DOC>#######################################################################DOC>   utlirp.sql completed successfully. All PL/SQL objects in theDOC>   database have been invalidated.DOC>DOC>   Shut down and restart the database in normal mode and run utlrp.sql toDOC>   recompile invalid objects.DOC>#######################################################################DOC>#######################################################################DOC>#

 

上面的输出信息说在以正常模式重启数据库后执行utlrp.sql脚本来编译无效对象。由于这里源数据库是10.2.0.1,而目标主机数据库的版本是10.2.0.5,在重启数据库仍然需要以升级模式来启动并执行utlrp.sql脚本

SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup upgradeORACLE instance started.Total System Global Area  138412032 bytesFixed Size                  1272432 bytesVariable Size              62915984 bytesDatabase Buffers           71303168 bytesRedo Buffers                2920448 bytesDatabase mounted.Database opened.SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sqlSQL> Rem ===========================================================================SQL> Rem BEGIN utlrp.sqlSQL> Rem ===========================================================================省略...PL/SQL procedure successfully completed.SQL> SET serveroutput offSQL>SQL>SQL> Rem ===========================================================================SQL> Rem END utlrp.sqlSQL> Rem ===========================================================================

 

执行和数据库升级相关的脚本catupgrade.sql

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql省略...COMP_TIMESTAMP UPGRD_END  2015-03-31 20:42:53.Oracle Database 10.2 Upgrade Status Utility           03-31-2015 20:42:54.Component                                Status         Version  HH:MM:SSOracle Database Server                    VALID      10.2.0.5.0  00:18:20JServer JAVA Virtual Machine              VALID      10.2.0.5.0  00:05:21Oracle XDK                                VALID      10.2.0.5.0  00:00:49Oracle Database Java Packages             VALID      10.2.0.5.0  00:00:37Oracle Text                               VALID      10.2.0.5.0  00:01:02Oracle XML Database                       VALID      10.2.0.5.0  00:02:47Oracle Workspace Manager                  VALID      10.2.0.5.0  00:01:39Oracle Data Mining                        VALID      10.2.0.5.0  00:00:39OLAP Analytic Workspace                   VALID      10.2.0.5.0  00:00:52OLAP Catalog                              VALID      10.2.0.5.0  00:01:24Oracle OLAP API                           VALID      10.2.0.5.0  00:01:08Oracle interMedia                         VALID      10.2.0.5.0  00:05:22Spatial                                   VALID      10.2.0.5.0  00:07:20Oracle Expression Filter                  VALID      10.2.0.5.0  00:00:26Oracle Enterprise Manager                 VALID      10.2.0.5.0  00:02:56Oracle Rule Manager                       VALID      10.2.0.5.0  00:00:27.Total Upgrade Time: 00:53:45DOC>#######################################################################DOC>#######################################################################DOC>DOC>   The above PL/SQL lists the SERVER components in the upgradedDOC>   database, along with their current version and status.DOC>DOC>   Please review the status and version columns and look forDOC>   any errors in the spool log file.  If there are errors in the spoolDOC>   file, or any components are not VALID or not the current version,DOC>   consult the Oracle Database Upgrade Guide for troubleshootingDOC>   recommendations.DOC>DOC>   Next shutdown immediate, restart for normal operation, and thenDOC>   run utlrp.sql to recompile any invalid application objects.DOC>DOC>#######################################################################DOC>#######################################################################

 

再次运行utlrp.sql脚本来进行编译无效对象

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sqlTIMESTAMP--------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_BGN  2015-03-31 20:50:46DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalidDOC>   objects in the database. Recompilation time is proportional to theDOC>   number of invalid objects in the database, so this command may takeDOC>   a long time to execute on a database with a large number of invalidDOC>   objects.DOC>DOC>   Use the following queries to track recompilation progress:DOC>DOC>   1. Query returning the number of invalid objects remaining. ThisDOC>      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 numberDOC>      should increase with time.DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;DOC>DOC>   This script automatically chooses serial or parallel recompilationDOC>   based on the number of CPUs available (parameter cpu_count) multipliedDOC>   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 parallelDOC>   recompilation. Jobs are created without instance affinity so that theyDOC>   can migrate across RAC nodes. Use the following queries to verifyDOC>   whether UTL_RECOMP jobs are being created and run correctly:DOC>DOC>   1. Query showing jobs created by UTL_RECOMPDOC>         SELECT job_name FROM dba_scheduler_jobsDOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';DOC>DOC>   2. Query showing UTL_RECOMP jobs that are runningDOC>         SELECT job_name FROM dba_scheduler_running_jobsDOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';DOC>#TIMESTAMP--------------------------------------------------------------------------------COMP_TIMESTAMP UTLRP_END  2015-03-31 20:53:25DOC> The following query reports the number of objects that have compiledDOC> with errors (objects that compile with errors have status set to 3 inDOC> obj$). If the number is higher than expected, please examine the errorDOC> messages reported with each object (using SHOW ERRORS) to see if theyDOC> point to system misconfiguration or resource constraints that must beDOC> fixed before attempting to recompile these objects.DOC>#OBJECTS WITH ERRORS-------------------                 53DOC> The following query reports the number of errors caught duringDOC> recompilation. If this number is non-zero, please query the errorDOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errorsDOC> are due to misconfiguration or resource constraints that must beDOC> fixed before objects can compile successfully.DOC>#ERRORS DURING RECOMPILATION---------------------------                          0

    

推荐站点

  • 腾讯腾讯

    腾讯网(www.QQ.com)是中国浏览量最大的中文门户网站,是腾讯公司推出的集新闻信息、互动社区、娱乐产品和基础服务为一体的大型综合门户网站。腾讯网服务于全球华人用户,致力成为最具传播力和互动性,权威、主流、时尚的互联网媒体平台。通过强大的实时新闻和全面深入的信息资讯服务,为中国数以亿计的互联网用户提供富有创意的网上新生活。

    www.qq.com
  • 搜狐搜狐

    搜狐网是全球最大的中文门户网站,为用户提供24小时不间断的最新资讯,及搜索、邮件等网络服务。内容包括全球热点事件、突发新闻、时事评论、热播影视剧、体育赛事、行业动态、生活服务信息,以及论坛、博客、微博、我的搜狐等互动空间。

    www.sohu.com
  • 网易网易

    网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。

    www.163.com
  • 新浪新浪

    新浪网为全球用户24小时提供全面及时的中文资讯,内容覆盖国内外突发新闻事件、体坛赛事、娱乐时尚、产业资讯、实用信息等,设有新闻、体育、娱乐、财经、科技、房产、汽车等30多个内容频道,同时开设博客、视频、论坛等自由互动交流空间。

    www.sina.com.cn
  • 百度一下百度一下

    百度一下,你就知道

    www.baidu.com