{
  "date": "2016-05-30T19:07:54",
  "slug": "where-is-the-asm-spfile",
  "link": "https://www.dbi-services.com/blog/where-is-the-asm-spfile/",
  "title": {
    "rendered": "Where is the ASM SPFILE?"
  },
  "content": {
    "rendered": "<h2>By Franck Pachot</h2>\n<p>.<br />\nIn the previous <a href=\"http://dbi-services.com/blog/learning-and-troubleshooting-follow-the-path/\" target=\"_blank\" rel=\"noopener noreferrer\">blog post</a>, to the question &#8220;where is the ASM SPFILE&#8221; I answered by running &#8216;asmcmd spget&#8217;. But this is available only if the ASM instance is started. If you have corrupted your SPFILE (and it&#8217;s easy to do it) you can start with a local PFILE and the CREATE SPFILE= FROM PFILE. But then you get the location of the local one you used. If you need to know the shared location, let&#8217;s see the different places where you can find it.<br />\n<!--more--><br />\nFirst I set the environment for the ASM instance.</p>\n<pre><code>\n[grid@racp1vm1 ~]$ . oraenv &lt;&lt;&lt; +ASM1\nORACLE_SID = [grid] ? The Oracle base has been set to /u01/app/grid\n</code></pre>\n<p>If the ASM instance is up you can get the SPFILE location from ASMCMD:</p>\n<pre><code>\n[grid@racp1vm1 ~]$ asmcmd spget\n+CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691\n</code></pre>\n<p>or from SQL*Plus:</p>\n<pre><code>\n[grid@racp1vm1 ~]$ sqlplus -s / as sysasm\nshow parameter spfile\n&nbsp;\nNAME                                 TYPE        VALUE\n------------------------------------ ----------- ------------------------------\nspfile                               string      +CRS_DG/ws-dbi-scan1/ASMPARAME\n                                                 TERFILE/registry.253.905527691\n</code></pre>\n<p>If the ASM instance us up but started with another SPFILE (or PFILE) you can search for a SPFILE in all diskgroups:</p>\n<pre><code>\n[grid@racp1vm1 ~]$ asmcmd find --type PARAMETERFILE '*' '*'\n+CRS_DG/_MGMTDB/PARAMETERFILE/spfile.268.905529015\n+DATA/RACDB/PARAMETERFILE/spfile.269.906247759\n+DATA/RACDB/spfileRACDB.ora\n</code></pre>\n<p>But if ASM instance is not up, let&#8217;s see where we can find its location.</p>\n<h3>From GPnP tool</h3>\n<p>The cluster needs to know the SPFILE location in order to start the ASM instance, and for this purpose, location is stored in the GPnP profile</p>\n<pre><code>\n[grid@racp1vm1 ~]$ gpnptool get -o- | xmllint --format - | grep SPFile\nSuccess.\n  &lt;orcl:ASM-Profile id=\"asm\" DiscoveryString=\"\" SPFile=\"+CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691\" Mode=\"remote\"/&gt;\n</code></pre>\n<p>Of course you can get it directly from the GPnP profile xml file</p>\n<pre><code>\n[grid@racp1vm1 ~]$ xmllint --shell $ORACLE_HOME/gpnp/$HOSTNAME/profiles/peer/profile.xml &lt;&lt;&lt; &quot;cat //*[@SPFile]/@SPFile&quot;\n SPFile=&quot;+CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691&quot;\n</code></pre>\n<p>If you messed-up the GPnP profile, you may want to find the previous value.</p>\n<h3>From alert.log</h3>\n<p>If the ASM instance has been startup previously, which is probably the case, you can see the location of SPFILE in the alert.log:</p>\n<pre><code>\n[grid@racp1vm1 ~]$ adrci exec=\"set home +asm ; show alert -tail 1000\" | grep \"parameter setting\"\nUsing parameter settings in server-side spfile +CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691\nUsing parameter settings in server-side spfile +CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691\nUsing parameter settings in server-side spfile +CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691\nUsing parameter settings in server-side spfile +CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691\n</code></pre>\n<h3>$ORACLE_HOME/dbs</h3>\n<p>What is important to know is that there is nothing in $ORACLE_HOME/dbs</p>\n<pre><code>\n[grid@racp1vm1 ~]$ ls $ORACLE_HOME/dbs\nab_+ASM1.dat  hc_+APX1.dat  hc_+ASM1.dat  hc_-MGMTDB.dat  id_+ASM1.dat  init-MGMTDB.ora  init.ora  lk_MGMTDB\n</code></pre>\n<p>and the ASM instance startup looks up there only if not found from the GPnP profile.</p>\n<h3>Backup the ASM SPFILE</h3>\n<p>It&#8217;s always a good idea to backup the SPFILE, in the same way you backup the OCR, and GPnP profile.</p>\n<pre><code>\n[grid@racp1vm1 ~]$ asmcmd spbackup +CRS_DG/ws-dbi-scan1/ASMPARAMETERFILE/registry.253.905527691 /tmp/asmspfile.bak\n</code></pre>\n",
    "protected": false
  }
}
