Chapter 10 Chapter 10 1 Oracle Server • An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define and manipulate data and PL/SQL to control the flow of SQL, allow the use of variable & error handling procedures • Oracle Instance which is made up of the various processes (both system and user) to support a specific instance. Chapter 10 2 Oracle Database Structure • One or more Data files • Two or more Log files called redo files. This files are used in recovery and trace the source of specific transaction. • One or more Control files which contain the database name, related file names and locations and the creation timestamp. Chapter 10 3 Oracle Database Structure (con’t) • Trace Files and alert Log • A database is defined in terms of Schema Objects and Tablespaces. – Schema Objects contain definitions of tables, views, sequences, stored procedures indexes, clusters and database links. – Tablespaces, segments and extents are the terms used to describe the physical storage. Chapter 10 4 Oracle Instance • System Global Area (SGA): Real memory area where database information is shared by users. For performance it should be as large as possible. Chapter 10 5 System Global Area • SGA is further divided into 3 areas. – Database buffer cache: Most recently accessed data blocks from the database. – Redo log buffer – Shared pool, contains shared memory constructs; such as, shared SQL area which is made up of parse trees of SQL queries & execution plans for executing SQL statements. Chapter 10 6 Oracle Instance Processes • User processes: A user process is created for the execution of some application. • Program Global Area (PGA): Contains data and control information for the server processes. • Oracle Processes: A Process or Thread of control which is assigned a private memory area in which it runs. Chapter 10 7 Oracle Processes • Oracle creates Server Processes to handle requests. This is a multithreaded server operation for efficiency rather than creating a separate process for each request to the server. Chapter 10 8 Oracle Background Processes • Database Writer (DBWR): Writes those blocks that were modified from the cache to the disk • Log Writer (LGWR): Writes from the log buffer to the online disk log file. • Checkpoint (CKPT): Refers to an event during which all the modified buffers in the SGA since the last checkpoint are written to the data files. It works with DBWR. Chapter 10 9 Oracle Background Processes • System Monitor(SMON): Performs instance recovery, manages storage areas by making the space contiguous & recovers transactions. • Process Monitor(PMON): Performs process recovery when a user process fails. It manages the cache and other resources used by a user process. Chapter 10 10 Oracle Background Processes • Archiver (ARCH): Archives on-line log files to archival storage location; such as, disk or tape ( if configured to do so). • Recoverer Process(RECO): Resolves distributed transactions that are pending due to a network or system failure in a Distributed database. Chapter 10 11 Oracle Background Processes • Dispatchers (Dnnn): In a multi-threaded server configurations, routes requests from the connected user processes to available shared server processes. There is 1 dispatcher per standard communication protocol supported. • Lock Processes(LCKn): Used for interinstance locking when Oracle in Parallel Mode Chapter 10 12 Oracle Startup & Shutdown • Starting an Instance: This is where the SGA is allocated, the background processes are created and the instance is initialized. • Mounting the Database: This associates a database with an instance. This is one step that is required to make the database available to users. Chapter 10 13 Oracle Startup & Shutdown • Opening a database: This is the second operation needed to make the database available to users. It opens the on-line data files and the log files. • The reverse of the above procedure is used to shutdown the database. • These are ALL actions done by the DBA. Chapter 10 14 Schema Objects • TABLES: Tables are the basic unit that is used in Oracle to store data. It conforms with the relational model. Each column has a column name, datatype and width. • Views: View are virtual tables which on defined either on other views or tables. Chapter 10 15 Schema Objects • Synonyms: Direct references to objects. They are used to provide public access to an object while masking its real name or owner. Private synonyms may be created that are only available to that user. • Program Unit: Procedures, functions or packages written in PL/SQL Chapter 10 16 Schema Objects • Sequence: A special provision of a data type in Oracle for attribute value generation. • Indexes: An index can be generated on one or more columns of a table as requested using SQL. Chapter 10 17 Schema Objects • Cluster: A group of records from one or more tables physically stored in a mixed file. This is to improve performance. Such as using an Index Cluster. • Database Links: Named objects in Oracle that establish paths from one database to another. (Used in distributed databases.) Chapter 10 18 Oracle’s Data Dictionary • This is made up of a read-only set of tables that store the Metadata. Access to the information in these tables is usually done through views . • These views begin with one of three special prefixes: USER,DBA, or ALL. Chapter 10 19 Item in the Data Dictionary • • • • • Names of users Security Information: Privileges and roles. Schema Object Information Integrity constraints Space Allocation & Utilization of the database objects. • Statistics on attributes, tables and predicates. • Access audit trail information. Chapter 10 20 Triggers • There are some business rules that we wish to actively enforce every time some action is done; such as, insert, delete or update. In Oracle this is done through the use of triggers. • Triggers either enforce additional constraints or perform additional actions. Chapter 10 21 Storage • Each Database is divided into one or more different tablespaces. • As a minimum there is always a System and Users tablespace. • These tablespaces are stored in one or more data files. • These data files are associated with only one database. Chapter 10 22 Physical Storage • Physical Storage is organized in terms of data blocks, extents and segments. • Data blocks are the finest (smallest) size of storage. They are also called logical blocks, page or Oracle blocks. • An Extent is a specific number of contiguous data blocks. • A Segment is a set of extents for a data structure. Chapter 10 23 Data Blocks • A Data Block has the following components: – Header: Contains the general block information such as block address & type of segment. – Table Directory: Contains information about tables that have data in the data block. – Row Directory: Contains information about the actual rows. Chapter 10 24 Data Blocks (con’t) – Row Data: Uses the bulk of the space of the Data Block. A row may span multiple blocks. – Free Space: Space allocated for row updates and new rows. Chapter 10 25 Extents • The amount of space initial allocated to an extent is determine by the ‘Create’ command. Incremental extents are allocated when the initial one becomes full and their size is determined by ‘Create’ command. • All extents allocated to index exist as long as the index exists. Chapter 10 26 Segments • There are four types of Segments: – Data segments: Each non-clustered table and each cluster has a Single data segment. – Index segments: Each index has a single index segment. – Temporary segments: Used by SQL as a temporary work area. – Rollback segments: Used for undoing transactions. Chapter 10 27