{"id":2239,"date":"2011-05-26T11:55:20","date_gmt":"2011-05-26T09:55:20","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/"},"modified":"2011-05-26T11:55:20","modified_gmt":"2011-05-26T09:55:20","slug":"oracle-basis-3-database-startup-and-shutdown","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/","title":{"rendered":"Oracle Basics (3) &#8211; Database startup and shutdown"},"content":{"rendered":"<p>It&#8217;s already quite a while that I posted my last article on the Oracle basics, so I decided to take some times in the train to continue this small serie. This time, I&#8217;m going to speak about one of the root of Oracle administration, starting and shutting down a database server.<\/p>\n<p>Startup and shutdown processes within oracle database servers are split in different steps (for startup) and modes (for shutdown) and even if these principles are quite trivial, some confusions between these steps and\/or modes can easily be done. So I&#8217;m going to give a picture of both of these processes and their variations.<\/p>\n<p>Before shutting any database server down, it needs first to be started, so let&#8217;s begin with the startup process&#8230;<\/p>\n<p>Note that to avoid confusion, I use the term database server to designate the entity composed from both the Database and the Instance.<\/p>\n<h3>Starting a database server: a 3 steps process<\/h3>\n<p>Before understanding the process itself, the first question is &#8220;How to start a database server?&#8221; The answer is that you need to connect locally to it and to be a SYSDBA!<br \/>\nSo then the next question is &#8220;How to connect to something which is NOT running yet?&#8221; To do so you need 3 environment variables:<\/p>\n<p>ORACLE_HOME &#8211;&gt; Gives the Oracle Binaries Path<br \/>\nORACLE_SID\u00a0 &#8211;&gt; Gives the Instance SID to connect to<br \/>\nPATH &#8211;&gt; Must contain $ORACLE_HOME\/bin or %ORACLE_HOME%bin (Windows)<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><samp><\/samp>oracle@vmoratest1:\/home\/oracle\/ [TYRION] echo $ORACLE_HOME\n\/u00\/app\/oracle\/product\/11.2.0\/db_1\noracle@vmoratest1:\/home\/oracle\/ [TYRION] echo $ORACLE_SID\nTYRION<\/pre>\n<p>Then you have to be on the server and be part of the DBA Operating System group. In UNIX world this corresponds to the group &#8220;dba&#8221;, while in Windows it is &#8220;oradba&#8221;.<\/p>\n<p><strong>Unix<\/strong>:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>oracle@vmoratest1:\/home\/oracle\/ [TYRION] id\nuid=500(oracle) gid=501(dba) groups=501(dba),502(oinstall)<\/pre>\n<p>&nbsp;<br \/>\n<strong>Windows<\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oradba_group2.gif\" alt=\"\" width=\"511\" height=\"268\" \/><\/p>\n<p>In Windows environment, you need also that the Instance Service is started.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oracledb_services2.png\" alt=\"\" \/><\/p>\n<p>Finally, start SQLPLUS and simply connect as internal: <span style=\"font-family: courier new,courier; font-size: 10pt;\">sqlplus \/ as sysdba<\/span>\u00a0\u00a0 \u00a0where the \/ means to connect using OS authentication (DBA group) on the Instance defined by the variable ORACLE_SID.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>oracle@vmoratest1:\/home\/oracle\/ [TYRION] sqlplus \/ as sysdba\nSQL*Plus: Release 11.2.0.1.0 Production on Wed May 18 09:02:07 2011\nCopyright (c) 1982, 2009, Oracle.\u00a0 All rights reserved.\nConnected to an idle instance.<\/pre>\n<p>Once connected, simply run the command: <span style=\"font-size: 10pt; font-family: courier new,courier;\">startup<\/span><\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>SQL&gt; startup\nORACLE instance started.\nTotal System Global Area\u00a0 732352512 bytes\nFixed Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 1339036 bytes\nVariable Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0 440402276 bytes\nDatabase Buffers\u00a0\u00a0 \u00a0\u00a0 285212672 bytes\nRedo Buffers\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 5398528 bytes\nDatabase mounted.\nDatabase opened.\nSQL&gt; select open_mode from v$database;\nOPEN_MODE\n--------------------\nREAD WRITE<\/pre>\n<p>This is it! you database server is started \ud83d\ude44<br \/>\nSo now let&#8217;s have a looking what is going done backstage.<\/p>\n<p>Basically starting an Oracle database is divided in 3 steps:<\/p>\n<ul>\n<li>NOMOUNT<\/li>\n<li>MOUNT<\/li>\n<li>OPEN<\/li>\n<\/ul>\n<p>For each of them there is a corresponding startup command:<\/p>\n<ul>\n<li>NOMOUNT =&gt; <span style=\"font-size: 10pt; font-family: courier new,courier;\">startup nomount<\/span><\/li>\n<li>MOUNT\u00a0\u00a0 =&gt; <span style=\"font-family: courier new,courier; font-size: 10pt;\">startup mount<\/span><\/li>\n<li>OPEN\u00a0\u00a0\u00a0 =&gt; <span style=\"font-family: courier new,courier; font-size: 10pt;\">startup<\/span><\/li>\n<\/ul>\n<p>As you can see it the startup command automatically takes the database in Open mode. However some operations, like restores and recovers require to decompose the startup process. In this case swithing up from one mode to the next one is done using an &#8220;<span style=\"font-family: courier new,courier; font-size: 10pt;\">alter database<\/span>&#8221; command.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; startup nomount\nORACLE instance started.\nTotal System Global Area\u00a0 732352512 bytes\nFixed Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 1339036 bytes\nVariable Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0 440402276 bytes\nDatabase Buffers\u00a0\u00a0 \u00a0\u00a0 285212672 bytes\nRedo Buffers\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 5398528 bytes\nSQL&gt; alter database mount;\nDatabase altered.\nSQL&gt; alter database open;\nDatabase altered.\nSQL&gt; select open_mode from v$database;\nOPEN_MODE\n--------------------\nREAD WRITE<\/pre>\n<p>Note that you can NOT switch a database one mode\/step down. This requires a shutdown!<\/p>\n<p>Here we need to open a small bracket for the databases running on Windows servers.<br \/>\nAs said above, on Windows the service OracleService must be running to connect to the database. However starting this service will fire up a full startup of the database, which means that a healthy database will be fully open once the service is started. On databases requiring restore\/recover operations, you will basically also need to start the service and let him failing to open the database before you can go ahead.<\/p>\n<p>In order to really understand the logic behind the startup process, you need to keep in mind the difference between the Oracle Instance and the Oracle Database. You can have a look to my <a href=\"\/oracle-basics-1-oracle-database-vs-oracle-instance\">first article<\/a> on Oracle Basis to get a refresh on it.<\/p>\n<h4>Step 1 &#8211; NOMOUNT<\/h4>\n<p>In the NOMOUNT level, only the Oracle INSTANCE is started. To do so Oracle looks for the Instance spfile or pfile and starts all Processes and Memory Structures.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; startup nomount\nORACLE instance started.\nTotal System Global Area\u00a0 732352512 bytes\nFixed Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 1339036 bytes\nVariable Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0 440402276 bytes\nDatabase Buffers\u00a0\u00a0 \u00a0\u00a0 285212672 bytes\nRedo Buffers\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 5398528 bytes<\/pre>\n<p>Let&#8217;s have a look on the running processes:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">oracle@vmoratest1:\/home\/oracle\/ [TYRION] ps -ef |grep TYRION\noracle\u00a0\u00a0\u00a0 3999\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_pmon_TYRION\noracle\u00a0\u00a0\u00a0 4001\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_vktm_TYRION\noracle\u00a0\u00a0\u00a0 4005\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_gen0_TYRION\noracle\u00a0\u00a0\u00a0 4007\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_diag_TYRION\noracle\u00a0\u00a0\u00a0 4009\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_dbrm_TYRION\noracle\u00a0\u00a0\u00a0 4011\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_psp0_TYRION\noracle\u00a0\u00a0\u00a0 4013\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_dia0_TYRION\noracle\u00a0\u00a0\u00a0 4015\u00a0\u00a0\u00a0\u00a0 1\u00a0 1 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_mman_TYRION\noracle\u00a0\u00a0\u00a0 4017\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_dbw0_TYRION\noracle\u00a0\u00a0\u00a0 4019\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_lgwr_TYRION\noracle\u00a0\u00a0\u00a0 4021\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_ckpt_TYRION\noracle\u00a0\u00a0\u00a0 4023\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_smon_TYRION\noracle\u00a0\u00a0\u00a0 4025\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_reco_TYRION\noracle\u00a0\u00a0\u00a0 4027\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_mmon_TYRION\noracle\u00a0\u00a0\u00a0 4029\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_mmnl_TYRION\noracle\u00a0\u00a0\u00a0 4031\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_d000_TYRION\noracle\u00a0\u00a0\u00a0 4033\u00a0\u00a0\u00a0\u00a0 1\u00a0 0 09:12 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:00 ora_s000_TYRION\noracle\u00a0\u00a0\u00a0 4106\u00a0 3356\u00a0 0 09:12 pts\/1\u00a0\u00a0\u00a0 00:00:00 grep TYRION<\/pre>\n<p>Here we can recognize processes like SMON, LGWR, DBW or PMON<\/p>\n<p>The question now is, how Oracle find the spfile?<br \/>\nIn fact Oracle goes automatically in the dbs (UNIX) or database (Windows) folder in ORACLE_HOME and look for a spfile spfile.ora. If there is no spfile Oracle will the search for a pfile, init.ora, and finally take a default spfile if none are present. A good practice, OFA (Oracle Flexible Architecture), is to store the spfile in the admin directory of the database and to use a pfile to point to it.<\/p>\n<p>Here is a small example:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>oracle@vmoratest1:\/home\/oracle\/ [TYRION] cd $ORACLE_HOME\/dbs\noracle@vmoratest1:\/u00\/app\/oracle\/product\/11.2.0\/db_1\/dbs\/ [TYRION] ls\nhc_DBUA0.dat\u00a0 hc_TYRION.dat\u00a0 init.ora\u00a0 initTYRION.ora\u00a0 lkULTHAN_SITE1\u00a0 orapwTYRION\u00a0 peshm_DBUA0_0\u00a0 peshm_ULTHAN_SITE1_0\noracle@vmoratest1:\/u00\/app\/oracle\/product\/11.2.0\/db_1\/dbs\/ [TYRION] cat initTYRION.ora \nSPFILE='\/u00\/app\/oracle\/admin\/TYRION\/pfile\/spfileTYRION.ora'\noracle@vmoratest1:\/u00\/app\/oracle\/product\/11.2.0\/db_1\/dbs\/ [TYRION] cd \/u00\/app\/oracle\/admin\/TYRION\/pfile\/\noracle@vmoratest1:\/u00\/app\/oracle\/admin\/TYRION\/pfile\/ [TYRION] ls\nspfileTYRION.ora<\/pre>\n<p>On a instance in NOMOUNT mode, it is only possible to access and interact to the spfile information<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; show parameter name\nNAME\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0 \u00a0\u00a0\u00a0 VALUE\n-------------------------------- ---------- ------------------------------\ndb_file_name_convert\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 string\ndb_name \u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string\u00a0\u00a0 \u00a0 ULTHAN\ndb_unique_name\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string\u00a0\u00a0 \u00a0 ULTHAN_SITE1\nglobal_names\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 boolean\u00a0 \u00a0 FALSE\ninstance_name\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string\u00a0\u00a0 \u00a0 TYRION\nlock_name_space \u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string\nlog_file_name_convert\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 string\nservice_names\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 string\u00a0\u00a0 \u00a0 TYRION.it.dhu-domain.com\nSQL&gt; show parameter spfile\nNAME\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0 \u00a0\u00a0\u00a0 VALUE\n------------------------- ----------- ------------------------------\nspfile\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 string\u00a0\u00a0 \u00a0 \/u00\/app\/oracle\/admin\/TYRION\/pfile\/spfileTYRION.ora<\/pre>\n<p>and to access some instance views<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; select INSTANCE_NAME,HOST_NAME,STATUS from v$instance;\nINSTANCE_NAME\u00a0\u00a0 \u00a0\u00a0 HOST_NAME \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 STATUS\n----------------- --------------------------------- ------------\nTYRION\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 vmoratest1.it.dhu-domain.com\u00a0\u00a0 \u00a0\u00a0 STARTED<\/pre>\n<p>The startup_mode column permits to identify the current mode of the database server. Here STARTED means in NOMOUNT.<\/p>\n<h4>Step 2 &#8211; MOUNT<\/h4>\n<p>Once taking the database server from NOMOUNT to MOUNT, Oracle access the control files, as declared in the spfile, and mount the database.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; show parameter control_files\nNAME\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VALUE\n------------------- ------------- ----------------------------------------------------\ncontrol_files\u00a0\u00a0 \u00a0\u00a0\u00a0 string\u00a0\u00a0 \u00a0 \u00a0\u00a0 \/u01\/oradata\/TYRION\/control01TYRION.dbf, \/u02\/oradata\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/TYRION, \/control02TYRION.dbf,\/u03\/oradata\/TYRION\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/control03TYRION.dbf\nSQL&gt; alter database mount;\nDatabase altered.<\/pre>\n<p>Check the new status<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; select INSTANCE_NAME,HOST_NAME,STATUS from v$instance;\n\nINSTANCE_NAME\u00a0\u00a0 \u00a0\u00a0 HOST_NAME \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 STATUS\n----------------- --------------------------------- ------------\nTYRION\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 vmoratest1.it.dhu-domain.com\u00a0\u00a0 \u00a0\u00a0 MOUNTED<\/pre>\n<p>Let&#8217;s check the control files usage:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>[root@vmoratest1 TYRION]# fuser -a .\/*\n.\/control01TYRION.dbf:\u00a0 4017\u00a0 4019\u00a0 4021<\/pre>\n<p>At this point Oracle knows information like the files composing the databases and their location, the backup history, the SCN status aso&#8230; SYSDBA users are still the own one, who can access the database, but now they have access to several information stored in v$views (thanks to the control file).<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; select open_mode from v$database;\nOPEN_MODE\n--------------------\nMOUNTED\nSQL&gt; select name from v$datafile;\nNAME\n--------------------------------------------------------------------------------\n\/u01\/oradata\/TYRION\/system01TYRION.dbf\n\/u01\/oradata\/TYRION\/sysaux01TYRION.dbf\n\/u01\/oradata\/TYRION\/undotbs01TYRION.dbf\n\/u01\/oradata\/TYRION\/users01TYRION.dbf\nSQL&gt; select member from v$logfile;\nMEMBER\n--------------------------------------------------------------------------------\n\/u01\/oradata\/TYRION\/redog1m1TYRION.dbf\n\/u02\/oradata\/TYRION\/redog1m2TYRION.dbf\n\/u01\/oradata\/TYRION\/redog2m1TYRION.dbf\n\/u02\/oradata\/TYRION\/redog2m2TYRION.dbf\n\/u01\/oradata\/TYRION\/redog3m1TYRION.dbf\n\/u02\/oradata\/TYRION\/redog3m2TYRION.dbf\n6 rows selected.<\/pre>\n<h4>Step 3 &#8211; OPEN<\/h4>\n<p>The last step is to open the database, which means accessing the data files and redo logs. Once the database is OPEN, all users can log on again and go ahead with their normal activities.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; alter database open;\nDatabase altered.\nSQL&gt; select status,open_mode from v$instance,v$database;\nSTATUS\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 OPEN_MODE\n-------------- --------------------\nOPEN\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 READ WRITE<\/pre>\n<h4>Some variations<\/h4>\n<p>For some maintenance or administration activities, it may be necessary to open the database but to avoid any user to access it. The best solution is then to open the database in RESTRICT mode. This means that only SYSDBA users will be allowed to log in.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; startup restrict\nORACLE instance started.\nTotal System Global Area\u00a0 732352512 bytes\nFixed Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 1339036 bytes\nVariable Size\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0 440402276 bytes\nDatabase Buffers\u00a0\u00a0 \u00a0\u00a0 285212672 bytes\nRedo Buffers\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 5398528 bytes\nDatabase mounted.\nDatabase opened.<\/pre>\n<p>A other possibility is to open the database in READ ONLY instead of READ WRITE.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><code><\/code>SQL&gt; alter database open read only;\nDatabase altered.\nSQL&gt; select open_mode from v$database;\nOPEN_MODE\n--------------------\nREAD ONLY<\/pre>\n<p>&nbsp;<\/p>\n<h4>Startup process summary<\/h4>\n<p>This drawing summarize the Oracle database startup process.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/startup_summary.gif\" alt=\"\" width=\"480\" height=\"576\" \/><\/p>\n<h3>Shutting down a database<\/h3>\n<p>Sometimes it is necessary to shutdown a database server, like for example activating the archivelog or flashback mode, changing a static parameter or simply patching it. In this case, the DBA has 4 different solutions:<\/p>\n<ol>\n<li>shutdown normal (default mode with shutdown command)\u00a0\u00a0 =&gt; <span style=\"font-family: courier new,courier; font-size: 10pt;\">shutdown<\/span><\/li>\n<li>shutdown transactional\u00a0\u00a0\u00a0 =&gt; <span style=\"font-family: courier new,courier; font-size: 10pt;\">shutdown transactional<\/span><\/li>\n<li>shutdown immediate\u00a0\u00a0\u00a0 =&gt; <span style=\"font-family: courier new,courier; font-size: 10pt;\">shutdown immediate<\/span><\/li>\n<li>shutdown abort\u00a0\u00a0 =&gt; <span style=\"font-family: courier new,courier; font-size: 10pt;\">shutdown abort<\/span><\/li>\n<\/ol>\n<p>These modes are going from the safer to the most risky one, but also from the slower to the faster one.<\/p>\n<h4>Shutdown Normal<\/h4>\n<p>This is the default. No new user connections will be allowed, but all current connections continue normaly. Once all users have logged off, the database will finally be allowed to shutdown.<\/p>\n<h4>Shutdown Transactional<\/h4>\n<p>No new user connections are permitted and existing sessions that are not involved in active transactions will be terminated. However sessions currently involved in a transaction are allowed to complete the transaction and will then be terminated. Once all sessions are terminated, the database will shutdown.<\/p>\n<h4>Shutdown Immediate<\/h4>\n<p>No new sessions are permitted, all currently connected sessions are<br \/>\nterminated an any active transactions are rolled back. Then the database will go down.<\/p>\n<h4>Shutdown Abort<\/h4>\n<p>As far as Oracle is concerned, this is the equivalent of a power failure. The instance terminates immediately (instance &#8220;crash&#8221;). Nothing is written to disk, no file handles are closed and there is no transactions are terminated, even not in a orderly way. A shutdown abort will not damage the database, but some operations like backups are not advisable after an abort.<\/p>\n<h4>Shutdown process description<\/h4>\n<p>Basically in a &#8220;clean&#8221; shutdown process (Normal, Transactionnal or Immediate), the process will be the reverse of startup. During an orderly shutdown, the database is first be closed, then dismounted, and finally the instance is stopped.<\/p>\n<p>During the close phase:<\/p>\n<ul>\n<li>all sessions are terminated<\/li>\n<li>PMON roll back any incomplete transactions.<\/li>\n<li>A checkpoint is issued, which forces the DBWn process to write all updated data from the db buffer cache to the datafiles<\/li>\n<li>LGWR flushes any change vectors still in memory to the logfiles<\/li>\n<li>The file headers are updated, and the file handles closed.<\/li>\n<\/ul>\n<p>At this point the database is in a consistent state: all datafiles and logfiles are synchronized.<br \/>\nDuring the dismount phase the control files are closed<br \/>\nThen the instance is stopped by deallocating the SGA memory and terminating the background processes.<br \/>\nIn case of the Abort mode, it leaves the database in an inconsistent state:<\/p>\n<ul>\n<li>Committed transactions have been lost, because they were only in memory and DBWn had not yet written them to the datafiles<\/li>\n<li>Uncommitted transactions in the datafiles may not yet have been rolled back.<\/li>\n<\/ul>\n<p>After a shutdown abort, the SMON process will have to perform an instance recovery at next startup.<br \/>\nTo finish, I will open a last bracket about Windows environment \ud83d\ude09<\/p>\n<p>I said that in Windows there is a service OracleService to start\/stop the database. Basically you can stop your database just by stopping the corresponding service. In this case Oracle runs a SHUTDOWN IMMEDIATE by default. The type of shutdown the service runs can be customized, since Oracle 11g, using the parameter -SHUTMODE normal|immediate|abort of oradim.<\/p>\n<p>However there is a small issue with this principle \ud83d\ude15<br \/>\nUnfortunately in case of a server shutdown\/reboot, the service will be stopped before the database shutdown is\u00a0 performed!<\/p>\n<p><strong>Alert.log output<\/strong>:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>***********************************************************************\nFatal NI connect error 12638, connecting to:\n (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))\nVERSION INFORMATION:\n TNS for 64-bit Windows: Version 11.2.0.2.0 - Production\n Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.2.0 - Production\n Time: 25-MAY-2011 17:40:47\n Tracing not turned on.\n Tns error struct:\n ns main err code: 12638\nTNS-12638: Credential retrieval failed\n ns secondary err code: 0\n nt main err code: 0\n nt secondary err code: 0\n nt OS err code: 0\nThis means that the database is not shutdown but crashed! Therefore a instance recovery will be performed at next startup:\n\nCompleted: alter database mount exclusive\nalter database open\nBeginning crash recovery of 1 threads\nStarted redo scan\nCompleted redo scan\n...\n...<\/pre>\n<p>A solution is to use the registry entry ORA_SID_SHUTDOWN_TIMEOUT (HKEY_LOCAL_MACHINE &#8211;&gt; Software &#8211;&gt; Oracle &#8211;&gt; Key_) to theoricaly define a timeout while the service waits for the database shutdown confirmation before stopping. If the timeout is reached then it performs a shutdown abort.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/regedit.png\" alt=\"\" width=\"545\" height=\"293\" \/><\/p>\n<p>And here comes now the Bug 1638610! \ud83d\ude2e<\/p>\n<p>The parameter ORA_SID_SHUTDOWN_TIMEOUT isn&#8217;t taken in account if the setting SQLNET.AUTHENTICATION_SERVICES is set in the sqlnet.ora. This bug applies from Oracle 8i to 10g and is still true in Oracle 11gR2. The bug state is set by Oracle as &#8220;not feasible to fix&#8221;&#8230;<\/p>\n<p>I hope that this small article, gave you a good understanding about Oracle startup and shutdown processes \ud83d\ude42<\/p>\n<p>Have fun \ud83d\ude00<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s already quite a while that I posted my last article on the Oracle basis, so I decided to take some times in the train to continue this small serie.<br \/>This time, I&#8217;m going to speak about one of the root of Oracle administration, starting and shutting down a database.<\/p>\n<p>Startup and shutdown processes within oracle databases are splitted in different steps (for startup) and modes (for shutdown) and even if these principles are quite trivial, some confusions between these steps and\/or modes can easily be done. So I&#8217;m going to give a picture of both of these processes and their variations.<\/p>\n<p>Before shutting any database down, it needs first to be started, so let&#8217;s begin with the startup process&#8230;<\/p>\n","protected":false},"author":7,"featured_media":2240,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198],"tags":[17,243,273,274],"type_dbi":[],"class_list":["post-2239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-management","tag-oracle-11g","tag-oracle-instance","tag-shutdown","tag-startup"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle Basics (3) - Database startup and shutdown - dbi Blog<\/title>\n<meta name=\"description\" content=\"A description of the principle and process of startup and shutdown of Oracle Databases\" \/>\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\/oracle-basis-3-database-startup-and-shutdown\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle Basics (3) - Database startup and shutdown\" \/>\n<meta property=\"og:description\" content=\"A description of the principle and process of startup and shutdown of Oracle Databases\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2011-05-26T09:55:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oradba_group2.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"722\" \/>\n\t<meta property=\"og:image:height\" content=\"380\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"David Hueber\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Hueber\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 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\\\/oracle-basis-3-database-startup-and-shutdown\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/\"},\"author\":{\"name\":\"David Hueber\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8873e20a98a02305870909f4e3d0088f\"},\"headline\":\"Oracle Basics (3) &#8211; Database startup and shutdown\",\"datePublished\":\"2011-05-26T09:55:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/\"},\"wordCount\":1655,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/oradba_group2.gif\",\"keywords\":[\"Oracle 11g\",\"Oracle instance\",\"shutdown\",\"Startup\"],\"articleSection\":[\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/\",\"name\":\"Oracle Basics (3) - Database startup and shutdown - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/oradba_group2.gif\",\"datePublished\":\"2011-05-26T09:55:20+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8873e20a98a02305870909f4e3d0088f\"},\"description\":\"A description of the principle and process of startup and shutdown of Oracle Databases\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/oradba_group2.gif\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/oradba_group2.gif\",\"width\":722,\"height\":380},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/oracle-basis-3-database-startup-and-shutdown\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle Basics (3) &#8211; Database startup and shutdown\"}]},{\"@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\\\/8873e20a98a02305870909f4e3d0088f\",\"name\":\"David Hueber\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g\",\"caption\":\"David Hueber\"},\"description\":\"David Hueber has ten years of experience in infrastructure operation &amp; management, engineering, and optimization. He is specialized in Oracle technologies (engineering, backup and recovery, high availability, etc.), Service Management standards and Oracle infrastructure operation processes (Service Desk, Change Management, Capacity Planning, etc.). David Hueber is ITILv3 Service Operation Lifecycle certified and Linux LPIC-1 certified. He received a university degree in Informatics and Networks at the IUT Mulhouse, France. He also studied Information Systems at the Conservatoire National des Arts et M\u00e9tiers in Mulhouse, France. His branch-related experience covers Financial Services \\\/ Banking, Chemicals &amp; Pharmaceuticals, Transport &amp; Logistics, Retail, Food, etc.\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/david-hueber\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle Basics (3) - Database startup and shutdown - dbi Blog","description":"A description of the principle and process of startup and shutdown of Oracle Databases","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\/oracle-basis-3-database-startup-and-shutdown\/","og_locale":"en_US","og_type":"article","og_title":"Oracle Basics (3) - Database startup and shutdown","og_description":"A description of the principle and process of startup and shutdown of Oracle Databases","og_url":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/","og_site_name":"dbi Blog","article_published_time":"2011-05-26T09:55:20+00:00","og_image":[{"width":722,"height":380,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oradba_group2.gif","type":"image\/gif"}],"author":"David Hueber","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Hueber","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/"},"author":{"name":"David Hueber","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8873e20a98a02305870909f4e3d0088f"},"headline":"Oracle Basics (3) &#8211; Database startup and shutdown","datePublished":"2011-05-26T09:55:20+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/"},"wordCount":1655,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oradba_group2.gif","keywords":["Oracle 11g","Oracle instance","shutdown","Startup"],"articleSection":["Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/","url":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/","name":"Oracle Basics (3) - Database startup and shutdown - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oradba_group2.gif","datePublished":"2011-05-26T09:55:20+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8873e20a98a02305870909f4e3d0088f"},"description":"A description of the principle and process of startup and shutdown of Oracle Databases","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oradba_group2.gif","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/oradba_group2.gif","width":722,"height":380},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-basis-3-database-startup-and-shutdown\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle Basics (3) &#8211; Database startup and shutdown"}]},{"@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\/8873e20a98a02305870909f4e3d0088f","name":"David Hueber","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fc07284dbd5667f0bed32b0d8d64076ab885746973ea1b5c4e69c6fa7074cf59?s=96&d=mm&r=g","caption":"David Hueber"},"description":"David Hueber has ten years of experience in infrastructure operation &amp; management, engineering, and optimization. He is specialized in Oracle technologies (engineering, backup and recovery, high availability, etc.), Service Management standards and Oracle infrastructure operation processes (Service Desk, Change Management, Capacity Planning, etc.). David Hueber is ITILv3 Service Operation Lifecycle certified and Linux LPIC-1 certified. He received a university degree in Informatics and Networks at the IUT Mulhouse, France. He also studied Information Systems at the Conservatoire National des Arts et M\u00e9tiers in Mulhouse, France. His branch-related experience covers Financial Services \/ Banking, Chemicals &amp; Pharmaceuticals, Transport &amp; Logistics, Retail, Food, etc.","url":"https:\/\/www.dbi-services.com\/blog\/author\/david-hueber\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2239","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\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=2239"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2239\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/2240"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=2239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=2239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=2239"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=2239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}