Wednesday, 11 September 2024

SQL QUERIES FOR DAILY DBA ROUTINE TASK

 

SQL QUERIES:

---------DATABASE NAME------

select name,open_mode,log_mode,database_role from v$database;

SELECT COUNT(NAME) FROM V$TABLESPACE;

SELECT COUNT(NAME) FROM V$DATAFILE_HEADER;


-----INSTANCE------

select status from v$instance;


----------------db size--------------

select a.data_size+b.temp_size+c.redo_size+d.controlfile_size "total_size in GB"
from ( select sum(bytes)/1024/1024/1024 data_size
from dba_data_files) a,
( select nvl(sum(bytes),0)/1024/1024/1024 temp_size
from dba_temp_files ) b,
( select sum(bytes)/1024/1024/1024 redo_size
from sys.v_$log ) c,
( select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size
from v$controlfile) d;



-----TOTAL DATABASE USAGE-----:


select (select sum(bytes/1048576) from dba_data_files) "Data Mb",
(select NVL(sum(bytes/1048576),0) from dba_temp_files) "Temp Mb",
(select sum(bytes/1048576)*max(members) from v$log) "Redo Mb",
(select sum(bytes/1048576) from dba_data_files) +
(select NVL(sum(bytes/1048576),0) from dba_temp_files) +
(select sum(bytes/1048576)*max(members) from v$log) "Total Mb"
from dual;



----DB PHYSICAL SIZE----:


select sum(bytes/1024/1024/1024) "DB Physical Size(GB)" from dba_data_files;



-----DB ACUTAL SIZE-----:


select sum(bytes/1024/1024/1024) "DB Actual Size(GB)" from dba_segments;



----------TABLESPACE---------


select TABLESPACE_NAME,STATUS,AUTOEXTENSIBLE, ONLINE_STATUS from dba_data_files;



set pagesize 100

set lines 130

COLUMN free_space_mb format 99999990.00

COLUMN allocated_mb format 99999990.00

COLUMN used_mb format 99999990.00

COLUMN percent_used format 00.00

col tablespace_name format a25


SELECT  SUBSTR(df.tablespace_name,1,30) tablespace_name,
(df.bytes) / 1024 / 1024 allocated_mb,
((df.bytes)-nvl(dfs.bytes,0))/1024/1024 used_mb,
NVL ((dfs.bytes) / 1024 / 1024, 0) free_space_mb,
 round(  ((df.bytes-nvl(dfs.bytes,0))/df.bytes * 100),2) percent_used
FROM    ( select sum(bytes) bytes,tablespace_name from dba_data_files group by tablespace_name) df,
( select  sum(bytes) bytes , tablespace_name from dba_free_space group by tablespace_name) dfs
WHERE   df.tablespace_name = dfs.tablespace_name
ORDER BY percent_used ;


-------------TABLESPACE>75----------------------------------------


#alter session set "_hash_join_enabled"=true;

set pagesize 100

set lines 130

COLUMN free_space_mb format 99999990.00

COLUMN allocated_mb format 99999990.00

COLUMN used_mb format 99999990.00

COLUMN percent_used format 00.00

col tablespace_name format a25


SELECT  SUBSTR(df.tablespace_name,1,30) tablespace_name,
(df.bytes) / 1024 / 1024 allocated_mb,
((df.bytes)-nvl(dfs.bytes,0))/1024/1024 used_mb,
NVL ((dfs.bytes) / 1024 / 1024, 0) free_space_mb,
 round(  ((df.bytes-nvl(dfs.bytes,0))/df.bytes * 100),2) percent_used
FROM    ( select sum(bytes) bytes,tablespace_name from dba_data_files group by tablespace_name) df,
( select  sum(bytes) bytes , tablespace_name from dba_free_space group by tablespace_name) dfs
WHERE   df.tablespace_name = dfs.tablespace_name
and round(  ((df.bytes-nvl(dfs.bytes,0))/df.bytes * 100),2) > 75
ORDER BY percent_used ;



 -------------ADDING TABLESPACE---------


col FILE_NAME format a70
set lines 1000
set pages 1000

Select file_name,bytes/1024/1024,autoextensible from dba_data_files where tablespace_name='&TBLSPC_NAME' order by file_id;



