ORACLE

Total Pageviews

Tuesday, 24 June 2025

Oracle Database 21c patching in windows

 

Oracle database backup
Oracle_Home backup
SET BACKUP_DIR=E:\app\Backup
--######################################### STEP1 #########################################################
--                                      A. Pre-Patch Preparation
--#########################################################################################################
SELECT * FROM v$version;
col action_time format a30
select INSTALL_ID,PATCH_ID,PATCH_UID,PATCH_TYPE,ACTION,STATUS,ACTION_TIME,source_version,target_version from dba_registry_sqlpatch;
--######################################### STEP2 #########################################################
--                                      B. Stop the Application (Stop Tomcat)
--#########################################################################################################

--######################################### STEP3 #########################################################
--                                    C.Take a full RMAN backup of the database.
--#########################################################################################################
RMAN TARGET /
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT 'E:\app\Backup\db_full_%U.bkp';
BACKUP CURRENT CONTROLFILE FORMAT 'E:\app\Backup\controlfile_%U.bkp'; 
BACKUP SPFILE FORMAT 'E:\app\Backup\spfile_%U.bkp';
RELEASE CHANNEL c1;
}
--######################################### STEP4 #########################################################
--                                    D.Backup Oracle Home and configuration files..
--#########################################################################################################
xcopy /E /H /K /O /X /Y "E:\app\oracle\product\21.3.0\dbhome_1" "E:\app\oracle\product\21.3.0\ORACLE21C_HOME_BACKUP"


--######################################### STEP5 #########################################################
--                                    E.Verify OPatch version..
--#########################################################################################################
SET ORACLE_HOME=E:\app\oracle\product\21.3.0\dbhome_1
%ORACLE_HOME%/OPatch/opatch version
--######################################### STEP6 #########################################################
--                                    F.Check conflicts..
--                                    unzip the patch
--#########################################################################################################
%ORACLE_HOME%/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph E:\Oracle\21C\37532378
--######################################### STEP7 #########################################################
--                                    F.shutdown database and Related Services..
--#########################################################################################################
sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
exit
lsnrctl stop
sc query | findstr ORCL21C
-----------------------------------
sc stop OracleOraDB21Home1TNSListenerLISTENER_ORCL21C_FINAL
sc stop OracleServiceORCL21C
sc stop OracleVssWriterORCL21C
--###################################################### Error ####################################
--       OPatch failed with error code = 73
-- Opatch utility is not compatible with patch set 37532378
-- Need to download compatible opatch utility and unzip
-- Rename current Opatch folder as Opatch_BKP20062025 ,located in /u01/app/oracle/product/19.0.0/dbhome_1
-- Put downloaded and unzipped folder in ORACLE_HOME location
--##################################################################################################

set ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
set PATH=$ORACLE_HOME/OPatch:%PATH%
%ORACLE_HOME%\OPatch\opatch apply E:\Oracle\21C\37532378 -silent
%ORACLE_HOME%\OPatch\opatch lsinventory
sc start OracleOraDB21Home1TNSListenerLISTENER_ORCL21C_FINAL
sc start OracleServiceORCL21C
sc start OracleVssWriterORCL21C

sqlplus / as sysdba
check pluggable database opened or not if not open it before applying datapatch

show pdbs
alter pluggable database <PDBName> open;

exit
"%ORACLE_HOME%\OPatch\datapatch.bat" -verbose

"%ORACLE_HOME%\OPatch\datapatch.bat" -verbose







Wednesday, 13 December 2023

ORA-15110: no diskgroups mounted

C:\Users\DBServer01>sqlplus / as sysasm
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 13 09:58:00 2023
Version 19.15.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.
Connected to an idle instance.
SQL>
SQL>
SQL> startup
ASM instance started
Total System Global Area 1137305152 bytes
Fixed Size                  9037376 bytes
Variable Size            1103101952 bytes
ASM Cache                  25165824 bytes
ORA-15110: no diskgroups mounted

SQL> select name,state,type from v$asm_diskgroup;
NAME                           STATE       TYPE
------------------------------ ----------- ------
ORA_DATA                       DISMOUNTED

SQL> alter diskgroup ORA_DATA mount;
Diskgroup altered.

SQL> select name,state,type from v$asm_diskgroup;
NAME                           STATE       TYPE
------------------------------ ----------- ------
ORA_DATA                       MOUNTED     EXTERN

SQL>

Tuesday, 12 December 2023

ADDING DISK TO ASM DISK GROUP

ADDING DISK TO ASM DISK GROUP in Windows Server

 1. Check the used,free size in ASM disk group_number

