Wednesday, March 9, 2022

System Performance Commands

 

System Performance Commands

In this blog, I will be sharing some linux commands which might help you to understand the system’s internal activities.

Note: These commands are very safe to run on production environment other than strace.

Command            Usageuptime             Load Averagedmesg | tail       Kernal Errorsvmstat 1           Overall stats by timempstat -P ALL 1    CPU balanceiostat -xz 1       disk i/opidstat 1          process usagefree -m            Memory usagesar -n DEV 1       network i/osar -n TCP,ETCP 1  TCP statstop                check overview

How to monitor certain process only:

top -p 4360,4358ORhtop -p PID

Check Process tree(Useful to identify which parent process):

ps -ef f

show the connections an application is making including the port being used:

netstat -taucp | grep <pid or process name>

show open ports:

netstat -tulpn

Virtual memory Stats:

vmstat -Sm 1

System I/O:

iostat -xmdz 1

System Activity Reporter

sar -n DEV 1sar -n TCP,ETCP,DEV 1

Processor Related Statistics:

mpstat -P ALL 1

Socket Stats:

ss -s

System Call tracer:

strace -tttT -p 333strace -pt PID 2>&1 | head -100Note: Always use head -10 or so to get only first x call output otherwise it will show down system.

Sniff Packets:

tcpdump -i eth0 -w filenametcpdump -nr

Network Stats:

netstat -s

Process Stats:

pidstat -t 1

specify devices on which paging and swapping are to take place:

swapon -s (if swapon enabled)

LOSF:

lsof -iTCP -sTCP:ESTABLISHED

Friday, March 13, 2020

How to find failed connection attempts using listener log?


[oracle@dbhost01 trace]$ awk  '{ if ( $NF != 0 ) print $0 }' listener_scan1.log|head

11-MAR-2020 10:39:20 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=sqlplus.exe)(HOST=apphost01)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=39371)) * establish * ORCL * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
11-MAR-2020 10:39:20 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=sqlplus.exe)(HOST=apphost01)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=43478)) * establish * ORCL * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
11-MAR-2020 10:39:20 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=sqlplus.exe)(HOST=apphost01)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=39377)) * establish * ORCL * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
11-MAR-2020 10:39:20 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=sqlplus.exe)(HOST=apphost01)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=43484)) * establish * ORCL * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
11-MAR-2020 10:39:30 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=sqlplus.exe)(HOST=apphost01)(USER=oracle))) * (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=50217)) * establish * ORCL * 12505
[oracle@dbhost01 trace]$

Friday, February 21, 2020

Command for counting the ORA- errors in alert log file.

    As a DBA, one of the primary responsibility is morning the alert log and identifying the issues and fixing them. Some times we may need no of ORA errors and each error count. Using below mentioned command we can get the required output easily. Hope this helps someone.

/home/oracle$  grep -oh "\w*ORA-\w*" alert_ORCL.log |sort|uniq -c
      1 ORA-00028
    132 ORA-00060
      5 ORA-00202
      4 ORA-00206
      1 ORA-00221
      5 ORA-00235
      5 ORA-00245
      3 ORA-00272
/home/oracle$

Monday, November 4, 2019

Tablespace Utilization Script

How to check oracle tablespace report 
1. Check the database details.
2. Check the tablespace Utilization.
3. Check the details of the datafiles for a particular TableSpace which needs attention.
4. Resize or Add the datafiles as per the standards of the existing datafiles on the database.

1. Check the database details.
$ sqlplus "/as sysdba"

set pages 9999 lines 300
col OPEN_MODE for a10
col HOST_NAME for a30
select name DB_NAME,HOST_NAME,DATABASE_ROLE from v$database,v$instance;

2. Check the tablespace Utilization.
Tablespace Utilization Script including AUTOEXTEND (IN GB)
----------------------------------------------------------
$ sqlplus "/as sysdba"

set pages 50000 lines 32767
col tablespace_name format a30
col TABLESPACE_NAME heading "Tablespace|Name"
col Allocated_size heading "Allocated|Size(GB)" form 99999999.99
col Current_size heading "Current|Size(GB)" form 99999999.99
col Used_size heading "Used|Size(GB)" form 99999999.99
col Available_size heading "Available|Size(GB)" form 99999999.99
col Pct_used heading "%Used (vs)|(Allocated)" form 99999999.99

select a.tablespace_name
        ,a.alloc_size/1024/1024/1024 Allocated_size
        ,a.cur_size/1024/1024/1024 Current_Size
        ,(u.used+a.file_count*65536)/1024/1024/1024 Used_size
        ,(a.alloc_size-(u.used+a.file_count*65536))/1024/1024/1024 Available_size
        ,((u.used+a.file_count*65536)*100)/a.alloc_size Pct_used
from     dba_tablespaces t
        ,(select t1.tablespace_name
        ,nvl(sum(s.bytes),0) used
        from  dba_segments s
        ,dba_tablespaces t1
         where t1.tablespace_name=s.tablespace_name(+)
         group by t1.tablespace_name) u
        ,(select d.tablespace_name
        ,sum(greatest(d.bytes,nvl(d.maxbytes,0))) alloc_size
        ,sum(d.bytes) cur_size
        ,count(*) file_count
        from dba_data_files d
        group by d.tablespace_name) a
where t.tablespace_name=u.tablespace_name
and t.tablespace_name=a.tablespace_name
order by t.tablespace_name
/

Tablespace Utilization Script (including AUTOEXTEND) for generating report of more than 80 % used tablespaces (IN GB)
---------------------------------------------------------------------------------------------------------------------
set pages 50000 lines 32767
col tablespace_name format a30
col TABLESPACE_NAME heading "Tablespace|Name"
col Allocated_size heading "Allocated|Size(GB)" form 99999999.99
col Current_size heading "Current|Size(GB)" form 99999999.99
col Used_size heading "Used|Size(GB)" form 99999999.99
col Available_size heading "Available|Size(GB)" form 99999999.99
col Pct_used heading "%Used (vs)|(Allocated)" form 99999999.99

