{"id":73242,"date":"2013-04-25T10:48:42","date_gmt":"2013-04-25T10:48:42","guid":{"rendered":"https:\/\/www.red-gate.com\/simple-talk\/uncategorized\/rac-one-node\/"},"modified":"2021-07-14T13:07:42","modified_gmt":"2021-07-14T13:07:42","slug":"rac-one-node","status":"publish","type":"post","link":"https:\/\/www.red-gate.com\/simple-talk\/databases\/oracle-databases\/rac-one-node\/","title":{"rendered":"RAC One Node"},"content":{"rendered":"<p>In the past few years, technology has become a very important aspect of our lives. There\u00a0isn\u2019t\u00a0any moment when we are not connected to or using technology and this is not to do some core geeky stuff but for the tasks which have become a part of our lives. Can you imagine a day when you are unable to connect to your email or unable to check the latest updates from your friends from Facebook or Twitter? I don\u2019t think that the answer would be a yes, correct? In addition to this several parts of our life are inextricably connected with technology today. When was the last time you went to a bank to withdraw the money to transfer it to your mom\u2019s account or you stood in a queue to pay the electricity or phone bills? Again the answer would be a no I believe! Technology , in today\u2019s time, is not a word that is limited to those \u00a0who keep on looking at their black\u00a0colored\u00a0terminal windows filled with weird looking texts but it\u2019s meant for those \u201cnormal\u201d people\u00a0as well\u00a0who are using it to make their lives easier and comfortable.<\/p>\n<p><em>But there is a small issue!<\/em><\/p>\n<p>Though technology is meant to make our lives simpler, faster and easier, at the end of the day it is a human invention and is therefore fallible. So you see, machines may fail, may become overloaded, may become obsolete and whenever any such thing happens, the technology running on that machine also ceases! Can you see what\u2019s coming next? If the technology stops, you stop as well! As a result, for the past few years, the expression \u201chigh availability\u201d(HA) has been gaining ground and is heard almost all the time by all those who are\u00a0 maintaining anything that is related to a service which needs to be up and running as much as possible, not just for making operations simpler but also to keep the cash registers ringing.<\/p>\n<p>Think about it, a closed bank branch or ATM for a bank is no good at all,\u00a0doesn\u2019t\u00a0matter how small that branch would be! Hence come the numerous solutions for HA! There are a variety of solutions provided by a large number of vendors and so is done by Oracle Corp as well.\u00a0 Oracle Corp provides a range of solutions under it\u2019s <strong>Maximum Availability Architecture (MAA)<\/strong> stack. Notable among them is its <strong>Oracle Real Application Clusters (RAC<\/strong>) which takes care of node and instance crash issues.<\/p>\n<p>But the issue is Oracle RAC is a solution which is not affordable for quite a few shops . Though if we were to consider the cost aspect of RAC in the light of its simplicity and other benefits as compared to other technologies, it would be a worthwhile investment, however, it is always good to have more options, which can provide you similar sort of benefits, if not completely than as closely as possible and would be even better if \u00a0at \u00a0a reduced cost! This is what Oracle Corp brought out with 11.2 version (11201) and called it <strong>Oracle RAC One Node<\/strong>!<\/p>\n<h2>But is it \u201creally\u201d a new feature?<\/h2>\n<p>Well, yes it is \u2013sort of! Though Oracle RAC One Node is a new offering from 11.2 on, a similar functionality was available in the previous releases of Oracle db as well. This was known as<strong><em> Cold Cluster Failover<\/em><\/strong>, a topology using which the crash of a single instance of a database could be made to do a failover to another node using the cluster services. This technique was applicable to the databases of release 11.1 and 10.2 versions using which a constant monitoring was possible \u00a0for the availability of the instance or the node and if the node or the instance running on it crashed, it was possible to failover the connections over some other node. Needless to say that the nodes were supposed to use a shared storage. Also, it was mandatory to use Application VIP to make sure that the client is unaware about the existence of such a configuration. This would provide an efficient method to ensure that any kind of crash would be result in an automatic failover to the second node and also, any sort of recovery needed for the failed resources would be also done by Oracle\u2019s Clusterware software. In addition to this, if one was looking for a planned downtime for any kind of house-keeping or for the workloads which\u00a0couldn\u2019t\u00a0be catered on the source node, then this could be manually relocated through the command CRS_RELOCATE (deprecated in 112).<\/p>\n<p>Though the solutions seem to appear almost fool-proof, its implementation was the real challenge.\u00a0\u00a0 An intensive manually driven process would be required to achieve this HA of single instance.\u00a0 Various steps and commands would be required to get the job done and probably, that\u2019s why, though this technique is a published feature of Oracle\u2019s Clusterware, it was seldom seen being implemented at any site. Obviously RAC ONE Node solved many of the challenges and made the whole process far simpler and transparent.<\/p>\n<h2>So any significant good feature(s) of RAC One Node?<\/h2>\n<p>As discussed, the functionality was available in the previous versions as well but it was quite challenging to implement. RAC One node, introduced in 11.2 for the first time(and getting enhanced and feature rich since then constantly) offers the same functionality but more effectively and simply.\u00a0 Some of the features (but not a complete list) which make it very effective is:<\/p>\n<ol>\n<li>Online migration of the sessions from active node to the other<\/li>\n<li>Easy conversion from RAC One Node to complete RAC and vice-versa<\/li>\n<li>Integrated with the features like Instance Caging to provide a better resource management<\/li>\n<li>Supported over Exadata<\/li>\n<li>Supported over OVM(Oracle Virtualization Manager)<\/li>\n<li>Support for Rolling Patches of RAC to provide the same interface on RAC ONE Node<\/li>\n<li>Easy creation of One Node database using DBCA(from 11.2.0.2)<\/li>\n<li>Supported on all those platforms where Oracle RAC is supported<\/li>\n<\/ol>\n<p>Oracle RAC One Node is based on the same model of the RAC but it has a major difference from it as well. Full RAC works as an Active-Active solution i.e. the number of nodes that are in the cluster, they all are active and can accept connections and workloads and work together as one single unit. But RAC One Node, as the name suggests as well, works as an Active-Passive solution where at one time, only one node is going to be active at any time with the other nodes being available and ready to accept the workload in the case of a planned or an unplanned downtime related to the first node.<\/p>\n<h2>RAC One Node, \u00a0handling of Planned Downtime?<\/h2>\n<p>For a planned migration, the RAC one node\u00a0 works perfectly because it is going to let the users continue with their work without \u00a0impacting the business. When in 11201, the feature was first introduced by Oracle Corp, there was a need to use the utility OMOTION to achieve a transition of the instance from source node to the target node. But from 11202 this is a non-requirement and the clusterware software itself takes care of everything, including the migration of the instance from one node to another and to move the sessions along with it.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4027\" title=\"Three nodes belonging to one cluster, each connected to  a common, shared storage\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster.png\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster.png 616w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster-300x188.png 300w\" alt=\"Screenshot: three nodes belonging to one cluster, each connected to  a common, shared storage\" width=\"616\" height=\"387\" \/><\/p>\n<p>In the above diagram, we have got three nodes belonging to one cluster, each connected to\u00a0 a common, shared storage. We also have a user session which is alive while being connected to the first node.<\/p>\n<p>If a planned failover occurs, the clusterware would detect it and would start shifting the session(s) which are connected to the primary node to the target node, after their current work is finished over it.\u00a0 Also, in the meantime, another instance would be up on the second node and for a small time window, there would be an Oracle instance running on both the nodes.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4032\" title=\"If a planned failover occurs, the clusterware would detect it and would start shifting the sessions\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster-sessions.png\" sizes=\"auto, (max-width: 583px) 100vw, 583px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster-sessions.png 583w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster-sessions-300x215.png 300w\" alt=\"Screenshot: If a planned failover occurs, the clusterware would detect it and would start shifting the sessions\" width=\"583\" height=\"418\" \/><\/p>\n<p>Finally, only one node (in this example, node 2) would be active and all the sessions connected over the first node would have been migrated to the node 2 and also the instance on the node 1 would be also dismounted.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4033\" title=\"Only one node would be active and all the sessions connected over the first node would have been migrated to the node 2 \" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster-failover.png\" sizes=\"auto, (max-width: 585px) 100vw, 585px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster-failover.png 585w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-three-nodes-single-cluster-failover-300x210.png 300w\" alt=\"Screenshot: Only one node would be active and all the sessions connected over the first node would have been migrated to the node 2 \" width=\"585\" height=\"410\" \/><\/p>\n<p>Because RAC One Node offers an online migration of the instance from the source node to the target node,\u00a0 the mechanism offers a transparent workaround for the issues which would involve the node being crashed or the instance being down or for those circumstances where the node is not having enough resources to cater the incoming workload. As Oracle 11.2 RAC uses the concept of SCAN(Single Client Access Name) , if the client is configured to use the SCAN name resolution method for discovering the cluster, it would be completely transparent for the client if such kind of migration would take place.\u00a0 The only thing that probably may take long time is the actual migration period from the source node to the target node-it\u2019s customizable though.<\/p>\n<p>As shown that the RAC One node would support the online migration with minimal impact on the business, it\u2019s important to make this fact clear that this possibility, of running two instances on two different nodes is just on a temporary basis and is also there only for the planned downtime.\u00a0 The first instance along with the second instance would be only kept alive till the migration of the sessions is not completed .Once the migration of the instance on the other node is complete(along with the sessions connected on the first node) , the first instance would be closed and once again, the mode would be <em>still<\/em> Active-Passive only with only one instance up. \u00a0This also makes complete sense as if the option to have two instances running on two nodes would be there, RAC One Node wouldn\u2019t be any different from a normal RAC, would it?<\/p>\n<p>Let\u2019s try to get the online relocation done by ourselves and see what happens to the existing and on to the target instance.<\/p>\n<pre>[oracle@host01 ~]$ srvctl config database -d aristone\r\nDatabase unique name: aristone\r\nDatabase name: aristone\r\nOracle home: \/u01\/app\/oracle\/product\/11.2.0\/dbhome_1\r\nOracle user: oracle\r\nSpfile: +FRA\/aristone\/spfilearistone.ora\r\nDomain:\r\nStart options: open\r\nStop options: immediate\r\nDatabase role: PRIMARY\r\nManagement policy: AUTOMATIC\r\nServer pools: aristone\r\nDatabase instances:\r\nDisk Groups: FRA\r\nMount point paths:\r\nServices: srvc1\r\nType: RAC One Node\r\nOnline relocation timeout: 30\r\nInstance name prefix: aristone\r\nCandidate servers: host01,host02,host03\r\nDatabase is administrator managed<\/pre>\n<p>Before we start the migration, let\u2019s check the status of the database and it\u2019s instance right now.<\/p>\n<pre>[oracle@host01 ~]$ srvctl status database -d aristone\r\n Instance aristone_1 is running on node host01\r\n Online relocation: INACTIVE<\/pre>\n<p>So what we have here is a RAC One Node database with the SID <strong>aristone <\/strong>and it is running on the node <em>HOST01<\/em> with the instance <strong>aristone_1. <\/strong>\u00a0So now, we shall try to relocate the instance from this node to the target node <em>HOST02<\/em>.\u00a0 Also it\u2019s shown that the online relocation is not active at the moment.<\/p>\n<p>It\u2019s important to mention that with the version 11201, this task was done by a utility <strong>OMOTION <\/strong>but from 11202 onwards, the use of this utility is not required. The release of the software used for this demo was 11203 so obviously, the utility wasn\u2019t required.<\/p>\n<p>The conversion is done using the command SRVCTL RELOCATE DATABASE in which we are going to pass the name of the target node and the option to be in verbose mode for the output. Below is the output of this command:<\/p>\n<pre>[oracle@host01 ~]$ srvctl relocate database -d aristone -n host02 -w 30 -v\r\nConfiguration updated to two instances\r\nInstance aristone_2 started\r\nServices relocated\r\nWaiting for up to 30 minutes for instance aristone_1 to stop ...\r\nInstance aristone_1 stopped\r\nConfiguration updated to one instance<\/pre>\n<p>And from another session, we can see that the migration is going on.<\/p>\n<pre>[oracle@host01 ~]$ srvctl status database -d aristone\r\nInstance aristone_2 is running on node host02\r\nOnline relocation: ACTIVE\r\nSource instance: aristone_1 on host03\r\nDestination instance: aristone_2 on host02<\/pre>\n<p>We can see that the second instance has come up and the relocation status is also shown as ACTIVE which means that the relocation is going on. We would need to run the command couple of times as it may take longer for the instance to crash.<\/p>\n<pre class=\"\">[oracle@host01 ~]$ srvctl status database -d aristone\r\nInstance aristone_2 is running on node host02\r\nOnline relocation: ACTIVE\r\nSource instance: aristone_1 on host03\r\nDestination instance: aristone_2 on host02<\/pre>\n<pre class=\"\">[oracle@host01 ~]$ srvctl status database -d aristone\r\nInstance aristone_2 is running on node host02\r\nOnline relocation: ACTIVE\r\nSource instance: aristone_1 on host03\r\nDestination instance: aristone_2 on host02<\/pre>\n<p>Finally when the relocation would be over, this would be shown as the output,<\/p>\n<pre>[oracle@host01 ~]$ srvctl status database -d aristone\r\nInstance aristone_2 is running on node host02\r\nOnline relocation: INACTIVE [oracle@host01 ~]$<\/pre>\n<p>As we can see, one the relocation is complete only the instance \u201caristone_2\u201d is going to be working and the status of ONLINE RELOCATION is going to be completed.<\/p>\n<h2>What about Unplanned disasters?<\/h2>\n<p>If it\u2019s an un-planned shutdown, though the instance would be up on the second node but in this case, the online migration of the sessions will not take place.<\/p>\n<p>In case the reason behind the instance on the initial node has come down, was unplanned, it would cause a downtime as a result of which a smooth migration of the user sessions from the source node to the target, as in case of planned downtime , won\u2019t be possible. But since RAC One essentially is running Grid Infrastructure or using a little old terminology, the clusterware software underneath, it would be able to detect this issue-without a DBA\u2019s intervention.\u00a0 As with the normal working of the clusterware, the first attempt would be to restart the failed instance on the very same node where it was running initially. If for some reason the instance can\u2019t be started on the same node or worse, the node itself has crashed, there would be an automatic migration of the instance to the target node.<\/p>\n<h2>So how Do I Create a RAC One Node Database?<\/h2>\n<p>With 11202, the option to create the RAC One Node database came up with the DBCA itself.\u00a0 In the prior release (11201), this wasn\u2019t possible to be done unless you wouldn\u2019t apply the patch #9004119 on your installation. Starting with 11202 release onwards, the option is built in into the DBCA if it finds itself running over a clustered environment.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4037\" title=\"Creating a RAC One Node database\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-database-configuration-assistant-rac.png\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-database-configuration-assistant-rac.png 827w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-database-configuration-assistant-rac-300x208.png 300w\" alt=\"Screenshot: creating a RAC One Node database\" width=\"662\" height=\"461\" \/><\/p>\n<p>As shown, the 2<sup>nd<\/sup> option would be creating a RAC One Node database. The process is not much different from creating a normal RAC database \u00a0and we shall see it in the below screenshots.<\/p>\n<p>After selecting the option to create the database, next step would be choose the option to create the database and to choose the right template for the database creation.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4041\" title=\"Choose the right template for the database creation\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-create-database.png\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-create-database.png 628w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-create-database-300x212.png 300w\" alt=\"Screenshot: choose the right template for the database creation\" width=\"628\" height=\"445\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4042\" title=\"Oracle rac create database template\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-create-database-template.png\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-create-database-template.png 628w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-create-database-template-300x213.png 300w\" alt=\"Screenshot:Oracle rac create database template\" width=\"628\" height=\"447\" \/><\/p>\n<p>Next step would be to enter the details of the for the database name and SID and to define the service that would be used by this database.\u00a0 Also, you can choose whether you can choose the database to be an Admin-Managed or Policy Managed.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4044\" title=\"Oracle RAC one node identification\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-identification.png\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-identification.png 785w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-identification-300x212.png 300w\" alt=\"Screenshot: Oracle RAC one node identification\" width=\"628\" height=\"444\" \/><\/p>\n<p>So for our example, we have chosen both the database name and SID to be ARISTONE and it\u2019s an Admin-Managed database and being one,\u00a0 the list of the nodes are shown which we can select to define that target node where the instance would be failed over in the event of a crash. The failover can\u2019t happen to that node which is not selected in this step of the wizard by you if the database management is of Admin-Managed type.\u00a0 If you are willing to create a Policy-Managed database, the node list won\u2019t be shown but the option to use a server pool would be there and you must ensure that in that server pool, there is a node available so that the failover can happen over it.<\/p>\n<p>Next step would be to choose the option of Database Control or not and also to select the passwords for the system accounts.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4048\" title=\"Oracle RAC One Node management options\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-management-options.png\" sizes=\"auto, (max-width: 615px) 100vw, 615px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-management-options.png 769w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-management-options-300x211.png 300w\" alt=\"Screenshot: Oracle RAC One Node management options\" width=\"615\" height=\"434\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4049\" title=\"Oracle RAC One Node database credentials\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-credentials.png\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-credentials.png 628w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-credentials-300x212.png 300w\" alt=\"Screenshot: Oracle  RAC One Node database credentials\" width=\"628\" height=\"444\" \/><\/p>\n<p>The next option would be to choose the storage location which can be either ASM or file system. If you are going to choose ASM, the pop-up would ask you to give the password of the user ASMSNMP as well. We have chosen the option of ASM for the storage.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4050\" title=\"Oracle RAC One Node database file locations\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-file-locations.png\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-file-locations.png 770w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-file-locations-300x210.png 300w\" alt=\"Screenshot: Oracle RAC One Node database file locations\" width=\"616\" height=\"432\" \/><\/p>\n<p>Next would be whether we want to use Fast Recovery Area(FRA) or not.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4051\" title=\"Oracle RAC One Node database recovery\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-recovery.png\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-recovery.png 775w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-recovery-300x207.png 300w\" alt=\"Screenshot: Oracle RAC One Node database recovery\" width=\"620\" height=\"430\" \/><\/p>\n<p>Next would be the option to choose the option run any script and also to choose the memory parameters and other database options.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4052\" title=\"Oracle RAC One Node database content\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-content.png\" sizes=\"auto, (max-width: 609px) 100vw, 609px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-content.png 761w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-content-300x215.png 300w\" alt=\"Screenshot: Oracle RAC One Node database content\" width=\"609\" height=\"438\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4053\" title=\"Oracle RAC One Node database parameters\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-parameters.png\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-parameters.png 773w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-parameters-300x209.png 300w\" alt=\"\" width=\"618\" height=\"433\" \/><\/p>\n<p>Finally it\u2019s the option of Create Database and Summary and database creation would be started.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4054\" title=\"Oracle RAC One Node database storage\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-storage.png\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-storage.png 762w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-storage-300x212.png 300w\" alt=\"\" width=\"610\" height=\"432\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4055\" title=\"Oracle RAC One Node database creation\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation.png\" sizes=\"auto, (max-width: 623px) 100vw, 623px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation.png 779w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation-300x218.png 300w\" alt=\"Screenshot: Oracle RAC One Node database creation\" width=\"623\" height=\"454\" \/><\/p>\n<p>We can see the progress of the database creation in the progress window.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4056\" title=\"Oracle RAC One Node database creation progress\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation-progress.png\" sizes=\"auto, (max-width: 616px) 100vw, 616px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation-progress.png 880w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation-progress-300x186.png 300w\" alt=\"Screenshot: Oracle RAC One Node database creation progress\" width=\"616\" height=\"384\" \/><\/p>\n<p>Finally, we have the database created and information about it shown in the last page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-4057\" title=\"Oracle RAC One Node database creation finished\" src=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation-finished.png\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" srcset=\"https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation-finished.png 882w, https:\/\/www.red-gate.com\/simple-talk\/wp-content\/uploads\/oracle\/2013\/04\/oracle-rac-one-node-database-creation-finished-300x185.png 300w\" alt=\"Screenshot: Oracle RAC One Node database creation finished\" width=\"617\" height=\"382\" \/><\/p>\n<p>So finally , we have the database ARISTAONE got created which is a RAC One Node database and we can confirm this even from it\u2019s properties shown from the CLI too by running DBCA in the <strong>silent mode<\/strong>.<\/p>\n<p>Since it\u2019s a RAC database itself though working with one node only,<\/p>\n<pre>oracle@host01 ~]$ srvctl config database -d aristone\r\nDatabase unique name: aristone\r\nDatabase name: aristone\r\nOracle home: \/u01\/app\/oracle\/product\/11.2.0\/dbhome_1\r\nOracle user: oracle\r\nSpfile: +FRA\/aristone\/spfilearistone.ora\r\nDomain:\r\nStart options: open\r\nStop options: immediate\r\nDatabase role: PRIMARY\r\nManagement policy: AUTOMATIC\r\nServer pools: aristone\r\nDatabase instances:\r\nDisk Groups: FRA\r\nMount point paths:\r\nServices: srvc1\r\n<span style=\"color: #cc0000;\">Type: RAC One Node Online relocation timeout: 30<\/span>\r\nInstance name prefix: aristone\r\n<span style=\"color: #cc0000;\">Candidate servers: host01,host02,host03<\/span>\r\nDatabase is administrator managed<\/pre>\n<p>It is quite evident that most of the properties of the RAC One Database are similar to those of the normal RAC database but there are few differences as well and are specific to RAC One Node database. These are as follows:<\/p>\n<ol>\n<li><strong>Database Type :<\/strong> This shows that which type of database it is. For RAC One, the output is <em>RAC One Node<\/em>.<\/li>\n<li><strong>Online Relocation Timeout :<\/strong> This is the time that\u2019s going to be given to the sessions to complete their transactions and switchover to the target node without any issue. If the transactions fail to get completed in this time period, it would be aborted and session would be switched over to the target node. The default unit of this parameter is in minutes and the value is 30(minutes) . Maximum value allowed for this parameter would be 12hours (720 minutes) .<\/li>\n<li><strong>Candidate Servers: <\/strong>This is the list of those nodes where the relocation can happen.<\/li>\n<\/ol>\n<h2>I have a single instance, non-RAC db. Can I convert it to RAC One Node database?<\/h2>\n<p>In order to convert a single instance database into RAC One Node database, one can take the aid of \u00a0tool DBCA. All the tasks like creating the redo threads , undo tablespaces etc which are required for the RAC One Node database to function are going to be done automatically by the DBCA. So this makes the transition much easier. The only thing that\u2019s going to be a pre-requisite is that the underlying database must be supporting all the mandatory properties or conditions that are required for a clustered database to run, for example a shared storage must be there on which the files should be placed.\u00a0 Also, all the necessary software required to get the services of the RAC running must be there along with the required hardware-like a shared storage.<\/p>\n<p>The conversion would be done with the help of the templates that can be created from the existing single instance database. Using this template, another new\u00a0 RAC One Node database can be created.<\/p>\n<h2>And what if I have a RAC One Node database and I want to convert it to a complete RAC database?<\/h2>\n<p><em>Yes, you can do it and very easily! <\/em><\/p>\n<p>If you have already got a RAC One Node database and you want to convert to a complete RAC , we can do it using the command SRVCTL\u00a0 CONVERT. Since we have a database ARISTONE which is a RAC One Node database, we shall convert it to a complete RAC database which would run over three hosts. So let\u2019s shut down it and issue the CONVERT command.<\/p>\n<pre>[oracle@host01 ~]$ srvctl stop database -d aristone\r\n[oracle@host01 ~]$ srvctl convert database -d aristone -c RAC<\/pre>\n<p>Now since we have the instance 2 running on one host already, for the remaining two hosts we shall be adding the instances.<\/p>\n<pre>[oracle@host01 ~]$ srvctl add instance -d aristone -i aristone_3 -n host03\r\n[oracle@host01 ~]$ srvctl add instance -d aristone -i aristone_1 -n host01<\/pre>\n<p>Now, let\u2019s start the newly converted database and check it\u2019s status.<\/p>\n<pre>[oracle@host01 ~]$ srvctl start database -d aristone\r\n[oracle@host01 ~]$ srvctl status database -d aristone\r\nInstance aristone_1 is running on node host01\r\nInstance aristone_2 is running on node host02\r\nInstance aristone_3 is running on node host03<\/pre>\n<p>So as expected the database is up and running with 3 instances on all the 3 nodes and is successfully converted. Let\u2019s confirm that it\u2019s a RAC database only by seeing it\u2019s properties from the SRVCTL CONFIG command.<\/p>\n<pre>[oracle@host01 ~]$ srvctl config database -d aristone\r\nDatabase unique name: aristone\r\nDatabase name: aristone\r\nOracle home: \/u01\/app\/oracle\/product\/11.2.0\/dbhome_1\r\nOracle user: oracle\r\nSpfile: +FRA\/aristone\/spfilearistone.ora\r\nDomain:\r\nStart options: open\r\nStop options: immediate\r\nDatabase role: PRIMARY\r\nManagement policy: AUTOMATIC\r\nServer pools: aristone\r\nDatabase instances: aristone_2,aristone_3\r\nDisk Groups: FRA\r\nMount point paths:\r\nServices:\r\nType: RAC\r\nDatabase is administrator managed<\/pre>\n<p>Since it\u2019s a RAC database now so the TYPE is shown as RAC and also, there are no parameters like TIMOUT etc are shown which were previously visible for the RAC One Node database.<\/p>\n<h2>Sounds good but how much is this RAC One Node \u00a0going to cost my company?<\/h2>\n<p>Pricing is something that one should always check with the local Oracle sales available but for the record, the price of RAC One Node is <strong>US$10,000\/processor <\/strong>with an additional pricing of <strong>US$22,00 <\/strong>for the support in the first year. When compared to the standard pricing of RAC which is <strong>US$23,000\/processor <\/strong>, it\u2019s quite affordable provided you are willing to go for an Active-Passive environment. It\u2019s important to mention that these are the listed prices and are picked up from the Oracle\u2019s online store at <a title=\"Oracle shop\" href=\"https:\/\/shop.oracle.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/shop.oracle.com<\/a> .<\/p>\n<h2><strong>Final words<\/strong><\/h2>\n<p>Oracle RAC is probably one of the most impressive technologies that have been introduced by Oracle Corp. The very nature of making the system available as an Active-Active solution gives a company a very robust solution to achieve high availability and scalability. But still for many Oracle customers, it\u2019s very costly and for them, RAC One Node offers a great alternative. Though the solution to have an Active-Passive environment was available even before the appearance of RAC One Node as well but with it\u2019s inception , the task has become much more easier and simpler. With the Oracle clusterware in control for doing all the tasks transparently and having a lower pricing compared to a full blown RAC environment( which can be upgraded to the same very easily too) , RAC One Node offers a unique solution for those who wants to experience the clustering but are not willing to spend a lot on it!<\/p>\n<h3>\u00a0<strong>References:<\/strong><\/h3>\n<ol>\n<li>Oracle\u00ae Real Application Clusters Administration and Deployment Guide 11<em>g<\/em> Release 2 (11.2)<\/li>\n<li>Oracle Store \u2013 <a title=\"Oracle shop\" href=\"https:\/\/shop.oracle.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/shop.oracle.com<\/a><\/li>\n<li><a title=\"Cold Cluster Failover 11g Whitepaper\" href=\"http:\/\/www.oracle.com\/technetwork\/products\/clusterware\/overview\/si-db-failover-11g-134623.pdf\" target=\"_blank\" rel=\"noopener\">Cold Cluster Failover in 11g white paper (Oracle)<\/a><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the past few years, technology has become a very important aspect of our lives. There\u00a0isn&#8217;t\u00a0any moment when we are not connected to or using technology and this is not to do some core geeky stuff but for the tasks which have become a part of our lives. Can you imagine a day when you are unable to connect to&hellip;<\/p>\n","protected":false},"author":316201,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[143533],"tags":[],"coauthors":[48556],"class_list":["post-73242","post","type-post","status-publish","format-standard","hentry","category-oracle-databases"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/73242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/users\/316201"}],"replies":[{"embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/comments?post=73242"}],"version-history":[{"count":2,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/73242\/revisions"}],"predecessor-version":[{"id":74939,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/posts\/73242\/revisions\/74939"}],"wp:attachment":[{"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/media?parent=73242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/categories?post=73242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/tags?post=73242"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.red-gate.com\/simple-talk\/wp-json\/wp\/v2\/coauthors?post=73242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}