SELECT
      name AS disk_group_name
     , state AS disk_state
,TYPE
    , total_mb/1024 AS Total_Size_In_GB
    , ROUND((total_mb - free_mb)/1024,2) AS Used_Size_In_GB
    , ROUND((1- (free_mb / total_mb))*100, 2)  pct_used
  FROM
      v$asm_diskgroup
  WHERE
      total_mb != 0
  ORDER BY
      Name;
  

DISK_GROUP_NAME                DISK_STATE  TYPE    TOTAL_SIZE_IN_GB USED_SIZE_IN_GB   PCT_USED
------------------------------ ----------- ------  ---------------- --------------- ----------
ORA_DATA                       MOUNTED     EXTERN                 2            1.81      89.99

2. Check the candidate disk we will add the candidate disk to asm disk group

col DISK_FILE_PATH format a70 
set pages 200 lines 192 
 SELECT 
 NVL(a.name, '[CANDIDATE]') disk_group_name 
 , b.path disk_file_path 
 , b.name disk_file_name 
 , b.failgroup disk_file_fail_group 
FROM 
 v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number) 
ORDER BY  a.name;

Output
---------------
DISK_GROUP_NAME  DISK_FILE_PATH                                         DISK_FILE_NAME  DISK_FILE_FAIL_GROUP 
---------------- ------------------------------------------------------ --------------- ---------------------
ORA_DATA         D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK1   ORA_DATA_0000   ORA_DATA_0000

[CANDIDATE]      D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK2
                 D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK3

DATA_DISK2 and DATA_DISK3 are candidate disk, we will add only DATA_DISK2 for demonstration purpose.

C:\Users\DILIP_BAKSHI> asmcmd -p
ASMCMD [+] >
ASMCMD [+] > ls -l
State    Type    Rebal  Name
MOUNTED  EXTERN  N      ORA_DATA/

ASMCMD [+] > lsdsk
Path
D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK1

C:\Users\DILIP_BAKSHI>sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Dec 12 23:56:33 2023
Version 19.15.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL>
SQL> ALTER DISKGROUP ORA_DATA ADD DISK 'D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK2';

Diskgroup altered.

SQL>exit

C:\Users\DILIP_BAKSHI> asmcmd -p
ASMCMD [+] > lsdsk
Path
D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK1
D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK2
ASMCMD [+] >

SQL> col DISK_FILE_PATH format a70
SQL> set pages 200 lines 192
SQL>  SELECT
  2   NVL(a.name, '[CANDIDATE]') disk_group_name
  3   , b.path disk_file_path
  4   , b.name disk_file_name
  5   , b.failgroup disk_file_fail_group
  6  FROM
  7   v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
  8  ORDER BY  a.name;

DISK_GROUP_NAME  DISK_FILE_PATH                                         DISK_FILE_NAME  DISK_FILE_FAIL_GROUP 
---------------- ------------------------------------------------------ --------------- ---------------------
ORA_DATA         D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK1   ORA_DATA_0000   ORA_DATA_0000
ORA_DATA         D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK2   ORA_DATA_0001   ORA_DATA_0001
[CANDIDATE]      D:\SOFTWARE\TUTORIAL\ORACLE_GRID\ASM_DATA\DATA_DISK3

SQL>


SELECT
      name AS disk_group_name
     , state AS disk_state
,TYPE
    , total_mb/1024 AS Total_Size_In_GB
    , ROUND((total_mb - free_mb)/1024,2) AS Used_Size_In_GB
    , ROUND((1- (free_mb / total_mb))*100, 2)  pct_used
  FROM
      v$asm_diskgroup
  WHERE
      total_mb != 0
  ORDER BY
      Name;

DISK_GROUP_NAME                DISK_STATE  TYPE    TOTAL_SIZE_IN_GB USED_SIZE_IN_GB   PCT_USED
------------------------------ ----------- ------  ---------------- --------------- ----------
ORA_DATA                       MOUNTED     EXTERN                 4            1.81      45.29

 

ASM instance startup fail with ORA-29701 and ORA-01078

 ASM instance startup fail with below error
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service


sqlplus /nolog
C:\Users\DBServer01>sqlplus /nolog
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Dec 12 21:42:47 2023
Version 19.15.0.0.0
Copyright (c) 1982, 2021, Oracle.  All rights reserved.

SQL> connect / as sysasm
Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service