select a.tablespace_name
        ,a.alloc_size/1024/1024/1024 Allocated_size
        ,a.cur_size/1024/1024/1024 Current_Size
        ,(u.used+a.file_count*65536)/1024/1024/1024 Used_size
        ,(a.alloc_size-(u.used+a.file_count*65536))/1024/1024/1024 Available_size
        ,((u.used+a.file_count*65536)*100)/a.alloc_size Pct_used
from     dba_tablespaces t
        ,(select t1.tablespace_name
        ,nvl(sum(s.bytes),0) used
        from  dba_segments s
        ,dba_tablespaces t1
         where t1.tablespace_name=s.tablespace_name(+)
         group by t1.tablespace_name) u
        ,(select d.tablespace_name
        ,sum(greatest(d.bytes,nvl(d.maxbytes,0))) alloc_size
        ,sum(d.bytes) cur_size
        ,count(*) file_count
        from dba_data_files d
        group by d.tablespace_name) a
where t.tablespace_name=u.tablespace_name
and ((u.used+a.file_count*65536)*100)/a.alloc_size>80
and t.tablespace_name=a.tablespace_name
order by t.tablespace_name
/

3. Check the details of the datafiles for a particular TableSpace which needs attention.
Datafiles of a particular TableSpace:
------------------------------------
set pages 50000 lines 32767
col tablespace_name for a30
col CREATION_TIME for a15
col file_name for a70
select dd.tablespace_name TABLESPACE_NAME,dd.file_name,dd.bytes/1024/1024 Size_MB,dd.autoextensible,dd.maxbytes/1024/1024 MAXSIZE_MB,df.CREATION_TIME
from dba_data_files dd, v$datafile df where df.name=dd.file_name and tablespace_name='&TABLESPACENAME' order by 1,2,6;

Note:- If required, can get the DDL of a tablespace as below.

TABLESPACE DDL
--------------
set pagesize 0
SET LONG 9999999
select dbms_metadata.get_ddl('TABLESPACE','&TABLESPACE_NAME') FROM DUAL;

Monday, September 16, 2019

How to find OSDBA OSASM OSOPER group

How to find OSDBA or OSOPER or OSASM Group

What is OSDBA group

OSDBA or OSASM or OSOPER refers to the operating system groups,which are being assigned with the database privileges. This mapping takes place during the time of the installation.
# The DBA_GROUP is the OS group which is to be granted OSDBA privileges.
# The OPER_GROUP is the OS group which is to be granted OSOPER privileges.
# The OSASM_GROUP is the OS group which is to be granted OSASM privileges.
An important point to be noted is that, only the members or OSDBA group can connect to the database instance with SYSDBA a privilege using operating system authentication

Finding OSDBA group

Most of the time we can easily find out the information from group name of the owner of the Oracle Binaries. But there are chances that the ownership is changed in later point of time mostly accidental. So if we wanted to find out the values set up initially that is during the time of the installation the best method is to look into the configuration file created during the time of installation
#1 go to your $ORACLE_HOME/rdbms/lib
#2 grep for “define SS_” in config.c file
Eg :
[oracle@localhost]$ cd $ORACLE_HOME/rdbms/lib
 [oracle@wysheid12crac60 lib]$ grep “define SS_” config.c
#define SS_DBA_GRP “dba”
#define SS_OPER_GRP “dba”
#define SS_ASM_GRP “”
#define SS_BKP_GRP “dba”
#define SS_DGD_GRP “dba”
#define SS_KMT_GRP “dba”
[oracle@localhost ]$
 In this example we can see that DBA group is assigned with the OSDBA privilege
Alternatively you can find out this information from your installation log files if it is available.In most cases the installation log files will be available in the log directory in Oracle inventory location.
Hope this helps.

Thursday, July 4, 2019

Whats new in Exadata X8 Server 19.2 Exadata Database Machine?

This blog post quickly scan through the new features of Exadata Database Machine in 19.2 and also hardware capacity and change in Exadata X8 server.


  • Exadata Database Machine Software 19.2.0, supports Exadata X8-2 and X8-8 hardware
  • Changes in IORM's flashcachesize and Disk I/O limits attributes
  • To control the cost of Exadata storage, X8 introduced a new configuration, Exadata Storage Extended (XT)
  • The XT model comes with 14TB hard drives with HCC compression capacity
  • The XT model doesn't have flash drive
  • The lower cost storage option comes with one CPU, less memory and without the core feature of SQL offloading
  • Exadata X8 server has the below hardware capacity per rack:
    • Limit of 912 CPU core and 28 TB memory
    • 2-19 database servers
    • 3-18 cell storage
    • 920 TB of RAW flash capacity
    • 3 PB of RAW disk capacity

References:
http://jaffardba.blogspot.com/2019/04/whats-in-exadata-x8-server-192-exadata.html

https://www.oracle.com/a/ocom/docs/engineered-systems/exadata/exadata-x8-2-ds.pdf
https://docs.oracle.com/en/engineered-systems/exadata-database-machine/dbmso/whats-new-oracle-exadata-database-machine-19.2.html#GUID-B2A6BEAD-873A-4524-82EF-CDF53098820B

Sunday, March 25, 2018

Optimizer_mode – ALL_ROWS or FIRST_ROWS?

Out of all Oracle RDBMS modules, optimizer code is actually the most complicated code and different optimizer modes seem like jack while lifting your car in case of a puncture.


    This paper focuses on how optimizer behaves differently when you have optimizer mode set to ALL_ROWS or FIRST_ROWS.
Possible values for optimizer_mode = choose/ all_rows/ first_rows/ first_rows[n]
By default, the value of optimizer_mode is CHOOSE which basically means ALL_ROWS (if statistics on underlying tables exist) else RULE (if there are no statistics on underlying tables). So it is very important to have statistics collected on your tables on regular intervals or else you are living in Stone Age.
FIRST_ROWS and ALL_ROWS are both cost based optimizer features. You may use them according to their requirement.
FIRST_ROWS/ FIRST_ROWS[n]
In simple terms it ensures best response time of first few rows (n rows).
This mode is good for interactive client-server environment where server serves first few rows and by the time user scroll down for more rows, it fetches other. So user feels that he has been served the data he requested, but in reality the request is still pending and query is still fetching the data in background.
Best example for this is toad, if you click on data tab, it instantaneously start showing you data and you feel toad is faster than sqlplus, but the fact is if you scroll down, you will see the query is still running.
Ok, let us simulate this on SQLPLUS
Create a table and index over it:

