When the ONLINE keyword is specified as a part of an ALTER INDEX or CREATE INDEX command, a temporary index-organized journal table is created to record changes made to the base table. This journal table is created in the same tablespace as the index being altered or created.
While the server process is rebuilding the index, other users can continue to access the old index structure. Any updates to the old index during the rebuild operation are recorded in the journal table.
所谓的journal table 就是:
ORA-08120: Need to create SYS.IND_ONLINE table in order to (re)build index
Cause: Alter index Build/Rebuild online require existing of SYS.IND_ONLINE table.
Action: User/DBA needs to create sys.ind_online before alter the index /rdbms/admin/catcio.sql contains script to create ind_online.
Online Index Rebuild (continued)
When the server process has completed the rebuild operation, it merges the changes entered
in the journal. This merge by which changed rows are incorporated into the new index is
done while the table is still online.
This is accomplished by scanning the journal table and operating on a per row basis.
Operations are committed every 20 rows. Locked rows are skipped. The Oracle server
process may make multiple passes over the journal table to process previously locked rows.
主题: Ora-8120 On Online Index Rebuild After 18.104.22.168 Upgrade
The information in this article applies to:
Oracle Server - Enterprise Edition - Version: 22.214.171.124
This problem can occur on any platform.
You have applied the 9205 patchset and when you try to rebuild an index online, you receive the following error:
ORA-08120: Need to create SYS.IND_ONLINE$ table in order to (re)build index
A new table, SYS.IND_ONLINE$, was created in the 9205 patchset that is referenced to relieve the performance related issues that are caused when rebuilding an index online. When rebuilding an index online, this table is updated, however, this table does not exist in the dictionary for 9205. Please note that this is NEW to 9205
Log into the database as the SYSDBA user and run the following script from ORACLE_HOME/rdbms/admin
SET ECHO ON
SET FEEDBACK 1
SET NUMWIDTH 10
SET LINESIZE 80
SET TRIMSPOOL ON
SET TAB OFF
SET PAGESIZE 100
create table ind_online$
( obj# number not null,
type# number not null, /* what kind of index is this? */
/* normal : 1 */
/* bitmap : 2 */
/* cluster : 3 */
/* iot - top : 4 */
/* iot - nested : 5 */
/* secondary : 6 */
/* ansi : 7 */
/* lob : 8 */
/* cooperative index method : 9 */
flags number not null
/* index is being online built : 0x100 */
/* index is being online rebuilt : 0x200 */
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/35489/viewspace-84313/，如需转载，请注明出处，否则将追究法律责任。