col FILE_NAME format a70
set lines 1000
set pages 1000

Select file_name,bytes/1024/1024,autoextensible from dba_temp_files where tablespace_name='&TBLSPC_NAME';


Alter tablespace tablespace_name add datafile ‘path and name+1.dbf’ size 4096m;


------------Archivegap-------------------

select max(sequence#)"Last Sequence" from v$loghist;

select  max(SEQUENCE#)"Applied Sequence" from v$archived_log where APPLIED='YES' and dest_id=2;



----------Temp Tablespace-----------------


SET LINESIZE 200
COL TABLESPACE_NAME FORMAT A20
SELECT TABLESPACE_NAME,SUM(BYTES_USED/1024/1024) "USED_MB",SUM(BYTES_FREE/1024/1024) "FREE_MB",
SUM(BLOCKS_FREE) "FREE_BLOCKS"
FROM V$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME;


------------------Log sequence-----------------


select max(sequence#) from v$loghist;

show parameter log_archive_dest_state_2


------------------Resource_Limit-----------------


select * from v$resource_limit;



-------COUNT OF INVALID OBJECTS---------:


select count(*) from dba_objects where status='INVALID';


------DB HIT Ratio-------:


select (1-(pr.value/

(dbg.value+cg.value)))*100

FROM v$sysstat pr,v$sysstat dbg,v$sysstat cg

WHERE Pr.name='physical reads'

AND dbg.name='db block gets'

AND cg.name='consistent gets';


 =============================LOAD======================================

select stat_name,value from v$OSSTAT where STAT_NAME='LOAD';


 =================================EVENT=================================

select event,count(event) from v$session group by event;


 =================================Session==================================

select username,status,count(*) from v$session group by username,status order by 1,3;


select count(*)"Active sessions" from v$session;


==============================Number of Session========================================

SET LINESIZE 145
SET PAGESIZE 9999
 COLUMN max_sess_allowed  FORMAT 999,999       JUSTIFY r HEADING 'Max sessions allowed'
 COLUMN num_sessions      FORMAT 999,999,999   JUSTIFY r HEADING 'Number of sessions'
 COLUMN pct_utl           FORMAT a19           JUSTIFY r HEADING 'Percent Utilization'
 COLUMN username          FORMAT a15           JUSTIFY r HEADING 'Oracle User'
 COLUMN num_user_sess     FORMAT 999,999       JUSTIFY r HEADING 'Number of Logins'
 COLUMN count_a           FORMAT 999,999       JUSTIFY r HEADING 'Active Logins'
 COLUMN count_i           FORMAT 999,999       JUSTIFY r HEADING 'Inactive Logins'


PROMPT =================================Oracle Users Session========================================

SET verify off

SELECT
       TO_NUMBER(a.value)         max_sess_allowed
     , TO_NUMBER(count(*))        num_sessions
     , LPAD(ROUND((count(*)/a.value)*100,0) || '%', 19)  pct_utl
     FROM v$session    b, v$parameter  a
     WHERE a.name = 'sessions'
   GROUP BY a.value;

break on report

 compute sum of num_user_sess count_a count_i on report

 SELECT
       lpad(nvl(sess.username, '[B.G. Process]'), 15) username
     , count(*) num_user_sess
     , nvl(act.count, 0)   count_a
     , nvl(inact.count, 0) count_i
     FROM
         v$session sess
       , (SELECT    count(*) count, nvl(username, '[B.G. Process]') username
          FROM      v$session
         WHERE     status = 'ACTIVE'
         GROUP BY  username)   act
      , (SELECT    count(*) count, nvl(username, '[B.G. Process]') username
         FROM      v$session
         WHERE     status = 'INACTIVE'
         GROUP BY  username) inact
    WHERE
             nvl(sess.username, '[B.G. Process]') = act.username (+)
         and nvl(sess.username, '[B.G. Process]') = inact.username (+)
    GROUP BY
        sess.username
      , act.count
      , inact.count;

Prompt================================ SQL row lock contention========================================


set linesize 1000

set pagesize 1000

col USERNAME format a10


select c.USERNAME, 
       a.SID, 
       c.SQL_ID, 
       a.EVENT, 
       a.STATE, 
       c.STATUS, 
       b.TIME_WAITED
from v$session_wait a,
     v$session_wait_class b, 
     v$session c
where a.SID=b.SID
and   b.SID=c.SID
and   c.SQL_ID is not null
and   b.TIME_WAITED<>0 
and   a.EVENT like '%row lock contention%'
order by 7;

Prompt================================= Table lock======================================================

select s1.username || '@' || s1.machine|| ' ( SID=' || s1.sid || ' )  is blocking by '|| s2.username || '@' || s2.machine || ' ( SID=' || s2.sid || ' ) ' AS blocking_status
from v$lock l1, v$session s1, v$lock l2, v$session s2
where s1.sid=l1.sid and s2.sid=l2.sid
and l1.BLOCK=1 and l2.request > 0
and l1.id1 = l2.id1
and l2.id2 = l2.id2
and l1.type=l2.type;

Prompt================================ ASM DISK GROUP STATUS===================================

SELECT name,free_mb/1024 "Free in GB",total_mb/1024 as Total_GB from v$asm_diskgroup;


Prompt==================================User Expiry Details===========================

select USERNAME,EXPIRY_DATE,PROFILE from dba_users where account_status='OPEN';


Prompt==================================TABLE MAX SIZE IN MB=================================

set linesize 1000

set pagesize 750

col Table_Name for a20

col owner for a15

col size for a10

select segment_name as "Table_Name",owner, round(bytes/1024/1024) || 'MB' as "Size"

from dba_segments where bytes>2073741824 and owner Not IN ('SYS','SYSTEM') 

order by bytes desc;


Prompt==================================TABLE MAX SIZE IN GB=================================

select segment_name as "Table_Name",owner, round(bytes/1024/1024/1024) || 'GB' as "Size"

from dba_segments where bytes>2073741824 and owner Not IN ('SYS','SYSTEM') 

order by bytes desc;


Prompt==================================ORA ERROR IN LAST 15 DAYS=================================

col message_text for a999

SELECT record_id,to_char(originating_timestamp,'DD.MM.YYYY HH24:MI:SS'),

message_text

from x$dbgalertext where message_text like '%ORA-%'

and ORIGINATING_TIMESTAMP > SYSDATE -15;



---------RMAN BACKUP STATUS--------------:

select
session_recid,
to_char(start_time,'YYYY-MM-DD HH24:MI:SS')  start_time,
to_char(end_time,'YYYY-MM-DD HH24:MI:SS')    end_time,
TRUNC(((end_time - start_time)/(1/365))*3600)   executetimemins,
status,
input_type,
output_device_type  ,
round((input_bytes/1024)/1024,2)       input_mb,
round((output_bytes/1024)/1024,2)      output_mb,
output_bytes_display,
time_taken_display
from SYS.V_$RMAN_BACKUP_JOB_DETAILS
where
start_time >= sysdate - 365
and input_type='DB FULL'
order by end_time desc ;


col STATUS format a9
col hrs format 999.99
select
SESSION_KEY, INPUT_TYPE, STATUS,
to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
to_char(END_TIME,'mm/dd/yy hh24:mi')   end_time,
elapsed_seconds/3600                   hrs
from SYS.V_$RMAN_BACKUP_JOB_DETAILS
where input_type='DB INCR'
order by session_key;


SELECT 
SUBSTR(SS.USERNAME,1,8) USERNAME,
SS.OSUSER "USER",
AR.MODULE || ' @ ' || SS.MACHINE CLIENT,
SS.PROCESS PID,
TO_CHAR(AR.LAST_LOAD_TIME, 'DD-Mon HH24:MM:SS') LOAD_TIME,
AR.DISK_READS DISK_READS,
AR.BUFFER_GETS BUFFER_GETS,
SUBSTR(SS.LOCKWAIT,1,10) LOCKWAIT,
W.EVENT EVENT,
SS.STATUS,
AR.SQL_fullTEXT SQL
FROM V$SESSION_WAIT W,
V$SQLAREA AR,
V$SESSION SS, 
v$TIMER T
WHERE SS.SQL_ADDRESS = AR.ADDRESS
AND SS.SQL_HASH_VALUE = AR.HASH_VALUE
AND SS.SID = W.SID (+)
AND SS.STATUS = 'ACTIVE'
AND W.EVENT != 'client message'
ORDER BY  SS.LOCKWAIT ASC, SS.USERNAME, AR.DISK_READS DESC

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1462431493865865" crossorigin="anonymous"></script>

Sunday, 23 January 2022

𝐄𝐫𝐫𝐨𝐫 𝟓𝟎𝟎--𝐈𝐧𝐭𝐞𝐫𝐧𝐚𝐥 𝐒𝐞𝐫𝐯𝐞𝐫 𝐄𝐫𝐫𝐨𝐫 𝐅𝐫𝐨𝐦 𝐑𝐅𝐂 𝟐𝟎𝟔𝟖 𝐄𝐁𝐒 𝐥𝐨𝐠𝐢𝐧

 


EBS LOGIN PAGE ISSUE:

 








Step to troubleshoot:

step 1. Check firewall status and disabled it (Otherwise add Ports to allow in the firewall exception list).

steps 2. Check your ebs login port is open or not through telnet.

step 3.  Check oacore logs file.


In my case step 3 works in oacore logs I have found the below issue:














Log File: /apps/R12.2/fs1/FMW_Home/user_projects/domains/EBS_domain_PROD/servers/oacore_server1/logs/oacore_server1.log

Observation and Findings: 

I have checked in DB the expired users list and found that APPLSYSPUB user is showing expired Status.

Note:-  APPLSYSPUB/PUB - is the default public username and password that grants access to oracle E-business suite initial sign-on form. In EBS Application at the time of login, oracle application connect to public schema - APPLSYSPUB. It has the sufficient privilege to perform the authentication of  FND user (Application users) which includes the PL/SQL packages to verify the username/password and the privilege to record the success or failure of a login attempt.  

SQL> select username,account_status from dba_users where USERNAME='APPLSYSPUB';

USERNAME             ACCOUNT_STATUS

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

APPLSYSPUB              EXPIRED


Solution:

[applmgr]$  FNDCPASS apps/apps 0 Y system/manager SYSTEM APPLSYSPUB PUB









Now, Oracle E-business Suite Login page is working fine..!!



Sunday, 16 January 2022

𝐀𝐮𝐭𝐨𝐜𝐨𝐧𝐟𝐢𝐠 𝐅𝐚𝐢𝐥𝐬 𝐢𝐧 𝐄𝐁𝐒 𝐑𝟏𝟐.𝟏.𝟑 𝐚𝐟𝐭𝐞𝐫 𝐚𝐝𝐩𝐚𝐭𝐜𝐡 𝐨𝐧 𝐋𝐢𝐧𝐮𝐱 𝟕.𝟗

 

 Adautocfg.sh Issue after adpatch:









Solution:

[applmgr@ebsuatapp]$ cd /orahome/oracle/apps/apps_st/appl/fnd/12.0.0/admin/template/custom/

[applmgr@ebsuatapp custom]$ mv orion_web_xml_1013.tmp  orion_web_xml_1013.tmp_090122_1

$ cp /orahome/oracle/apps/apps_st/appl/fnd/12.0.0/admin/template/orion_web_xml_1013.tmp /orahome/oracle/apps/apps_st/appl/fnd/12.0.0/admin/template/custom/

 Now Run adautocfg.sh again..!!



Saturday, 25 September 2021

𝗔𝗽𝗲𝘅 𝟮𝟭.𝟭 𝗔𝗽𝗽𝗹𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗠𝗶𝗴𝗿𝗮𝘁𝗶𝗼𝗻 𝗙𝗿𝗼𝗺 𝘀𝗼𝘂𝗿𝗰𝗲 𝘁𝗼 𝗧𝗮𝗿𝗴𝗲𝘁 𝘀𝗲𝗿𝘃𝗲𝗿 (𝗢𝗻-𝗽𝗿𝗲𝗺𝗶𝘀𝗲 𝘁𝗼 𝗢𝗖𝗜 𝗖𝗹𝗼𝘂𝗱 𝗣𝗹𝗮𝘁𝗳𝗼𝗿𝗺)

                                                             ░APEX

𝐻𝑒𝓁𝓁𝑜 𝑒𝓋𝑒𝓇𝓎𝑜𝓃𝑒𝒜𝒻𝓉𝑒𝓇 𝒶 𝓂𝑜𝓃𝓉𝒽 𝑜𝒻 𝑔𝒶𝓅, 𝐼 𝒽𝒶𝓋𝑒 𝒹𝑒𝒸𝒾𝒹𝑒𝒹 𝓉𝑜 𝓈𝒽𝒶𝓇𝑒 𝒜𝓅𝑒𝓍 𝑀𝒾𝑔𝓇𝒶𝓉𝒾𝑜𝓃 𝓼𝓽𝓮𝓹𝓼 𝓌𝒾𝓉𝒽 𝒶𝓁𝓁 𝑜𝒻 𝓎𝑜𝓊.

𝐼 𝒽𝑜𝓅𝑒 𝒾𝓉 𝓌𝒾𝓁𝓁 𝒽𝑒𝓁𝓅 𝒶𝓁𝓁 𝑜𝒻 𝓎𝑜𝓊  𝒾𝓃 𝓎𝑜𝓊𝓇 𝓅𝓇𝑜𝒻𝑒𝓈𝓈𝒾𝑜𝓃𝒶𝓁 𝒸𝒶𝓇𝓇𝑒e𝓇 𝑒𝓋𝑒𝓃 𝒾𝒻 𝓎𝑜𝓊 𝒶𝓇𝑒 𝓃𝑜𝓉 𝒻𝒶𝓂𝒾𝓁𝒾𝒶𝓇 𝓌𝒾𝓉𝒽 "𝒜𝓅𝑒𝓍".

𝒮𝑜 𝓁𝑒𝓉'𝓈 𝓈𝓉𝒶𝓇𝓉 𝒻𝓇𝑜𝓂 𝒽𝑒𝓇𝑒..!!


Step 1:  Create backups of the APEX Workspaces and Applications

At First, Go to  $ORACLE_HOME/apex/utilities

 Take Workspace backup:

java oracle.apex.APEXExport -db hostname:PORT:SID -user <username> -password <password> -expWorkspace

 















 Take every application and shared component backup:

java oracle.apex.APEXExport -db hostname:Port:SID -user <username> -password <password> -instance





Step 2: On the Target Database Node 19C Create the Apex schema by Installing Apex

 

SQL> @apexins.sql tablespace_apex tablespace_files tablespace_temp images














Now, Change Apex Admin Password:














Step 3: Configuring Oracle REST Data Services

Sql> @apex_rest_config.sql



 




Install ORDS Service:

$ java -jar ords.war install advanced



Now, Import Apex workspaces and Application:

$ sqlplus "/as sysdba"

alter session set current_schema = APEX_210100;

--Run the scripts to create the workspaces..!!

In my case I have created one shell script and executed all at once.

SQL> @/orahome/oracle/PROD/19.3.0/software/apex/utilities/Apex_WFexport.sql

 

Session altered.

 

 

Session altered.

 

--application/set_environment

WORKSPACE 1368305965994364

Creating workspace PRODICS...

Creating Groups...

Creating group grants...

Creating Users...

...RESTful Services

SCHEMA PRODICS - User Interface Defaults, Table Defaults

User Interface Defaults, Attribute Dictionary

...done

--application/set_environment

WORKSPACE 6468418341304004

Creating workspace XXFMPROJ...

Creating Groups...

Creating group grants...

Creating Users...

...RESTful Services

SCHEMA XXFMPROJ - User Interface Defaults, Table Defaults

User Interface Defaults, Attribute Dictionary

...done

--application/set_environment

WORKSPACE 1247603809411412

Creating workspace EXCELVENA...

Creating Groups...

Creating group grants...

Creating Users...

...RESTful Services

SCHEMA APPS - User Interface Defaults, Table Defaults

SCHEMA XXFMIT - User Interface Defaults, Table Defaults

User Interface Defaults, Attribute Dictionary

...done


Apex URL: http://localhost:8080/ords/apex_admin























~~~~~If you liked my Post please share OR Comment....Thanks !!

Tuesday, 6 July 2021

𝗖𝗥𝗘𝗔𝗧𝗜𝗡𝗚 𝗦𝗡𝗔𝗣𝗦𝗛𝗢𝗧 𝗦𝗧𝗔𝗡𝗗𝗕𝗬 𝗗𝗔𝗧𝗔𝗕𝗔𝗦𝗘 𝗜𝗡 𝗘𝗕𝗦 𝗥𝟭𝟮 𝗔𝗡𝗗 𝗔𝗣𝗟𝗟𝗜𝗖𝗔𝗧𝗜𝗢𝗡 𝗦𝗔𝗡𝗜𝗧𝗬 𝗖𝗛𝗘𝗖𝗞..!!

In PRIMARY DB:

SQL> Alter system set log_archive_dest_state_2=DEFER scope=both;

 

In STANDBY DB:

SQL> Alter database recover managed standby database cancel;

 

>> Wait to clear RFS files in progress….!!

SQL> shu immediate;                                                        


SQL> startup mount;


  In DR (Standby):

$ cd $TNS_ADMIN

Change the ifile - ASCPOCI_ascpoci105_ifile.ora entry to open application in DR Instance.

ASCPOCI =

  (DESCRIPTION =

    (ADDRESS_LIST =

#      (ADDRESS = (PROTOCOL = TCP)(HOST = ascpoci25.co.in)(PORT = 1521)) 

      (ADDRESS = (PROTOCOL = TCP)(HOST = ascpoci105.co.in)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SID = ASCPOCI)

    )

  )  


Note:- Primary host is ascpoci25.co.in (To open apps from DR we have to disable it and point to DR host)


In STANDBY DB (DR) Check the following parameters:




At First, Set the both db_recovery_file_dest parameters:









Convert to snapshot standby DB:








v  Now, login to application user.

         $ sqlplus apps/apps  [Use Source apps user password]

  • Run the below command to remove the Source Instance entries.

Note: After execution FND_CONC_CLEAN.SETUP_CLEAN >> COMMIT;
    


v  Run Autoconfig on DBTier  & APPS Tier:-

         $ cd /ascpoci/erp/12.1.0/appsutil/scripts/ASCPOCI_ascpoci105

          [oradev@vm4db DEV_vm4db]$  adautocfg.sh

          Enter the APPS user password:

    



v Start the Application tier.

                 $ cd $ADMIN_SCRIPTS_HOME

                 $ sh adstrtal.sh apps/<apps-password>

                                                      <weblogic-password

 

[ascpociappl@ascpoci105 ~]$ adopmnctl.sh status


You are running adopmnctl.sh version 120.0.12020000.2


Checking status of OPMN managed processes...


Processes in Instance: ASCPOCI_web_ASCPOCI_OHS1

---------------------------------+--------------------+---------+---------

ias-component                    | process-type       |     pid | status

---------------------------------+--------------------+---------+---------

ASCPOCI_web_ASCPOCI   | OHS                |   27620 | Alive



adopmnctl.sh: exiting with status 0

   

APPLICATION SANITY CHECK:

         v  Login as SYSADMIN to Application.

             Go to System administrator -> Concurrent Manager-> Submit a New Request->Single Request.

       



































































     v    Revert back to the Physical Standby database:

          At First, Stop the application service.

          $ cd $ADMIN_SCRIPTS_HOME

          $ adstpall.sh  apps/<apps-password>

                                 <weblogic-password>


   Now, Login to database as sysdba:

 [ascpocidb@ascpoci105 ~]$ sqlplus / as sysdba


 SQL> shu immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.


Total System Global Area 3.7413E+10 bytes

Fixed Size                  2261048 bytes

Variable Size            1.1677E+10 bytes

Database Buffers         2.5636E+10 bytes

Redo Buffers               98385920 bytes

Database mounted.



SQL> alter database convert to physical standby;


Database altered.


SQL> shu immediate;

ORA-01507: database not mounted



ORACLE instance shut down.



SQL> startup mount;

ORACLE instance started.


Total System Global Area 1.0689E+10 bytes

Fixed Size                  2262656 bytes

Variable Size            1577060736 bytes

Database Buffers         9093251072 bytes

Redo Buffers               16900096 bytes

Database mounted.


SQL> select name,open_mode,database_role,protection_mode from v$database;


NAME      OPEN_MODE   DATABASE_ROLE       PROTECTION_MODE

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

ASCPOCI   MOUNTED     PHYSICAL STANDBY  MAXIMUM PERFORMANCE