SQL> create table test as select * from all_objects;

Table created.

SQL> create index test_in on test(object_type);

Index created.

SQL> exec dbms_stats.gather_table_stats(‘SAC’,'TEST')

PL/SQL procedure successfully completed.

SQL> select count(*) from test;

COUNT(*)
----------
37944

SQL> select count(*) from test where object_type='JAVA CLASS';

COUNT(*)
----------
14927

You see out of almost 38k records, 15k are of JAVA class. And now if you select the rows having object_type=’JAVA_CLASS’, it should not use index as almost half of the rows are JAVA_CLASS. It will be foolish of optimizer to read the index first and then go to table.
Check out the Explain plans


SQL> set autotrace traceonly exp
SQL> select * from test where object_type='JAVA CLASS';

Execution Plan
----------------------------------------------------------
Plan hash value: 1357081020

--------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1001 | 94094 | 10 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| TEST | 1001 | 94094 | 10 (0)| 00:00:01 |
--------------------------------------------------------------------------

As you see above, optimizer has not used Index we created on this table.
Now use FIRST_ROWS hint:

SQL> select /*+ FIRST_ROWS*/ * from test where object_type='JAVA CLASS';

Execution Plan
----------------------------------------------------------
Plan hash value: 3548301374

---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 14662 | 1345K| 536 (1)| 00:00:07 |
| 1 | TABLE ACCESS BY INDEX ROWID| TEST | 14662 | 1345K| 536 (1)| 00:00:07 |
|* 2 | INDEX RANGE SCAN | TEST_IN | 14662 | | 43 (3)| 00:00:01 |
---------------------------------------------------------------------------------------

In this case, optimizer has used the index.
Q> Why?
Ans> Because you wanted to see first few rows quickly. So, following your instructions oracle delivered you first few rows quickly using index and later delivering the rest.
See the difference in cost, although the response time (partial) of second query was faster but resource consumption was high.
But that does not mean that this optimizer mode is bad. As I said this mode may be good for interactive client-server model. In most of OLTP systems, where users want to see data fast on their screen, this mode of optimizer is very handy.
Important facts about FIRST_ROWS
  1. It gives preference to Index scan Vs Full scan (even when index scan is not good).
  2. It prefers nested loop over hash joins because nested loop returns data as selected (& compared), but hash join hashes one first input in hash table which takes time.
  3. Cost of the query is not the only criteria for choosing the execution plan. It chooses plan which helps in fetching first rows fast.
  4. It may be a good option to use this in an OLTP environment where user wants to see data as early as possible.

ALL_ROWS
In simple terms, it means better throughput
While FIRST_ROWS may be good in returning first few rows, ALL_ROWS ensures the optimum resource consumption and throughput of the query. In other words, ALL_ROWS is better to retrieve the last row first.
In above example while explaining FIRST_ROWS, you have already seen how efficient ALL_ROWS is.
Important facts about ALL_ROWS
  1. ALL_ROWS considers both index scan and full scan and based on their contribution to the overall query, it uses them. If Selectivity of a column is low, optimizer may use index to fetch the data (for example ‘where employee_code=7712’), but if selectivity of column is quite high ('where deptno=10'), optimizer may consider doing Full table scan. With ALL_ROWS, optimizer has more freedom to its job at its best.
  2. Good for OLAP system, where work happens in batches/procedures. (While some of the report may still use FIRST_ROWS depending upon the anxiety level of report reviewers)
  3. Likes hash joins over nested loop for larger data sets.

Conclusion
Cost based optimizer gives you flexibility to choose response time or throughput. So use them based on your business requirement.

Source of this post is: oracle-online-help.blogspot.in

Wednesday, June 29, 2016

Identification of under-performing disks in Exadata

Starting with Exadata software version 11.2.3.2, an under-performing disk can be detected and removed from an active configuration. This feature applies to both hard disks and flash disks.

About storage cell software processes

The Cell Server (CELLSRV) is the main component of Exadata software, which services I/O requests and provides advanced Exadata services, such as predicate processing offload. CELLSRV is implemented as a multithreaded process and is expected to use the largest portion of processor cycles on a storage cell.

The Management Server (MS) provides storage cell management and configuration tasks.

Disk state changes

Possibly under-performing - confined online

When a poor disk performance is detected by the CELLSRV, the cell disk status changes to 'normal - confinedOnline' and the physical diskstatus changes to 'warning - confinedOnline'. This is expected behavior and it indicates that the disk has entered the first phase of the identification of under-performing disk. This is a transient phase, i.e. the disk does not stay in this status for a prolonged period of time.

That disk status change would be associated with the following entry in the storage cell alerthistory:

[MESSAGE ID] [date and time] info "Hard disk entered confinement status. The LUN n_m changed status to warning - confinedOnline. CellDisk changed status to normal - confinedOnline. Status: WARNING - CONFINEDONLINE  Manufacturer: [name]  Model Number: [model]  Size: [size]  Serial Number: [S/N]  Firmware: [F/W version]  Slot Number: m  Cell Disk: [cell disk name]  Grid Disk: [grid disk 1], [grid disk 2] ... Reason for confinement: threshold for service time exceeded"

At the same time, the following will be logged in the storage cell alert log:

