0% found this document useful (0 votes)
81 views

Oracle Architecture

The document provides an overview of the goals and topics to be covered in an Oracle database training week, including: - Brief SQL refresh and new SQL features in Oracle 9i - Overview of Oracle architecture including logical objects, schema types and attributes - Basic Oracle administration and performance tuning - Schema design and back-end tools Activities include creating user and application schemas, exploring Oracle's multi-tier architecture, and reviewing key database structures and processes.

Uploaded by

srikanthv_14
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
81 views

Oracle Architecture

The document provides an overview of the goals and topics to be covered in an Oracle database training week, including: - Brief SQL refresh and new SQL features in Oracle 9i - Overview of Oracle architecture including logical objects, schema types and attributes - Basic Oracle administration and performance tuning - Schema design and back-end tools Activities include creating user and application schemas, exploring Oracle's multi-tier architecture, and reviewing key database structures and processes.

Uploaded by

srikanthv_14
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 55

Goals for This Week

Brief SQL refresh


New SQL in Oracle 9i
Overview of Oracle Architecture
Basic Oracle Administration
Performance Tuning
Schema Design
Back-end Tools

Switch to SQL Intro

Role of Database Server


Results

SQL or
Procedure Call
SQL or
Procedure
Call

Results

Client

HTTP:
GET

HTML

Role of Database Server (4 tier)


Results
App.
Server

SQL or
Procedure Call
Proc./
Trans
Call

Results

HTML

Client

HTTP: GET

Web Server

Logical Objects

Logical Objects
Database
consists of
Schemas
own
Objects

Tables
Indexes
Sequences
Views
Procedures
Triggers
Etc

Schema Types
Application Schemas
Database
consists of
Schemas
own

Payroll
Student records
Financial Reporting
Nascar
Hollywood

User Schemas
Joe

Objects
(tables, indexes, etc)

Fred
Dave

Schema Attributes
Application Schemas
Usually referred to as a schema object
Contains a set of closely related tables and associated objects
Typical Object Reference:

Hollywood.Movies

User Schemas
Often referred to as a User or Account object.
May or may not contain personal tables (Joe.Contacts).
May or may not have the right to even create objects.
Are generally granted privileges to objects in application schemas.

LAB

Create a user schema


And an application schema
Using dba studio

Note security weakness:


System (pw: manager)
Sys (pw: change_on_install)
Scott (pw: tiger)
Sysman (pw: oem_start)

Caution

Creating a user schema from SQL:

CREATE USER CALVIN IDENTIFIED by HOBBES

LAB

Creating a user schema from SQL:

CREATE USER CALVIN IDENTIFIED by HOBBES


DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
QUOTA 100M on users
QUOTA 100M on temp
QUOTA 100M on rbs;

-- quota on RBS not necessary on 9i

GRANT CONNECT TO CALVIN; -- let him log in


GRANT RESOURCE TO CALVIN; -- let him create tables and other objects

Oracle
Database
consists of
Schemas
own

vs.

SQL Server
SQL Server
Software Instance
defines
Users

own

Databases
contain

Objects

Objects

(tables, indexes, etc)

(tables, indexes, etc)

Oracle
Database
consists of
Schemas (users)
Granted
Privileges to

vs.

SQL Server
SQL Server
Software Instance
defines
Users

own

Databases
contain

own
Objects

(tables, indexes, etc)

Granted
Privileges to

Objects
(tables, indexes, etc)

Controlling Application Access


Each User is given an Oracle Account and control is
maintained by granting privileges to tables, procedures and
other objects. (e.g. DESIGN)
All users connect ominously to a web site. The Web or
Application server connects to Oracle in the context of a
particular user.
Although the Web or Application server connects to Oracle in
the context of a particular user, individuals connecting to the
web site must still authenticate for the interface to determine
what they should be allowed to do:
-Oracle Authentication
-Local user table in application
-Network authentication

Roles and Profiles


Role
Functions similar to NT Groups
Specific Object and System Privileges are granted to the Role
That Collection of Privs can be quickly granted to a USER by granting
them the Role (Example: GRANT DBA to HOMER)

Profile
Provides default values for USER attributes such as
Number of Concurrent Sessions
Password complexity

LAB

Creating a role

Create ROLE trainee;


Grant connect to trainee; -- right to log on
Grant resource to trainee; -- right to create objects
Grant select_catalog_role to trainee; -- dictionary privs

LAB Creating user schemas from PL/SQL:


