Skip to main content

how index become unusable?

There are few reasons that make your indexes become unusable

1. the unusable command statement  - ALTER INDEX idx UNUSABLE;

2. direct path writes to the index's table - such as using sqlldr utility using direct=y flag
    In this case you can create multiple PK values and until you will clear the duplication the PK will be in unusable state.

    * using /+ APPEND +/ hint behaves differently from sqlldr.
     Although it's direct path as well Oracle will give unique constraints errors.

3. reorganizing table extents by using move command - ALTER TABLE tbl MOVE;


take these operations in your consideration when developing your application since you will need to spend some time and resources in order to fix the indexes (rebuild for example) during your process.


I'm not saying direct path is bad, just be aware of the consequences. :-)


Good Luck,

Comments

Popular posts from this blog

Missing command :fuser Prerequisite check "CheckSystemCommandAvailable" failed

When trying to apply patch you may face this error the solution is described below. ERROR: bash-4.2$ ../opatch apply Oracle Interim Patch Installer version 12.2.0.1.5 Copyright (c) 2016, Oracle Corporation.  All rights reserved. Oracle Home       : /oracle/app/oracle/product/12.1.0 Central Inventory : /oracle/app/oracle/oraInventory    from           : /oracle/app/oracle/product/12.1.0/oraInst.loc OPatch version    : 12.2.0.1.5 OUI version       : 12.1.0.2.0 Log file location : /oracle/app/oracle/product/12.1.0/cfgtoollogs/opatch/opatch2016-07-27_16-27-44PM_1.log Verifying environment and performing prerequisite checks... Prerequisite check "CheckSystemCommandAvailable" failed. The details are: Missing command :fuser Prerequisite check "CheckSystemCommandAvailable" failed. The details are: Missing command :fuser Prerequisite ...

ORA-27104: system-defined limits for shared memory was misconfigured

I faced this error while trying to restore & recover of a PDB (pluggable database) part of the log file and the solution is described here below: log: initialization parameters used for automatic instance: db_name=CDB db_unique_name=gbux_pitr_PDB1_CDB compatible=12.1.0.2.0 db_block_size=8192 db_files=200 diagnostic_dest=/oracle/app/oracle _system_trig_enabled=FALSE sga_target=1888M processes=200 db_create_file_dest=/oracle/auxilary log_archive_dest_1='location=/oracle/auxilary' enable_pluggable_database=true _clone_one_pdb_recovery=true #No auxiliary parameter file used starting up automatic instance CDB RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 07/31/2016 16:22:20 RMAN-04014: startup failed: ORA-27104: system-defined limits for shared...

ora-65035 while create pluggable database from another one

or : ORA-21000: error number argument to raise_application_error of -65035 is out of range Cause: this error caused because of an unrecoverable transaction in the source DB. Solution: 1. either stop and start your pluggable source DB 2. identify the open transaction and kill it if you can. use this query to do so: select * from v$transaction t,v$session  s where t.ses_addr = s.saddr;