{"id":3676,"date":"2014-05-09T00:43:00","date_gmt":"2014-05-08T22:43:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/"},"modified":"2014-05-09T00:43:00","modified_gmt":"2014-05-08T22:43:00","slug":"implementing-oracle-policy-managed-databases","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/","title":{"rendered":"Implementing policy-managed Oracle databases"},"content":{"rendered":"<p>Policy-managed databases appeared with Oracle 11g R2 but are not very common yet. I never had the opportunity to administer these kind of databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an Oracle cluster. In this post, I will describe how to implement and handle policy-managed databases, and in a future post I will detail new Oracle 12c improvements.<\/p>\n<h3>Understanding the server-pool concept<\/h3>\n<p>The first and maybe the major concept to understand is the server-pool. A server pool is a logical group of servers within the cluster, sharing resources for databases and\/or services. The following schema shows two server pools, having two nodes each.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png\" alt=\"rac_pmdb\" width=\"620\" height=\"346\" \/><\/p>\n<p>A node can be part of several server pools, or be attached to a single named server pool, depending on the configuration. However, a node can run on only one server pool at a time.<br \/>\nWith server pools, the database instance is not assigned anymore to a named server, but to a server pool, and the cluster will manage the instance placement over the nodes.<\/p>\n<p>Scalability and availability of applications (databases, services&#8230;) within a server-pool can be dynamically defined using MIN_SIZE, MAX_SIZE and MAXIMUM parameters. These parameters are defined at server pool level:<\/p>\n<ul>\n<li><strong>MIN_SIZE<\/strong> represents the minimal number of nodes which should compose the server-pool. If the number of nodes falls below the MIN_SIZE value, Oracle moves servers from other server-pools &#8211; if available &#8211; to satisfy this parameter.<\/li>\n<\/ul>\n<ul>\n<li><strong>MAX_SIZE<\/strong> represents the maximal number of nodes available in a server-pool. MAX_SIZE can be considered as a kind of target, or as a &#8220;must have&#8221;. Oracle will satisfy this parameter only if all server-pool MIN_SIZE are reached first.<\/li>\n<\/ul>\n<ul>\n<li><strong>IMPORTANCE<\/strong> controls the availability of an application. Its value can range from 0 (not important) to 1000. The server pool with the higher importance value will have resources allocated in priority: new available nodes are assigned to the most important server-pool first, and nodes can be de-assigned from a less important server-pool to satisfy the MIN_SIZE of the most important server-pool.<\/li>\n<\/ul>\n<p>As you may expect, the IMPORTANCE parameter will be used to guarantee availability of business critical services, to the detriment of lower important applications, such as development.<\/p>\n<h3>Creating a server-pool<\/h3>\n<p>In this example, I will use a cluster composed of four identic nodes. Two are up and running, the two remaining have cluster services not running at this time.<\/p>\n<p>First, I will create two server-pools. One for production databases, and one for development\/test databases. As a first example, I set MIN and MAX values at 1, and IMPORTANCE value at 0, the minimum. I use the srvctl tool as oracle user.<\/p>\n<p>It is possible to create a server pool with or without specifying a list of nodes. If you specify one or several nodes as part of a server pool, only these listed nodes would be able to migrate to this server pool. We speak about &#8220;Candidate server names&#8221; which is an implicitely excluding list. If you do not specify any node name, all nodes would be able to migrate to the server pool. It means that all nodes are &#8220;candidates&#8221; for this pool. You will see later that the &#8220;candidate server names&#8221; field shows the nodes which have been explicitely affected to a server pool.<\/p>\n<p>Here I will not specify candidate servers, so all nodes within my cluster can migrate to any server pools.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl add srvpool -g srvtest -l 1 -u 1 -i 0\n[oracle@node01 ~]$ srvctl add srvpool -g srvprod -l 1 -u 1 -i 0<\/pre>\n<p>&nbsp;<\/p>\n<p>This is the list of options used:<\/p>\n<ul>\n<li>-g: name of the server pool<\/li>\n<li>-l: minimum number of nodes<\/li>\n<li>-u: maximum number of nodes<\/li>\n<li>-i: importance value<\/li>\n<\/ul>\n<p>We can get the status of the different server pools with the following command:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl status srvpool -detail\nServer pool name: Free\nActive servers count: 0\nActive server names:\nServer pool name: Generic\nActive servers count: 0\nActive server names:\n<span style=\"color: #ffcc00;\">Server pool name: srvprod<\/span>\n<span style=\"color: #ffcc00;\">Active servers count: 1<\/span>\n<span style=\"color: #ffcc00;\">Active server names: node02<\/span>\n<span style=\"color: #ffcc00;\">NAME=node02 STATE=ONLINE<\/span>\n<span style=\"color: #ff6600;\">Server pool name: srvtest<\/span>\n<span style=\"color: #ff6600;\">Active servers count: 1<\/span>\n<span style=\"color: #ff6600;\">Active server names: node01<\/span>\n<span style=\"color: #ff6600;\">NAME=node01 STATE=ONLINE<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p>As we can see, there are four server-pools: free, generic, srvtest and srvprod<\/p>\n<ul>\n<li>The free server-pool contains unassigned servers. It is empty since the two available servers are already used in srvprod and srvtest pools.<\/li>\n<li>The generic server pool contains servers running admin-managed databases. It is empty because there is no admin-managed database running in this cluster.<\/li>\n<li>The srvprod and srvtest pools have been created above, and contain one node each due to the min\/max value set to 1.<\/li>\n<\/ul>\n<h3>Assigning a database to a server-pool<\/h3>\n<p>We can assign a new database to a server-pool with dbca. In the following example, I have created the DB1 database in the existing srvprod server-pool. Note that policy managed is the default choice proposed starting with Oracle 12c.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/01_policy_managed_dbca.png\" alt=\"01_policy_managed_dbca\" width=\"816\" height=\"639\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/02_policy_managed_dbca.png\" alt=\"02_policy_managed_dbca\" width=\"816\" height=\"639\" \/><\/p>\n<p>Once the database is created, we can see that it has started on available nodes of the srvprod server-pool:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle @ node01 ~]$ srvctl status database -d DB1\nInstance DB1_1 is running on node node01<\/pre>\n<p>As for an admin managed database, the instance gets a suffix number but the &#8220;underscore&#8221; character is also used to define the name of the instance. Here DB1 gets DB1_1 instance name.<\/p>\n<p>I have created a second database DB2 in the srvtest server-pool.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl status database -d DB2\nInstance DB2_1 is running on node node02<\/pre>\n<p>&nbsp;<\/p>\n<h3>Impact of server-pool parameters<\/h3>\n<p>Let&#8217;s study the impact of MIN_SIZE, MAX_SIZE and IMPORTANCE parameters. In this example, I will first change the value of these parameters for the srvprod server pool, and then I will start cluster services on the two remaining nodes.<\/p>\n<p>The srvprod pool will have a MIN_SIZE of 2 and a MAX_SIZE of 3:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl modify srvpool -min 2 -max 3 -serverpool srvprod<\/pre>\n<p>We have now the following configuration:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl config srvpool\n...\nServer pool name: srvprod\nImportance: 0, Min: 2, Max: 3\nCategory: hub\nCandidate server names:\nServer pool name: srvtest\nImportance: 0, Min: 1, Max: 1\nCategory: hub\n<span style=\"color: #ff0000;\">Candidate server names:<\/span><\/pre>\n<p>&nbsp;<\/p>\n<p><em>(&#8220;Candidate server names&#8221; is empty since I have not defined any server as part of a server pool.)<\/em><\/p>\n<p>Now I start cluster services on node 03 and node 04.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[root@node03 bin]# .\/crsctl start crs\nCRS-4123: Oracle High Availability Services has been started.\n\u00a0\n[root@node04 bin]# .\/crsctl start crs\nCRS-4123: Oracle High Availability Services has been started.<\/pre>\n<p>After few minutes, I see that srvprod has now 3 nodes, satisfying the MAX_SIZE parameter. Srvtest has still 1 node, and it is conform to the MIN_SIZE and MAX_SIZE defined:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl status srvpool\n...\nServer pool name: srvprod\nActive servers count: 3\nActive server names: node01,node03,node04\nNAME=node01 STATE=ONLINE\nNAME=node03 STATE=ONLINE\nNAME=node04 STATE=ONLINE\nServer pool name: srvtest\nActive servers count: 1\nActive server names: node02\nNAME=node02 STATE=ONLINE<\/pre>\n<p>The test database DB2 is running on node 02:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl status database -d DB2\nInstance DB2_1 is running on node node02<\/pre>\n<p>&nbsp;<\/p>\n<h3>Example 1: MIN_SIZE and MAX_SIZE<\/h3>\n<p>Let&#8217;s see what happens if I stop cluster services on node 02 in the srvtest pool, with DB2 instance running.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[root@node02 bin]# date\nMon Apr 28 11:49:09 CEST 2014[root@node02 bin]# .\/crsctl stop crs\nCRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'node02'\nCRS-2673: Attempting to stop 'ora.crsd' on 'node02'\nCRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'node02'\nCRS-2673: Attempting to stop 'ora.db2.db' on 'node02'\n...<\/pre>\n<p>&nbsp;<\/p>\n<p>To see what is going on, I consult the crsd.log file on the master node of the cluster.<\/p>\n<p><span style=\"color: #999999;\"><em>Tip<\/em><\/span><\/p>\n<p><span style=\"color: #999999;\"><em>To identify the master node within a cluster, look at the &#8220;OCR MASTER&#8221; string value with a grep command on the crsd.log on any node. You will get &#8220;I AM THE NEW OCR MASTER&#8221; on the primary node, or &#8220;NEW OCR MASTER IS N&#8221; on secondary nodes, where N is the number of the node returned by &#8216;olsnodes -n&#8217; command:<\/em><\/span><\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[grid@node01 ~]$ cat \/u00\/app\/12.1.0\/grid\/log\/node01\/crsd\/crsd.log | grep -i 'ocr master'\n...\n...\n2014-04-28 04:53:16.388: [\u00a0 OCRMAS][2831439616]th_master:12: I AM THE NEW OCR MASTER at incar 1. Node Number 1\n\u00a0\n[grid@node01 ~]$ olsnodes -n\nnode01\u00a0 1\nnode02\u00a0 2\nnode03\u00a0 3\nnode04\u00a0 4<\/pre>\n<p>&nbsp;<\/p>\n<p>The crsd.log file in \/u00\/app\/12.1.0\/grid\/log\/node01\/crsd\/crsd.log shows following events:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">2014-04-28 11:50:50.878: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} Pool ora.srvtest [min:1][max:1][importance:0] NO SERVERS ASSIGNED cannot be a donor\u00a0 for pool ora.srvtest [min:1][max:1][importance:0] NO SERVERS ASSIGNED\n2014-04-28 11:50:50.878: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769}Server [node04] has been un-assigned from the server pool: ora.srvprod\n2014-04-28 11:50:50.880: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769}Server [node04] has been assigned to the server pool: ora.srvtest\n...\n2014-04-28 11:50:50.881: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} Server [node04] has changed state from [ONLINE] to [RECONFIGURING]\n...\n2014-04-28 11:50:50.882: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} CRS-2673: Attempting to stop 'ora.db1.db' on 'node04'\n...\n2014-04-28 11:51:15.708: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} CRS-2677: Stop of 'ora.db1.db' on 'node04' succeeded\n2014-04-28 11:51:15.708: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} Updated state details for server node04 from [STOPPING RESOURCES] to : []\n2014-04-28 11:51:15.708: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} Server [node04] has changed state from [RECONFIGURING] to [ONLINE]\n...\n2014-04-28 11:51:15.718: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} CRS-2672: Attempting to start 'ora.db2.db' on 'node04'\n...\n2014-04-28 11:51:54.749: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} RI [ora.db2.db 1 1] new internal state: [STABLE] old value: [STARTING]\n2014-04-28 11:51:54.749: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} RI [ora.db2.db 1 1] new external state [ONLINE] old value: [OFFLINE] on node04 label = [Open]\n2014-04-28 11:51:54.749: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} Set LAST_SERVER to node04 for [ora.db2.db 1 1]\n2014-04-28 11:51:54.750: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} Set State Details to [Open] from [ Instance Shutdown] for [ora.db2.db 1 1]\n2014-04-28 11:51:54.750: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:769} CRS-2676: Start of 'ora.db2.db' on 'node04' succeeded<\/pre>\n<p>&nbsp;<\/p>\n<p>Node 04 has been deassigned from srvprod server pool, and has been assigned to srvtest serverpool. We can see that the instance of DB1 running on node04 has been shut down, and then the DB2 instance has started. We can confirm that with srvctl commands:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 crsd]$ srvctl status database -d DB2\nInstance DB2_1 is running on node node04\n\u00a0\n[oracle@node01 ~]$ srvctl status srvpool\n...\nServer pool name: srvprod\nActive servers count: 2\nActive server names: node01,node03\nNAME=node01 STATE=ONLINE\nNAME=node03 STATE=ONLINE\nServer pool name: srvtest\nActive servers count: 1\nActive server names: node04\nNAME=node04 STATE=ONLINE<\/pre>\n<p>What can we infer of that? Oracle has taken one node from the srvprod server pool, because there were three servers in this pool (MAX_SIZE), while the mandatory number of server (MIN_SIZE) is 2. MIN_SIZE value remains satisfied for both srvprod and srvtest pools and both databases DB1 and DB2 are accessible.<\/p>\n<h3>Example 2: IMPORTANCE parameter<\/h3>\n<p>To demonstrate how this parameter works, I will edit properties for the srvprod server pool and set an IMPORTANCE of 1. I will then stop cluster services on node 03, which is part of srvprod server pool.<\/p>\n<p>First, I set an IMPORTANCE value of 1 for the srvprod server pool:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl modify srvpool -importance 1 -serverpool srvprod\n[oracle@node01 ~]$ srvctl config srvpool -serverpool srvprod\nServer pool name: srvprod\nImportance: 1, Min: 2, Max: 3\nCategory: hub\nCandidate server names:<\/pre>\n<p>Now, I stop cluster services on node 03. The number of remaining nodes in the srvprod server pool will fall under the MIN_SIZE value, with 1 server remaining.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[root@node03 bin]# .\/crsctl stop crs\nCRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'node03'\nCRS-2673: Attempting to stop 'ora.crsd' on 'node03'\nCRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'node03'\n...\nCRS-4133: Oracle High Availability Services has been stopped.<\/pre>\n<p>In crsd.log file, that is what we can see:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">2014-04-28 06:27:29.222: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910}Server [node04] has been un-assigned from the server pool: ora.srvtest\n2014-04-28 06:27:29.223: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910}Server [node04] has been assigned to the server pool: ora.srvprod\n...\n2014-04-28 06:27:29.224: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} Created alert : (:CRSPE00165:) :\u00a0 Server Pool ora.srvtest has fallen below minimum size\n...\n2014-04-28 06:27:29.224: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} Server [node04] has changed state from [ONLINE] to [RECONFIGURING]\n2014-04-28 06:27:29.224: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} Evaluating stop of [ora.db2.db] on [node04] with parameters: Options:0x1;Identity: root;Reason:system;\n...\n2014-04-28 06:27:29.226: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} CRS-2673: Attempting to stop 'ora.db2.db' on 'node04'\n...\n2014-04-28 06:28:00.352: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} CRS-2677: Stop of 'ora.db2.db' on 'node04' succeeded\n2014-04-28 06:28:00.352: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} Updated state details for server node04 from [STOPPING RESOURCES] to : []\n2014-04-28 06:28:00.352: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} Server [node04] has changed state from [RECONFIGURING] to [ONLINE]\n...\n2014-04-28 06:28:00.360: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} CRS-2672: Attempting to start 'ora.db1.db' on 'node04'\n...\n2014-04-28 06:28:25.563: [\u00a0\u00a0 CRSPE][2296276736] {1:4797:910} CRS-2676: Start of 'ora.db1.db' on 'node04' succeeded<\/pre>\n<p>Oracle has moved node 04 from srvtest server pool to srvprod server pool:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">[oracle@node01 ~]$ srvctl status srvpool\n...\nServer pool name: srvprod\nActive servers count: 2\nActive server names: node01,node04\nNAME=node01 STATE=ONLINE\nNAME=node04 STATE=ONLINE\nServer pool name: srvtest\nActive servers count: 0\nActive server names:\n\u00a0\n[oracle@node01 ~]$ srvctl status database -d DB2\nInstance DB2_1 is running on node node01\nInstance DB2_2 is running on node node04\n\u00a0\n[oracle@node01 ~]$ srvctl status database -d DB2\nDatabase is not running.<\/pre>\n<p>&nbsp;<\/p>\n<p>As we can see, there is no server available on the srvtest server pool. No DB2 instance is running and the application is no more accessible. However, the MIN_SIZE is still satisfied for the srvprod server pool: two nodes are running and two database instances are accessible.<\/p>\n<p>Because of the srvprod IMPORTANCE parameter greater than srvtest value, Oracle has prefered to keep service available for production, even if it means that test pool becomes orphaned&#8230;<\/p>\n<h3>Conclusion<\/h3>\n<p>With two examples, I have shown how MIN_SIZE, MAX_SIZE and IMPORTANCE parameters can impact the application availability within a policy-managed database cluster. It shows how much it is important to define these parameters according to your business rules, because it really helps to keep available resources for a critical business.<br \/>\nIn a next post, I will show how we can use these parameters to dynamically adapt the available resources to the workload of an application.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Policy-managed databases appeared with Oracle 11g R2 but are not very common yet. I never had the opportunity to administer these kind of databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":3677,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198],"tags":[17,209,446],"type_dbi":[],"class_list":["post-3676","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-management","tag-oracle-11g","tag-oracle-12c","tag-policy-managed-databases"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Implementing policy-managed Oracle databases - dbi Blog<\/title>\n<meta name=\"description\" content=\"In this post, I will describe how to implement and handle policy-managed databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an Oracle cluster.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Implementing policy-managed Oracle databases\" \/>\n<meta property=\"og:description\" content=\"In this post, I will describe how to implement and handle policy-managed databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an Oracle cluster.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-05-08T22:43:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1175\" \/>\n\t<meta property=\"og:image:height\" content=\"659\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Implementing policy-managed Oracle databases\",\"datePublished\":\"2014-05-08T22:43:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/\"},\"wordCount\":1431,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png\",\"keywords\":[\"Oracle 11g\",\"Oracle 12c\",\"Policy-managed databases\"],\"articleSection\":[\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/\",\"name\":\"Implementing policy-managed Oracle databases - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png\",\"datePublished\":\"2014-05-08T22:43:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"description\":\"In this post, I will describe how to implement and handle policy-managed databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an Oracle cluster.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png\",\"width\":1175,\"height\":659},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Implementing policy-managed Oracle databases\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Implementing policy-managed Oracle databases - dbi Blog","description":"In this post, I will describe how to implement and handle policy-managed databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an Oracle cluster.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/","og_locale":"en_US","og_type":"article","og_title":"Implementing policy-managed Oracle databases","og_description":"In this post, I will describe how to implement and handle policy-managed databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an Oracle cluster.","og_url":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/","og_site_name":"dbi Blog","article_published_time":"2014-05-08T22:43:00+00:00","og_image":[{"width":1175,"height":659,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png","type":"image\/png"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Implementing policy-managed Oracle databases","datePublished":"2014-05-08T22:43:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/"},"wordCount":1431,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png","keywords":["Oracle 11g","Oracle 12c","Policy-managed databases"],"articleSection":["Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/","url":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/","name":"Implementing policy-managed Oracle databases - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png","datePublished":"2014-05-08T22:43:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"description":"In this post, I will describe how to implement and handle policy-managed databases. Since Oracle now presents policy-databases as the default installation mode and as a best practice, I wanted to know more about this feature which fully automatizes the databases repartition within an Oracle cluster.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/rac_pmdb.png","width":1175,"height":659},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/implementing-oracle-policy-managed-databases\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Implementing policy-managed Oracle databases"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3676","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=3676"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/3676\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/3677"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=3676"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=3676"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=3676"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=3676"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}