DECLARE
v_sqlstatement varchar2(200);
v_newclass newclass%rowtype;
CURSOR newclass_cursor IS SELECT * from newclass;
BEGIN
DBMS_OUTPUT.PUT_LINE ('****************** begin account creation');
OPEN newclass_cursor;
FETCH newclass_cursor into v_newclass;
WHILE newclass_cursor%found LOOP
DBMS_OUTPUT.PUT_LINE (v_newclass.userid);
v_sqlstatement := 'create user ' || UPPER(v_newclass.userid) || ' identified by oracle ';
v_sqlstatement := v_sqlstatement || 'DEFAULT TABLESPACE USERS ';
v_sqlstatement := v_sqlstatement || 'TEMPORARY TABLESPACE TEMP ';
v_sqlstatement := v_sqlstatement || 'QUOTA 100M on users ';
v_sqlstatement := v_sqlstatement || 'QUOTA 100M on temp ';
v_sqlstatement := v_sqlstatement || 'QUOTA 100M on rbs '; -- rbs quota not needed in 9i
execute immediate v_sqlstatement; -- this is dynamic SQL needed because of early binding
v_sqlstatement := 'GRANT trainee TO ' || v_newclass.userid;
execute immediate v_sqlstatement;
FETCH newclass_cursor into v_newclass;
END LOOP;
DBMS_OUTPUT.PUT_LINE ('****************** end account creation');
CLOSE newclass_cursor;
END;
/

Oracles Architecture

Instance vs. Database


Instance
(memory structures)

Database
(disk structures)

Multiple Instances for 1 Database


Instance A

Instance B

(memory structures)

(memory structures)

Database 1
(disk structures)

Multiple Databases for 1 Instance


Instance A
(memory structures)

Database 1

Database 2

(disk structures)

(disk structures)

Instance to Instance Communication


Instance A

Instance B

(memory structures)

(memory structures)
Via client
Or replication
process

Database 1

Database 2

(disk structures)

(disk structures)

Key structures and Processes


CLIENT
CLIENT
CLIENT

Network

ORACLE INSTANCE
Database Buffer Cache

Redo Log Buffer

Shared Pool
Library
Cache

LSTNR

Data Dictionary
Cache
SERVER
SERVER
SERVER

DBWR

SMON

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

PMON

CKPT

Control
Files
Control
Files

LGWR

ARCH

On-line
Redo
On-line
Log Files
Redo
On-line
Log Files
Redo
Log Files

Background
Processes

Database Buffer Cache


Database Buffer Cache

Number of Buffers determined by


Initialization File Parameter:
DB_BLOCK_BUFFERS (8i)
DB_CACHE_SIZE (9i)
Block Size is a multiple of OS Block.

DBWR

Block Size if fixed in Oracle 8i.


Block Size is not fixed in 9i except for the system,
rollback, and temp tablespaces.
LRU algorithm used to determine buffered data.

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

Free block
Used block
Dirty block

Buffer Hit Ratio


Consistent Gets + DB Block Gets - Physical Reads
Consistent Gets + DB Block Gets

* 100

Generally, a hit ratio below 80% indicates too many


physical reads and suggests that DB_Block_Buffers
should be increased.

LAB

Hit Ratio Since Instance Startup

Select
sum(decode(NAME, 'consistent gets',VALUE, 0)) "Consistent Gets",
sum(decode(NAME, 'db block gets',VALUE, 0)) "DB Block Gets",
sum(decode(NAME, 'physical reads',VALUE, 0)) "Physical Reads",
round((sum(decode(name, 'consistent gets',value, 0)) +
sum(decode(name, 'db block gets',value, 0)) sum(decode(name, 'physical reads',value, 0))) /
(sum(decode(name, 'consistent gets',value, 0)) +
sum(decode(name, 'db block gets',value, 0))) * 100,2) "Hit Ratio"
from v$sysstat
Next: change number of buffers, bounce service, large query, check hits

Shared Pool
Shared Pool
Library
Cache
Data Dictionary
Cache

Library Cache
Holds parsed SQL statements
Interrogate via v$sqlarea & v$librarycache
CURSOR_SHARING = FORCE
Data Dictionary Cache
Holds table and column definitions
and privileges

LAB

Shared Pool Hit Ratios

Library Cache Hit Ratio


Select (sum(pins) / (sum(pins) + sum(reloads))) * 100 Lib. Hit
Ratio
from v$librarycache

Dictionary Hit Ratio


Select (sum(gets) / (sum(getmisses) + sum(gets))) * 100 Dict.
Hit Ratio
from v$rowcache

Also look at v$sqlarea

Oracle Processes
Background Processes
run on server
-as separate processes on UNIX (ps ef | grep
-As separate threads in single service on NT

<ORA_SID>)

Listener Process
one or more per server
listens for connection requests
hands off to server process (on diff. Port)

Server Processes
Run on server
Typically one process to support each connected user (unless MTS)

Client (User) Process


runs on client machine
communicates with a server process on server

Oracle Background Processes