CDHS: Mark cd health state change [cell disk name]  with newState HEALTH_BAD_ONLINE pending HEALTH_BAD_ONLINE ongoing INVALID cur HEALTH_GOOD
Celldisk entering CONFINE ACTIVE state with cause CD_PERF_SLOW_ABS activeForced: 0 inactiveForced: 0 trigger HistoryFail: 0, forceTestOutcome: 0 testFail: 0
global conf related state: numHDsConf: 1 numFDsConf: 0 numHDsHung: 0 numFDsHung: 0
[date and time]
CDHS: Do cd health state change [cell disk name] from HEALTH_GOOD to newState HEALTH_BAD_ONLINE
CDHS: Done cd health state change  from HEALTH_GOOD to newState HEALTH_BAD_ONLINE
ABSOLUTE SERVICE TIME VIOLATION DETECTED ON DISK [device name]: CD name - [cell disk name] AVERAGE SERVICETIME: 130.913043 ms. AVERAGE WAITTIME: 101.565217 ms. AVERAGE REQUESTSIZE: 625 sectors. NUMBER OF IOs COMPLETED IN LAST CYCLE ON DISK: 23 THRESHOLD VIOLATION COUNT: 6 NON_ZERO SERVICETIME COUNT: 6 SET CONFINE SUCCESS: 1
NOTE: Initiating ASM Instance operation: Query ASM Deactivation Outcome on 3 disks
Published 1 grid disk events Query ASM Deactivation Outcome on DG [disk group name] to:
ClientHostName = [database node name],  ClientPID = 26502
Published 1 grid disk events Query ASM Deactivation Outcome on DG [disk group name] to:
ClientHostName = [database node name],  ClientPID = 28966
Published 1 grid disk events Query ASM Deactivation Outcome on DG [disk group name] to:
ClientHostName = [database node name],  ClientPID = 11912
...

Prepare for test - confined offline

The next action is to take all grid disks on the cell disk offline and run the performance tests on it. The CELLSRV asks ASM to take the grid disks offline and, if possible, the ASM takes the grid disks offline. In that case, the cell disk status changes to 'normal - confinedOffline' and the physical disk status changes to 'warning - confinedOffline'.

That action would be associated with the following entry in the cell alerthistory:

[MESSAGE ID] [date and time] warning "Hard disk entered confinement offline status. The LUN n_m changed status to warning - confinedOffline. CellDisk changed status to normal - confinedOffline. All subsequent I/Os on this disk are failed immediately. Confinement tests will be run on the disk to determine if the disk should be dropped. Status: WARNING - CONFINEDOFFLINE  Manufacturer: [name]  Model Number: [model]  Size: [size]  Serial Number: [S/N]  Firmware: [F/W version]  Slot Number: m  Cell Disk: [cell disk name]  Grid Disk: [grid disk 1], [grid disk 2] ... Reason for confinement: threshold for service time exceeded"
The following will be logged in the storage cell alert log:
NOTE: Initiating ASM Instance operation: ASM OFFLINE disk on 3 disks
Published 1 grid disk events ASM OFFLINE disk on DG [disk group name] to:
ClientHostName = [database node name],  ClientPID = 28966
Published 1 grid disk events ASM OFFLINE disk on DG [disk group name] to:
ClientHostName = [database node name],  ClientPID = 31801
Published 1 grid disk events ASM OFFLINE disk on DG [disk group name] to:
ClientHostName = [database node name],  ClientPID = 26502
CDHS: Do cd health state change [cell disk name] from HEALTH_BAD_ONLINE to newState HEALTH_BAD_OFFLINE
CDHS: Done cd health state change  from HEALTH_BAD_ONLINE to newState HEALTH_BAD_OFFLINE

Note that ASM will take the grid disks offline if possible. That means that ASM will not offline any disks if that would result in the disk group dismount. For example if a partner disk is already offline, ASM will not offline this disk. In that case, the cell disk status will stay at 'normal - confinedOnline' until the disk can be safely taken offline.

In that case, the CELLSRV will repeatedly log 'Query ASM Deactivation Outcome' messages in the cell alert log. This is expected behavior and the messages will stop once ASM can take the grid disks offline.

Under stress test

Once all grid disks are offline, the MS runs the performance tests on the cell disk. If it turns out that the disk is performing well, MS will notify CELLSRV that the disk is fine. The CELLSRV will then notify ASM to put the grid disks back online.

Poor performance - drop force

If the MS finds that the disk is indeed performing poorly, the cell disk status will change to 'proactive failure' and the physical disk status will change to 'warning - poor performance'. Such disk will need to be removed from an active configuration. In that case the MS notifies the CELLSRV, which in turn notifies ASM to drop all grid disks from that cell disk.

That action would be associated with the following entry in the cell alerthistory:

[MESSAGE ID] [date and time] critical "Hard disk entered poor performance status. Status: WARNING - POOR PERFORMANCE Manufacturer: [name] Model Number: [model]  Size: [size]  Serial Number: [S/N] Firmware: [F/W version] Slot Number: m Cell Disk: [cell disk name]  Grid Disk: [grid disk 1], [grid disk 2] ... Reason for poor performance : threshold for service time exceeded"
The following will be logged in the storage cell alert log:
CDHS: Do cd health state change  after confinement [cell disk name] testFailed 1
CDHS: Do cd health state change [cell disk name] from HEALTH_BAD_OFFLINE to newState HEALTH_FAIL
NOTE: Initiating ASM Instance operation: ASM DROP dead disk on 3 disks
Published 1 grid disk events ASM DROP dead disk on DG [disk group name] to:
ClientHostName = aodpdb02.clorox.com,  ClientPID = 28966
Published 1 grid disk events ASM DROP dead disk on DG [disk group name] to:
ClientHostName = aodpdb03.clorox.com,  ClientPID = 11912
Published 1 grid disk events ASM DROP dead disk on DG [disk group name] to:
ClientHostName = aodpdb04.clorox.com,  ClientPID = 26502
CDHS: Done cd health state change  from HEALTH_BAD_OFFLINE to newState HEALTH_FAIL

In the ASM alert log we will see the drop disk force operations for the respective grid disks, followed by the disk group rebalance operation.

Once the rebalance completes the problem disk should be replaced, by following the same process as for a disk with the status predictive failure.

All well - back to normal

If the MS tests determine that there are no performance issues with the disk, it will pass that information onto CELLSRV, which will in turn ask ASM to put the grid disks back online. The cell and physical disk status will change back to normal.

Disk confinement triggers

Any of the following conditions can trigger a disk confinement:
  1. Hung cell disk (the cause code in the storage cell alert log will be CD_PERF_HANG).
  2. Slow cell disk, e.g. high service time threshold (CD_PERF_SLOW_ABS), high relative service time threshold (CD_PERF_SLOW_RLTV), etc.
  3. High read or write latency, e.g. high latency on writes (CD_PERF_SLOW_LAT_WT), high latency on reads (CD_PERF_SLOW_LAT_RD), high latency on both reads and writes (CD_PERF_SLOW_LAT_RW), very high absolute latency on individual I/Os happening frequently (CD_PERF_SLOW_LAT_ERR), etc.
  4. Errors, e.g. I/O errors (CD_PERF_IOERR).
