注意, 如果是64bit备库的建立时源于32bit主库(反过来也一样), 在启动备库或开启sql apply的时候会遇到"ORA-06553: PLS-801: internal error [56319]"错误, 这就要求在开启sql apply前先重新编译64bit的plsql模块, 按照如下步骤操作:
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> ?/rdbms/admin/utlirp.sql;
SQL> shutdown immediate;
SQL> startup;
SQL> ?/rdbms/admin/utlrp.sql;
然后启动sql apply:
SQL> alter database start logical standby apply;
其中utlirp.sql文件内容如下:
Rem Copyright (c) 1998, 2003, Oracle Corporation. All rights reserved.
Rem
Rem NAME
Rem utlirp.sql - UTiLity script to Invalidate Pl/sql modules
Rem
Rem DESCRIPTION
Rem This script can be used to invalidate and all pl/sql modules
Rem (procedures, functions, packages, types, triggers, views)
Rem in a database.
Rem
Rem This script must be run when it is necessary to regenerate the
Rem compiled code because the PL/SQL code format is inconsistent with
Rem the Oracle executable (e.g., when migrating a 32 bit database to
Rem a 64 bit database or vice-versa).
Rem
Rem Please note that this script does not recompile invalid objects
Rem automatically. You must restart the database and explicitly invoke
Rem utlrp.sql to recompile invalid objects.
Rem
Rem USAGE
Rem To use this script, execute the following sequence of actions:
Rem 1. Shut down the database and restart in UPGRADE mode
Rem (using STARTUP UPGRADE or ALTER DATABASE OPEN UPGRADE)
Rem 2. Run this script
Rem 3. Shut down the database and restart in normal mode
Rem 4. Run utlrp.sql to recompile invalid objects. This script does
Rem not automatically recompile invalid objects.
Rem
Rem NOTES
Rem * This script must be run using SQL*PLUS.
Rem * You must be connected AS SYSDBA to run this script.
Rem * This script expects the following files to be available in the
Rem current directory:
Rem standard.sql
Rem dbmsstdx.sql
Rem * There should be no other DDL on the database while running the
Rem script. Not following this recommendation may lead to deadlocks.
Rem
Rem MODIFIED (MM/DD/YY)
Rem gviswana 12/08/03 - 33002294: Use UPGRADE mode
Rem gviswana 08/08/03 - Re-enable functional indexes
Rem gviswana 04/16/03 - Move system parameter handling to utlirp.sql
Rem rdecker 01/17/02 - Remove comment re: alter library compile support
Rem jdavison 04/11/00 - Modify usage notes for 8.2 changes.
Rem ncramesh 08/04/98 - change for sqlplus
Rem usundara 06/03/98 - merge from 8.0.5:
Rem * change name utlrpls.sql --> utlirp.sql;
Rem * split out utlip.sql and utlrp.sql and call them
Rem kmuthukk 04/07/98 - merge from 8.0.5
Rem kmuthukk 03/09/98 - script to recompile pl/sql modules
Rem kmuthukk 03/09/98 - Created
Rem
Rem === (old history; merged from cat8004s.sql) ===
Rem MODIFIED (MM/DD/YY)
Rem gviswana 02/25/98 - 632376: Do not remove idl_ rows for libraries
Rem kmuthukk 02/05/98 - bug621356 (truncate idl tables)
Rem kmuthukk 01/09/98 - merge from kmuthukk_plsql_32_64_upgrade
Rem mramache 12/30/97 - code to revalidate PL/SQL objs.
Rem kmuthukk 12/30/97 - migration script from 8.0.4 to 8.0.4S
Rem kmuthukk 12/30/97 - Created
Rem === (end of old history) ===
Rem
...
--END--