DBWR
Writes dirty blocks from the buffer pool back to disk.
SMON
Checks for consistency, initiates recovery
PMON
Cleans up resources if process fails
CKPT
Updates database status after commits and other key
events.
LGWR
Writes before and after images of changed rows into the
on-line redo log files
ARCH
Numbers and archives on-line redo log files

LAB

Start and stop the instance


And listener services using
Various methods

LAB

Who is logged in?


Look at v$session
Alter system kill session sid, serial;

Oracle Commit Processing


Database Buffer Cache

Redo Log Buffer

DB-7F3 FRED 30000


DB-7F4 JANE 36000

Data requested might or


Might not be in the buffer.
DBWR

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

Update Emp
Set Sal = 40000
Where name=FRED

On-line
Redo
On-line
Log File C
Redo
On-line
Log File B
Redo
Log File A

Oracle Commit Processing


Database Buffer Cache

Redo Log Buffer

DB-7F3 FRED 30000


DB-7F4 JANE 36000

BEGIN SCN 412

LGWR
DBWR

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

Update Emp
Set Sal = 40000
Where name=FRED

May or may not


Have written at this point.

On-line
Redo
On-line
Log File C
Redo
On-line
Log File B
Redo
Log File A

Oracle Commit Processing


Database Buffer Cache

Redo Log Buffer

DB-7F3 FRED 30000


DB-7F4 JANE 36000
RB-65B
BEGIN SCN 412

LGWR
DBWR

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

Update Emp
Set Sal = 40000
Where name=FRED

May or may not


Have written at this point.

On-line
Redo
On-line
Log File C
Redo
On-line
Log File B
Redo
Log File A

Oracle Commit Processing


Database Buffer Cache

Redo Log Buffer

DB-7F3 FRED 30000


DB-7F4 JANE 36000
RB-65B NULL

OLD:7F3 FRED 30000


OLD:RB-65B
BEGIN SCN 412

LGWR
DBWR

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

Update Emp
Set Sal = 40000
Where name=FRED

May or may not


Have written at this point.

On-line
Redo
On-line
Log File C
Redo
On-line
Log File B
Redo
Log File A

Oracle Commit Processing


Database Buffer Cache

Redo Log Buffer

DB-7F3 FRED 30000


DB-7F4 JANE 36000

NEW:RB-65B FRED 30000


RB-65B FRED 30000

OLD:DB-7F3 FRED 30000


OLD:RB-65B
BEGIN SCN 412

DBWR

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

May or may not


Have written at this point.
(rollback segs. First)

Update Emp
Set Sal = 40000
Where name=FRED

LGWR

May or may not


Have written at this point.

On-line
Redo
On-line
Log File C
Redo
On-line
Log File B
Redo
Log File A

Oracle Commit Processing


Database Buffer Cache

Redo Log Buffer

DB-7F3 FRED 40000


NEW:7F3 FRED 40000
DB-7F4 JANE 36000

NEW:RB-65B FRED 30000


RB-65B FRED 30000

OLD:DB-7F3 FRED 30000


OLD:RB-65B
BEGIN SCN 412

DBWR

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

May or may not


Have written at this point.
(rollback segs. First)

Update Emp
Set Sal = 40000
Where name=FRED

LGWR

May or may not


Have written at this point.

On-line
Redo
On-line
Log File C
Redo
On-line
Log File B
Redo
Log File A

Oracle Commit Processing


Database Buffer Cache

Redo Log Buffer

COMMIT SCN 412

DB-7F3 FRED 40000

NEW:7F3 FRED 40000


DB-7F4 JANE 36000

NEW:RB-65B FRED 30000


RB-65B FRED 30000

OLD:DB-7F3 FRED 30000


OLD:RB-65B
BEGIN SCN 412

DBWR

Data
Files
Data
(Inc. RB
Files
Segments)
(Inc. RB
Segments)

May or may not


Have written at this point.
(rollback segs. First)

Update Emp
Set Sal = 40000
Where name=FRED

LGWR

Definitive write
through commit
record

On-line
Redo
On-line
Log File C
Redo
On-line
Log File B
Redo
Log File A

LAB

Simulate Server
Failure after update
But before commit

GO
BACK

Go Back 2 slides
And discuss
consistent gets

Logical to Physical Mapping


(controlling where objects are stored)

Oracle
Tablespace is
similar to
SQL Server
File Group.

Database
Stores objects in
Tablespaces
Made Persistent via
DataFiles

Why multiple Tablespaces?


Reduce Disk Contention by spreading disk I/O
over multiple spindles.
We control which TS objects are stored on
We control physical location of TS datafiles
Even if all disks are in use currently, the best practice is to keep major apps
on different tablespaces to more easily allow for future movement.

Reduce performance degradation during on-line