Conclusion

As a single underperforming disk can impact overall system performance, a new feature has been introduced in Exadata to identify and remove such disks from an active configuration. This is fully automated process that includes an automatic service request (ASR) for disk replacement.

Oracle recently published this on MOS as Doc ID 1509105.1.

This is taken from asmsupportguy.Blogspot.com

OEM Grid Agent command to list it’s targets

Here is the command to find the target of an OEM Agent.

./emctl config agent listtargets
Here is the example of the command
oracle@dbsrvr1:/app/oracle/product/em/agent11g/bin $ ./emctl config agent listtargets
Oracle Enterprise Manager 11g Release 1 Grid Control 11.1.0.1.0
Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
[dbsrvr1.production.dorvin.org:3872, oracle_emd]
[usrncwd, cluster]
[LIS_RCATP_01_dbsrvr1.production.dorvin.org, oracle_listener]
[LISTENER_dbsrvr1_dbsrvr1.production.dorvin.org, oracle_listener]
[pla31p.dorvin_pla31p1, oracle_database]
[son49p.dorvin, rac_database]
[+ASM1_dbsrvr1.production.dorvin.org, osm_instance]
[dbsrvr1.production.dorvin.org, host]
[rcatp.dorvin, oracle_database]

Sunday, December 13, 2015

Exadata Storage Cell Commands Cheat Sheet

It is not an easy to remember the commands since most of the UNIX administrators are working on multiple Operating systems and different  OS flavors. Exadata and ZFS appliance are adding additional responsibility to Unix administrator and need to remember those appliance commands as well. This article will provide the reference to all Exadata storage cell commands with examples for some complex command options.

All the below mentioned commands will work only on cellcli prompt.

Listing the Exadata Storage cell Objects (LIST)

CommandDescriptionExamples
cellcliTo Manage the Exadata  cell Storage[root@uaexacell1 init.d]# cellcli
CellCLI: Release 11.2.3.2.1 – Production on Tue Nov 18 02:16:03 GMT+05:30 2014
Copyright (c) 2007, 2012, Oracle.  All rights reserved.
Cell Efficiency Ratio: 1CellCLI>
LIST CELLList the Cell StatusCellCLI> LIST CELL
uaexacell1      online
CellCLI>
LIST LUNTo list all the physical Drive & Flash drives
LIST PHYSICALDISKTo list all the physical Drive & Flash drives
 LIST LUN where celldisk = <celldisk>To list the LUN which is mapped to specific diskCellCLI> LIST LUN where celldisk = FD_13_uaexacell1
FLASH13  FLASH13   normal
LIST CELL DETAILList the cell Status with all attributesCellCLI> LIST CELL DETAIL
name:                   uaexacell1
bbuTempThreshold:       60
bbuChargeThreshold:     800
bmcType:                absent
LIST CELL attributes  <attribute>To list the specific cell attributesCellCLI> LIST CELL attributes flashCacheMode
WriteThrough
LIST CELLDISKList all the cell DisksCellCLI> LIST CELLDISK
CD_DISK00_uaexacell1    normal
CD_DISK01_uaexacell1    normal
LIST CELLDISK DETAILList all the cell Disks with Detailed informationCellCLI> LIST CELLDISK detail
name:                   FD_13_uaexacell1
comment:
creationTime:           2014-11-15T01:46:57+05:30
deviceName:             0_0
devicePartition:        0_0
diskType:               FlashDisk
LIST CELLDISK <CELLDISK> detailTO list the Specific celldisk detailCellCLI>  LIST CELLDISK FD_00_uaexacell1 detail
name:                   FD_00_uaexacell1
comment:
creationTime:           2014-11-15T01:46:56+05:30
LIST CELLDISK where disktype=harddiskTo list the celldisk which are created using harddiskCellCLI> LIST CELLDISK where disktype=harddisk
CD_DISK00_uaexacell1    normal
CD_DISK01_uaexacell1    normal
CD_DISK02_uaexacell1    normal
LIST CELLDISK where disktype=flashdiskTo list the celldisk which are created using FlashdiskCellCLI> LIST CELLDISK where disktype=flashdisk
FD_00_uaexacell1        normal
FD_01_uaexacell1        normal
FD_02_uaexacell1        normal
LIST CELLDISK where freespace > SIZETo list the celldisks which has more than specificed sizeCellCLI>  LIST CELLDISK where freespace > 50M
FD_00_uaexacell1        normal
FD_01_uaexacell1        normal
LIST FLASHCACHETo list the configured FLASHCACHE
LIST FLASHCACHE DETAILTo list the configured FLASHCACHE in detail
LIST FLASHLOGTo list the configured FLASHLOG
LIST FLASHLOG DETAILTo list the configured FLASHLOG in detail
LIST FLASHCACHECONTENTTo list the Flashcache content
LIST GRIDDISKTo list the griddisksCellCLI> LIST GRIDDISK
DATA01_CD_DISK00_uaexacell1     active
DATA01_CD_DISK01_uaexacell1     active
LIST GRIDDISK DETAILTo list the griddisks in detailCellCLI>  LIST GRIDDISK DETAIL
name:                   DATA01_CD_DISK00_uaexacell1
availableTo:
cachingPolicy:          default
cellDisk:               CD_DISK00_uaexacell1
LIST GRIDDISK <GRIDDISK_NAME>To list the specific GriddiskCellCLI> LIST GRIDDISK DATA01_CD_DISK00_uaexacell1
DATA01_CD_DISK00_uaexacell1     active
LIST GRIDDISK <GRIDDISK_NAME> detailTo list the specific Griddisk in detailCellCLI>  LIST GRIDDISK DATA01_CD_DISK00_uaexacell1 detail
name:                   DATA01_CD_DISK00_uaexacell1
availableTo:
cachingPolicy:          default
cellDisk:               CD_DISK00_uaexacell1
LIST GRIDDISK where size > SIZETo list the griddisk which size is higher than specified valueCellCLI> LIST GRIDDISK where size > 750M
DATA01_CD_DISK00_uaexacell1     active
LIST IBPORTTo list the inifiniband Port
LIST IORMPLANTo list the IORMPLANCellCLI> LIST IORMPLAN
uaexacell1_IORMPLAN     active
LIST IORMPLAN DETAILTo list the IORMPLAN  in DETAILCellCLI> LIST IORMPLAN DETAIL
name:                   uaexacell1_IORMPLAN
catPlan:
dbPlan:
objective:              basic
status:                 active
LIST METRICCURRENTTo get the I/O’s second for all the objectsCellCLI>  LIST METRICCURRENT
CD_BY_FC_DIRTY                  CD_DISK00_uaexacell1                            0.000 MB
CD_BY_FC_DIRTY                  CD_DISK01_uaexacell1                            0.000 MB
CD_BY_FC_DIRTY                  CD_DISK02_uaexacell1                            0.000 MB
CD_BY_FC_DIRTY                  CD_DISK03_uaexacell1                            0.000 MB
LIST METRICCURRENT cl_cput, cl_runq detailTo list the RUNQCellCLI> list metriccurrent cl_cput, cl_runq detail
name:                   CL_CPUT
alertState:             normal
collectionTime:         2014-11-18T02:42:26+05:30
metricObjectName:       uaexacell1
metricType:             Instantaneous
metricValue:            4.7 %
objectType:             CELLname:                   CL_RUNQ
alertState:             normal
collectionTime:         2014-11-18T02:42:26+05:30
metricObjectName:       uaexacell1
metricType:             Instantaneous
metricValue:            12.2
objectType:             CELL
LIST QUARANTINETo list the QUARANTINE disk
LIST QUARANTINE detailTo list the QUARANTINE disk in detail
 LIST THRESHOLDTo list the thersold limits
LIST THRESHOLD DETAILTo list the thersold limits in detail
LIST ACTIVEREQUESTTo list the active Requests
LIST ALERTHISTORYTo list the alerts

CREATING the Exadata Storage cell Objects (CREATE)

The below commands will be used most commonly on exadata storage to create the virtual objects.
CREATE CELL  <CELL_NAME> interconnect1=<ethx>Configures the cell networkCellCLI> CREATE CELL uaexacell1  interconnect1=eth1
Cell uaexacell1 successfully created
Starting CELLSRV services…
The STARTUP of CELLSRV services was successful.
Flash cell disks, FlashCache, and FlashLog will be created.
CREATE CELLDISK <CELLDISK_NAME>  <LUN>Creates cell disk(s) according to attributes provided. CREATE CELLDISK UADBG1  LUN=00_00
CREATE CELLDISK ALL HARDISKCreates cell disk(s) on all the harddisksCellCLI> CREATE CELLDISK ALL HARDDISK
CellDisk CD_DISK00_uaexacell1 successfully created
CellDisk CD_DISK01_uaexacell1 successfully created
CellDisk CD_DISK02_uaexacell1 successfully created
CREATE CELLDISK ALLCreates cell disk(s) on all the harddisks & flashdisksCellCLI> CREATE CELLDISK ALL
CellDisk CD_DISK00_uaexacell1 successfully created
CREATE CELLDISK ALL FLASHDISKCreates cell disk(s) on all the  flashdisksCellCLI> CREATE CELLDISK ALL FLASHDISK
CellDisk FD_00_uaexacell1 successfully created
CREATE FLASHCACHE celldisk=”Flash_celldisk1″Creates flash cache for IO requests on specific flashdiskCellCLI> CREATE FLASHCACHE celldisk=”FD_00_uaexacell1,FD_01_uaexacell1″, size=500M
CREATE FLASHCACHE  ALL size = <size>Creates flash cache for IO requests on all devices
with specific size
CREATE FLASHCACHE  ALL size = 10G
CREATE FLASHLOG  celldisk=”Flash_celldisk1″Creates flash log for logging requests on specified flashdiskCellCLI> CREATE FLASHLOG celldisk=”FD_00_uaexacell1,FD_01_uaexacell1″, size=500M
CREATE FLASHLOG  ALL size = <size>Creates flash log for logging requests on all devices
with specific size
CREATE FLASHLOG  ALL size = 252M
CREATE GRIDDISK  <GRIDDISK_NAME> CELLDISK=<celldisk>Creates grid disk on specific diskCellCLI> CREATE GRIDDISK UADBDK1 CELLDISK=CD_DISK00_uaexacell1
GridDisk UADBDK1 successfully created
CellCLI>
CREATE GRIDDISK  <GRIDDISK_NAME> CELLDISK=<celldisk>, size=<size>Creates grid disk  on specific disk with specific sizeCellCLI> CREATE GRIDDISK UADBDK2 CELLDISK=CD_DISK02_uaexacell1, SIZE=100M
GridDisk UADBDK2 successfully created
CellCLI>
CREATE GRIDDISK ALL  HARDDISK PREFIX=<Disk_Name>, size=<size>Create Grid disks on all the harddisk with specific size.CellCLI> CREATE GRIDDISK ALL  HARDDISK PREFIX=UADBPROD, size=100M
Cell disks were skipped because they had no freespace for grid disks: CD_DISK00_uaexacell1.
GridDisk UADBPROD_CD_DISK01_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK02_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK03_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK04_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK05_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK06_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK07_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK08_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK09_uaexacell1 successfully created
GridDisk UADBPROD_CD_DISK10_uaexacell1 successfully created
CREATE GRIDDISK ALL  FLASHDISK PREFIX=<Disk_Name>, size=<size>Create Grid disks on all the flashdisk with specific size.CellCLI> CREATE GRIDDISK ALL FLASHDISK PREFIX=UAFLSHDB, size=100M
GridDisk UAFLSHDB_FD_00_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_01_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_02_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_03_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_04_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_05_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_06_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_07_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_08_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_09_uaexacell1 successfully created
GridDisk UAFLSHDB_FD_10_uaexacell1 successfully created
CREATE KEYCreates and displays random key for use in assigning client keys.CellCLI> CREATE KEY
1820ef8f9c2bafcd12e15ebfe267abad
CellCLI>
CREATE QUARANTINE quarantineType=<“SQLID” or “DISK REGION” or \
“SQL PLAN” or “CELL OFFLOAD”> attributename=value
Define the attributes for a new quarantine entityCellCLI> CREATE QUARANTINE quarantineType=”SQLID”, sqlid=”5xnjp4cutc1s8″
Quarantine successfully created.
CellCLI>
CREATE THRESHOLD <Thersold1>   attributename=valueDefines conditions for generation of a metric alert.CellCLI> CREATE THRESHOLD db_io_rq_sm_sec.db123  comparison=’>’, critical=120
Threshold db_io_rq_sm_sec.db123 successfully created
CellCLI>

DELETING the Exadata Storage cell Objects (DROP)

The below mentioned cellcli commands will help you to remove the various objects on the exadata storage cell. Be carefully with “force” option since it can remove the object even though it is in use.
DROP ALERTHISTORY <ALER1>, <ALERT2>Removes the specific alert from the cell’s alert history.CellCLI> DROP ALERTHISTORY 2
Alert 2 successfully dropped
CellCLI>
DROP ALERTHISTORY ALLRemoves all alert from the cell’s alert history.CellCLI> DROP ALERTHISTORY ALL
Alert 1_1 successfully dropped
Alert 1_2 successfully dropped
Alert 1_3 successfully dropped
Alert 1_4 successfully dropped
Alert 1_5 successfully dropped
Alert 1_6 successfully dropped
DROP THRESHOLD <THERSOLD>Removes specific threshold from the cellCellCLI> DROP THRESHOLD db_io_rq_sm_sec.db123
Threshold db_io_rq_sm_sec.db123 successfully dropped
CellCLI>
DROP THRESHOLD ALLRemoves all  threshold from the cellCellCLI> DROP THRESHOLD ALL
DROP QUARANTINE <quarantine1>Removes quarantine from the cellCellCLI> DROP QUARANTINE QADB1
DROP QUARANTINE ALLRemoves all the quarantine from the cellCellCLI> DROP QUARANTINE ALL
DROP GRIDDISK <Griddisk_Name>Removes the specific grid disk from the cellCellCLI> DROP GRIDDISK UADBDK1
GridDisk UADBDK1 successfully dropped
CellCLI>
DROP GRIDDISK ALL PREFIX=<GRIDDISK_STARTNAME>Removes the set of grid disks from the cell by using the prefixCellCLI> DROP GRIDDISK ALL PREFIX=UAFLSHDB
GridDisk UAFLSHDB_FD_00_uaexacell1 successfully dropped
GridDisk UAFLSHDB_FD_01_uaexacell1 successfully dropped
GridDisk UAFLSHDB_FD_02_uaexacell1 successfully dropped
GridDisk UAFLSHDB_FD_03_uaexacell1 successfully dropped
GridDisk UAFLSHDB_FD_04_uaexacell1 successfully dropped
GridDisk UAFLSHDB_FD_05_uaexacell1 successfully dropped
DROP GRIDDISK  <GRIDDISK> ERASE=1passRemoves the specific  grid disks from the cell and Performs secure data deletion on the grid diskCellCLI> DROP GRIDDISK  UADBPROD_CD_DISK10_uaexacell1 ERASE=1pass
GridDisk UADBPROD_CD_DISK10_uaexacell1 successfully dropped
CellCLI>
DROP GRIDDISK  <GRIDDISK> FORCEDrops grid disk even if it is currently active.CellCLI> DROP GRIDDISK  UADBPROD_CD_DISK08_uaexacell1 FORCE
GridDisk UADBPROD_CD_DISK08_uaexacell1 successfully dropped
DROP GRIDDISK ALL HARDDISKDrops griddisks which are created on top of hardiskDROP GRIDDISK ALL HARDDISK

Modifying  the Exadata Storage cell Objects (ALTER)

