2011-11-14

_ksmg_granule_size

'startup migrate' failed with ORA-64 while upgrading to 10.2.0.2 with DBUA [ID 386855.1]


Applies to:

Oracle Server - Enterprise Edition - Version: 10.2.0.2
This problem can occur on any platform.

Symptoms

Customer is trying to upgrade to 10.2.0.2 from 9.2.0.7 using DBUA.

When attempting to start upgrade using DBUA,
the following error occurs.
This error could be seen through 10.2.0.2 SQLPLUS.

SQL> startup upgrade

ORA-00064: object is too large to allocate on this O/S (1,7614720)



Changes

Startup database with 9.2.0.7 parameter file to upgrade database to 10.2.0.2 using DBUA.



Cause

1. High value of oracle parameter PROCESSES

 The oracle parameter PROCESSES bigger than 1500 requests the allocation of big granule size.

2.  Low value of granule size.

The oracle hidden parameter "_ksmg_granule_size" is set based on the oracle sga size.

  -  sga_max_size <= 1024M then _ksmg_granule_size = 4M
  - sga_max_size > 1024M then _ksmg_granule_size = 16M

If you set a parameter that exceeds the value of the granule size that was
calculated based on the size of the sga.

You will manually have to set the parameter _ksmg_granule_size.

  - default _ksmg_granule_size is 4M

Low value of _ksmg_granule_size can prohibit the database startup.


3. The ORA-64 error could be occured even though the big "_ksmg_granule_size" was configured in
init<SID>.ora file.

   DBUA in 10.2.x strips out  the oracle hidden parameter while opening oracle database.

Solution

< Solution 1 >

reduce the oracle parameter "PROCESSES" as described in Note 310838.1

# open oracle parameter file with editor and put following line
  PROCESSES <= 1500

< Solution 2 >

Increase Oracle hidden parameter value of  "_ksmg_granule_size"

 1.  Increase directly the value of '_ksmg_granule_size' parameter to 16M (16777216) or 32M (33554432)

    1.1  open oracle parameter file with editor and put following line
       _ksmg_granule_size=16777216  or 33554432

    1.2 do the manual upgradation

   OR

 2. Increase SGA size bigger than 1024M to affect granule size

   2.1 open oracle parameter file with editor and put following line
        sga_max_size = 1025M

   2.2 Continue the upgradation using DBUA or manually.


  OR

  1.3 run DBUA with -initParam flag.

       $ dbua -initParam "_ksmg_granule_size"=16777216 or 33554432

Niciun comentariu:

Trimiteți un comentariu