{"id":9912,"date":"2019-02-27T10:48:13","date_gmt":"2019-02-27T10:48:13","guid":{"rendered":"https:\/\/dbtut.com\/?p=9912"},"modified":"2019-02-28T06:25:01","modified_gmt":"2019-02-28T06:25:01","slug":"oracle-database-architecture-part-1","status":"publish","type":"post","link":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/","title":{"rendered":"Oracle Database Architecture Part 1"},"content":{"rendered":"<p>In this article I will tell you about Oracle Database Architecture. Oracle Database is the most preferred database in the world, especially in large scale projects. To be able to learn the Oracle Database in detail, the first thing that should be done is knowing the Oracle Database architecture. So what happens in the background when the user starts a transaction.<\/p>\n<p id=\"JxXDmQq\"><img loading=\"lazy\" decoding=\"async\" width=\"213\" height=\"299\" class=\"size-full wp-image-9906  aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png\" alt=\"\" \/><\/p>\n<p>When Oracle Database is running, a memory space that we call the shared global area (SGA) on the operating system is allocated to Oracle. At the same time, some processes that we call background processes are started by Oracle to meet the demands of the database. Oracle Instance consists of SGA + Background processes. The following image shows the Oracle Database architecture beautifully. I&#8217;ll explain all the concepts through this image.<\/p>\n<p id=\"OxdaJPh\"><img loading=\"lazy\" decoding=\"async\" width=\"471\" height=\"380\" class=\"size-full wp-image-9909  aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764c7456ebd.png\" alt=\"\" \/><\/p>\n<p><strong>Control File:<\/strong> The Control file is a file with a .ctl extension that is physically stored on the operating system that is a must for an Oracle database. This file also acts as the brain for our Oracle database. When the Oracle database starts, it reads the parameter file called SPFILE or PFILE and learn the location of the Control file. Because the Control file is the brain of our database, the database needs to find this file to work. If it cannot find the Control File, the Oracle database will not start and will give an error. Thats why, the control file is stored in 2 copies in the production databases. Oracle&#8217;s recommended configuration is that we store 3 copies on separate disks. We said the control file is very important. So why is important, what information is in the control file.<\/p>\n<ul>\n<li>The database name is stored in this file. When the database is opened, it learns what the name of the database is after reading this file.<\/li>\n<li>It contains the location of Datafile files where the data is physically stored.<\/li>\n<li>It contains the physical location of the Online Redo log files(transactions are stored in this file) and archive log files(archive of redo log files).<\/li>\n<li>It contains RMAN backup information. Therefore, if you take a Full backup without backing up the Control file, this backup becomes invalid. It cannot be restored. Therefore, when taking a backup, the Control file must also backed up.<\/li>\n<li>The current version of the SCN (System Change Number) number used during database operations is also stored in the Control file. SCN is a number that is generated after the transactions are committed. SCN is a unique value that is incrementing in order.<\/li>\n<li>It contains Checkpoint information. I will explain more about Checkpoint.<\/li>\n<li>The database creation date is also stored in this file.<\/li>\n<li>It contains the sequence number of the log files where transactions are stored.<\/li>\n<\/ul>\n<p>As can be seen from the items I mentioned, the Control file is a must for our Oracle database. That&#8217;s why, an Oracle DBA must to know that when he\/she takes a backup, control file also must backed up. If we configure RMAN as follows, automatic backup of control file will be active.<\/p>\n<pre class=\"\">RMAN&gt; CONFIGURE CONTROLFILE AUTOBACKUP ON;<\/pre>\n<p><strong>We can query where the control file is, as follows:<\/strong><\/p>\n<pre class=\"\">bash-4.1$ sqlplus \/ as sysdba\n\nSQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 11:47:59 2013\n\nCopyright (c) 1982, 2011, Oracle.\u00a0 All rights reserved.\n\nConnected to:\nOracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\n\nSQL&gt; show parameter control_file;\n\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VALUE\n------------------------------------ ----------- ------------------------------\ncontrol_files\u00a0\u00a0\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\u00a0\u00a0 \/oracle\/data\/TESTDB\/control01.ctl, \/oracle\/data\/TESTDB\/control02.ctl\nSQL&gt;<\/pre>\n<p><strong>Data Files:<\/strong> These are physical files with the dbf extension that are stored by the Oracle database on the operating system. You can see these files as * .dbf on the operating system. When Oracle database is first created, System, sysaux, undo, user and temp datafiles are created by default. When the user initiates a transaction, Oracle first attempts to find the data that is searched in the Database Buffer Cache. If it cannot find it, it is directed to Data files to find this data. We can see all datafiles belonging to the database with the following query.<\/p>\n<pre class=\"\">bash-4.1$ sqlplus \/ as sysdba\n\nSQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 13:26:26 2013\n\nCopyright (c) 1982, 2011, Oracle.\u00a0 All rights reserved.\n\nConnected to:\nOracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\n\nSQL&gt; set lines 800\nSQL&gt; select FILE_NAME,FILE_ID,TABLESPACE_NAME,BYTES,BLOCKS,MAXBYTES,ONLINE_STATUS from dba_data_files;\n\nFILE_NAME\u00a0\u00a0\u00a0\u00a0 FILE_ID TABLESPACE_NAME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 BYTES\u00a0\u00a0\u00a0\u00a0 BLOCKS\u00a0\u00a0 MAXBYTES ONLINE_\n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ------------------------------ ---------- ---------- ---------- -------\n\/oracle\/data\/TESTDB\/system01.dbf\u00a0\u00a0 1 SYSTEM\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 734003200\u00a0\u00a0\u00a0\u00a0\u00a0 89600 3.4360E+10 SYSTEM\n\/oracle\/data\/TESTDB\/sysaux01.dbf\u00a0\u00a0 2 SYSAUX\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 744488960\u00a0\u00a0\u00a0\u00a0\u00a0 90880 3.4360E+10 ONLINE\n\/oracle\/data\/TESTDB\/undotbs01.dbf\u00a0\u00a0 3 UNDOTBS1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 519045120\u00a0\u00a0\u00a0\u00a0\u00a0 63360 3.4360E+10 ONLINE\n\/oracle\/data\/TESTDB\/users01.dbf\u00a0\u00a0\u00a0 4 USERS\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 5242880\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 640 3.4360E+10 ONLINE\n\/oracle\/data\/TESTDB\/fda01.dbf\u00a0\u00a0 5 FDA\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\u00a01073741824\u00a0\u00a0\u00a0\u00a0 131072\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 ONLINE\n\nSQL&gt;<\/pre>\n<p><strong>SGA:<\/strong> When Oracle instance starts, memory area of up to the SGA value specified during the installation phase is allocated by Oracle from the operating system. This memory area is called the System Global Area. This memory space is allocated from the physical server&#8217;s RAM until the Oracle instance is closed. When the instance is turned off, this memory space is returned to the operating system.<\/p>\n<p>We determine the SGA value when creating the Oracle database, and the correct and optimum configuration of this value will directly affect oracle&#8217;s performance. We can look at the SGA value reserved for Oracle Database as follows.<\/p>\n<pre class=\"\">bash-4.1$ sqlplus \/ as sysdba\n\nSQL*Plus: Release 11.2.0.3.0 Production on Thu Oct 3 15:31:32 2013\n\nCopyright (c) 1982, 2011, Oracle.\u00a0 All rights reserved.\n\nConnected to:\nOracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\n\nSQL&gt; show parameter sga\n\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VALUE\n------------------------------------ ----------- ------------------------------\nlock_sga\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 boolean\u00a0\u00a0\u00a0\u00a0 FALSE\npre_page_sga\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 boolean\u00a0\u00a0\u00a0\u00a0 FALSE\nsga_max_size\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 big integer 512M\nsga_target\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 big integer 512M\nSQL&gt;<\/pre>\n<p><strong>PGA (Program Global Area):<\/strong> This is the memory space allocated from the server&#8217;s physical memory when a process is started on an Oracle instance on the server. This memory space is used until the process related to Oracle is terminated. When the process is completed, this memory space is released. You can query the specified value for this memory space in the database as follows.<\/p>\n<pre class=\"\">bash-4.1$ sqlplus \/ as sysdba\n\nSQL*Plus: Release 11.2.0.3.0 Production on Fri Oct 4 14:56:59 2013\n\nCopyright (c) 1982, 2011, Oracle.\u00a0 All rights reserved.\n\nConnected to:\nOracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production\nWith the Partitioning, OLAP, Data Mining and Real Application Testing options\n\nSQL&gt; show parameter pga\n\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TYPE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 VALUE\n------------------------------------ ----------- ------------------------------\npga_aggregate_target\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 big integer 2635M\nSQL&gt;<\/pre>\n<p><strong>Shared Pool:<\/strong> Shared Pool is an important memory area used in the vast majority of database operations. Because the query of all the transactions, their execution plans (work plans), the parsed and compiled PL\/SQL codes are always stored in this memory area. The shared pool area consists of the following components.<\/p>\n<p id=\"EeohAaJ\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"198\" class=\"size-full wp-image-9910  aligncenter\" src=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c76562c3215f.png\" alt=\"\" \/><\/p>\n<div class=\"tlid-results-container results-container\">\n<div class=\"tlid-result result-dict-wrapper\">\n<div class=\"result tlid-copy-target\">\n<div class=\"text-wrap tlid-copy-target\">\n<div class=\"result-shield-container tlid-copy-target\"><span class=\"tlid-translation translation\"><span title=\"\"><strong>Library Cache:<\/strong> This is one of the most important areas in the shared pool.<\/span> <span title=\"\">Because when an SQL clause comes into the Oracle database, Oracle first checks whether it has been executed or not by looking at the library cache.<\/span>\u00a0<span title=\"\">If the queryhas been execute before, Oracle uses the previous execution plan without parsing this SQL.<\/span> <span title=\"\">This process is called soft parse.<\/span> <span class=\"\" title=\"\">If the query has not been executed before, oracle will parse the executed SQL and save it to the Shared SQL Area in the library cache.<\/span> <span class=\"\" title=\"\">This process is called hard parse.<\/span><\/span><\/div>\n<div><\/div>\n<\/div>\n<div>One of the most important tasks of a DBA is to identify and fix unnecessary hard parse operations in a database.<\/div>\n<div><\/div>\n<div>One of the most important reasons for unnecessary hard parse operations is that;<\/div>\n<div><\/div>\n<div><strong>There are upper-lower case differences in the same SQL statements:<\/strong><\/div>\n<\/div>\n<\/div>\n<div>\n<pre class=\"lang:default decode:true\">Query 1: select * from hr.personel; \nQuery 2: select * from hr.Personel;<\/pre>\n<\/div>\n<div><strong>Another method to use as a solution is to use bind Variable for the same query types:<\/strong><\/div>\n<div>\n<pre class=\"\">SQL&gt; select name,surname,phone from hr.personel where id=1;<\/pre>\n<\/div>\n<div>In the above query, personel information with an id value of 1 is requested. Imagine that this query is always requested with different id values. Oracle will repeatedly parse this query in the library cache even though the query is the same. So instead of making a soft parse and consuming less than Cpu source, it will make the hard parse and consumes unnecessary CPU resources. At this point, we assign the &#8220;bind variable&#8221; value for the id column to ensure that the query uses the same execution plan for each different incoming id value. The use of the above query with the bind variable is as follows.<\/div>\n<div>\n<pre class=\"\">SQL&gt; variable person_id number\nSQL&gt; exec :person_id : =180251;\nSQL&gt; select name,surname,phone from hr.personel where id :=person_id;<\/pre>\n<\/div>\n<\/div>\n<div>If we use Bind variable, Oracle will use the same execution plan even if the id value in the queries changes.<\/div>\n<div>\n<p><strong>Dictionary Cache:<\/strong> This memory space stores the metadata of our database.<\/p>\n<p>That is, the following informations is stored in Dictionary cache:<\/p>\n<ul>\n<li>Who is authorized to access a table<\/li>\n<li>Tablespace informations<\/li>\n<li>Column information of a table<\/li>\n<\/ul>\n<p>This memory space is often used when parsing a query.<\/p>\n<p>So I came to the end of my article. In the next article, I will continue to explain the Oracle Database Architecture. Other articles of the series can be found below.<\/p>\n<p>&#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-2\/\" target=\"_blank\" rel=\"noopener noreferrer\">Oracle Database Architecture Part 2<\/a>&#8220;,<br \/>\n&#8220;<a href=\"https:\/\/dbtut.com\/index.php\/2019\/02\/28\/oracle-database-architecture-part-3\/\" target=\"_blank\" rel=\"noopener noreferrer\">Oracle Database Architecture Part 3<\/a>&#8221;<\/p>\n\n<\/div>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_9912\" class=\"pvc_stats all  \" data-element-id=\"9912\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this article I will tell you about Oracle Database Architecture. Oracle Database is the most preferred database in the world, especially in large scale projects. To be able to learn the Oracle Database in detail, the first thing that should be done is knowing the Oracle Database architecture. So what happens in the background &hellip;<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_9912\" class=\"pvc_stats all  \" data-element-id=\"9912\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/dbtut.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":472,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[4],"tags":[2205,2204,2213,2203,2208,1096,2215,2202,2209,1038,2210,1104,1036,1045,2207,1040,2216,2206,2214,2212,2211],"class_list":["post-9912","post","type-post","status-publish","format-standard","","category-oracle","tag-bind-variable","tag-bind-variable-usage","tag-control-file","tag-dictionary-cache","tag-hard-parse","tag-library-cache","tag-oracle-control-file","tag-oracle-database-architecture","tag-oracle-memory-architecture","tag-pga","tag-pga-program-global-area","tag-program-global-area","tag-sga","tag-shared-pool","tag-soft-parse","tag-system-global-area","tag-what-information-is-in-the-control-file","tag-what-is-bind-variable","tag-what-is-oracle-control-file","tag-where-is-the-control-file","tag-where-the-control-file-is"],"aioseo_notices":[],"a3_pvc":{"activated":true,"total_views":244,"today_views":0},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Oracle Database Architecture Part 1 - Database Tutorials<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle Database Architecture Part 1 - Database Tutorials\" \/>\n<meta property=\"og:description\" content=\"In this article I will tell you about Oracle Database Architecture. Oracle Database is the most preferred database in the world, especially in large scale projects. To be able to learn the Oracle Database in detail, the first thing that should be done is knowing the Oracle Database architecture. So what happens in the background &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Database Tutorials\" \/>\n<meta property=\"article:published_time\" content=\"2019-02-27T10:48:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-02-28T06:25:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png\" \/>\n<meta name=\"author\" content=\"Mehmet Salih DEVEC\u0130\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mehmet Salih DEVEC\u0130\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/\"},\"author\":{\"name\":\"Mehmet Salih DEVEC\u0130\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/bbdc56d959b34d47d81999c7af91a2fa\"},\"headline\":\"Oracle Database Architecture Part 1\",\"datePublished\":\"2019-02-27T10:48:13+00:00\",\"dateModified\":\"2019-02-28T06:25:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/\"},\"wordCount\":1207,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png\",\"keywords\":[\"Bind Variable\",\"Bind Variable Usage\",\"Control File\",\"Dictionary Cache\",\"hard parse\",\"library cache\",\"Oracle Control File\",\"Oracle Database Architecture\",\"Oracle Memory Architecture\",\"PGA\",\"PGA (Program Global Area)\",\"Program Global Area\",\"SGA\",\"Shared pool\",\"soft parse\",\"System Global Area\",\"what information is in the control file\",\"What is Bind Variable\",\"What is Oracle Control File\",\"where is the control file\",\"where the control file is\"],\"articleSection\":[\"ORACLE\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/\",\"url\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/\",\"name\":\"Oracle Database Architecture Part 1 - Database Tutorials\",\"isPartOf\":{\"@id\":\"https:\/\/dbtut.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png\",\"datePublished\":\"2019-02-27T10:48:13+00:00\",\"dateModified\":\"2019-02-28T06:25:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png\",\"width\":213,\"height\":299},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbtut.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle Database Architecture Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dbtut.com\/#website\",\"url\":\"https:\/\/dbtut.com\/\",\"name\":\"Database Tutorials\",\"description\":\"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux\",\"publisher\":{\"@id\":\"https:\/\/dbtut.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dbtut.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dbtut.com\/#organization\",\"name\":\"dbtut\",\"url\":\"https:\/\/dbtut.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"contentUrl\":\"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg\",\"width\":223,\"height\":36,\"caption\":\"dbtut\"},\"image\":{\"@id\":\"https:\/\/dbtut.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/bbdc56d959b34d47d81999c7af91a2fa\",\"name\":\"Mehmet Salih DEVEC\u0130\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dbtut.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/adcbb5bfb748dc6f31a1196c490f93fdbc20e6584b62d850570545f39c910c41?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/adcbb5bfb748dc6f31a1196c490f93fdbc20e6584b62d850570545f39c910c41?s=96&d=mm&r=g\",\"caption\":\"Mehmet Salih DEVEC\u0130\"},\"url\":\"https:\/\/dbtut.com\/index.php\/author\/salihdeveci\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Oracle Database Architecture Part 1 - Database Tutorials","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:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Oracle Database Architecture Part 1 - Database Tutorials","og_description":"In this article I will tell you about Oracle Database Architecture. Oracle Database is the most preferred database in the world, especially in large scale projects. To be able to learn the Oracle Database in detail, the first thing that should be done is knowing the Oracle Database architecture. So what happens in the background &hellip;","og_url":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/","og_site_name":"Database Tutorials","article_published_time":"2019-02-27T10:48:13+00:00","article_modified_time":"2019-02-28T06:25:01+00:00","og_image":[{"url":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png","type":"","width":"","height":""}],"author":"Mehmet Salih DEVEC\u0130","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Mehmet Salih DEVEC\u0130","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#article","isPartOf":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/"},"author":{"name":"Mehmet Salih DEVEC\u0130","@id":"https:\/\/dbtut.com\/#\/schema\/person\/bbdc56d959b34d47d81999c7af91a2fa"},"headline":"Oracle Database Architecture Part 1","datePublished":"2019-02-27T10:48:13+00:00","dateModified":"2019-02-28T06:25:01+00:00","mainEntityOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/"},"wordCount":1207,"commentCount":0,"publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png","keywords":["Bind Variable","Bind Variable Usage","Control File","Dictionary Cache","hard parse","library cache","Oracle Control File","Oracle Database Architecture","Oracle Memory Architecture","PGA","PGA (Program Global Area)","Program Global Area","SGA","Shared pool","soft parse","System Global Area","what information is in the control file","What is Bind Variable","What is Oracle Control File","where is the control file","where the control file is"],"articleSection":["ORACLE"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/","url":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/","name":"Oracle Database Architecture Part 1 - Database Tutorials","isPartOf":{"@id":"https:\/\/dbtut.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage"},"image":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png","datePublished":"2019-02-27T10:48:13+00:00","dateModified":"2019-02-28T06:25:01+00:00","breadcrumb":{"@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#primaryimage","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2019\/02\/img_5c764b8fb7f46.png","width":213,"height":299},{"@type":"BreadcrumbList","@id":"https:\/\/dbtut.com\/index.php\/2019\/02\/27\/oracle-database-architecture-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbtut.com\/"},{"@type":"ListItem","position":2,"name":"Oracle Database Architecture Part 1"}]},{"@type":"WebSite","@id":"https:\/\/dbtut.com\/#website","url":"https:\/\/dbtut.com\/","name":"Database Tutorials","description":"MSSQL, Oracle, PostgreSQL, MySQL, MariaDB, DB2, Sybase, Teradata, Big Data, NOSQL, MongoDB, Couchbase, Cassandra, Windows, Linux","publisher":{"@id":"https:\/\/dbtut.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dbtut.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dbtut.com\/#organization","name":"dbtut","url":"https:\/\/dbtut.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/","url":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","contentUrl":"https:\/\/dbtut.com\/wp-content\/uploads\/2021\/02\/dbtutlogo.jpg","width":223,"height":36,"caption":"dbtut"},"image":{"@id":"https:\/\/dbtut.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/dbtut.com\/#\/schema\/person\/bbdc56d959b34d47d81999c7af91a2fa","name":"Mehmet Salih DEVEC\u0130","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dbtut.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/adcbb5bfb748dc6f31a1196c490f93fdbc20e6584b62d850570545f39c910c41?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/adcbb5bfb748dc6f31a1196c490f93fdbc20e6584b62d850570545f39c910c41?s=96&d=mm&r=g","caption":"Mehmet Salih DEVEC\u0130"},"url":"https:\/\/dbtut.com\/index.php\/author\/salihdeveci\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/9912","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/users\/472"}],"replies":[{"embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/comments?post=9912"}],"version-history":[{"count":0,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/posts\/9912\/revisions"}],"wp:attachment":[{"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/media?parent=9912"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/categories?post=9912"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbtut.com\/index.php\/wp-json\/wp\/v2\/tags?post=9912"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}