C:\Users\DBServer01>crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'DBServer01'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'DBServer01'
CRS-2673: Attempting to stop 'ora.orcl11g.db' on 'DBServer01'
CRS-2673: Attempting to stop 'ora.ncdb19c.db' on 'DBServer01'
CRS-2673: Attempting to stop 'ora.LISTENER_ASM.lsnr' on 'DBServer01'
CRS-2677: Stop of 'ora.LISTENER_ASM.lsnr' on 'DBServer01' succeeded
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'DBServer01' succeeded
CRS-2677: Stop of 'ora.orcl11g.db' on 'DBServer01' succeeded
CRS-2677: Stop of 'ora.ncdb19c.db' on 'DBServer01' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'DBServer01'
CRS-2673: Attempting to stop 'ora.ons' on 'DBServer01'
CRS-2677: Stop of 'ora.evmd' on 'DBServer01' succeeded
CRS-2677: Stop of 'ora.ons' on 'DBServer01' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'DBServer01' has completed
CRS-4133: Oracle High Availability Services has been stopped.

C:\Users\DBServer01>
C:\Users\DBServer01>
C:\Users\DBServer01>crsctl start has
CRS-4123: Oracle High Availability Services has been started.

C:\Users\DBServer01>crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       DBServer01                  STABLE
ora.LISTENER_ASM.lsnr
               ONLINE  ONLINE       DBServer01                  STABLE
ora.ORA_DATA.dg
               OFFLINE OFFLINE      DBServer01                  STABLE
ora.ons
               ONLINE  ONLINE       DBServer01                  STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       DBServer01                  STABLE
ora.ncdb19c.db
      1        ONLINE  OFFLINE                               Instance Shutdown,ST
                                                             ABLE
ora.orcl11g.db
      1        ONLINE  ONLINE       DBServer01                  Open,HOME=D:\Softwar
                                                             e\ORADB\app\oracle\p
                                                             roduct\11.2.0\dbhome
                                                             _1,STABLE

--------------------------------------------------------------------------------
C:\Users\DBServer01>crsctl start res ora.cssd -init
CRS-2672: Attempting to start 'ora.cssd' on 'DBServer01'
CRS-2676: Start of 'ora.cssd' on 'DBServer01' succeeded

C:\Users\DBServer01>crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
               ONLINE  ONLINE       DBServer01                  STABLE
ora.LISTENER_ASM.lsnr
               ONLINE  ONLINE       DBServer01                  STABLE
ora.ORA_DATA.dg
               OFFLINE OFFLINE      DBServer01                  STABLE
ora.ons
               ONLINE  ONLINE       DBServer01                  STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       DBServer01                  STABLE
ora.evmd
      1        ONLINE  ONLINE       DBServer01                  STABLE
ora.ncdb19c.db
      1        ONLINE  OFFLINE                               Instance Shutdown,ST
                                                             ABLE
ora.orcl11g.db
      1        ONLINE  ONLINE       DBServer01                  Open,HOME=D:\Softwar
                                                             e\ORADB\app\oracle\p
                                                             roduct\11.2.0\dbhome
                                                             _1,STABLE

--------------------------------------------------------------------------------

ORA-01031: insufficient privileges

Connecting asm instance with sysasm  and getting error ORA-01031: insufficient privileges


Reason : NO SYSASM privileges assigned to SYS user.

Once SYSASM privilege assigned to SYS then will get connected

Steps
--1.  --Connect as sysasm
      sqlplus / as sysasm 
                        
--2. --Verify the privileges  to sys user
-      select * from v$pwfile_users;         

--3. --Grant the sysasm privileges  to sys
     grant SYSASM to SYS;                  

--4.  --Again Verify the privileges  to sys user
    select * from v$pwfile_users;        

--5. --Connect with password and check 
    sqlplus sys/<Password> as sysasm 


Detail log
[oracle@rac2 dbs]$ echo $ORACLE_HOME
/u01/app/grid/product/11.2.0/grid
[oracle@rac2 dbs]$ export ORACLE_SID=+ASM2
[oracle@rac2 dbs]$ export ORACLE_HOME=/u01/app/grid/product/11.2.0/grid
[oracle@rac2 dbs]$ export PATH=$PATH:$ORACLE_HOME/bin

[[oracle@rac1 ~]$ sqlplus sys/Pssword123#_4T as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 16 17:55:34 2016
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
ERROR:
ORA-01031: insufficient privileges

Enter user-name:
[oracle@rac1 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 16 17:57:59 2016
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options

SQL> select * from v$pwfile_users;
USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE

SQL>
SQL> grant SYSASM to SYS;
Grant succeeded.

SQL> select * from v$pwfile_users;
USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  TRUE

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
[oracle@rac1 ~]$
[oracle@rac1 ~]$ sqlplus sys/Pssword123#_4T  as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Tue Aug 16 17:59:17 2016
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL>