You have few free space in the current diskgroup where your principal database is running, you have requested your manager more disks in order to increase the free space, your manager contacted Storage Team and finally you have the approval for adding 10 disks to your current diskgroup. Since all those 10 disks have to be added at the same time and since the database has around 1 TB you are worried because you believe the rebalance activity will take a lot of time impacting in business hours, you have to create a plan and decide either using a high value for asm_power_limit impacting the performance of your principal database or using a low value for asm_power_limit impacting (maybe) the business hours. So that you are thinking about how many hours the rebalance operation will take using low asm_power_limit value, you believe that using low value you will not impact the performance and also you will not impact the business hours because the rebalance activity will finish at an acceptable time, that is what we will try to find out, a way in order to have a clue regarding the duration of the rebalance operation which is given directly by the amount of MBs that has to be reallocated.by
I have heard many times from many DBAs that when a data block corruption happen in a disk which is part of a Diskgroup using normal redundancy, only the mirror block will take care of the coming database read operations but if another corruption happens in the mirror block the rows of the object saved in that block will not be accessible anymore. Then we have to restore the object via export/import or using another method.
Note: It is always possible to skip the corrupted data block using DBMS_REPAIR.SKIP_CORRUPT_BLOCKS.
When I hear that, I always have to correct them and tell them that that is only a myth because ASM doesn’t work that way and ASM is more intelligent that they think. I usually explain them how ASM recover the data block corrupted and how does it work after the recovering. All those things were the main aim that I had in order to write this article, explaining through examples and at the end give a conclusion about this recovering behavior.
“When the primary data block get corrupted the secondary data block becomes in the primary data block but if that data block get corrupted the rows in it will not be accessible anymore”.by
Some people still think that the ASM is which performs all IO activity of our database, I have seen several DBAs worried about to use ASM because of the database will have a new "IO Layer", that is absolutely false because the ASM instance perform a few IO tasks, the most IO task are performed by the database instance and that is the goal of this article, to explain how the ASM instance and database instance work together in order to perform the IO operations. Through this article we will talk about the File extent Map, the ab_<ASM SID>.dat file, the importance of the Shared pool when we are using ASM, and so on. The most important thing here is that you (the reader) understand how the IO operations are performed when you are using ASM.
What is the "ab_<ASM SID>.dat" file? This file is used by the database instance in order to messages ASM instance. When the database instance needs to send a message to the ASM instance, the database instance reads this file in order to find out the enough information for getting connected to ASM instance. This file is in $ORACLE_HOME/dbs. If this file doesn't exist the database will not be able to connect to ASM instance and you will receive an error. This file is important because is involved in the database instance work.by
What about if you didn't like AFD and you want to come back to ASMLib? Well just follow the following steps and you will have all your diskgroups using ASMLIB again
[root@db12102 ~]# crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'db12102'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'db12102'
CRS-2673: Attempting to stop 'ora.evmd' on 'db12102'
CRS-2673: Attempting to stop 'ora.asm' on 'db12102'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'db12102' succeeded
CRS-2677: Stop of 'ora.evmd' on 'db12102' succeeded
CRS-2677: Stop of 'ora.asm' on 'db12102' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'db12102'
CRS-2677: Stop of 'ora.cssd' on 'db12102' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'db12102' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@db12102 ~]# acfsload stopby
Well, in this blog post you will find information about how to migrate your disks in order to use AFD, keep in mind that in my environment I am using only one database and also one 1 Diskgroup, if you are planning to migrate from ASMLIb to AFD I recommend to migrate all your diskgroups.
To know which diskgroups I have:
[grid@db12102 trace]$ asmcmd lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 4096 1048576 31455 29491 0 29491 0 N DATA/
What is the path of each disk used by my diskgroups? Remember to list all the disks used by all your diskgrups.
[grid@db12102 trace]$ asmcmd lsdsk -G data
All started when I finished my conference about ASM in the OTN Tour 2014 Brazil, after my conference I gave 5 minutes of questions about my presentations, at that moment Fernando Simon asked me about the new "ASM Filter Driver (AFD)", his question was "will ASM Filter Driver replace ASMLib?" I couldn't answer that question because at that moment I didn't know anything about ASM Filter Driver, and the reason was that the OTN Tour in Brazil was on August 2, and ASM Filter Driver was released in 22.214.171.124 just 2 weeks before my conference, that concept was new for me at that moment. As I promised him, Now I am writing these articles in order to introduce the new ASM Filter Driver to the community.
- Introduction to ASM Filter Driver (AFD)
- How to migrate disks from ASMLib to ASM Filter Driver (GI Standalone Environment)
- How to migrate disks from ASM Filter Driver to ASMLib (GI Standalone Environment)
- How to migrate disks from ASMLib to ASM Filter Driver (GI Cluster Environment)
- How to migrate disks from ASM Filter Driver to ASMLib (GI Cluster Environment)
When I was investigating about ASM Filter Driver I read two articles written by @flashdba that I recommend to read as well:by
En versiones anteriores a 12c, teníamos el inconveniente de que cuando actualizábamos un usuario con "SYSDBA" en un nodo de nuestro ambiente RAC, dichas actualizaciones eran reflejadas inmediatamente en el password file del nodo en el que hicimos la operación, sin embargo, dichas actualizaciones no eran reflejadas en los otros nodos de nuestra configuración de RAC. Esto causaba que tuviéramos que realizar la modificación en cada uno de los nodos de tal modo que al realizar la operación (N-1 veces) el password file de los demás nodos también fuera actualizado. Otra forma también podia ser transferir el password file por scp, en fin, era tedioso tener actualizados todos los password file de todos nuestros nodos a no ser que tuviéramos un storage compartido y que usemos dicho storage para almacenar el password file.
Con la versión 12c de Oracle Database el password file ya es soportado para ser almacenado dentro de ASM, de esta manera el password file será único para toda la configuración de RAC y estará compartido a través de todos los nodos. Una actualización de un usuario con "SYSDBA" automáticamente será reflejado en el password file y también la actualización será visible para todos los demás nodos inmediatamente.
After to read a lot of pages of Oracle Database 12c Documentation, Oracle Database 12c: HA New Features Student Guide and a RAC 12c Book I have found a lot of theory about Flex ASM and Flex Cluster which are two main new features of 12c version. All these references I read says almost the same:
How to change from standard cluster to flex cluster and viceversa
How to change from hub node to leaf node and viceversa
How to see the cluster mode
How to see the node role
Believe me, All what I read until some days ago says the same!
However, I had two questions in my mind that were not answered by what I was reading.by
Some friends were asking me what is the behaviour of Hub Nodes and Left Nodes in the new Flex Cluster 12c when the Interconnect communication is lost with the other nodes. Based on our experience in GI 11g, we know that when one "standard" cluster loses its interconnect communication, other node send a "node eviction" command through voting disk. There are many reasons of node eviction but we will talk only about interconnect network and the new ASM network. In GI 11g we had only "public network" and "private network", the private network is the interconnect but in GI 12c we have a new kind of network named "ASM network" and it used by Flex ASM in order to transfer ASM information across the nodes. The main aim of this blog post is to show what is the behaviour of Hub nodes and Left nodes when the private/ASM network is damaged.
I was practicing RAC 12c Installations and I wanted to add a "Leaf Node" to my environment.
What is a "Leaf Node"?
"Servers that are loosely coupled with Hub Nodes, which may not have direct access to the shared storage".
This means that Leaf Nodes don't need access to OCR/Voting Disk, it's only GI Software.
My environment has the following characteristics:by