Blog

ORA-02475: maximum cluster chain block count of 65534 has been exceeded

For 8k block size tablespace, maximum cluster chain block count is 65534. Otherwise bigger block size tablespace is recommended.

This article demonstrates how to reproduce  ORA-02475  error , and explains why it happens and how to resolve this issue.

  1. Create cluster tables and indexes.
SQL> CREATE CLUSTER emp_dept (deptno NUMBER(3)) TABLESPACE users;

Cluster created.

SQL> CREATE TABLE dept 
     (
        deptno NUMBER(3) PRIMARY KEY,
        deptname VARCHAR2(15) NOT NULL
     )
     CLUSTER emp_dept (deptno);

Table created.

SQL> CREATE TABLE emp 
     (
        empno NUMBER(10) PRIMARY KEY,
        ename VARCHAR2(15) NOT NULL,
       deptno NUMBER(3) REFERENCES dept
     )
     CLUSTER emp_dept (deptno);

Table created.

SQL> CREATE INDEX emp_dept_index
         ON CLUSTER emp_dept
         TABLESPACE users ;

Index created.

SQL> insert into dept values ( 1,'DEPT1 1');

1 row created.

SQL> insert into dept values (2,'DEPT1 2');

1 row created.

SQL> insert into dept values (3, 'DEPT1 3');

1 row created.

SQL> commit;

Commit complete.

2.  Insert records into cluster table EMP until gets ORA-02475 error.

SQL> set serveroutput on;
begin
    for i in 1 .. 1000000000
    loop
       begin
           insert into emp values (i,'emp '||i, 3);
           commit;
       exception
       when others
       then
           dbms_output.put_line( SQLERRM );
          exit;
       end;
   end loop;
end;
/

ORA-02475: maximum cluster chain block count of 65534 has been exceeded

PL/SQL procedure successfully completed.

Subscribe to get access

Read more of this content when you subscribe today.

How To Flush DNS Cache

Basic command for DBA to flush DNS cache.

To flush DNS cache in Microsoft Windows :

C:>ipconfig /flushdns

To flush the DNS cache in Linux:

# /etc/rc.d/init.d/nscd restart

To flush the DNS cache in Mac OS X Leopard:

$ lookupd -flushcache

To flush the DNS cache in Mac OS X:

$ dscacheutil -flushcache

Certainly rebooting your computer always works.

Step by Step Installing Oracle 12c GI and RAC on Linux 7 Using VirtualBox

Great start to build your own RAC with detailed instructions and explanations. For building 18c/19c/20c GI/RAC, this post is still helpful. After completing this lab, you should be in better position as an Oracle RAC DBA.

Contents

Introduction

This article describes the detailed step by step installation of Oracle Database 12c  (12.1.0.2 64-bit) GI and RAC on Linux (Oracle Linux 7.1 64-bit) using VirtualBox (5.0.10). It applies to Oracle 18c and 19c GI and RAC as well.

Subscribe to get access

Read more of this content when you subscribe today.

ASM rebalance ASM_POWER_LIMIT parameter

Parameter ASM_POWER_LIMIT will affect the speed of rebalancing disks, and the resources consumed.

If COMPATIBLE.ASM disk group attribute is set to 11.2.0.2 or higher, then asm_power_limit value range is 0 to 1024.

If COMPATIBLE.ASM disk group attribute is set to lower than 11.2.0.2 , then asm_power_limit value range will be 0 to 11.

We can change the rebalance power either at the ASM instance level or at the individual disk group level.

Changing  the value at the instance level, this will alter the power limit for any new operations, but not the existing ones.

SQL > alter system set asm_power_limit=5 scope=both;

Change the value at the disk group level, this will change an existing operation on the diskgroup involved in the current operation.

SQL> alter diskgroup diskgroup1 rebalance power 8;

The effect of the change can be viewed from v$asm_operation:

SQL> select * from gv$asm_operation;

How to deinstall 11gR2 Grid Infrastructure and 11gR2 RAC software after upgraded to 12c

Uninstall Old Grid Infrastructure ( GI ) Home and Oracle RAC Database Home, after they have been upgraded.

SITUATION

We have two nodes 11gR2 GI and RAC upgraded to 12c already, so we need uninstall old both 11gR2 GI and RAC Oracle Home.

SOLUTION

1)Backup OraInventory.

2)Uninstall 11gR2 Oracle RAC Home as below, OraInventory is updated on all nodes accordingly.

$export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
$cd cd $ORACLE_HOME/deinstall
$./deinstall -silent
$cd /u01/app/oracle/product
$rm -r 11.2.0
$cat   inventory.xml|grep 11.2.0
   <saved_with>11.2.0.2.0</saved_with>
<home loc='/u01/app/grid/11.2.0' name='Ora11g_gridinfrahome1' idx='1' type='O'>
<home crs='true' loc='/u01/app/grid/12.1.0' name='Ora12c_gridinfrahome2' idx='15' type='O'>
<home loc='/u01/app/oracle/product/12.1.0/db_1' name='OraDb12c_home1' idx='16' type='O'>
<home /='' removed='T' loc='/u01/app/oracle/product/11.2.0/db_1' name='OraDb11g_home1' idx='2' type='O'>

3) Uninstall 11gR2 Grid Home.

To deinstall 11gR2 GI OH, you will need to use :Oracle Universal Installer (OUI) FAQ( Doc ID 458893.1 ) How to detach an Oracle Home using OUI?  Then after detaching the old GI home then you will need to remove the old GI home manually. Using the information in this note: How to Deinstall Old Clusterware Home Once Upgrade to Newer Version is Complete ( Doc ID 1346305.1 )

$ export ORACLE_HOME=/u01/app/grid/11.2.0
$ $ORACLE_HOME/OPatch/opatch lsinventory -all

$cd $ORACLE_HOME/oui/bin
$ ./runInstaller -silent -detachHome ORACLE_HOME="/u01/app/grid/11.2.0" ORACLE_HOME_NAME="Ora11g_gridinfrahome1"

$ cat   inventory.xml|grep 11.2.0
   <saved_with>11.2.0.2.0</saved_with>
<home crs='true' loc='/u01/app/grid/12.1.0' name='Ora12c_gridinfrahome2' idx='15' type='O'>
<home loc='/u01/app/oracle/product/12.1.0/db_1' name='OraDb12c_home1' idx='16' type='O'>
<home /='' removed='T' loc='/u01/app/oracle/product/11.2.0/db_1' name='OraDb11g_home1' idx='2' type='O'>
<home /='' removed='T' loc='/u01/app/grid/11.2.0' name='Ora11g_gridinfrahome1' idx='1' type='O'>

$ORACLE_HOME/OPatch/opatch lsinventory -all

$ crsctl status res -t

$sudo su -
# cd /u01/app/grid/
# rm -fr 11.2.0