The below mentioned commands will help you to modify the cell attributes and various objects setting. ALTER command will be used to perform the start/stop/restart the MS/RS/CELLSRV services as well.
ALTER ALERTHISTORY 123 examinedby=<user_name>Sets the examinedby attribute of alerts ALTER ALERTHISTORY 123 examinedby=lingesh
ALTER CELL RESTART SERVICES ALLAll(RS+CELLSRV+MS) services are restartedCellCLI>ALTER CELL RESTART SERVICES ALL
ALTER CELL RESTART SERVICES < RS | MS | CELLSRV >To restart specific servicesCellCLI>ALTER CELL RESTART SERVICES RS
CellCLI>ALTER CELL RESTART SERVICES MS
CellCLI>ALTER CELL RESTART SERVICES CELLSRV
ALTER CELL SHUTDOWN SERVICES ALLAll(RS+CELLSRV+MS) services will be haltedCellCLI>ALTER CELL SHUTDOWN SERVICES
ALTER CELL SHUTDOWN SERVICES < RS | MS | CELLSRV >To shutdown specfic serviceCellCLI>ALTER CELL SHUTDOWN SERVICES RS
CellCLI>ALTER CELL SHUTDOWN SERVICES MS
CellCLI>ALTER CELL SHUTDOWN SERVICES CELLSRV
ALTER CELL STARTUP SERVICES ALLAll(RS+CELLSRV+MS) services will be startedCellCLI>ALTER CELL STARTUP SERVICES
ALTER CELL STARTUP SERVICES < RS | MS | CELLSRV >To start specific ServiceCellCLI>ALTER CELL STARTUP SERVICES RS
CellCLI>ALTER CELL STARTUP SERVICES MS
CellCLI>ALTER CELL STARTUP SERVICES CELLSRV
ALTER CELL NAME=<Name>To Set the Name/Re-name to the Exadata Storage CellCellCLI> ALTER CELL NAME=UAEXACELL1
Cell UAEXACELL1 successfully altered
CellCLI>
ALTER CELL flashCacheMode=WriteBackTo Modify the flashcache mode to writeback from writethrough. To perform this,You need to drop the flashcache & Stop the cellsrv .Then you need to create the new FlashcacheCellCLI> DROP flashcache
Flash cache UAEXACELL1_FLASHCACHE successfully dropped
CellCLI>
CellCLI> ALTER CELL SHUTDOWN SERVICES CELLSRV
Stopping CELLSRV services…
The SHUTDOWN of CELLSRV services was successful.
CellCLI>
CellCLI>  ALTER CELL flashCacheMode=WriteBack
Cell UAEXACELL1 successfully altered
CellCLI>
CellCLI> CREATE FLASHCACHE celldisk=”FD_00_uaexacell1,FD_01_uaexacell1″, size=500M
ALTER CELL interconnect1=<Network_Interface>To set the network interface for cell stroage.CellCLI> ALTER CELL INTERCONNECT1=eth1
A restart of all services is required to put new network configuration into effect. MS-CELLSRV communication may be hampered until restart.Cell UAEXACELL1 successfully altered
ALTER CELL LED OFFThe chassis LED is turned   off.CellCLI> ALTER CELL LED OFF
ALTER CELL LED ONThe chassis LED is turned   on.CellCLI> ALTER CELL LED ON
ALTER CELL smtpServer='<SMTP_SERVER>’Set the SMTP serverCellCLI> ALTER CELL smtpServer=’myrelay.unixarena.com’
ALTER CELL smtpFromAddr='<myaddress@mydomain.com>’Set the Email From AddressCellCLI> ALTER CELL smtpFromAddr=’uacell@unixarena.com’
ALTER CELL smtpToAddr='<myemail@mydomain.com>’Send the alrets to this Email  AddressCellCLI> ALTER CELL smtpToAddr=’lingeshwaran.rangasamy@gmail.com’
ALTER CELL smtpFrom='<myhostname>’Alias host name for emailCellCLI> ALTER CELL smtpFrom=’uaexacell1′
ALTER CELL smtpPort=’25’Set the SMTP portCellCLI> ALTER CELL smtpPort=’25’
ALTER CELL smtpUseSSL=’TRUE’Make the smtp to use SLLCellCLI> ALTER CELL smtpUseSSL=’TRUE’
ALTER CELL notificationPolicy=’critical,warning,clear’Send the alrets for critical,warning and clearCellCLI> ALTER CELL notificationPolicy=’critical,warning,clear’
ALTER CELL notificationMethod=’mail’Set the notification method as emailCellCLI> ALTER CELL notificationMethod=’mail’
ALTER CELLDISK <existing_celldisk_name> name='<new_cell_name>’,Modify’s the celldisk nameCellCLI> ALTER CELLDISK CD_DISK00_uaexacell1 name=’UACELLD’, comment=’Re-named for UnixArena’
comment='<comments>’CellDisk UACELLD successfully altered
ALTER CELLDISK ALL HARDDISK FLUSHDirty blocks for all harddisk will be flushedCellCLI> ALTER CELLDISK ALL HARDDISK FLUSH
ALTER CELLDISK ALL HARDDISK FLUSH NOWAITAllows alter command to complete while flush operation continues on all harddisksCellCLI> ALTER CELLDISK ALL HARDDISK FLUSH NOWAIT
Flash cache flush is in progress
CellCLI>
ALTER CELLDISK ALL HARDDISK CANCEL FLUSHPrevious flush operation on all harddisk will be terminatedCellCLI> ALTER CELLDISK ALL HARDDISK CANCEL FLUSH
CellDisk CD_DISK02_uaexacell1 successfully altered
CellDisk CD_DISK03_uaexacell1 successfully altered
CellDisk CD_DISK04_uaexacell1 successfully altered
CellDisk CD_DISK05_uaexacell1 successfully altered
ALTER CELLDISK <CELLDISK> FLUSHDirty blocks for specific  celldisk will be flushedCellCLI> ALTER CELLDISK  CD_DISK02_uaexacell1
ALTER CELLDISK  <CELLDISK> FLUSH  NOWAITAllows alter command to complete while flush operation continues on specific celldiskCellCLI> ALTER CELLDISK  CD_DISK02_uaexacell1 FLUSH NOWAIT
Flash cache flush is in progress
 ALTER FLASHCACHE ALL size=<size>Resize the all Flash celldisks to specified size ALTER FLASHCACHE ALL size=100G
ALTER FLASHCACHE ALLAll the flashsdisks will be assigned to FlashcacheCellCLI> ALTER FLASHCACHE ALL
Flash cache uaexacell1_FLASHCACHE altered successfully
ALTER FLASHCACHE
CELLDISK='<Flashcelldisk1>,<Flashcelldisk2>’
The specified Flashcell disks be assigned to Flashcache &CellCLI>  ALTER FLASHCACHE CELLDISK=’FD_09_uaexacell1,FD_04_uaexacell1′
other flashdisks will be removedFlash cache uaexacell1_FLASHCACHE altered successfully
ALTER FLASHCACHE ALL FLUSHDirty blocks for all Flashdisks will be flushedCellCLI> ALTER FLASHCACHE ALL
ALTER FLASHCACHE ALL  CANCEL FLUSHPrevious flush operation on all Flashdisk will be terminatedCellCLI> ALTER FLASHCACHE ALL CANCEL FLUSH
Flash cache uaexacell1_FLASHCACHE altered successfully
ALTER FLASHCACHE ALL FLUSH NOWAITAllows alter command to complete while flush operationCellCLI> ALTER FLASHCACHE ALL FLUSH NOWAIT
continues on all the flash celldiskFlash cache flush is in progress
ALTER FLASHCACHE CELLDISK=<FLASH-CELLDISK> FLUSHDirty blocks for specific  flash celldisk will be flushedCellCLI> ALTER FLASHCACHE CELLDISK=FD_04_uaexacell1 FLUSH
Flash cache uaexacell1_FLASHCACHE altered successfully
ALTER FLASHCACHE
CELLDISK=<FLASH-CELLDISK> CANCEL FLUSH
Previous flush operation on specific flash celldisk will be terminatedCellCLI> ALTER FLASHCACHE CELLDISK=FD_04_uaexacell1 CANCEL FLUSH
Flash cache uaexacell1_FLASHCACHE altered successfully