You are on page 1of 204

Obay Salah Mirgani (Oracle 10g DBA OCP)

obaysalah@hotmail.com

3 1

4 2

6 3
Oracle Architectural Components

27 4
Creating an Oracle Database

47 5
Controlling the Database

63 Managing Tablespaces and Data files 6

79 Control File & Redo Log Files 7

100 8
Administering Users

126 9
Oracle Database Security & Monitoring

160 Oracle Net Services & Database Link & metrlized View 10

189 Undo Management & Flashback Technology 11



SQL*PLUS .

)(

4
5

.

6
Oracle Instance Oracle Database

Oracle Instance Oracle Database


.

7
:Oracle Instance 1.1

8
-:
Memory Structure
Background Processes

:Memory Structure 1.1.1

Instance
-:

System Global Area (SGA)-1


Program Global Area (PGA) -2

:System Global Area (SGA) 1.1.1.1

Shared Global Area



Oracle Server Virtual Memory Instance

9
SGA_MAX_SIZE ) (Parameter File
Dynamic -:
Mandatory Memory -1
Optional Memory -2

Mandatory Memory :
:Shared Pool -1
SHARED_POOL_SIZE :
Library Cache -1
Data Dictionary Cache -2
: Database Buffer Cache -2
. DB_CACHE_SIZE
;ALTERSYSTEMSETDB_CACHE_SIZE=96M

.
Redo Log Buffer -3
. LOG_BUFFER

Optional Memory :
Large Pool -1
Java Pool -2
Streams Pool -3

: SGA

SGA Component Size Controlled By Areas Of Influence Simple Descriptions

10
Shared Pool SHAREAD_POOL_SIZE Library cache Oracle need to allocate
Shared SQL Areas* & deallocate memory
Oracle 6 thru 10g as SQL or Procedural
Private SQL Areas* Code is executed based
PL/SQL Procedures * on the individual needs
and Packages of users sessions and in
accordance to the LRU
Various Control *
algorithm
Structure

Highly accessed
memory structure that
Dictionary Cache provide information on
Row Cache * object structure to SQL
statements being parsed
Redo Log Buffer LOG_BUFFER Redo entries * Holds changes made to
data and allows for
Oracle 6 thru 10g reconstruction of data
in the case of failure
Database Buffer DB_2K_CACHE_SIZE Write List * Holds copies of data
Cache DB_4K_CACHE_SIZE requested by SQL and
DB_8K_CACHE_SIZE LRU List * reduces requests to disk
DB_16K_CACHE_SIZE by having data in
Oracle 6 thru 10g DB_32K_CACHE_SIZE memory
DB_KEEP_CACHE_SIZ You may have many
E different buffer caches
DB_RECYCLE_CACHE that help segregate on
_SIZE usage patterns
Large Pool LARGE_POOL_SIZE Shared server * For large memory
allocations
Oracle XA *
Form Oracle 8i I/O Server Processes
Backup & Restore
Java Pool JAVA_POOL_SIZE Run stats* Memory available for
the java memory
From Oracle 8i Methods* manager to use for all
Classes* things Java
Session code*
Data in JVM
Streams Pool STREAMS_POOL_SIZE Stream activity* New to Oracle 10g
Memory available for
From Oracle 10g Stream Processing

11
SGA ) (Parameters File
-:
SQL> SHOW SGA

:Related Views
* V$SGA

:Program Global Area (PGA) 1.1.1.2


Process Global Area Instance
Server Process
Server Process . Server Process
Server Process PGA .
-:
Private SQL Area -1
Session Memory -2
SQL Work Area -3

Background Processes 1.1.2

12
Background Processes
-: Processes

-: User process -1
.
-: Server Process -2 Instances
User Process
Server Process User Process Instance User Process
Server Process Dedicated Server
Shared Server .
- :Background Processes -3
Instance -:

:Mandatory -1 . Instance
: Optional -2 Instance
.

13
:Mandatory Processes 1.1.2.1
-: Processes

: System Monitor (SMON) -1

14
Process 1 )(Recovery
Instance )Real Application Clusters (RAC
Instance SMON Instance
Recovery Instance .

SMON Segments
.

: Process Monitor (PMON) -2


Process 1 Recovery Process
User Process Database Buffer Cache
Process Instance
Dispatcher Processes Dispatcher Processes Server
Processes .

: Log Writer (LGWR) -3


Process 1
Red Log Buffer Redo Log Files -:
-1 . Commit
-2 .
-3 . Redo Log Buffer
-4 DBWn .
LGWR Redo Log Groups Redo log File
LGWR . Alert Log
: Commit LGWR
Redo log Buffer . Redo Log File
LGWR . Instance

:Database Writer (DBWn) -4


Process 20
Database Buffer Cache Datafiles DBWn

15
. 20 Process
. DB_WRITER_PROCESSES

Process Database Buffer Cache Datafiles


-:
-1 Checkpoint .
-2 .
-3 Log Switch .
-4 .
-5 Block .
-6 . Buffer
-7 -:
* Tablespace Offline
* Tablespace Read Only
* Table Drop or Truncate
* Tablespace Begin Backup

:Checkpoint Process (CKPT) -5

Process 1
Buffer Datafiles
Datafiles Datafiles headers Control files
SCN
.
CKPT -:

16
-1 .Log Switch
-2 LOG_CHECKPOINT_TIMEOUT
-3 BLOCKS
LOG_CHECKPOINT_INTERVAL
-4 Buffer . FAST_START_IO_TARGET
-5 -:
;SQL> ALTER SYSTEM SWITCH LOGFILE
;SQL> ALTER SYSTEM CHECKPOINT

: Recover (RECO) -6
Process 1 Process

Process .

:Optional Processes 1.1.2.2


Processes Processes -:
: Archiver (ARCn) -1
Process 10 Online Red log
Files ) (Archive Log Destination Log Switch
Process , Archive Log Mode
Process . LOG_ARCHIVE_MAX_PROCESSES

:Recovery Writer(RVWR) -2

17
Process Oracle 10g Process
. Flashback Database

.Lock Monitor (LMON) -3


. Lock Manager DAEMON -4
. Lock Process (LCKn) -5
. Block Server Process (BSPn) -6
. Queue Monitor (QMNn) -7
. Event Monitor (EMNn) -8
. Shared Server Processes (Snnn) -9
. Memory Manager (MMAN)-10
.Parallel Execution slaves (Pnnn)-11
. Trace Writer (TRWR) -12
. DMON -13
. Dispatcher (Dnnn) -14
. MMON -15
. Wakeup Monitor Process (WMON) -16
. Memory Monitor Light (MMON) -17
. RBAL -18
. ARBx -19
. ASMB -20
. Change Tracking Writer (CTWR) -21
. Job Queue Monitoring (CJQn) -22

:Oracle Database 1.2

-:
Oracle Database server = Oracle Instance + oracle Database
-:
-: Control files -1


. Control file

18
-: Redo log files -2
) (Recover
.
Parameter file
. Parameter file

-: Database files -3

) ( Table & Views & Indexes .

-: Archived redo log files -4


Redo log files
). (Recover

-5 -:
* Parameter file Oracle Instance
* Password file

.
-:Tablespace and Data File

): (Physical & Logical

19
:Physical
.

:Logical .

-:Tablespace and Data File

20
Data
files ) (Logical
. Tablespace

21
Tablespace Data file Data file
Tablespace .
Bigfile Tablespaces Data file
. 4GB
Tablespace Segments
Tablespace Segment Tablespace
Extents Extent
Segment Extents
. Blocks
Block Block
3BK 5BK Block Oracle 9i
Release Block Oracle 9i
Release Block

-:

22
Tablepace . Users Tablespace
Data file ( (D1&D2 Tablespace Segments
) (T1&T2&T3 Segment T1 Extents Extent
Blocks Segment T1 )
(D1&D2 Segment D1 D2
Tablespace .

23
-1 Instance ).(Server
-2 Application
.
-3 .Server Process

24
-4 .
-5 Server Process Shared Pool
Shared SQL Area
Shared SQL Area .
-6 Server Process Data file
Data Block . SGA
-7 Server . SGA
-8 Commit LGWR . Redo Log File
-9 DBWn Disk . Data File
Server Process . -10

25
26
-:
.
.
. DBCA

27

Tablespace
Data file Tablespace

.

.
OUI (Oracle
) Universal Installer DBCA .

-:

28
-1 Application .
-2 process ). (parameter file
-3 SGA Instance
Instance Instance SGA .
-4 Block_Size . Row_Size
-5 .

-1 ): (Manually

. windows

-1 ) -: Instance (ORACLE_SID Oracle Instance


. ORACLE_SID Instance . OBAY

D:\ORACLE\PRODUCT\10.2.0>SETORACLE_SID=OBAY

-2 Oracle Service WINDOWS


Service Instance WINDOWS
. LINUX
SERVICE . WINDOWS

29
D:\ORACLE\PRODUCT\10.2.0\DB_1>ORADIMNEWSID
%ORACLE_SID%INTPWDPASSWORDSTARTMODEM

. Services

-3 ) -: (Parameter File :

D:\ORACLE\PRODUCT\10.2.0\db_1\database\copy
init.oraINITobay.ora
) (UNUX $ORACLE_HOME/DB :
:

30
-:

31
CONTROL_FILES =
(D:\oracle\product\10.1.0\oradata\OBAY\CONTROL01.
CTL,
D:\oracle\product\10.1.0\oradata\OBAY\CONTROL02.CT
L,
D:\oracle\product\10.1.0\oradata\OBAY\CONTROL03.CT
L)
UNDO_MANAGEMENT = AUTO
undo_tablespace = UNDO'
DB_NAME = OBAY
DB_BLOCK_SIZE = 8192
background_dump_dest =
'D:\oracle\product\10.1.0\admin\obay\bdump
user_dump_dest =
'D:\oracle\product\10.1.0\admin\obay\udump'
core_dump_dest =
'D:\oracle\product\10.1.0\admin\obay\cdump'

NOMOUNT Instance -4

32
-5

create database obay


Logfile
group 1
('D:\oracle\product\10.1.0\oradata\OBAY\redo1.log')
size 10m,
group 2
('D:\oracle\product\10.1.0\oradata\OBAY\redo2.log')
size 10m,
group 3
('D:\oracle\product\10.1.0\oradata\OBAY\redo3.log')
size 10m
datafile
'd:\obay\system.dbf' size 50m
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
extent management local
sysaux datafile
'D:\oracle\product\10.1.0\oradata\OBAY\sysaux.dbf'
size 10m
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
undo tablespace undo
datafile
'D:\oracle\product\10.1.0\oradata\OBAY\undo.dbf'
size 20m
default temporary tablespace temp tempfile
'D:\oracle\product\10.1.0\oradata\OBAY\temp.dbf'
size 20m
default tablespace userdata1 datafile
'D:\oracle\product\10.1.0\oradata\OBAY\userdb.dbf'
size 10m ;

33

, ). ( SYSTEM & SYSAUX TABLESPACE
Alert Log
. BACKGROUND_DUMP_DEST

ORA-01031
ORA_DBA .

MOUNT .

-6 -: Data Dictionary -:

D:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ADMIN\CATALOG
.SQL

34
. SYS

-:

D:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ADMIN\CATPROC
.SQL

Structures . PL/SQL

)(UNIX

-2 ): (DBCA

35
-:
-1 .
-2 .
-3 .
-4 ). (Templates


)DATABASE CONFIGURATION ASSISTANT (DBCA

36
.

.

.
) (Template
.

) (Template
). (Manage Template
. General Purpose

37
) Instance (SID .

38

.

.
.

39
.
. General Purpose

Flash Recovery Area

, .

40
File Location Variables
.

Schema .

Block
.

41
.


.
Finish -:

42

.

43
44

.

45


.

.

Services STOP START
RESTART )& & Manual Disabled
.(Automatic
:Automatic Services
.START
:Manual Services .
:Disabled Services .

46
):(Initialization Parameter File


Control Files ). (SGA

.Control Files
-:
) (initSID.ora :Static Parameter File (PFILE) .1
SID .Instance



.
: PFILE

47
:Persistent Parameter File (SPFILE) .2
spfileSID.ora SID Instance
-:

ALTERSYSTEMSET%PARAMETER%=VALUE

;ALTERSYSTEMSETundo_tablespace=UNDO

. SCOPE

=ALTERSYSTEMSETparameter=value[SCOPE
]MEMORY|SPFILE|BOTH

SCOPE -:
:MEMORY Instance -1
.
:SPFILE -2
.
:BOTH Instance -3
SPFILE .
Instance SPFILE ) (BOTH
SPIFLE
.

SPFILE PFILE
.SYSDBA

;CREATESPFILEFROMPFILE

48
PFILE .SPFILE

):(Starting Up Database

-:
.NOMOUNT -1
.MOUNT -2
.OPEN -3

:NOMOUNT
Instance
Control Files Instance -:
-1 -:
.spfileSID.ora *
* .spfile.ora
.initSID.ora *

49
- 2 .SGA
- 3 .background processes
- 4 alertSID.log . trace files

:MOUNT
Instance
Data files
Instance -:
-1 Control files .
-2 Control files Data Files
. Redo log Files

:OPEN
Instance
.
-:

50
.Online Data Files -1
.Online Redo Log Files -2


NOMOUNT OR MOUNT OPEN
.ALTER

51
):(Shutting Down The Database
SYSDBA OR SYSOPER
-:
.NORMAL -1
.TRANSACTIONAL -2
.IMMEDIATE -3
.ABORT -4

52
:NORMAL -1

-:
.
Oracle Server
.
Buffer .
Background Processes SGA .
.
.Instance
Instance .

: TRANSACTIONAL -2
-:

53
.
) (Transaction
.
) (Transactions
.
Instance .

:IMMEDIATE -3
-:
.
Oracle Server .
Oracle Server .Instance
.Instance
Instance .

:ABORT -4
-:
.
.
Buffer .

54
.
Instance .
.Instance

Opening a Database in Read-Only Mode:

Read Only .
Read Only -:
-1 .
-2 Data Files . and online offline
-3 .offline data file and tablespace

55
Opening a Database in Restricted Mode:


RESTRICTED SESSION PRIVILEGE.

Export
.

RESTRICTED SESSION PRIVILEGE


.

56
RESTRICTED SESSION
-:
-1 SESSION :

SELECTSID,SERIAL#FROMV$SESSION

-2 .SESSION

57
58
Logical
Tablespaces Physical . Data Files

Data Files Tablespace


.

Data Files . Tablespace

-:
-1 .Tablespaces
-2 .Tablespaces
-3 .Tablespaces

59
-4 .Tablespaces

60
-1 :Tablespaces

61
Tablespaces :
:Space Management in Tablespaces - 1
Tablespaces -:
.Locally Managed Tablespaces -1
Extents Tablespace Tablespace
Bitmaps Extents Oracle Server
Tablespace Bitmap .
Oracle 10g , Oracle 8i
Dictionary Data .Generate Undo Information
Tablespace Data Dictionary Locally

DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL

Tablespace :Extents
:Automatic -1 Extent

).(Temporary Tablespace
:Uniform -2 Extent Tablespace
extent .IMB
.Undo Tablespace

Tablespace :Segement
.Automatic -1
.Manual -2

Dictionary- Managed Tablespaces: -2


Extents Tablespace Data Dictionary
Extents Oracle Server
. Data Dictionary Tables

:Logging -2

62
:Yes Tablespaces -1
.Redo Log Files
:NO Tablespaces -2
.Redo Log Files

:Mode -3
:ReadOnly -1
Tablespace
) ( System&SysauxTablspaceRead
.Only
:Readandwrite -2
.Tablespace

:Views -4
Tablespaces ..Data Files
DBA_TABLESPACES
V$TABLESPACE
DBA_DATA_FILES
V$DATAFILE
DBA_TEMP_FILES
V$TEMPFILE

:Contains -5
: Permanent -1 .
:Temporary -2
.
:Undo -3 Database Server Undo Information

Undo
. .%Undo_Tablespace=%Value
.
:Status -6

63
:Online -1 Tablespace .
:Offline -2 Tablespace
) . ( Normal & Temporary & Immediate & For Recover
) (System & Undo Tablespace .Offline

:SQL -7
:Create -1 .Tablespace
:Alter -2 .Tablespace
:Drop -3 .Tablespace

:Type -8
:Small Tablespace -1 Tablespace Data File
.Tablespace
:Big Tablespace -2 Tablespace
Oracle 10g Terabytes(TB) 128 data
. File

:Tablespace

:System Tablespace -1
Tablespace
) . ( Read only & Offline

64
Tablespace Oracle Server
Data Dictionary
).(Sys Schema

:Sysaux Tablespace -2
Tablespace System Tablespace
. Tablespace
. Oracle10g

:Temp -3
Tablespace .
Temporary Tablespace
.

:Undo -4
Tablespace Oracle Server Undo
Information

.Tablespace

-1 Tablespace :

'CREATE TABLESPACE TEST DATAFILE 'D:\TEST\TEST1DBF


;SIZE 10M NOLOGGING

65
.Locally Managed Tablespace Tablespace

CREATE TABLESPACE TEST DATAFILE 'D:\TEST\TEST.DBF'


SIZE 10M EXTENT MANAGEMENT LOCAL UNIFORM 100K;

CREATE TABLESPACE TEST DATAFILE 'D:\TEST\TEST.DBF'


SIZE 10M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

Tablespaces -2

.Tablespace Data File

ALTER TABLESPACE TEST ADD DATAFILE


D:\TEST\TEST.DBF SIZE 5M;

66
. Data File

ALTER DATABASE DATAFILE 'D:\TEST\TEST.DBF' RESIZE


12M;

:Tablespace -3

.Data Files Tablespace

DROP TABLESPACE TEST;

Tablespace Data File


.

CREATE TABLESPACE OBAY DATAFILE 'D:\TEST\TEST.DBF'


REUSE;

.Data File Tablespace

DROP TABLESPACE OBAY INCLUDING CONTENTS AND


DATAFILES;
67
:Read Only Tablespace -4

ALTER TABLESPACE TEST READ ONLY;

.Read Only System Tablespace

.Sysaux Tablespace

:Read Write Tablespace -5

ALTER TABLESPACE TEST READ WRITE;

68
:Offline Tablespace -6

ALTER TABLESPACE TEST OFFLINE

:Online Tablespace 7

ALTER TABLESPACE TEST OFFLINE;

:Tablespace 8-

ALTER TABLESPACE TEST RENAM TO EXAM;

:Temporary Tablespace -9

CREATE TEMPORARY TABLESPACE TEMPEXAM TEMPFILE


'D:\TEST\TEMPEXAM.DBF' SIZE 7M;

69
. Default Temporary Tablespace Tablespace

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE


TEMPEXAM;

. Default Temporary Tablespace

SELECT PROPERTY_NAME,PROPERTY_VALUE FROM


DATABASE_PROPERTIES WHERE
PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

:Temporary Tablespace Group -10


Resource Oracle 10g
.

CREATE TEMPORARY TABLESPACE TEMPG1 TEMPFILE


'D:\TEST\TEMPG1.DBF' SIZE 4M TABLESPACE GROUP
GROUB1;

70
.Group Tablespace

.Group Tablespace

ALTER TABLESPACE TEMPEXAM TABLESPACE GROUP GROUP1;

:Big Tablespace -11

CREATE BIGFILE TABLESPACE BIG1 DATAFILE


D:\TEST\BIG1.BDF SIZE 20M;

TABLESPACES & DATAFILES


DBA_TABLESPACES
USER_TABLESPACES
DBA_TABLESPACE_GROUPS
V$TABLESPACE

71
DBA_DATA_FILES
DBA_TEMP_FILES

72
:Control File


Mount
Nomount . Control File

73
Oracle Server
.
Control File .
Control File
. Control File

Control Files -:
-1 .
-2 .
-3 .Tablespaces
-4 Data Files .Redo Log Files
-5 Redo Log .
-6 . . RMAN .
-7 .
-8 )MAXLOGFILES . MAXLOGMEMBERS.
.(MAXLOGHISTORY. MAXDATAFILES .MAXINSTANCES

:Multiplexing the Control File


Control File
Control File
.Control File
Disk .

74
OBAY 3 Control Files
Control File .
-:
: .SPFILE
: .init.ora

)-: (SPFILE
-1 Control_files ) ( SPFILE
Control File .

ALTER SYSTEM SET


CONTROL_FILES='D:\oracle\product\10.1.0\oradata\OBAY
\CONTROL01.CTL','D:\oracle\product\10.1.0\oradata\OB
\AY\CONTROL02.CTL','D:\oracle\product\10.1.0\oradata
OBAY\CONTROL03.CTL','D:\oracle\product\10.1.0\oradat
a\OBAY\CONTROL04.CTL' SCOPE=SPFILE

-2 .

-3 Control Files
Control_Files

75
-4 .

Control Files .

76
)-: (init.ora
) (SPFILE
)-: (initobay.ora
-1 .

-2 Control_Files .initobay.ora

77
Control_Files
CONTROL05 .

.
-3 Control Files
. Control_Files

-5 .

.SHOW APRAMAETERS

78
-:


. Parameter
File . Control File -:

-1 :

;SELECT NAME FROM V$DATABASE

.OBAY

79
-2 . Control File

. Trace File
Trace File
Control File . .
. user_dump_dest
.

;ALTER DATABASE BACKUP CONTROLFILE TO TRACE

80

. Control.trc

Control File
Tablespace Data File Trace File
.Control File
Control.trc :

Control.trc Control File


-:

81
.

-3 .

-4 INITobay.ora ) (PFILE
.

db_name OBAY TEST .

-5 Control Files .

82
-6 . NOMOUNT

-7 Control File Trace File .

-8 .RESETLOGS

-9

83
:Redo Log Files

84

.
Data Files .

GROUP
. Groups

Group Members Member


Group .

LGWR Background Process Redo log Buffer Redo


.Log Files

85
Redo Log File LGWR Redo Log File
. Log Switch

Oracle Server . Redo Log Buffer


Buffer Redo Log File LGWR -:
-1 ).(Commit
-2 Buffer .
-3 .DBWn

Log Switch
-:

;ALTER SYSTEM SWITCH LOGFILE

Checkpoint Log Switch


Header Data Files Control Files .

Checkpoint -:

;ALTER SYSTEM CHECKPOINT

86
: Online Redo Log Files Group

Online Redo Log Files Group


-:

ALTER DATABASE ADD LOGFILE GROUP 4


D:\ORACLE\PRODUCT\10.1.0\ORADATA\OBAY\REDO04.RD
O SIZE 10M;

87
-: Groups Members

ALTER DATABASE ADD LOGFILE MEMBER


'D:\oracle\product\10.1.0\oradata\OBAY\RED1.RDO'
TO GROUP
1, ,'D:\oracle\product\10.1.0\oradata\OBAY\RED2.
RDO' TO GROUP 2,
'D:\oracle\product\10.1.0\oradata\OBAY\RED3.RDO'
TO GROUP
3,'D:\oracle\product\10.1.0\oradata\OBAY\RED4.RD
O' TO GROUP 4;

-:Online Redo Log Groups

ALTER DATABASE DROP LOGFILE GROUP 4;

Groups
. current or active Groups

. Oracle Group

-:Online Redo Log Members

ALTER DATABASE DROP LOGFILE MEMBER 88


D:\ORACLE\PRODUCT\10.1.0\ORADATA\OBAY\RED3.RDO;
-:Clearing Online Redo Log Files

Members Group
. Redo Log Files

;ALTER DATABASE CLEAR LOGFILE GROUP 2

Archive log Clearing


Group 2
-:

ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP


;2

) . (Full Backup

89
-:Redo Log Files
Redo Log Files Log File
. ALTER DATABASE RENAME FILE
.MOUNT

:Redo Log File


Member Redo Log Files Group
Member Group Alert
. log File Member .

:Redo Log File

90
91
-:

.
. Roles

92
.Privileges
Resource .

.
-:
-1 30
.
-2 . .
Default Tablespace -3 Tablespace .
Temporary Tablespace -4 Tablespace .
-5 Profile .

Schema
Schema .

93
. TEST

CREATE USER TEST IDENTIFIED BY TEST DEFAULT


TABLESPACE USERS TEMPORARY TABLESPACE TEMP
;PROFILE DEFAULT PASSWORD EXPIRE ACCOUNT UNLOCK

TEST TEST
Users Tablespace Temp
. Tablespace
ACCOUNT .

Default Tablespace .Temporary Tablespace


Default Temporary Tablespace Temp
Default Tablespace Users
.Default
Profile . Default Profile

:QUOTA

94
Tablespaces
.
Quota
. Tablespace
Quota Tablespace
. Unlimited
.

TEST . Users Tablespace

;ALTER USER TEST QUOTA 0M ON USERS

. Users Tablespace

;ALTER USER TEST QUOTA UNLIMITED ON USERS

. Unlimited Tablespace
.Tablespaces

;ALTER USER TEST QUOTA UNLIMITED ON USERS

95
-:

CREATE USER TEST IDENTIFIED BY TEST QUOTA 2M ON


;USERS

-:
DBA_TS_QUOTAS
USER_TS_QUOTAS

-:

-:

) : (Password
.
.identified by password -:

:External
.
.
OS_AUTHENT_PREFIX
$OPS
.

96
OBAY
ADMINISTRATOR
OBAYADMINISTRATOR . External

-:
-1 OS_AUTHENT_PREFIX

;SHOW PARAMETER OS_AUTHENT_PREFIX

-2 OBAY

'ALTER SYSTEM SET OS_AUTHENT_PREFIX='OBAY


;SCOPE=SPFILE

-3 .

97
-4 OBAYADMINISTRATOR .

CREATE USER OBAYADMINISTRATOR IDENTIFIED


;EXTERNALLY

:
DBA_USERS
SESSION

SELECT sid,authentication_type, osuser FROM


;V$SESSION_CONNECT_INFO

OBAYADMINISTRATOR
.
):(Privilege

.

98

Profile .
.

-:
-:System -1 .
700 System Privileges :

: SYSDBA & SYSOPER .


: CREATE TABLESPACE .Tablespace

System Privileges
-:

;SELECT PRIVILEGE FROM DBA_SYS_PRIVS


System Privileges . TEST

;GRANT CREATE TABLESPACE TO TEST

TEST . Tablespace

ANY :
:SELECT TABLE SELECT .
:SELECT ANY TABLE SELECT
.

System Privileges WITH ADMIN


.OPTION

99
.

;GRANT ALTER SYSTEM TO TEST WITH ADMIN OPTION

TEST ALTER SYSTEM


.

) (SYSDBA & SYSOPER & RESTRICTED SESSION & ALTER DATABASE
..
CREATE
TABLESPACE .TEST

;REVOKE CREATE TABLESPACE FROM TEST

TEST CREATE
TABLESPACE WITH ADMIN OPTION TEST
Tablespace .TEST1
CREATE TABLESPACE .TEST

.Tablespace
: TEST1 TEST

100
System Privileges -:

;SELECT PRIVILEGE FROM USER_SYS_PRIVS

:
DBA_ROLES
USER_ROLE_PRIVS
DBA_ROLE_PRIVS
ROLE_ROLE_PRIVS
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
SESSION_PRIVS

-:Privileges Object -2
.

TEST EXAMPLE
SELECT .TEST1

;GRANT SELECT ON EXAMPLE TO TEST1

101
SELECT EXAMPLE
TEST .TEST1

;GRANT SELECT ON TEST.EXAMPLE TO TEST1

WITH GRANT OPTION Objects Privileges


.

GRANT INSERT ON EXAMPLE TO TEST1 WITH GRANT


;OPTION

TEST1 SELECT EXAMPLE


TEST .

TEST SELECT EXAMPLE


TEST1 TEST1
TEST2 TEST1
TEST1 . TEST2

-:

102
;SHOW USER

.TEST

TEST .EXAMPLE
TEST SELECT EXAMPLE
.TEST1

GRANT SELECT ON EXAMPLE TO TEST1 WITH GRANT


;OPTION

TEST1 SELECT :

103
TEST1 SELECT EXAMPLE
TEST .TEST2

;GRANT SELECT ON TEST.EXAMPLE TO TEST2

;SELECT * FROM TEST.EXAMPLE


TEST2 SELECT . EXAMPLE

. TEST1

;REVOKE SELECT ON EXAMPLE FROM TEST1

TEST1 SELECT . EXAMPLE

SELECT . EXAMPLE

;SELECT * FROM TEST.EXAMPLE

104
.TEST2

. EXAMPLE TEST2

SELECT * FROM TEST.EXAMPLE;

: Objects Privileges
DBA_TAB_PRIVS
ALL_TAB_PRIVS
USER_TAB_PRIV
DBA_COL_PRIVS
ALL_COL_PRIVS
USER_COL_PRIVS
SESSION_PRIVS

105
-:ROLES
100
.

.
.ROLES

ROLE
100
ROLES

ROLES .
100
.ROLES
ROLES
.

ROLE OBAY ROLE


CONNECT & RESOURCE ROLE .TEST

;CREATE ROLE OBAY

106
ROLE
Roles .

ROLE .

;CREATE ROLE ROLENAME IDENTIFIED BY PASSWORD

ROLE .

;GRANT CONNECT,RESOURCE TO OBAY


;GRANT OBAY TO TEST

ROLE .TEST

: WITH ADMIN OPTION . ROLE


ROLES .

ROLE . System Privilege

;REVOKE OBAY FROM TEST

ROLES . OBAY ROLE

107
;ALTER ROLE OBAY IDENTIFIED BY OBAY

ROLE .

;DROP ROLE OBAY


ROLE ORACLE SERVER ROLE
ROLE.

:PROFILES

SESSION
.PROFILE
PROFILE
ORCLE SERVER PROFILE DEFAULT
PROFILE .
PROFILE .

PROFILE

108
:FAILED_LOGIN_ATTEMPTS
.
:PASSWORD_LIFE_TIME
.
:PASSWORD_REUSE_TIME .
.PASSWORD_REUSE_MAX=UNLIMITED
:PASSWORD_REUSE_MAX .
.PASSWORD_REUSE_TIME=UNLIMITED
:PAWWORD_LOCK_TIME .
:PASSWORD_GRACE_TIME
.
:PASSWORD_VERFY_FUNTION .

:
:CONNECT TIME
.
:IDLE TIME
.
:CONCURRENT SESSIONS SESSEIONS
.
:PRIVATE SGA PRIVATE SGA
.SHARED SERVER

109
.NEWPROFILE PROFILE

CREATE PROFILE NEWPROFILE LIMIT


FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 60
PASSWORD_GRACE_TIME 7
CONNECT_TIME 1000
IDLE_TIME 30
SESSIONS_PER_USER UNLIMITED;

PROFILE

ALTER PROFILE NEWPROFILE LIMIT


SESSIONS_PER_USER 5;

.PROFILE

ALTER USER TEST PROFILE NEWPROFILE;

110
. PROFLE

PROFILE
DBA_PROFILES

.NEWPROFILE PROFILE

SELECT RESOURCE_NAME,LIMIT FROM DBA_PROFILES WHERE


PROFILE='NEWPROFILE';

PROFILES

SELECT DISTINCT (PROFILE) FROM DBA_PROFILES;

111
PROFILE

DROP PROFILE NEWPROFILE CASCADE;

112
113

.

114

.

-:
-1 : .
-2 :
.

-1 -:

:

-1 :

) (Backup

115

.

-2 :DATA DICTIONARY
DATA DICTIONARY .
FALSE .O7_DICTIONARY_ACCESSIBILITY

10g .FALSE
:

;SHOW PARAMETER O7_DICTIONARY_ACCESSIBILITY

* ANY TABLE
DROP ANY TABLE .DATA DICTIONARY
SYS .SYSDBA
-3 : PUBLIC
DATABASE SERVER USER GROP PUBLIC
.PUBLIC

.PUBLIC

;GRANT ALTER ANY TABLE TO PUBLIC

116
.

;REVOKE ALTER ANY TABLE FROM PUBLIC

-3 :
DBA ROLE ROLE
SYSDBA & DROP AY TABLE
.

-4 : FALSE
REMOTE_OS_AUTHET
. FALSE . 10g

. EXTERNAL

117
-2 -:((MONITORING OR AUDITING



-:

:Standard Database Auditing -1


)( System Privileges and Object Privileges
.

:Value-based auditing -2
.

:Fine-grained auditing -3 SQL .

10g
AUDIT_TRAIL -:
:NONE -1 .
:DB -2 . SYS
:OS -3
Widows Event Log UNIX or LINUX
. AUDIT_FILE_DEST

118
10g


.


.

AUDIT_TRAIL NONE
) (DB OR OS
.DB

.AUDIT_TRAIL

;SHOW PARAMETER AUDIT_TRAIL

AUDIT_TRAIL DB
.

;ALTER SYSTEM SET AUDIT_TRAIL=DB SCOPE=SPFILE


.

119
:Standard Database Auditing -1

). ( System Privileges and Object Privileges
) ( BY SESSION & BY ACCESS
:BY SESSION
SESSION

120
X SESSION SESSION 5
.X
SESSION .GROUP BY SESSION
:BY ACCESS 5
.
BY SESSION
BY ACCESS .

) . (SUCCESSFUL OR NOT SUCCESSFUL

Standard Database Auditing -:


* :SESSION AUDITING
Standard Database Auditing

AUDIT SESSION
.
TEST
.BY ACCESS
AUDIT SESSION BY TEST BY ACCESS WHENEVER
;SUCCESSFUL

TEST

SELECT
SERNAME,TERMINAL,ACTION_NAME,EXTENDED_TIMESTAMP
;FROM DBA_AUDIT_SESSION
121
TEST
NBS .

TEST

SELECT
USERNAME,TERMINAL,ACTION_NAME,TO_CHAR(EXTENDED_TIM
ESTAMP,'DD-MM-YYYY:HH-MI-
)'SS'),TO_CHAR(LOGOFF_TIME,'DD-MM-YYYY:HH-MI-SS
;FROM DBA_AUDIT_SESSION

TEST
21 .

122

. DBA_AUDIT_TRAIL
) DBA_AUDIT_SESSION
(& DBA_AUDIT_TRAIL


DBA_OBJ_AUDIT_OPTS
DBA_STMT_AUDIT_OPTS
DBA_PRIV_AUDIT_OPTS

SELECT USER_NAME,AUDIT_OPTION,SUCCESS,FAILURE FROM


;DBA_STMT_AUDIT_OPTS

TEST
.

;NOAUDIT SESSION BY TEST


.TEST

123
* :SQL STATEMENT AUDITING
DDL .

SCHEMA
SYSTEM PRIVILEGE AUDITING
.

TEST
.SCHEMA

;AUDIT CREATE TABLE BY TEST BY ACCESS

TEST .

CREATE TABLE USER_MASTER (USER_NO


NUMBER(5),USER_NAME VARCHAR2(40),CONSTRAINT
;))PK_USER_NO PRIMARY KEY(USER_NO

124
SELECT USERNAME,OWNER,TO_CHAR(TIMESTAMP,'DD-MM-
YYYY:HH-MI-SS'),OBJ_NAME,ACTION_NAME FROM
;'DBA_AUDIT_TRAIL WHERE OWNER='TEST

TEST SCHEMA
CREATE ANY TABLE .

SQL STATEMENT :
DBA_STMT_AUDIT_OPTS
DBA_PRIV_AUDIT_OPTS

125
* :SYSTEM PRIVILEGE AUDITING
SYSTEM PRIVILEGES
CREATE ANT TABLE
SYSTEM
PRIVILEGES BY ACCESS
BY SESSION SESSION
.

CREATE ANY TABLE TEST


TEST SCHEMA .
CREATE ANY TABLE SCHEMA.

AUDIT CREATE ANY TABLE BY TEST WHENEVER


;SUCCESSFUL

126
EMP SCHEMA TEST
.EMP

CREATE TABLE EMP.EMPLOYEE (EMP_NO


NUMBER(4),EMP_NAME VARCHAR(40));

SELECT
USERNAME,OWNER,OBJ_NAME,ACTION_NAME,TO_CHAR(TIMEST
AMP,'DD-MM-YYYY:HH-MI-SS') FROM DBA_AUDIT_OBJECT
WHERE USERNAME='TEST';

EMP EMPLOYEE TEST


.
(( DROP ANY TABLE
.SYSTEM PRIVILEGES

127
.SYSTEM PRIVILEGES

SELECT * FROM DBA_PRIV_AUDIT_OPTS WHERE


;'PRIVILEGE='CREATE ANY TABLE

* :OBJECT PRIVILEGE AUDITING


TABLES VIEWS
.

128
.
BY SESSION .BY ACCESS

USER_MASTER SCHEMA
.TEST

;AUDIT INSERT ON TEST.USER_MASTER BY ACCESS

TEST . USER_MASTER

SELECT USERNAME,TO_CHAR(TIMESTAMP,'DD-MM-YY:HH-
MI-SS'),OBJ_NAME,ACTION_NAME FROM DBA_AUDIT_TRAIL
'WHERE USERNAME='TEST' AND OBJ_NAME='USER_MASTER
;'AND ACTION_NAME='INSERT

129
.OBJECT PRIVILEGES

select * from DBA_OBJ_AUDIT_OPTS WHERE


;'OWNER='TEST' AND OBJECT_NAME='USER_MASTER

:
: - .
:A . BY ACCESS
:S .BY SESSION

INS A/A INSERT BY


ACCESS WHENEVER SUCCESSFUL
.-/A

Standard Database Auditing


:
.SESSION AUDITING
SQL STATEMENT AUDITING
SYSTEM PRIVILEGE AUDITING

130
OBJECT PRIVILEGE AUDITING

:Value-Based Auditing -2
Standard Database Auditing

. Standard Database Auditing
Value-Based Auditing Trigger

.

Value-Based Auditing
Standard Database Auditing Trigger .
BOOK_NAME
BOOK .TEST

-:
IP Address -1 .
-2 .

131
-3 .
-4 .

: ,

(CREATE TABLE BOOK_AUDIT


OS_USER VARCHAR2(70),
UPDATE_DATE DATE,
IP_ADDRESS VARCHAR2(16),
;))OLD_NEW_NAME VARCHAR2(100

132
.Trigger

CREATE OR REPLACE TRIGGER BOOK_NAME_AUDIT


AFTER UPDATE OF BOOK_NAME
ON TEST.BOOK
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF :OLD.BOOK_NAME != :NEW.BOOK_NAME THEN
INSERT INTO BOOK_AUDIT
VALUES (SYS_CONTEXT('USERENV','OS_USER'),
SYSDATE,
SYS_CONTEXT('USERENV','IP_ADDRESS'),
:NEW.BOOK_NO ||' BOOK_NO( CHANGED FROM
'||:OLD.BOOK_NAME||
' TO '||:NEW.BOOK_NAME);
END IF;
END;
/

133
Trigger TEST .BOOK

.BOOK_AUDIT

SELECT OS_USER,TO_CHAR(UPDATE_DATE,'DD-MM-YY:HH-
;MI-SS'),IP_ADDRESS,OLD_NEW_NAME FROM BOOK_AUDIT

.Trigger
:Fine-Grained Auditing (FGA) -3

SQL
(SELECT & INSERT & UPDATE & DELETE ) :
DBMS_FGA PACKAGE -: Procedure

:ADD_POLICY -1 POLICY SQL


.
:PROP_POLICY -2 POLICY AUDIT.
:ENABLE_POLICY -3 POLICY AUDIT .
:DISABLE POLICY -4 .POLICY AUDIT

134
SELECT BOOK TEST
. SELECT BOOK
.
.WHERE BOOK_NO=1
.

.
ADD_POLICY AUDIT POLICY
SELECT BOOK .

Procedure
.

Procedures DBMG_FGA
.

135
DECLARE
OBJECT_SCHEMA VARCHAR2(200);
OBJECT_NAME VARCHAR2(200);
POLICY_NAME VARCHAR2(200);
AUDIT_CONDITION VARCHAR2(200);
AUDIT_COLUMN VARCHAR2(200);
HANDLER_SCHEMA VARCHAR2(200);
HANDLER_MODULE VARCHAR2(200);
ENABLE BOOLEAN;
STATEMENT_TYPES VARCHAR2(200);
AUDIT_TRAIL BINARY_INTEGER;
AUDIT_COLUMN_OPTS BINARY_INTEGER;

BEGIN
OBJECT_SCHEMA := 'TEST';
OBJECT_NAME := 'BOOK';
POLICY_NAME := 'BOOK_SELEC';
AUDIT_CONDITION := 'BOO_NO=1';
AUDIT_COLUMN := 'BOOK_NAME';
HANDLER_SCHEMA := NULL;
HANDLER_MODULE := NULL;
ENABLE := TRUE;
STATEMENT_TYPES := 'SELECT';
AUDIT_TRAIL := 1;
AUDIT_COLUMN_OPTS := 0;

SYS.DBMS_FGA.ADD_POLICY ( OBJECT_SCHEMA,
OBJECT_NAME, POLICY_NAME, AUDIT_CONDITION,
AUDIT_COLUMN, HANDLER_SCHEMA, HANDLER_MODULE, ENABLE,
STATEMENT_TYPES, AUDIT_TRAIL, AUDIT_COLUMN_OPTS );
COMMIT;
END;
/

:OBJECT_SCHEMA
. SELECT

136
:OBJECT_NAME SELECT.

:POLICY_NAME AUDIT POLICY .

:AUDIT_CONDITION .

:AUDIT_COLUMN .

:HANDLER_SCHEMA Procedure
.

ENABLE : AUDIT POLICY TRUE .

STATEMENT_TYPES : SQL .SELECT

:AUDIT_TRAIL SQL .AUDIT_TRAIL

:AUDIT_COLUMN_OPTS
AUDIT_COLUMN ) (ANY OR ANY 0
.ANY

137
EMP BOOK TEST

;SELECT * FROM TEST.BOOK WHERE BOOK_NO=1

138
.

SELECT
USERHOST,OS_USER,DB_USER,TO_CHAR(TIMESTAMP,'DD-MM-
YY:HH-MI-SS'),SQL_TEXT FROM DBA_FGA_AUDIT_TRAIL
WHERE DB_USER='EMP;

EMP
. ADD_POLICY

AUDIT_POLICIES
.
.DBA_AUDIT_POLICIES

SELECT
POLICY_NAME,OBJECT_SCHEMA,OBJECT_NAME,POLICY_COLUM
N,SEL FROM DBA_AUDIT_POLICIES;

139
.DISABLE_POLICY AUDIT POLICY

DECLARE
OBJECT_SCHEMA VARCHAR2(200);
OBJECT_NAME VARCHAR2(200);
POLICY_NAME VARCHAR2(200);

BEGIN
OBJECT_SCHEMA := 'TEST';
OBJECT_NAME := 'BOOK';
POLICY_NAME := 'BOOK_SELECT';

SYS.DBMS_FGA.DISABLE_POLICY ( OBJECT_SCHEMA,
OBJECT_NAME, POLICY_NAME );
COMMIT;
END;
/

.ENABLE_POLICY

140
DECLARE
OBJECT_SCHEMA VARCHAR2(200);
OBJECT_NAME VARCHAR2(200);
POLICY_NAME VARCHAR2(200);

BEGIN
OBJECT_SCHEMA := 'TEST';
OBJECT_NAME := 'BOOK';
POLICY_NAME := 'BOOK_SELECT';

SYS.DBMS_FGA.ENABLE_POLICY ( OBJECT_SCHEMA,
OBJECT_NAME, POLICY_NAME );
COMMIT;
END;
/

.DROP_POLICY AUDIT POLICY

141
DECLARE
OBJECT_SCHEMA VARCHAR2(200);
OBJECT_NAME VARCHAR2(200);
POLICY_NAME VARCHAR2(200);

BEGIN
OBJECT_SCHEMA := 'TEST';
OBJECT_NAME := 'BOOK';
POLICY_NAME := 'BOOK_SELECT';

SYS.DBMS_FGA.DROP_POLICY ( OBJECT_SCHEMA,
OBJECT_NAME, POLICY_NAME );
COMMIT;
END;
/

POLICY AUDIT_POLICIES

142
143
-: Oracle Net Services -1

144
Server Database Client
Application


.

Database Server

.

: Database Server
.
Client Application

Database Server

Database Server
Oracle Net Listener Clients
Listener
Listener
.

One Listener Database Instances


.WINDOWS
ORACLE_HOME%\NETWORK\ADMIN\LISTENER.ORA %
UNIX
ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA $

145
Listener One Listener Listener nbs
Port 1521 TCP PROTOCOL INSTANCE
.ORCL

LISTENER
LISTENER1 NBS PORT 1521
INSTANCE ORCL . TCP PROTOCOL

-:

146
: .LISTENER1

LISTENERS .LSNRCTL

147
.LISTENER

LISTERNER.ORA
LISTENER1
LISTENER DEFAULT
LISTENER :
:

LISTENER1
START .LISTENER

: SET CUR LISTENER_NAME DEFAULT


LISTENER .

148
LISTENER1 .DEFAULT LISTENER

LISTENER1 SERVICES
.WINDOWS

LISTENER1 PORT 1521


NBS TCP PROTOCOL .ORCL INSTANCE

STATUS
SERVICE services
LISTENER.ORA .

149
INSTANCES
LISTENERS INSTANCE
INSTANCES .

Oracle8i Instance Default


Listener Listener Dynamic
. Service registration
DATABASE SERVER
.Clients

Client Database Server


:
-1 HOST .Listener
-2 Port .

150
-3 Protocol .
-4 service Instance .

Application Listener

-:

-:Easy Connect -1
Client
-:
><username>/<password>@<hostname>:<listener port>/<service name

CONN SYSTEM/SYS@NBS:1521/OBAY

:NBS .Listener
:1521 PORT .
:OBAY Instance .

.Client

-:Local Naming -2
Easy Connect )host & protocol
(& port & service name

.ORACLE_HOME/network/admin/tnsnames.ora$ UNIX
WINDOWS. %ORACLE_HOME
%\NETWORK\ADMIN\TNSNAMES.ORA

151
)& host
(protocol & port & service name

username/password@alias
.tnsnames.ora

. tnsnames.ora Client
.
Client -:
CONN USERNAME/PASSWORD@AKSLPNT1

Client AKSLPNT1 -:
:HOST KASALA-DC
:PROTOCOL .TCP
:PORT .

152
:SERVICE_NAME INSTANCE .

Oracle Net Service aliases tnsping


. aliases

-:Database Link -2


Database Link
.

OBAY

;SELECT NAME FROM V$DATABASE

153
.ORCL

OBAY ORCL
TEST OBAY EMPLOYEE
VBS ORCL Database Link TEST
OBAY VBS .ORCL

Database Link
Database Link .CREATE DATABASE LINK
TEST OBAY Database Link
VBS .ORCL

: TEST .CREATE DATABASE LINK

SELECT * FROM USER_SYS_PRIVS WHERE


;'PRIVILEGE='CREATE DATABASE LINK

154
OBAY
TEST .CREATE DATABASE LINK

: TEST Oracle Net Service aliases


tnsnames.ora . ORCL

TEST .Database Link

CREATE DATABASE LINK TESTVBS CONNECT TO VBS


;'IDENTIFIED BY VBS USING 'ORCL

TEST Database Link TESTVBS


TEST VBS .ORCL

TEST EMPLOYEE VBS


.ORCL

;SELECT * FROM EMPLOYEE@TESTVBS

155
Database Link
synonym .

;CREATE SYNONYM EMP FOR EMPLOYEE@TESTVBS

CREATE SYNONYM .

;SELECT * FROM EMP

Database Link DML )


( SELECT & INSERT & UPDATE &DELETE DDL
.CREATE & ALTER & DROP

:PUBLIC DATABASE LINK

156
TEST OBAY
VBS ORCL DATABASE LINK .TESTVBS

OBAY TESTVBS
DATABASE LINK Database Link
TEST .PRIVATE DATABASE LINK

OBAY VBS
ORCL .PUBLIC DATABASE LINK

.CREATE PUBLIC DATABASE LINK

TEST CREATE PUBLIC


DATABASE LINK TEST PUBLIC DATABASE LINK
PUBTESTVBS OBAY
.PUBTESTVBS DATABASE LINK

157
DATABASE LINK
DBA_DB_LINKS
USER_DB_LINKS
ALL_DB_LINKS
V$DBLINK

SELECT DB_LINK FROM DBA_DB_LINKS;

.DATABASE LINK

DROP DATABASE LINK TESTVBS;

158
PUBLIC DATABASE LINK

;DROP PUBLIC DATABASE LINK PUBTESTVBS

DROP PUBLIC DATABASE LINK.

-:Materialized Views -3

Database Link

.



Materialized Views Materialized Views
.

159
Database Link
OBAY
TEST ORCL
EMPLOYEE VBS
.OBAY

Database Link TEST


OBAY VBS ORCL
EMPLOYEE ORCL .OBAY

) (Refresh Materialized Views


:
-:REFRESH FAST -1

.

:REFRESH COMPLETE -2
Materialized Views .
.FAST

:REFRESH FAST FORCE -3


Materialized Views Logs . .COMPLETE

Materialized Views DEFAULT


.FORCE

-:Materialized Views Logs


FAST
.Materialized Views
Mataerialized Views
Materialized View Logs
:

160
;CREATE MATERIALIZED VIEW LOG ON EMPLOYEE

EMPLOYEE .

<MLOG$_<TABLE_NAME

:Primary Key Materialized Views


FAST REFRESH
Primary Key Materialized Views
WITH PRIMARY KEY DEFAULT
.ROWID
Materialized Views Primary Key
.prmary Key Constraint

Fast Refresh Materialized Views


Materialized View Logs
.


Materialized Views .

OBAY MAIN
Materialized Views EMPLOYEE
SUB .ORCL
-:

161
-1 MAIN OBAY .

;CREATE USER MAIN IDETIFIED BY MAIN

GRANT CONNECT,RESOURCE,CREATE DATABASE


;LINK,CREATE MATERIALIZED VIEW TO MAIN

-2 EMPLOYEE
PRIMARY KEY CONSTRAINT MATERIALIZED VIEWS
.WITH PRIMARY KEY

162
SELECT * FROM EMPLOYEE;

SELECT
OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME
FROM USER_CONSTRAINTS;
CONSTRAINT PRIMARY EMPLYEE
.KEY

MAIN DATABASE LINK OBAY -3


.ORCL SUB

CREATE DATABASE LINK MAINSUB CONNECT TO SUB


IDENTIFIED BY SUB USING 'ORCL';

163
EMPLOYEE SUB ORCL -4
.MATERIALIZED VIEW LOG

CREATE MATERIALIZED VIEW LOG ON EMPLOYEE;

EMPLOYEE MATERIALIZED VIEW LOG


EMPLOYEE MATERIALIZED VIEW LOG

SELECT * FROM TAB WHERE TNAME LIKE '%EMPLOYEE';

.MATERIALIZED VIEW OBAY -5

164
CREATE MATERIALIZED VIEW EMPLOYEE_MV
REFRESH FAST
START WITH SYSDATE
NEXT SYSDATE + 1/(24*60*60)
WITH PRIMARY KEY
AS SELECT * FROM EMPLOYEE@MAINSUB;

FAST REFRESH MATERIALIZED VIEW


MATERIALIZED VIEW LOG
WITH PRIMARY KEY
.WITH ROWID PRIMARY KEY CONSTRAINT

MATERIALIZED VIEW -6
[ SYSDATE +1/(24*60*60]
.EMPLOYEE_MV MATERIALIZED VIEW EMPLOYEE

SELECT * FROM EMPLOYEE;

165
;SELECT * FROM EMPLOYEE_MV

-7 .

;)INSER INTO EMPLOYEE VALUES (3,ALI

.EMPLOYEE

166
EMPLOYEE EMPLOYEE_MV
MATERIALIZED VIEW .

MLOG$_EMPLOYEE REFRESH
REFRESH REFRESH
.

MATERIALIZED VIEWS

DBA_MVIEWS

167
.
.DBA_JOBS JOBS

MAIN .MATERIALIZED VIEW

;DROP MATERIALIZED VIEW EMPLOYEE_MV

168
169
170
:UNDO MANAGEMENT -1
Undo Tablespace
Oracle Server Undo Information
ROLLBACK
.

Oracle
Server Undo Tablespace

Undo Tablespace

171
Tablespace
Flashback Queries
Flashback Queries
.

Rollback
Segment Oracle9i Undo Segment
.Undo Segment

Undo Tablespace Managed Tablespace Locally


Automatic Extent allocation Undo Segment
Undo Segment
Segment Extent
Segment Extents
Segement DB Block Size Extents
Undo Segment Extent Extent
.

Undo Tablespace
Undo Tablespace Undo Tablespace
.Undo_Tablespace

;SHOW PARAMETER UNDO_TABLESPACE

Undo Tablespace

CREATE UNDO TABLESPACE ORCLUNDO DATAFILE


'D:\oracle\product\10.1.0\oradata\ORCL\ORCLUNDO.
DBF' SIZE 20M EXTENT MANAGEMENT LOCAL
;AUTOALLOCATE
172
Undo Tablespace
UNDOTBS1 .

Undo Tablespace UNDOTBS1


.ORCLUNDO
'ALTER SYSTEM SET UNDO_TABLESPACE='ORCLUNDO
;SCOPE=BOTH

Oracle Database10g Undo Tablespace


Automatic Undo Management UNDO_MANAGEMENT
AUTO Manual Undo Magamenet
.
Automatic Undo Management
.Tablespace

Undo Tablespace
Undo Retention Undo Segment
UNDO_RETENTION .
0 Automatic
15
.232

;SHOW PARAMETER UNDO_RETENTION

173
Undo information Undo Segments
-:
:Uncommitted Undo Information -1
.
:Committed Undo Information -2
" "Unexpired
Undo Tablespace
Undo Tablespace
.Guaranteeing Undo Retention

;ALTER TABLESPACE ORCLUNDO RETENTION GUARANTEE

.Undo Tablespace

.Undo Tablespace

:Expired Undo Information -3


.Undo tablespace

-:
-1 :Undo Tablespace Space Error
Undo Tablespace Undo Tablespace .
ORA-01650: unable to extend rollback segment

:Snapshot too old Error -2 Undo


Information

174
Guaranteeing Undo UNDO_RETENTION
.Retention

: UNDO
DBA_UNDO_EXTENT
V$UNDOSTAT

:Flashbach Technology -2

:A- Flashback Query


From Oracle91 & Do use Undo

:B- Flashback Table


From Oracle10g & Do use Undo

175
:C- Flashback Version Query
From Oracle10g & Do use Undo

:D- Flashback Transaction


From Oracle10g & Do use Undo

:E- Flashback Drop


From Oracle10g & Do Not use Undo

:F- Flashback Database


From Oracle10g & Do Not use Undo

:A- Flashback Query


Oracle9i

Undo Segments Undo Tablespace
Session
Flashback Query Undo Tablespace

176

Retention.

Flashback Query :
Employee .

;SELECT * FROM EMPLOYEE

EMPLOYEE 8.

;)DELETE EMPLOYEE WHERE EMP_NO IN (1,5,7

177
5 .

20 .
Undo segements
.
.Undo Tablespace

SELECT * FROM EMPLOYEE AS OF TIMESTAMP


TO_TIMESTAMP ('11-06-08:03-33-38','DD-MM-
;)'YY:HH24-MI-SS

178
8 5 .



Employee .Employee1

CREATE TABLE EMPLOYEE1 AS (SELECT * FROM


EMPLOYEE AS OF TIMESTAMP TO_TIMESTAMP('11-06-
;))'08:03-33-38','DD-MM-YY:HH24-MI-SS

.Employee

;DROP TABLE EMPLOYEE

179
EMPLOYEE1 .EMPLOYEE

EMPLOYEE 20.

Session
Session

Session

Sessions
Flashback
Session
.DBMS_FLASHBACK

Session PROCEDURE
PACKAGE ENABLE_AT_TIME DBMS_FLASHBACK

DECLARE
;QUERY_TIME TIMESTAMP
BEGIN
;)QUERY_TIME := TO_TIMESTAMP(SYSDATE -1
SYS.DBMS_FLASHBACK.ENABLE_AT_TIME ( QUERY_TIME
;)
;COMMIT
;END
/

180
Session .

DML .SELECT

DISABLE DBMS_FLASHBACK

.Flashback

181
:B- Flashback Table
Flashback Table Query Oracle10g
Undo Tablespace
Undo Segments
Undo Segments Undo
Tablespace Flashback Table
.
Undo Tablespace

:
DEPT EMP .

;SELECT * FROM DEPT

182

;SELECT * FROM EMP


.DEPT

;)'INSERT INTO DEPT VALUES(3,'FINANCE

EMP .

;)INSERT INTO EMP VALUES(3,'KHALED',3

;SELECT SYSDATE FROM DUAL

183
.Flashback Table

DELETE EMP WHERE EMP_NO=3;


DELETE DEPT WHERE DEPT_NO=3;

EMP_NO=3 EMP Flashback Table

FLASHBACK TABLE EMP TO TIMESTAMP


TO_TIMESTAMP('13-06-2008:01-01-06','DD-MM-
YYYY:HH24-MI-SS');

Enable Row Movement Flashback Table


. Data Dictionary Flag

ALTER TABLE EMP ENABLE ROW MOVEMENT;

184
Enable Row Movement EMP Flashback Table
EMP .

Foreign Key Constraint


3 EMP 3

Flashback Table .EMP & DEPT


.Enable Row Movement

FLASHBACK TABLE EMP,DEPT TO TIMESTAMP


TO_TIMESTAMP('13-06-2008:01-01-06','DD-MM-
;)'YYYY:HH24-MI-SS

Flashback Tables
Flashback Constraint .Transaction

185
: Flashback Table
ROLLBACK DEPT
EMP
.

Flashback Table
-:
-1 .Constraint Violated
-2 Enable Row Movement .
-3 :Undo Tablespace ORA-08180
no snapshot found based on specified time
-4 Flashback Table .Sys Schema

:C- Flashback Versions Query




Salary History
.
Oracle10g .Undo Tablespace
Undo Segments
).System Change Number (SCN

186
SELECT SALARY,VERSIONS_XID AS
XID,VERSIONS_STARTSCN,VERSIONS_ENDSCN,VERSIONS_O
PERATION FROM SALARY VERSIONS BETWEEN SCN
;MINVALUE AND MAXVALUE WHERE EMP_NO=1

1000 Insert I
1500 Update U
2000 Update .U

SCN
. Timestamp
.

: .Commited

Flashback Versions Undo Tablespace


Flashback Versions External Tables
Temporary Tables .Views

187
:D- Flashback Transaction
Undo Data Flashback Table and Flashback versions
Undo Data For Flashback Transaction
transaction
: View Flashback Transaction
.FLASHBACK_TRANSACTION_QUERY

DESC FLASHBACK_TRANSACTION_QUERY;

188
View View
.SELECT ANY TRANSACTION PRIVILEGE



WHERE TABLE_NAME=TABLE_NAME

.SALARY

SELECT START_TIMESTAMP,UNDO_SQL,TABLE_NAME FROM


FLASHBACK_TRANSACTION_QUERY WHERE
;'TABLE_NAME='DEPT

UPDATE .DEPT

FLASHBACK VERSIONS XID (Transaction


)Identifier

189
SELECT SALARY,VERSIONS_XID AS
XID,VERSIONS_STARTSCN,VERSIONS_ENDSCN,VERSIONS_O
PERATION FROM SALARY VERSIONS BETWEEN SCN
MINVALUE AND MAXVALUE WHERE EMP_NO=1;

Flashback Transaction XID=05001D0057030000


.Query
SELECT START_TIMESTAMP,UNDO_SQL,TABLE_NAME FROM
FLASHBACK_TRANSACTION_QUERY WHERE
XID=HEXTORAW('05001D0057030000');

190
.FLASHBACK_VERSIONS AND FLASHBACK_TRANSACTION

FLASHBACK_TRANSACTION
Undo Information
.FLASHBACK_TRANSACTION_QUERY

:E- Flashback Drop


Oracle Database
Drop Table Data Dictionary Recovery

.

Oracle10g
RECYCLE BIN



.

RECYCLE BIN
.WINDOWS

RECYCLE BIN:
DBA_RECYCLEBIN
USER_RECYCLEBIN
:
SHOW RECYCLEBIN

:
USER_MASTER
.RECYCLE BIN

;DROP TABLE USER_MASTER 191


;SHOW RECYCLE BIN

USER_MASTER
.

;FLASHBACK TABLE USER_MASTER TO BEFORE DROP

192
.

FLASHBACK TABLE USER_MASTER TO BEFORE DROP


;RENAME TO MASTER

;SELECT * FROM USER_RECYCLEBIN

.
.PURGE

;PURGE TABLE MASTER

193
MASTER .


DROP TABLE <TABLE_NAME> PURGE

;DROP TABLE EMP PURGE

-:
-1 .DROP TABLE <TABLE_NAME> PURGE
-2 TABLESPACE
.DROP TABLESPACE <TABLESPACE_NAME> INCLUDING CONTENTS
-3
.DROP USER <USER_NAME> CASCADE

:F- Flashback Database



Recovery .Backup

.
.Flashback Database

Flashback Database
.

Flashback Database
Truncate Table Data File

194
Flashback Database
.

Flashback Database

.

Enable Flashback Database Background Process


) Recovery Writer (RVWR SGA Flashback Buffer
Flashback logs . Flash Recovery Area
Block Flash Buffer
RVWR Blocks Flashback Buffer . Flashback Logs

Redo Log Buffer Redo Log Files


Flashback Buffer Redo Log
Buffer Complete Block Images Flashback Loges
.Redo Log Files

Flashback Buffer Complete Block


Images Flashback Buffer
Flashback Buffer
Complete Block
Flashback Database Flashback Database
Archive Log Mode
Flashback Logs Flashback
Logs Archive Logs Flashback Database

Flashback Database -:
-1 .Archive Log Mode

195
Redo Log Files
.
Background Process LGWR Redo Log
Buffer Redo Log Files Redo Log
Redo Logs
Archive Log Mode Background Process
ARCn Redo Log Files
Recovery .Recovery

Archive Log Mode

;SELECT LOG_MODE FROM V$DATABASE

.No Archive Log

Archive Log :
-A LOG_ARCHIVE_DEST
10 n_LOG_ARCHIVE_DEST
n 1 .10

ALTER SYSTEM SET


\LOG_ARCHIVE_DEST_1='LOCATION=D:\ARCHIVE
;SCOPE=SPFILE

196

LOG_ARCHIVE_FORMAT
.

-:

-B Mount ALTER DATABASE


.ARCHIVELOG

197
ALTER DATABASE ARCHIVELOG;

. ARCHIVELOG MODE

: ARCHIVELOG MODE

SELECT ARCHIVER FROM V$INSTANCE;

. REDO LOG FILE SWITCH LOGFILE

ALTER SYSTEM SWITCH LOGFILE;

198

SELECT NAME FROM V$ARCHIVED_LOG;

:Flash Recovery Area -2


Flash Recovery Area Flashback Logs
DB_RECOVERY_FILE_DEST
Flash DB_RECOVERY_FILE_DEST_SIZE
DB_RECOVERY_FILE_DEST_SIZE ) Recovery Area
( & DB_RECOVERY_FILE_DEST

ALTER SYSTEM SET


DB_RECOVERY_FILE_DEST=D:\ORACLE\PRODUCT\10.1.0\
FLASH_RECOVERY_AREA;

ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=2G;

SHOW PARAMETER DB_RECOVERY_FILE_DEST; 199


-3 :Flashback Log

DB_FLASHBACK_RETENTION_TARGET
.

ALTER SYSTEM SET


;DB_FLASHBACK_RETENTION_TARGET=1440

-4 :Mount

Flashback ALTER DATABASE FLASHBACK ON

200
ALTER DATABASE FLASHBACK ON;

.Flashback

: Flashback

SELECT FLASHBACK_ON FROM V$DATABASE;

Flashback

SELECT * FROM V$FLASHBACK_DATABASE_LOG;

201
Flashback Database :
-1 TEST .

;DROP USER TEST CASCADE

TEST .

202
-2 Mount Flashback Database _17
54-55-08:12-06 .TEST

FLASHBACK DATABASE TO TIMESTAMP


TO_TIMESTAMP('17-06-08:12-55-54','DD-MM-YY:HH24-
;)'MI-SS

3 - . Resetlogs

;ALTER DATABASE OPEN RESETLOGS

SELECT USERNAME FROM DBA_USERS WHERE


;'USERNAME='TEST

-4 .TEST

TEST
Read Only

203
Flashback Database
Resetlogs Restlogs Log Sequence Number
) (001 .

204

You might also like