How to delete a node from 3 node RAC in 10GR2

On June 21, 2007, in oracle, by admin

Hi,

Consider the following Environment

Environment :

Nodenames : node1.us.oracle.com node1
node2.us.oracle.com node2
node3.us.oracle.com node3

Node to be removed : node3.us.oracle.com node3.

Database name : racdb

Instance names : racdb1, racdb2, racdb3

Step 1 : Delete instance from node3

1. Do this on node1

Login as the oracle user
Set the ORACLE_HOME and PATH env variables to point to the database home
Run “dbca

Choose RAC database
Choose Instance Management
Choose Delete Instance

It shows a screen with the database name. At the bottom of the screen, enter the sys user and password.
Choose the instance to delete ( racdb3 on node3 )
Confirm deletion.

2. If your database is running on ASM, then follow the next steps to clean-up ASM on node3.
Do this on node1
Srvctl stop asm –n node3
Srvctl remove asm –n node3

Do this on node3
Cd $ORACLE_HOME/admin
Rm –rf +ASM
Cd $ORACLE_HOME/dbs
Rm –f * ASM *
Remove oratab entries beginning with +ASM.
3. Remove the listener running on node3

Do this on node3
Login as the oracle user and set the ORACLE_HOME to database home
Netca
Choose Cluster management
Choose Listener
Choose Remove
Confirm deletion of LISTENER

4. Removing node3 from the database and deleting ORACLE_HOME

Do this on node3
Export ORACLE_HOME=
Cd $ORACLE_HOME/oui/bin
./runInstaller –updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={node3}” –local
./runInstaller

Choose De-install products and select the dbhome
This will remove the database home software and leaves behind only some files and directories

Do this on node1
Cd $ORACLE_HOME/oui/bin
./runInstaller –updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={node1,node2}”

5. Removing node3 from the cluster and deleting Oracle Clusterware software from node3

Do this on node1
$CRS_HOME/bin/racgons remove_config node3:6200
( Replace port 6200 in the above command with the number that you see in the remote port section of the ons.config file in the CRS_HOME/opmn/conf diretory )

Do this on node3
Login as the root user
Cd $CRS_HOME/install
Rootdelete.sh

Do this on node1
Login as the root user
$CRS_HOME/bin/olsnodes –n

In the above command’s output check the node number for node3 e.g 3
Cd $CRS_HOME/install
Rootdeletenode.sh node3,3

Do this on node3
Login as the oracle user
Cd $CRS_HOME/oui/bin
./runInstaller –updateNodeList ORACLE_HOME=$CRS_HOME “CLUSTER_NODES={node3}” CRS=TRUE –local
./runInstaller
Choose Deinstall software and remove the CRSHOME.

Do this on node1
Login as the oracle user
Cd $CRS_HOME/oui/bin
./runInstaller –updateNodeList ORACLE_HOME=$CRS_HOME “CLUSTER_NODES={node1,node2}” CRS=TRUE

To verify the removal of the node from the cluster, run these commands

Do this on node1
Srvctl status nodeapps –n node3
Should return a message saying ‘Invalid node”
Crs_stat | grep –I node3
Should not get any output
Olsnodes –n
Should list node1 and node2 only.

 

Hi,

to put your database in shared server configuration u need to add the following parameters in init.ora file

*.dispatchers=’(protocol=TCP)(listener=)(disp=5)’
*.max_shared_servers=100
*.shared_servers=5
*.max_dispatchers=150

after making the above changes you need shutdown and restart the database with init.ora file in which the parameters are changed so that above parameter take effect.

Confirm that above parameters are set by logging in sys as sysdba and give the command

SQL> show parameter dispatchers;
SQL> show parameter max_shared_servers; …..

to check whether your listener is aware of the shared server connection from command prompt give the following command

c:\> lsnrctl services

Instance “ITALIC”, status READY, has 6 handler(s) for this service…
Handler(s):
“DEDICATED” established:0 refused:0 state:ready
LOCAL SERVER
“D004″ established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=01HW105868.India.TCS.com)(PORT=2141))
“D003″ established:1 refused:0 current:1 max:1002 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=01HW105868.India.TCS.com)(PORT=2140))
“D002″ established:1 refused:0 current:0 max:1002 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=01HW105868.India.TCS.com)(PORT=2139))
“D001″ established:1 refused:0 current:1 max:1002 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=01HW105868.India.TCS.com)(PORT=2138))
“D000″ established:1 refused:0 current:0 max:1002 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=01HW105868.India.TCS.com)(PORT=2137))

Also, to make shared server connections you need to add SERVER=SHARED parameters in the CONNECT_DATA parameter of all the tnsnames.ora of clients as shown

SSKIDB1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.240.158)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = SSKIDB)
(INSTANCE_NAME = SSKIDB)
)
)

Now, to check whether all the clients are using shared server connection fire the following query as sys

SQL> select USERNAME,SERVER,MACHINE,TERMINAL,type from v$session where type=’USER’;