physical backups.
Allows different applications to have different
physical parameters
block size
Fragmentation level
etc

Typical Tablespaces:

SYSTEM
RBS
USERS
TEMP
TOOLS
INDX
DRSYS
OEM_REPOSITORY

32464
265600
89440
10560
1280
2560
2560
3841

E:\ORACLE\ORADATA\INSY\SYSTEM01.DBF
E:\ORACLE\ORADATA\INSY\RBS01.DBF
E:\ORACLE\ORADATA\INSY\USERS01.DBF
E:\ORACLE\ORADATA\INSY\TEMP01.DBF
E:\ORACLE\ORADATA\INSY\TOOLS01.DBF
E:\ORACLE\ORADATA\INSY\INDX01.DBF
E:\ORACLE\ORADATA\INSY\DR01.DBF
E:\ORACLE\ORADATA\INSY\OEM_REPOSITORY.ORA

Typical OFA segregation


1. Oracle software
12.Control file 1
13.Control file 2
2. System tablespace
14.Control file 3
3. System indexes
15.Application software
4. RBS tablespace
16.User Tablespace inc.
5. Data tablespace
indexes
6. Data Indexes TS
17.Archive log dest
7. Temp tablespace
8. Tools tablespace inc. index
9. Online redo log 1
10. Online redo log 2
11. Online redo log 3

RAID: Redundant Array of Inexpensive Disks


Volume Set:

C:

123
456

789
10 11

12 13
14 15

Stripe Set (Raid Level 0)

123
10 11
16 17

456
12 13
18 19

789
14 15
20 21

RAID: Redundant Array of Inexpensive Disks


Mirror set (Raid level 1):

1 3 2
4 3 5

Drive
Controller

1 3 2
4 3 5

RAID: Redundant Array of Inexpensive Disks

Stripe Set with Parity (Raid Level 5)

1
0
0
0

0
0
1
1

1
0
0
0

1
0
1
1

1
0
0
1

0
1
0
0

=
=

0
1
1
1

parity
data

0
0
0
1

1
0
0
1

0
1
0
0

1
0
1
1

0
1
0
1

RAID: Redundant Array of Inexpensive Disks

Stripe Set with Parity (Raid Level 5)

1
0
0
0

0
0
1
1

1
0
0
0

=
=

0
1
1
1

parity
data

0
0
0
1

1
0
0
1

0
1
0
0

1
0
1
1

0
1
0
1

RAID: Redundant Array of Inexpensive Disks


Mirrored Stripe Set (Raid Level 0 + 1)
Data container

123
10 11
16 17

456
12 13
18 19

789
14 15
20 21

456
12 13
18 19

789
14 15
20 21

Mirror container

123
10 11
16 17

RAID: Redundant Array of Inexpensive Disks


Stripe Set of Mirrors (Raid Level 1 + 0)
Stripe Set
Mirror Set

Mirror Set

Mirror Set

123
10 11
16 17

456
12 13
18 19

789
14 15
20 21

123
10 11
16 17

456
12 13
18 19

789
14 15
20 21

Large Scale RAID dependent Oracle Installation


Cabinet 1 (9 Containers, 42 drives)

c1

Log 1

Ndx 3

Log 2

c2

Data 1, Cntrl 1

Ndx 4

c3

Data 2, Cntrl 2

Log 3

Intf 1

Sys, Rbs, Temp

Cabinet 2 (9 containers, 42 drives)

c4

Log 4

Ndx 1

Data 3, Cntrl 3

Log 5

c5
RAID 1 (Log 1)

Controller 1
(c1) Details:

Ndx 2

Data 4, Cntrl 4
RAID 0 + 1 (Ndx 3)

RAID 0 + 1 (Data 1, Cntrl 1)

Source: Oracle Performance Tuning 101, Oracle Press

c6

Log 6

Intf 2

Archived Logs

Small Scale RAID dependent Oracle


Installation optimized for read/write operations.

Datafiles, INIT, and Control Files


RAID 1 + 0

Redo
Log Files

Arch
Log Files

Raid 1

Raid 1

LAB

Directly Examine:
dba_tables
dba_tablespaces
V$datafile
Or indirectly:
@\\neelix\oracle\scripts\admin\datafiles
@\\neelix\oracle\scripts\admin\usertabs
Look at Same using DBA studio
Create a new tablespace
And related datafile(s).

Creating Indexes and Tables in specific


tablespaces.
Each user is assigned a default tablespace.
Dont create tables when logged in as system or sys
unless instructed to do so when installing Oracle tools.
Override defaults when necessary through extended
DDL syntax.
CREATE TABLE GLACCOUNTS
( AccountNum
char(6)
Name
varchar2(30),
Balance
number(12,2))
TABLESPACE FINANCIALS;

You might also like