احدث برامج قواعد البيانات الاوراكل شرح مفصل وبشيط - 3

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 169

1

:
9

1z0-031 :

Oracle 9i DBA Fundamentals I

.
.



http://www.cb4a.com/

:
: (4) .
: (26) .
: (51) .
: (63) .
: (76) .
: (95) .
: (106).
: (133).
: (146) .
: (164).

ORACLE ARCHITECTURE

ORACLE SERVER
:
ORACLE INSTANCE, ORACLE DATABASE
: ORACLE INSTANCE
Memory Structure .Process structure
" "Data Instance
Instance Database
Instance .Database

1.1
: ORACLE DATABASE
Logical
structure . Physical structure
Logical . Database
Physical .

:
Logical
.Physical
Physical
.

Database physical structure :


-------------------------------------------------------------------------------------------------- :Control files Database
.Oracle Database
:Data Files .
:Redo Log Files Database
" "Data ) :
(.
------------------------------------------------------------------------------------------------------ physical Database .Oracle Server
Database:
:Password File Instance .Privileges
:Archived Redo Log files Redo Log Files
.
:Parameter File Instance Memory
Structure .

1.2

Logical Structure :
:Tablespaces Database . Tablespaces Database
.Tablespace System Tablespace
Database .Database
:Segments Tablespace .Segments
:Extent Segments .Extents
:Blocks Extent Blocks
.

.Logical Structure

1.3

ORACLE MEMORY STRUCTURE


:
) :System Global Area (SGA Memory structure Instance
) (1.1 Instance
) ( .Instance " "Processes
Instance SQL Query Process Database
.Shared Global Area :
) :Program Global Area (PGA User Process
.Server Process " "Process .
Private Global Area : .Process Global Area
User Process .Server Process

1.4

)SYSTEM GLOBAL AREA (SGA


Database
" "Database Processes .
Oracle Instance
Instance .
1.5 ) (
.

1.5
SGA
Instance ) (
SGA
".SGA_MAX_SIZE "Parameter
SGA_MAX_SIZE: Initialization Parameter File
.
: Parameter File .

:1.1
SGA :SQLPLUS
;SHOW SGA
Total System Global Area SGA.

:
SGA 100 " "SGA_MAX_SIZE
:
50 =Shared Pool Area
25 =Database Buffer Cache
10 =Redo Log Buffer ) (
= 15 ) . (
= 100
Shared Pool Area 50 Shared
Pool Area 100
.
60 =Shared Pool Area
20 =Database Buffer Cache
10=Redo Log Buffer ) (
= 10 ) (
= 100

SGA Granules Granule


.SGA_MAX_SIZE
SGA_MAX_SIZE 128 , Granule 4
SGA_MAX_SIZE 128 Granule 16 .
Granules SGA .
Granule SGA Redo Log Buffer
Granule Shared Pool Area
Granule Database Buffer Cache
: Granules.V$BUFFER_POOL

10

:SHARED POOL AREA


SQL PL/SQL )(
.Data Dictionary Library Cache : .Data Dictionary Cache

1.6
) (Instance
SGA ".SGA_MAX_SIZE "Parameter
SHARED POOL AREA ""Parameter
SHARED_POOL_SIZE

:1.2
Shared Pool Area :
;SHOW PARAMETER SHARED_POOL_SIZE
MB 46 : = 46137344
Shared Pool Area :
;ALTER SYSTEM SET SHARED_POOL_SIZE= 64M
.System altered : SQL PLUS
Shared Pool Area
.Insufficient memory to grow:

11

:Library Cache
:
SQL Shared Statements :1 - PL/SQL Procedures or Packages: 2

:
Database SQL
1 " "Execute SQL

Compilations .PL/SQL
:
:1 SQL select * from employees; :
: 2 Server Process
" "Execute .Library Cache
:3 .Library Cache
:4 SQL SQL
.Library Cache
:5 SQL ;select * from employees
:6 Server Process Library Cache

.Library Cache
:7 .

:Data Dictionary Cache


SHARED POOL AREA Data Dictionary
.Tables, Indexes, Privileges, etc : . Library Cache
Library Cache Data Dictionary Cache
Least Recently Used (LRU) :

12

:DATABASE BUFFER CACHE


" "Data Files
Database
.Data Files
: ).Least Recently Used (LRU

:
Database Database SQL
Data Files Database Buffer Cache

.Input/Output Load
1.7 .
:1.7
:1 . Database
:2 Server process Server Process
Data Files .Database Buffer Cache
:3 Data Files .Database Buffer Cache
:4 .
:5 .Database
:6 Instance
Data Files Database Buffer Cache
Database Buffer Cache
Data Files .

Database Buffer Cache :Sub Cache


:Default ) .(Keep, Recycle
".DB_CACHE_SIZE "Parameter
:Keep ""Parameter
.DB_KEEP_CACHE_SIZE
:Recycle
".DB_RECYCLE_CACHE_SIZE "Parameter
: Default .

13

1.7

14

:1.3
Database Buffer Cache :
;SHOW PARAMETER DB_CACHE_SIZE
Database Buffer Cache :
;ALTER SYSTEM SET DB_CACHE_SIZE= 30 M

:Data Block and Data Buffer


Blocks
Database Buffer Cache .Data Buffer Buffer
Block ".DB_BLOCK_SIZE "Parameter
):Data Buffer Advisory Parameter (DB_CACHE_ADVICE
) (DBA Database Buffer Cache
. Database buffer cache
" "Parameter .V$DB_CACHE_ADVICE
:
:OFF
:ON .
:READY .
READY
" "Parameter OFF ON
.

:1.4
:
;SHOW PARAMETER DB_CACHE_ADVICE
" DB_CACHE_ADVICE "Parameter :
;ALTER SYSTEM SET DB_CACHE_ADVICE = READY
: .OFF

15

:REDO LOG BUFFER


Database
.INSERT,DELETE,ALTER,DROP, CREATE
Database Redo Log Buffer .Redo Entries
Redo Log Buffer " .LOG_BUFFER "Parameter

:1.5
:
;SHOW PARAMETER LOG_BUFFER
" LOG_BUFFER "Parameter.
: Redo Log Buffer .

16

:LARGE POOL
)( DBA
.BACKUP and RESTORE
:
-1 BACKUP DBA " "Copies
Hard disk RESTORE
.
-2 Large Pool .LRU
-3 Large Pool ".LARGE_POOL_SIZE "Parameter
-4 ALTER SYSTEM Shared Pool
.
-5 Large Pool .Shared Server

.Shared Server

:JAVA POOL
Java SQL
PL/SQL Shared Pool Java Pool
".JAVA_POOL_SIZE "Parameter

17

CONNECTION
Database SQL
.Instance
Instance SQLPLUS
.User Process Oracle Server Instance
.Server Process Server Process User
Process Instance .SQL

1.8
:Process
Process
.
Processes User Process , Server Process, :
.Background Process

.Background Process
:Session
Session .Oracle Server Session
Oracle Server Oracle Server
) ( ) (.
Session
SQL PLUS ORACLE FORMS .

18

):PROCESSING A STATEMENT (DML


) SQL (DML :

Instance User Process .Server Process

Database Buffer Cache Server


Process .Data Files

Server Process " "Locks


) ( ROLLBACK (SEGMENT) BLOCK
Rollback
.Commit

Commit . Data Files

19

)PROGRAM GLOBAL AREA (PGA


" ." Process PGA
" " Process " " Process PGA
" . "Process PGA " "Process PGA
Server Dedicated.Shared
Dedicated Server Server Process User Process
) ( Shared Server Server Process
) User Process Server Processes
Server Processes (User Processes
:PGA

:SORT AREA Process :


Distinct , Order By, Group By, Set Operators Union, Minus,
.Intersect

:SESSION INFORMATION User


.Privileges

20

BACKGROUND PROCESSES
.Instance Background Processes
Background Background Process
.( ) Processes
.Background Processes 1.1 :

:
Database Writer (DBWn)
Log Writer (LGWR)
System Monitor (SMON)
Process Monitor (PMON)
Checkpoint (CKPT)
Archiver (ARCn)

21

):DATABASE WRITER (DBWn


" "Dirty Buffers Database Buffer Cache Data
Files 1.9 Buffers .
: Instance Buffers Data Files
.Blocks
DBWn :

.Checkpoint
) Dirty Buffers Buffers (
.
" "Free Buffers . Process
Tablespace "."Offline
Tablespace )
("."Read Only
Tablespace .Backup
Drop Truncate .Table
.Timeout

Checkpoint .Tablespace

1.9

22

):LOG WRITER (LGWR


Log Buffer Cache Redo Log Files
Redo Entries .1.10
: Redo Log Buffer .Redo Entries
LGWR :

.Redo Log Buffer


Redo Log Buffer .1 MB
DBWn Database Buffer Cache . Data Files
3.
.Transaction Commit

1.10

23

):SYSTEM MONITOR (SMON


Instance ) Instance
(Database Buffer Cache Data Files .
Instance SMON
Instance .Instance Recovery
SMON :

Redo Log Files


.Data Files SMON Redo Log Files
.Data Files
Database .
Transactions Commit " Data
. "Lock
Temporary Segments .Data Files

.

: LGWR .DBWn

.Temporary Segment

):PROCESS MONITOR (PMON


Processes Database PMON
.Processes
PMON :

Locks Tables Rows Process.


) (Rollback Transaction )
Commit(

24

) :CHECKPOINT (CKPT
Checkpoint Database Buffer Cache Data
Files .DBWn Checkpoint
Data Files .
Checkpoint Process " "Update Data Files Header .Control Files
": "Update
Checkpoint .Data Files Header
Checkpoint .Control Files
Log Sequence .Control Files
SCN .Control Files
.Archived Log

Data Files Header Log Sequence SCN


.Archived Log

):ARCHIVER (ARCn
Process Redo Log Files Archived
.Log Files .
Database ARCHIVELOG Database
ARCn.
Database ARCn:
:Archivelog
Redo Log Files
Log Switch ARCn
.Archived Log Files

1.11
: NoArchivelog
Redo Log Files " "Overwrite
Checkpoint
.

Database Archivelog .Noarchivelog


25

INSTALLING & MANAGING


ORACLE

26

DATABASE ADMINISTRATION TOOLS


: " Tools"
ORACLE UNIVERSAL INSTALLER (OUI)

ORACLE DATABASE CONFIGURATION ASSISTANT


SQL PLUS

ORACLE ENTERPRISE MANAGER (OEM)

PASSWORD FILE UTILITY

:ORACLE UNIVERSAL INSTALLER (OUI)


" Windows" ." Install" OUI
.runInstaller Unix Setup.exe OUI
."Windows" OUI 2.1

2.1
27

:OUI

Hard Disk
ORACLE HOME ) 2.1 (Destination
" "Old Version " "New Version
.

HTTP
)
(.

)(Uninstall or Deinstall

GUI
Command Windows GUI .2.1
" "Silent Mode Response
.File

:Response File
) (any name.txt 2.1
) Source .(Destination

:ORACLE DATABASE CONFIGURATION ASSISTANT


) :(2.2

"."Database

"."Database

"."Database

.Templates

28

2.2

:SQL PLUS

" ."Database
SQL PLUS SQL .

2.3

29

):ORACLE ENTERPRISE MANAGER (OEM


)GUI
".("Mouse
:OEM

CONSOLE
ORACLE MANAGEMENT SERVER
MANAGED NODES

2.4

:Console
" "GUI Tool .
Instance Tables ""Mouse
.SQL

30

2.5
2.4 Console Oracle Server :
:Standalone ) .Oracle Management Server (2
:OMS ) .Oracle Management Server (1

:DBA Tools
:Console
:Instance Manager "."Database
:Security Manager Users Accounts .Privileges
:Storage Manager Tablespaces Data Files.
:Schema Manager Tables Views .Indexes
:SQL PLUS Worksheet SQL.

):Oracle Management Server (OMS


Oracle Enterprise Manager Console Managed
Nodes User Accounts .Jobs, Events
Repository " "System Data
.Managed Nodes

31

:Managed Nodes
Node Database . Node
Oracle Intelligent Agent OMS
Console Database
Oracle Intelligent Agent .Node

:PASSWORD FILE UTILITY


Orapwd .Password File
Password File :
;$ORAPWD FILE = filename PASSWORD = yourpassword ENTRIES=number
File Password
SYSDBA SYSOPER Entries
Database SYSDBA .SYSOPER
SYSDBA SYS Schema Schema
SYSOPER .PUBLIC Schema
: Password File .

32

AUTHENTICATION METHODS
User Accounts " Database"
Privileges SYSTEM SYS " Database"
.DBA Role
change_on_install SYS :
.manager SYSTEM
.Database Data Dictionary " Owner" SYS :2
Database DBA Role
.Operating System Authentication Password File Authentication :

:PASSWORD FILE AUTHENTICATION


Password File Utility
:
.ORAPWD Password File -1
REMOTE_LOGIN_PASSWORDFILE -2
.EXCLUSIVE Initialization Parameter File
SYSOPER SYSDBA Privileges " Grant" -3
.DBA Role

:2.1
SQL PLUS :1
$ORAPWD FILE=c:\oracle_home\ora92\dbs\myfile PASSWORD=newadmin
ENTRIES=5;
:2
SHOW PARAMETER REMOTE_LOGIN_PASSWORDFILE;
.Initialization Parameter File EXCLUSIVE
:3
GRANT SYSDBA TO Ahmad;
: Database
CONNECT sys/newadmin AS SYSDBA;
33

:OPERATING SYSTEM AUTHENTICATION


) Operating System :( Database
.
: REMOTE_LOGIN_PASSWORDFILE NONE
.

:2.2
SQLPLUS :
;CONNECT / AS SYSDBA

:Remote_Login_Passwordfile
Remote_Login_Passwordfile :

:EXCLUSIVE Instance Password File


" "Grant SYSDBA Privileges SYSOPER Privileges
.Password File Authentication

:SHARED Instance Password File


SYSDBA SYSOPER
.SYS

:NONE .Operating System Authentication

34

OPTIMAL FLEXIBLE ARCHITECTURE


OFA Database
.Windows, UNIX
OFA

Database .
OFA:

Oracle Software .Oracle Database

" "Versions .

Data files Control Files .Redo Log Files

2.6
Database . Password File
dbs Control Files oradata...

35

INITIALIZATION PARAMETER FILE


Instance .Initialization Parameter File
.Database Initialization Parameter File:

:PFILE " "Static File initSID.ora

:SPFILE " "Persistent File spfileSID.ora

: SID .Instance "DbB" Instance


).(initDbB.ora
:Initialization Parameter File

" "Parameters Instance SGA .SGA_MAX_SIZE


Database .Instance
.Control Files
.Undo Segment
Archivelog .Noarchivelog

2.7
:PFILE
TXT Notepad .
Instance " "Parameters
) Instance (
" "Parameters PFILE )
Instance (.
OUI Database init.ora
.PFILE

36

:PFILE

db_block_size=4096
db_cache_size=33554432
open_cursors=300
background_dump_dest=C:\oracle2\ora92\admin\dbname\bdump
core_dump_dest=C:\oracle2\ora92\admin\dbname\cdump
timed_statistics=TRUE
user_dump_dest=C:\oracle2\ora92\admin\dbname\udump
db_domain=oracle
remote_login_passwordfile=EXCLUSIVE
control_files=("C:\oracle2\ora92\oradata\dbname\CONTROL01.CTL",
"C:\oracle2\ora92\oradata\dbname\CONTROL02.CTL",
"C:\oracle2\ora92\oradata\dbname\CONTROL03.CTL")
compatible=9.0.0
db_name=dbname
instance_name=dbname
java_pool_size=33554432
large_pool_size=1048576
shared_pool_size=33554432
processes=150
fast_start_mttr_target=300
sort_area_size=524288
undo_management=AUTO
undo_tablespace=UNDOTBS

:PFILE
"Parameters" DBA " Parameters"
PFILE " Parameter"
"Default Value" " Parameter"

. PFILE " Parameters"

" Parameter"
.Control_Files

.(" ) = Paramter"

DBA ( ) #)
.(

37

:SPFILE
binary )Oracle Server (
" "Parameters ) (ALTER SYSTEM
SPFILE ) Instance
SPFILE ALTER SYSTEM
(.
SPFILE PFILE SPFILE
PFILE .
" "Parameters SPFILE :
;]ALTER SYSTEM SET PARAMETER = VALUE [SCOPE = SCOPE_VALUE
: ] [
. Default Default
.
SCOPE_VALUE :

:MEMORY " "Value Parameter


Instance .

:SPFILE " "Value Parameter SPFILE.

:BOTH " "Value " "Parameter SPFILE


.

: SCOPE=SCOPE_VALUE
BOTH) SCOPE=BOTH .(Default

:2.3
;SCOPE=SPFILE

ALTER SYSTEM SET SHARED_POOL_SIZE = 33554432

:SPFILE

'*. background_dump_dest='C:\oracle2\ora92\admin\dbname\bdump
*. compatible='9.0.0' *.db_block_size=4096 *.db_cache_size=33554432
'*. db_domain='oracle

38

" "Parameters SPFILE " "Parameters


:

.BACKGROUND_DUMP_DEST
USER_DUMP_DEST
DB_NAME
SHARED_POOL_SIZE
COMPATIBLE
DB_BLOCK_BUFFERS
CONTROL_FILES

" "Parameters .
:Create SPFILE
SPFILE PFILE SYSDBA ROLE
SYSOPER Role :
;]'CREATE SPFILE [='location and name'] FROM PFILE[='location and name
SPFILE
) (spfileSID.ora Default .dbs
PFILE initSID.ora .dbs
: Default .
.database

:2.4
SQL PLUS
;CONNECT / AS SYSDBA
;CREATE SPFILE FROM PFILE

39

SPFILE CONSOLE :

.Enterprise Manager Console


.Standalone
Database " "Database
.
SYSTEM .
Connect as .SYSDBA
.Instance
.Configuration
.All Initialization Parameter

2.8

40

START UP A DATABASE
Database
.NOMOUNT , MOUNT , OPEN :
:NOMOUNT
Staring the Instance Instance
.Oracle Database
:

Database .(CREATE DATABASE) SQL


.Control Files

Database .SQL
:

Initialization Parameter File


SPFILE PFILE .init.ora
.SGA
.Background Processes
alertSID.log .Trace Files

alertSID.log .Trace Files


: " DB_NAME "Parameter .NOMOUNT

:MOUNT
:

" "Rename .Data Files


Database ARCHIVELOG .NOARCHIVELOG
" "Recovery .Database

.Control Files
Database Instance .

41

:OPEN
SQLPLUS
.
:

. Online Data Files


.Online Redo Log Files

Data Files Redo Files


Control Files .OPEN
: Control Files Initialization Parameter Files
Data Files Redo Log Files .Control Files

:STARTUP Command
Database :
]'STARTUP [FORCE] [RESTRICT] [PFILE='location and name
; ] [OPEN [recover] [databases name] | MOUNT | NOMOUNT
: | )( " ."OR MOUNT OPEN
.
:
:PFILE NOMOUNT
.
:RECOVER OPEN MOUNT
RECOVERY.
:RESTRICT Database
Restricted Session Privilege .
:FORCE Instance .
" "Restart .

42

:2.5
STARTUP :
-1
-2
-3
-4

SQLPLUS .Command Prompt


.
SYSDBA ;CONNECT \ AS SYSDBA
Database SHUTDOWN; :

; STARTUP OPEN .Default


;STARTUP MOUNT
;STARTUP NOMOUNT

:ALTER DATABASE Command


:
-1 Database :

NOMOUNT .MOUNT
MOUNT OPEN

ALTER DATABASE :
;ALTER DATABASE [database's name] MOUNT | OPEN

:2.6
NOMOUNT MOUNT :
;ALTER DATABASE MOUNT

-2 Database ":"Read-Only Database


Database OPEN Database
:
;ALTER DATABASE [database's name] OPEN READ WRITE | READ ONLY
READ WRITE .Default

43

:2.7
Database " "READ WRITE :
;ALTER DATABASE OPEN READ ONLY

Database :READ ONLY

.SQL
Data Files Offline .Online
Recovery Offline Data Files .Tablespaces

:Restricted Mode
Database
Restricted Session Privilege .

:2.8
Database : Restricted
;STARTUP RESTRICTED
:
;ALTER SYSTEM ENABLE RESTRICTED SESSION
;ALTER SYSTEM DISABLE RESTRICTED SESSION

:Kill a Session
) (Restricted ) DBA (
Database . :
;'ALTER SYSTEM KILL SESSION 'SID, SERIAL#
SID Session ) Session (
.V$SESSION
SERIAL# " "Unique Session
.V$SESSION

44

:2.9
" "Kill Session :
Database
SQLPLUS SQLPLUS
.
SYSTEM username = SCOTT , password =TIGER

:SYSTEM
SELECT USERNAME, SID, SERIAL#
FROM V$SESSION
;'WHERE USERNAME = 'SCOTT

) (

USERNAME
SID SERIAL#
-------- ---------- ---------- -----------------------------SCOTT
9
51

SYSTEM:
;'ALTER SYSTEM KILL SESSION '9, 51

Session .SCOTT PMON


Session SCOTT SCOTT
SQL YOUR SESSION HAS BEEN KILLED :

2.9

45

SHUTTING DOWN THE DATABASE


Database NORMAL, TRANSACTIONAL, :
.IMMEDIATE, ABORT
: Database .Backup
:2 Database SYSDBA .SYSOPER
Database :
;]SHUTDOWN [NORMAL] | [TRANSACTIONAL] | [IMMEDIATE] | [ABORT
NORMAL Default SHUTDOWN
.Default

:NORMAL
Database :

.Database
Database
.Database
Redo Log Buffer .Redo Log Files
Database Buffer Cache .Data Files
COMMIT .ROLLBACK
.Background Processes
SGA .
Database .Instance

: Recovery Instance
. Recovery PMON . SMON

:TRANSACTIONAL
Database NORMAL :

Database

Database .NORMAL
.
Database .

: Recovery Instance .
46

:IMMEDIATE
Database NORMAL :

Database
.

) ( .ROLLBACK

: Recovery Instance .

:ABORT
Database
.
Database :

Database
.

) ( .ROLLBACK
Redo Log Buffer .Redo Log Files
Database Buffer Cache Data Files
COMMIT .ROLLBACK
Database Instance .

: Recovery Instance .
:2 STARTUP FORCE Instance
.SHUTDOWN ABORT

47

DIAGNOSTIC FILES
Diagnostic Instance
.Database Diagnostic:
:ALERT LOG FILE
.Database

:BACKGROUND TRACE FILES Background


.Processes

:USER TRACE FILE


Database
.Database

:ALERT LOG FILE


Instance Alert Log Instance
) (NOMOUNT .alertSID.log Alert Log
)( Database .
Alert File ".BACKGROUND_DUMP_DEST "Parameter
: " BACKGROUND_DUMP_DEST "Parameter
.SPFILE
Alert Log File:

Instance .
.Background Processes
.Log Switch
"."Error Messages
.Tablespaces
.Undo Segments
SQL .ALTER
Log Sequence Online Redo Log File
LGWR

.Undo Segments
: Log Sequence Number .

48

:BACKGROUND TRACE FILES


.Background Processes
) (.
".BACKGROUND_DUMP_DEST "Parameter

:USER TRACE FILE


Database
SQL " ." Trace
".USER_DUMP_DEST "Parameter
" MAX_DUMP_FILE_SIZE "Parameter 10
. Session ) Instance Sessions
(Instance :
:Session
;ALTER SESSION SET SQL_TRACE = TRUE
:Instance
" "Parameter :Initialization Parameter File
SQL_TRACE = TRUE
" "Trace SQL .
: " USER_DUMP_DEST "Parameter .SPFILE
Trace Files ) .(trc Background Trace
) : ( sidPROCESSNAME.trc
dbname) dbnamePMON.trc Instance (.
User Trace :
ORAPID.trc .ORA00853.trc
: Trace Files )(.trc

49

)ORACLE MANAGED FILES (OMF


OMF
. " "Parameters
Initialization Parameter File
" "Oracle9i:

:DB_CREATE_FILE_DEST .Data Files

:DB_CREATE_ONLINE_LOG_DEST_n Redo Log


.Control Files ) (n " "Parameter
.
: , .
Tablespace (Physical-Logical ) Data Files
Tablespace . Data Files Tablespace
Data Files Backup Data
Files Tablespace .
DBA )
UNIX ( . OMF Data Files
DBA .OMF
)_ (ora OMF .

:2.10
'DB_CREATE_FILE_DEST = 'C:\oracle\ora92\oradata\u01
'DB_CREAE_ONLINE_LOG_DEST_1 = 'C:\oracle\ora92\oradata\u02
'DB_CREAE_ONLINE_LOG_DEST_2 = 'C:\oracle\ora92\oradata\u03
" "Values .ALTER SYSTEM
ALTER SYSTEM SET
;'DB_CREATE_FILE_DEST='C:\oracle\ora92\oradata\u04

") "Parameter (2.10 Database


.CREATE DATABASE Database
.OMF
OMF DBA_DATAFILE
.V$LOGFILE

50

CREATING A DATABASE &


USING THE DATA DICTIONARY

51

PRE-CREATING STAGES
Database DBA :

" "Hard Disk .

" "Operating System .

.Database

Initialization Parameters DB_BLOCK_SIZE


.

) Operating System (Password File .SYSDBA

Database Database
Data Migration Assistant

Database
CREATE DATABASE ) SQL ( Database
.Configuration Assistant

.Backup

:
-1 Control File .
-2 Redo Log .
-3 .
-4 Database ) (
.Disk Fragmentation
-5 Tables Indexes Tablespaces .Input/Output

52

DATABASE CONFIGURATION ASSISTANT


) (DBCA Create a Database, Configure Database Options, :
.Delete a Database, and Manage Templates

:CREATE A DATABASE
Database " ."Template Database
Options .
Database Databases .
" "Templates:

:Data Files Database )


" .("Show Details Initialization
Parameters "."Template

:Data Files Database Data


.Files Control Files Redo Log Groups
Data Files Data Files
Tablespaces Initialization Parameters
"."Template

" "Template Name :3.1

3.1
53

" "Templates Database Instance


.SID

3.2
" "New Database " "Features
.Database

3.3

54

.Database

3.4

" "Parameters Initialization Parameter File.

3.5

55

Tablespaces
.

3.6

Database
" "Template SQL Scripts
.CREATE DATABASE

3.7
56

:CONFIGURE DATABASE OPTIONS


Database Oracle Features
) Shared Server .(Dedicated Server

:DELETE A DATABASE
Database

:MANAGE A TEMPLATE
" "Template " "Template .
" "Template :

" "Template " "Template


" "Template.
Database ) ( ""Template
Database .Data Files
Database Database Data
Files .

3.8

57

CREATE A DATABASE MANUALLY


.CREATE DATABASE Database
:
.Database Instance
. Database Character Set
.Initialization Parameter File
.SYSDBA NOMOUNT Database
.CREATE DATABASE
. Data Dictionary SQL SCRIPTS

UNIX Database :
: Environmental Variables
."Top of Tree" " Directory" :ORACLE_BASE
."Versions"
.Oracle Software :ORACLE_HOME
. Instance Instance :ORACLE_SID
."Default" " Database Character Set" :ORA_NLS33
SQLPLUS :PATH
.$ORACLE_HOME\bin
Oracle Library Files :LD_LIBRARY_PATH
.$ORACLE_HOME\lib
: Database
CREATE DATABASE [name of database]
[CONTROLFILE REUSE]
[LOGFILE [GROUP number] C1
[MAXLOGFILES number]
[MAXLOGMEMBERS number]
[MAXLOGHISTORY number]
[MAXDATAFILES number]
[MAXINSTANCES number]
[ARCHIVELOG | NOARCHIVELOG]
[CHARACTER SET char]
[NATIONAL CHARACTER SET char]
[DATAFILE C1 [C2]]
[DEFAULT TEMPORARY TABLESPACE tablespace_name C1 [C3]]
[UNDO TABLESPACE tablespace_name DATAFILE C1 [C2]]
[SET TIME_ZONE [time_zone_region]]
58

C3C2 C1 :
'filename' [SIZE number] [K | M] [REUSE] =C1
[AUTOEXTEND OFF | ON [NEXT number [K | M]] =C2
]]][MAXSIZE UNLIMITED | number [K | M
EXTENT MANAGEMENT LOCAL UNIFORM [SIZE number] [K | M] =C3
:
][LOGFILE [GROUP number] 'filename' [SIZE number] [K | M] [REUSE
: CREATE DATABASE .
:2 SIZE REUSE .
:

] :[name of database Database .


.DB_NAME
] :[CONTROLFILE REUSE " "Overwrite
Control Files Initialization Parameter File
.
] :[MAXLOGFILES number Redo Log Files
Database Database .2
] :[MAXLOGMEMBERS number Redo Log
.
] :[MAXLOGHISTORY number Archived Log Files
.Media Recovery
] :[AUTOEXTEND .
] :[MAXDATAFILES Data Files
.Database
] :[MAXINSTANCES Instances
Database .
] :[CHARACTER SET char .
] :[NATIONAL CHARACTER SET .
] :[DEFAULT TEMPORARY TABLESPACE Default Temporary
Tablespace .
] :[UNDO TABLESPACE Undo Tablespace .
] :[SET TIME_ZONE .Database

59

:3.1
CREATE DATABASE db01
CONTROLFILE REUSE
LOGFILE
GROUP 1 ('C: \oracle\ora92\oradata\db01\log101.log') SIZE 10M
GROUP 2 ('C: \ oracle\ora92\oradata\db01\log201.log') SIZE 10M
GROUP 3 ('C: \ oracle\ora92\oradata\db01\log301.log') SIZE 10M
MAXLOGFILES 4
MAXLOGMEMBERS 2
MAXLOGHISTORY 0
MAXDATAFILES 254
MAXINSTANCES 2
ARCHIVELOG
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE 'C: \oracle\ora92\oradata\db01\system01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
UNDO TABLESPACE UNDO01
DATAFILE 'C: \oracle\ora92\oradata\db01\undo01.dbf' SIZE 40M
DEFAULT TEMPORARY TABLESPACE TEMP01 TEMPFILE
'C: \oracle\ora92\oradata\db01\temp01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
SET TIME_ZONE = 'CANADA /YUKON'
;

: Database
.SQL
( )
."Operating System "

: Database
.Instance
. CREATE DATABASE
. SQL
. Database NOMOUNT Instance

Database Data Dictionary :


.V$DATAFILE Dynamic Views
. SYSTEM SYS :
.Database Oracle Managed Files (OMF) :

60

DATA DICTIONARY
Data Dictionary Database Tables
Views .Database Data Dictionary
DBA Oracle
) .Data Definition Language (DDL Data Dictionary
Database
.User Privileges
Data Dictionary :

:BASE TABLES Database .Base Tables


" "Object Database
" "Script .sql.bsq Base Tables
Database AUD$
Base Tables .

:DICTIONARY VIEWS Base Tables


. " "Script
.catalog.sql

:Data Dictionary
Data Dictionary :

" "Objects Database Tables, Indexes,


Views, Synonyms, Data files, Control Files.

.Database

"."Users

Privileges Roles .

Auditing .

. Integrity Constraint

61

QUERYING DATA DICTIONARY


Dictionary Views :

_ :DBA Views " "Objects Database


DBA Privileges .

_ :ALL " "Objects


Schema
.Public Schema

_ :USER " "Object )


Schema (.

Views Data Dictionary


.DICTIONARY view

:3.2
;SELECT * FROM DBA_OBJECTS
;SELECT * FROM ALL_OBJECTS
;SELECT * FROM USER_OBJECTS
;SELECT * FROM DICTIONARY

DYNAMIC PERFORMANCE
Database Oracle Server Database
Tables Database .
Dynamic Performance View SYS Schema
Database ) Data Manipulation Language(DML.
Views V$FIXED_TABLE Columns
Views .V$INSTANCE
: Dynamic Performance Views .V$

62

CONTROL & REDO LOG FILES

63

CONTROL FILE
Control File Database Oracle
Server Database Database
.Data Files " "Update Oracle Server
DBA .
Control File Database Control File
Database Control File Database
: ) Control Files
Redo Log( Multiplex .
:2 Control Files .Binary
: Control File .Mount
:2 SPFILE .Binary

" "Parameters Control File:

MAXLOGFILES
MAXLOGMEMBERS
MAXLOGHISTORY
MAXINSTANCES
MAXDATAFILES

Control File :

Database .Control File


.Database
Data Files .Redo Log
.Tablespaces
.Checkpoint
.Archived Log File
.Backup
.Undo Segment
Log Sequence Number .Log Switch

: alertSID.log .Log Sequence Number

64

MULTIPLEXING CONTROL FILES


Database Control File
Multiplex Control File
Control File .
Multiples SPFILE . init.ora
: .Control File
:MULTIPLEXING USING SPFILE
Control File Multiples SPFILE :

SPFILE :
= ALTER SYSTEM SET CONTROL_FILES
('\ora01\oradata\db01\ctr001.ctl', '\ora02\oradata\db01\ctr002.ctl',
)''\ora03\oradata\db01\ctr003.ctl', '\ora04\oradata\db01\ctr004.ctl
;SCOPE=SPFILE

Database :
;SHUTDOWN

Control File )
COPY .(PASTE

Database :
STARTUP

:MULTIPLEXING USING init.ora


Control File Multiples init.ora :

Database :
;SHUTDOWN

Control File .

" CONTROL_FILES "Parameter init.ora :


)CONTROL_FILES =(\disk1\ctr01.ctl, \disk2\ctr02.ctl

.Database

65

.( ...) :
:USING OMF

.Oracle Managed Files Control File


Database OMF Control Files
Initialization Parameter Files CONTROL_FILES "Parameter"
.DB_CREATE_ONLINE_LOG_DEST_n OMF " Parameters"
Control File OMF Control File
. SPFILE PFILE

:DATA DICTIONARY & CONTROL FILE


: Data Dictionary Control File
( STATUS) Control Files :V$CONTROLFILE
.INVALID Control File

SELECT STATUS, NAME FROM V$CONTROLFILE;


" Parameter" " Values" :V$PARAMETER
.Control Files

SELECT NAME, VALUE FROM V$PARAMETER


WHERE NAME = 'control_files';
:V$CONTROLFILE_RECORD_SECTION
.Control File
SELECT TYPE, RECORD_SIZE, RECORDS_TOTAL, RECORD_USED
FROM V$CONTROLFILE_RECORD_SECTION;
Control Files :SHOW PARAMTER

SHOW PARAMETER CONTROL_FILES;

.alertSID.log Control Files :

66

REDO LOG FILES


Redo Log Database
" "Recovery
. Redo Log " "Groups
" "Members " "Members
" "Copies .
Redo Log Files " "Member
.Log Sequence Number
LGWR Redo Log Buffer Redo Log Files
LGWR
LGWR
Log Switch
"."Current Online Redo Log Group
: MAXLOGMEMBERS
MAXLOGFILES .CREATE DATABASE
: Log Switch .Alert Log File

4.1
Redo Log File Log Sequence Number
" "Overwritten
.
: Log Sequence Number:

Control File
Data Files Header
67

Alert Log File

:Checkpoint
Checkpoint Log Sequence Number
.Control File Checkpoint Checkpoint Log
Switch Log Switch .Checkpoint Alert
Log File Checkpoint Log Switch
" "Parameter LOG_CHECKPONT_TO_ALERT True
" "Default .False
Checkpoint:

.Log Switch

Database .ABORT

" FAST_START_MTTR_TARGET "Parameter


" "Dirty Buffers DBWn.

DBA SQL .4.1

SQLALTER TABLESPACE OFFLINE NORMAL. :

SQL.ALTER TABLESPACE READ ONLY :

SQL.ALTER TABLESPACE BEGIN BACKUP :

:4.1
Checkpoint SQL :
;ALTER SYSTEM CHECKPOINT
""Parameter
FAST_START_MTTR_TARGET = 400
Recovery 400
Recovery Checkpoint .Log Switch
Log Switch SQL :
;ALTER SYSTEM SWITCH LOGFILE

68

MAINTAINING REDO LOG FILES


Redo Log Files .
:MULTIPLEXING
Database Multiplex Redo Log Files
LGWR .
" "Group .Members
) ( 4.1
) (Member1 , Member2 ).(Disk1, Disk2
" "Member Database
Recovery .Instance
Redo Log Files Database
.
:Multiplex


Database .

Online Redo Log Files Archived Log Files


LGWR .ARCn

Redo Log Data Files


DBWn .LGWR

:SIZING ONLINE REDO LOG FILES


Redo Log File 50 KB
) .(UNIX
DBA Redo Log Files :

.Storage Device

Log Switch Checkpoint .

Redo Entries Database


.

69

:ADDING ONLINE GROUP


DBA Database :4.2

:4.2
ALTER DATABASE ADD LOGFILE GROUP 4
;('\oradata\db01\log11.log' , '\oradata\db02\log12.log') SIZE 5M

:ADDING ONLINE MEMBER


:
ALTER DATABASE [database's name] ADD LOGFILE MEMBER
]['filename' [REUSE] , 'filename' [REUSE], .
;) TO [ GROUP number | ('filename', 'filename',
) (
REUSE
.
: Storage Manager .Console

:4.3
ALTER DATABASE ADD LOGFILE MEMBER
'\oradata\db04\log41.log' TO GROUP 1,
'\oradata\db04\log42.log' TO GROUP 2,
'\oradata\db04\log43.log' TO GROUP 3,
;'\oradata\db04\log44.log' TO GROUP 4
:
ALTER DATABASE ADD LOGFILE MEMBER
''\oradata\db04\log14.log
TO ('\oradata\db01\log11.log' , '\oradata\db02\log12.log' ,
;)''\oradata\db03\log13.log
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
.Redo Log Groups
.Apply
70

:DROPPING ONLINE LOG GROUP


Redo Log
Redo Log :
]ALTER DATABASE [database' name
;)DROP LOGFILE [GROUP number | ('filename',.
" "Current Active
.Inactive
.Redo Log Files
Redo Log
) :4.3 (log14.log
) .(Delete

:4.4
;ALTER DATABASE DROP LOGFILE GROUP 4
.4.3
Redo Log File Inactive :
;ALTER SYSTEM SWITCH LOGFILE

:DROPPING ONLINE LOG MEMBER


) (
" "Valid .
" "Current .
Database Archivelog
Archive .
:
]ALTER DATABASE [database's name
DROP LOG MEMBER 'filename','filename',

71

:4.5
;'ALTER DATABASE DROP LOG MEMBER '\oradata\db04\log4.log
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
Redo Log Groups .

:RENAMING LOG MEMBER


" "Member :

.Database
) ( ) (
) (.
Database .MOUNT

;'ALTER DATABASE RENAME FILE 'old Filename' TO 'newFilename
Database Backup Control File
.

:CLEARING ONLINE REDO LOG FILES


Redo Log
:
]ALTER DATABASE [database's name
;CLEAR [UNARCHIVED] LOGFILE GROUP number | 'filename' ,..
Redo Log
Redo Log
Database
Archivelog Archive UNARCHIVED
.

72

:4.6
Redo Log :
;ALTER DATABASE CLEAR LOGFILE GROUP 3
.

:USING OMF
Redo Log Files OMF .
OMF
.
OMF DB_CREATE_ONLINE_LOG_DEST_n
Initialization Parameter File Multiplex Redo Log Files
n " " Parameter 1 .5

:4.7
OMF :
;ALTER DATABASE DROP LOGFILE GROUP 3
:
;ALTER DATABASE ADD LOGFILE
.
Multiplex :Initialization Parameter File
'DB_CREATE_ONLINE_LOG_DEST_1 = '\oradata\db01
'DB_CREATE_ONLINE_LOG_DEST_2 = '\oradata\db02
'DB_CREATE_ONLINE_LOG_DEST_3 = '\oradata\db03

73

:QUERYING LOG FILE INFORMATION


:

V$LOG
V$LOGFILE

:V$LOG
7
:

:UNUSED
.
:CURRENT LGWR Redo
.Log Buffer
:ACTIVE .Recovery
:CLEARING DBA
SQL .UNUSED
:CLEARING_CURRENT .SQL
:INACTIVE Database
Recovery .

:V$LOGFILE
. 4 :

:INVALID .
:STALE .
:DELETED .
" :"Blank .

:4.8
SELECT GROUP# , SEQUENCE#, BYTES, MEMBERS, STATUS
;FROM V$LOG
;SELECT GROUP#, STATUS, TYPE, MEMBER FROM V$LOGFILE

74

ARCHIVED LOG FILES


DBA Database
Archivelog .Noarchivelog Database " "Default
Noarchivelog Archivelog
Backup " "Recovery .Commit
Archive Redo Log :
Intialazation Parameter File .LOG_ARCHIVE_START
LOG_ARCHIVE_START True Archiving
ARCn .Log Switch
ARCHIVE_START_LOG False Archiving
.SQL
:

Control File Archiving.


Multiplex .Archived Redo Log
Archived Redo Log .OMF

: Redo Log File Checkpoint Archiving


) Archivelog Noarchivelog
Checkpoint (.

:QUERYING ARCHIVED REDO LOG


Archiving V$INSTANCE .Console

:4.9
;SELECT ARCHIVER FROM V$INSTANCE
Console :

Console .Standalone
Database .
SYSDBA .Normal
Instance Manager .Configuration
.Recovery

75

DATA FILES & TABLESPACES

76

TABLESPACE
Database Logical Physical Tablespace
Logical Segment Extents .Data Blocks
Tablespace Database Tablespace
.Data File
Tablespace:

:SYSTEM TABLESPACE Tablespace


Database Database Database .
Data Dictionary PL/SQL .Stored Units
SYSTEM UNDO SEGMENT " "Data
System Tablespace .Tablespace

:NON-SYSTEM TABLESPACE Database


Tablespaces Database .
Undo Data Temporary Data Application
Data DBA
.Database

:CREATING TABLESPACES
Tablespace :
CREATE TABLESPACE tablespace's name
][DATAFILE C1
]][MINIMUM EXTENT number [K | M
] ][BLOCKSIZE number [K
][LOGGING | NOLOGGING
][DEFAULT C2
][ONLINE | OFFLINE
][PERMANENT | TEMPORARY
: .Default
C2 C1 :
'filename' [SIZE number [K | M] [REUSE] | REUSE] [AUTOEXTEND ] =C1
STORAGE (INITIAL number K|M NEXT number K|M =C2
)MINEXTENTS number PCTINCREASE number MAXEXTENTS number

C2 ) (Initial, Next, .AUTOEXTEND

77

] :[MINIMUM EXTENT Extents


Tablespace 4
Extents ).(4, 8, 16,
] :[BLOCKSIZE Block Size DB_BLOCK_SIZE
Standard
Block Size Non-Standard Standard
Tablespace Block Size Non-
Standard 2KB .32KB
] :[LOGGING Tablespace Tables Indexes
.Redo Log Files
] :[NOLOGGING Tablespace Tables Indexes
.Redo Log Files
] :[DEFAULT C2 ""Storage Parameters
.
] :[OFFLINE Tablespace
) .(Online
] :[PERMANENT Tablespace .
] :[TEMPORARY Tablespace .

:5.1
Tablespace SQL :
CREATE TABLESPACE user_data
DATAFILE '\oradata\db01\userdata01.dbf' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M
LOGGING
OFFLINE
TEMPORARY
DEFAULT STORAGE (INITIAL 1M NEXT 1M MINEXTENTS 2
PCTINCREASE 0 MAXEXTENTS
)999
;
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
Tablespace Tablespace
.Create
Tablespace Data Files
Tablespace .CREATE

78

MANAGING TABLESPACES SPACE


Tablespace Segment
Extents Extent :
Locally Managed TablespaceDictionary Managed Tablespace
: Extents .

:LOCALLY MANAGED TABLESPACE


Tablespace Extents Data Files
.Tablespace ) Bitmap ( Free Blocks
Used Blocks Extents Blocks
Bitmap .
:Locally Managed

.Data Dictionary

Extent Extents .


Coalescing Space
) .(Database

Tablespaces
:CREATE TABLESPACE
EXTENT MANAGEMENT LOCAL
] ] ][AUTOALLOCATE | UNIFORM [SIZE number [K|M
:
-1 ][DEFAULT C2
-2 .TEMPORARY
-3 .MINIMUM EXTENT
:

:AUTOALLOCATE Extents DBA .


:UNIFORM Extents .DBA
79

:5.2
: Locally Managed Tablespace
CREATE TABLESPACE app_data
DATAFILE '\oradata\db01\appdata01.dbf' SIZE 250M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
:Autoallocate Default Locally Managed
CREATE TABLESPACE app_data
DATAFILE '\oradata\db01\appdata01.dbf' SIZE 250M;

:DICTIONARY MANAGED TABLESPACE


.Data Dictionary Extents Tablespace
Segment Dictionary Managed
.[DEFAULT C2]

.Database
Tablespaces
:CREATE TABLESPACE
EXTENT MANAGEMENT DICTIONARY [DEFAULT C2]

:5.3
CREATE TABLESPACE app_data
DATAFILE '\oradata\db01\appdata01.dbf' SIZE 250M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE (INITIAL 1M NEXT 1M] ;

MINIMUM [ DEFAULT C2] :


.Console ALTER TABLESPACE EXTENT

80

:5.4
:Minimum Extent
;ALTER TABLESPACE app_data MINIMUM EXTENT 2M
:Default Storage
ALTER TABLESPACE user_data
( DEFAULT STORAGE
INITIAL 2M
NEXT 2M
;)MINEXTENTS 1500
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
Tablespace Tablespace
.View\Edit Details
Storage .Apply

: Storage Tablespace .Locally Managed

81

NON-SYSTEM TABLESPACES
Non-System Tablespaces Database
Permanent Tablespace Undo Tablespace .Temporary Tablespace
Permanent Tablespace " "Data Database
Data Dictionary Tablespace
Data Dictionary System Tablespace
Database .

:UNDO TABLESPACE
Undo Segment . Extents
Locally Managed ) Database
:(CREATE DATABASE
CREATE UNDO TABLESPACE tablespace_name
][DATAFILE C1
EXTENT MANAGEMENT LOCAL
] ] ][AUTOALLOCATE | UNIFORM [SIZE number [K|M
: Undo Tablespace Automatic Undo Management
.Undo Segment

:5.5
CREATE UNDO TABLESPACE undo01
;DATAFILE '\oradata\db01\undo101.dbf' SIZE 50M
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
Tablespace Tablespace
.Create
Undo Permanent
Tablespace .Create

: Undo Segment Control File Alert Log File


.Initialization Parameter File

82

:TEMPORARY TABLESPACE
Sort Order By.Group By
" "Temporary Data Sort Segment
Tablespace Sort .Instance Extents
.Locally Managed
: Sort Segment Extents
Sort.
Temporary Tablespace CREATE TABLESPACE
TEMPORARY :Locally Managed
CREATE TEMPORARY TABLESPACE temp's name
'TEMPFILE 'filename
EXTENT MANAGEMENT LOCAL
] ] ][AUTOALLOCATE | UNIFORM [SIZE number [K|M

:5.6
CREATE TEMPORARY TABLESPACE temp01
TEMPFILE '\oradata\db05\temp01.dbf ' SIZE 200M
;EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
Tablespace Tablespace
.Create
Temporary Permanent
Tablespace Storage .Size
.Create

) TEMPFILE ( DATAFILE :

.Read-Only
.
.Recovery
.ALTER DATABASE
.NOLOGGING
.CREATE CONTROLFILE

83

:Default Temporary Tablespaces


CREATE DATABASE Default Temporary Tablespace
Database System Tablespace Temporary
Sorts System Tablespace
Fragmentation .System Tablespace
Temporary Tablespace Database
Default Temporary ALTER DATABASE
System Tablespace Sorts
.Default Temporary Tablespace
: DBA Default Temporary Tablespace Temporary
Tablespace Default .ALTER DATABASE
:2 Default Temporary Tablespace CREATE
DATABASE .Locally Managed
:Default Temporary Tablespace

Default Temporary Tablespace Temporary


Tablespace .ALTER DATABASE

Default Temporary .Permanent

.Offline

:5.7
Temporary Tablespace Default Default Temporary
:
;ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp02
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
Tablespace Tablespace
.Create
Temporary Permanent
Tablespace Storage .Size
Set as Default Temporary Tablespace .Create

84

ALTERING A TABLESPACE
Tablespaces ALTER TABLESPACE
: Offline Online Tablespace
Read-Only Tablespace Tablespace .

:OFFLINE OR ONLINE
Tablespace Offline
Tablespace .Database Tablespace Offline
DBA Backup Recovery
Database Data Files Tablespace
Database .
Tablespace Online Offline
Data Dictionary .Control File Instance Tablespace
.Tablespace
Tablespaces Offline System Tablespace
Default Temporary Tablespace Undo Segment .Active
:
ALTER TABLESPACE tablespace's name
| ONLINE
]OFFLINE [NORMAL | TEMPORARY | IMMEDIATE| FOR RECOVER
:

:NORMAL " "Dirty Buffers Data Files


SGA Data Files Tablespace .
:TEMPORARY Checkpoint Online Data Files
Tablespace .Offline Data Files
:IMMEDIATE Checkpoint Data Files Tablespace
Recovery .Online
:FOR RECOVER Tablespace .Recovery

DBWn Permanent Tablespace Temporary


Tablespace .Offline

Tablespace Offline Normal


.Checkpoint

Tablespace CREATE
.TABLESPACE
85

:5.8
Tablespace Online :
;ALTER TABLESPACE user_data ONLINE
Tablespace Offline :
;ALTER TABLESPACE user_data OFFLINE
;ALTER TABLESPACE user_data OFFLINE IMMEDIATE
;ALTER TABLESPACE user_data OFFLINE TEMPORARY
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
+ Tablespace .Tablespaces
Tablespace .
Tablespace Offline
.Apply

:READ-ONLY TABLESPACE
Tablespace " "Read-Only DBA
Data Files Tablespace . DBA
Tablespace Read-Only Data Files Tablespace
Online Tablespace
Read-Only Read-Write Data Files .Online
Tablespace Read-Only :
]ALTER TABLESPACE tablespace's name READ [ONLY | WRITE
) (Tables, Indexes Read-Only Tablespace
Tablespace .Data Dictionary
Tablespace " "Transaction

Commit .Rollback
: System Tablespace .Read-Only

86

:5.9
Tablespace Read-Only :
;ALTER TABLESPACE user_data READ ONLY
Tablespace :
;ALTER TABLESPACE user_data READ WRITE
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
+ Tablespace .Tablespaces
Tablespace .
Tablespace
Read Only .Apply

: Tablespace Read-Only DBWn


.Checkpoint

:DROPPING TABLESPACES
Tablespace Database :
DROP TABLESPACE tablespace's name
]][INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS
:

:INCLUDING CONTENTS Tablespace


" "Data " "Data
.
:AND DATAFILES Tablespace Data Files
) ( ) ( .
Data Files
Data Files .
:CASCADE CONSTRAINTS
(Foreign Key) Referential Integrity Table Tablespace
Primary Key Unique Key Table .Tablespace
.

87

:
-1 Tablespace .Read-Only
-2 Tablespace Offline
Tablespace Offline
.
-3 Tablespace Control File
.Tablespace
: Control File Tablespaces Data
.Files

5.10
Tablespace :
DROP TABLESPACE user_data
;INCLUDING CONTENTS AND DATAFILES
DROP TABLESPACE user_data
;INCLUDING CONTENTS CASCADE CONSTRAINT
DROP TABLESPACE user_data
;INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINT
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
+ Tablespace .Tablespaces
Tablespace .
.Remove
Yes .

88

:RESIZING A TABLESPACE
Tablespace Data Files Data Files
.Tablespace Data Files .
:Automatic Extension
AUTOEXTEND Data Files
. AUTOEXTEND Database Tablespace
:
]ALTER DATABASE [database's name
]DATAFILE 'filename' [SIZE number] [K | M] [REUSE
]][AUTOEXTEND OFF|ON [NEXT number [K|M
]][MAXSIZE UNLIMITED | number [K |M
:

:AUTOEXTEND OFF .
:AUTOEXTEND ON
.
:NEXT .Data Files
:MAXSIZE .Data Files
.UNLIMITED

: AUTOEXTEND CREATE DATABASE CREATE


.TABLESPACE

5.11
Data Files Tablespace :
'ALTER DATABASE DATAFILE '\oradata\db01\userdata01.dbf
;AUTOEXTEND ON NEXT 10M MAXSIZE 250M
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
+ Data Files .Data Files
Data File .
Storage .
) Increment (NEXT Unlimited
Value .Apply

89

:Manual Extension
Data Files :
]'ALTER DATABASE [database's name] DATAFILE 'filename', ['filename2
]RESIZE number [K|M
: Data File 100 MB 70 MB
DBA 60 MB Data File
: Data File .70 MB
: 5.12

5.12
Data Files Tablespace :
ALTER DATABASE DATAFILE '\oradata\db01\userdata01.dbf',
''.\oradata\db01\userdata02.dbf
;RESIZE 250M
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Storage Manager
+ Data Files .Data Files
Data File .
File Size .Apply

90

:Adding Data File


: Tablespace Data Files
ALTER TABLESPACE tablespace's name ADD DATAFILE
'filename' [SIZE number [K|M]] [REUSE] [AUTOEXTEND ] , .
. . :
.5.13

:5.13
:Tablespace Data Files
ALTER TABLESPACE user_data ADD DATAFILE
'\oradata\db01\userdata01.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M MAXSIZE 250M,
'\oradata\db01\userdata02.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M MAXSIZE 250M;
: Console
.Standalone Console
. Database
.Normal SYSDBA
.Storage Manager
.Tablespaces Tablespace +
. Data File Tablespace
.Add Datafile
.Create

:MOVING DATAFILES
ALTER ALTER TABLESPACE Data Files
.DATABASE
:Alter Tablespace
: Data Files
ALTER TABLESPACE tablespace's name
RENAME DATAFILE 'filename' , ['filename']
TO 'filename' , ['filename'];

91

Tablespace .Offline
Data File )
COPY .(PASTE
.
Tablespace Online
Data Files .

Tablespace .Offline
Data Files .
Data Files Data Files
.Control File
Data Files .System Tablespace

:5.14
:
ALTER TABLESPACE app_data RENAME DATAFILE
''\oradata\db01\app01.dbf' , '\oradata\db01\app02.dbf
TO
;''\oradata\db02\app01.dbf' , ' \oradata\db02\app02.dbf

:Alter Database
Data Files :
ALTER DATABASE database's name
]'RENAME FILE 'filename' , ['filename
;]'TO 'filename' , ['filename
:

.Database
Data File )
COPY .(PASTE
Database .Mount
.
Database .Open

92

Database .Mount
Data Files .
Data Files .System Tablespace

: .Redo Log Files

:5.15
:
ALTER DATABASE app_data RENAME FILE
''\oradata\db01\app01.dbf
TO
;''\oradata\db02\app01.dbf

:TABLESPACE WITH OMF


Tablespace OMF ""Parameter
DB_CREATE_FILE_DEST Data Files Tablespace
CREATE TABLESPACE Data Files
.
CREATE TABLESPACE tablespace's name
; ] ][DATAFILE [filename] [SIZE number [K|M
Tablespace OMF :Data Files

) 100MB Default (5.16


) (AUTOEXTEND
).(UNLIMITED

:5.16
Tablespace OMF ""Parameter
DB_CREATE_FILE_DEST :
;CREATE TABLESPACE new_data

93

:QUERYING INFORMATION
Tablespaces :

:DBA_TABLESPACES View Tablespaces


Database Tablespaces (Temporary, Undo) Tablespace
(Locally, Dictionary) Extents.

:V$TABLESPACE .Tablespaces

Data Files :

:DBA_DATA_FILES Data Files Data Files


Tablespace Data File Data Files .

:V$DATAFILE Data Files Data File


) (Online,Offline Data Files.

Temp Files :
:DBA_TEMP_FILES Temp Files Temp Files
Tablespace Temp File Temp Files .

:V$TEMPFILE Temp Files Temp File


) (Online,Offline Temp Files.

94

SEGMENTS & STORAGE


STRUCTURES

95

SEGMENTS
Tablespace Logical Structure Segment
Segment Segments Tablespace
.Extent
: Segment
.TABLE SEGMENT
.TABLE PARTITION SEGMENT
.CLUSTER SEGMENT
.INDEX SEGMENT
.INDEX-ORGANIZED TABLE SEGMENT
.INDEX PARTITION SEGMENT
.TEMPORARY SEGMENT
.UNDO SEGMENT
.LOB SEGMENT
.NESTED TABLE SEGMENT

96

DATA BLOCKS
""Parameter
DB_BLOCK_SIZE Database . Data
Block:

:BLOCK HEADER Data Block ) Data, Index,


.(or Undo Table Directory Tables
) ( Data Rows .Data Block Block Header
Row Directory ) (Rows Block
.Row Address Block Header Transaction Slots
" "Rows ""Transactions
.

:DATA SPACE "."Rows

:FREE SPACE Block Header Data Space


.
Fragmentation Coalesce.

: Coalescing .Locally Managed Tablespace


:2 Log Sequence Number Checkpoint Data Files
.Header

6.1
: 6.1 Data Space
Block Header .

97

:BLOCK STORAGE PARAMETERS


Table " "Object Data Blocks
.
.

:PCTFREE Block
" "Data Rows " "Update " "Data Rows
Block Default .10%

:PCTUSED " "Data Rows Block


" "Data Rows PCTUSED Block
Freelist Default .40%

:FREELIST Segment Freelist


FREELISTS Default Segment Freelist.

:INITRANS " "Transaction Slots Block


Header .
" "Transactions Block . 3
Transaction Slots
Block Free Space
Block Transaction Slots Default .1

:MAXTRANS " "Transaction Slots Block


Header .
" "Transactions Block . 200
200 Block Default
.255

: FreeList " "List Blocks


.Free Blocks

:
PCTUSED 30% PCTFREE :20%
-1 " "Rows Block 80%
Block PCTFREE 20%
Block Rows Block
COLUMN NULL . Rows
Rows .PCTFREE
-2 Rows Block Rows
Rows Block Rows Block
PCTUSED .30% Rows 30% Block
Rows ).(Freelist

98

MANAGING DATA BLOCKS


Data Blocks :
:MANUAL DATA BLOCK MANAGEMENT
Block Storage Parameters .Blocks

:AUTOMATIC SPACE MANAGEMENT


Bitmap Freelist Used Blocks .Free Blocks
Bitmap Blocks ) .Bitmapped Blocks (BMBs
" "Rows Bitmap Block
) Blocks
( Bitmap .
Blocks PCTUSED
FREELIST " "Objects
INSERT.
:
-1 Locally Managed Tablespaces.
-2 Tablespace Segments
Tablespace .
-3 .
-4 SEGMENT SPACE MANAGEMENT AUTO
.CREATE TABLESPACE
-5 Tablespace .LOBs
: LOBs
.

:6.1
CREATE TABLESPACE APP_DATA
'DATAFILE '\oradata\db05\appdata04.dbf
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K
;SEGMENT SPACE MANAGEMENT AUTO

99

STORAGE INFORMATION
Segments :

:DBA_SEGMENTS Segment
Tablespace Segment Extents Segment Data
Blocks .

Used Extents :

:DBA_EXTENTS Extent Block


Blocks Extent .

Free Extents :

:DBA_FREE_SPACE Tablespace Extent


Blocks .

100

UNDO SEGMENT
Undo Segment
" "Transactions
Rollback . Commit Undo Segment Header
" "Transactions .Undo Segment
:Undo Segment

Rollback
.Commit


Instance .Recovery

.Read Consistency

: " Undo Segment "Serial Transaction


.Undo Segment
: Undo Segment:
.Initialization Parameter File
.Alert Log File
.Control File
:2 Undo Segment :
.Undo Tablespace
.Offline or Online
):System Change Number (SCN
" "Unique Number Commit Read
Consistency .Recovery SCN Redo Log Control Files
Files .Block Headers
: Checkpoint SCN .Control Files
:Read Consistency

. Read Consistency
Commit
.Undo Segment

101

:
-1 Employees Tables
.UPDATE
-2 Employees Table .Undo Segment
-3 Query Select * From
Employees SCN
.Commit
-4
.Undo Segment
-5 Commit .SCN
-6 .Select * From Employees
-7 .

:Snapshot Too Old Error


Read Consistency .
Query
Query Commit
Undo Segment
" "Overwritten .Undo Segment
" UNDO_RETENTION "Parameter
Undo Table pace .Read Consistency
900 15 . Initialization
Parameter File .ALTER SYSTEM
: Undo Tablespace
UNDO_RETENTION .

:UNDO SEGMENT TYPES

:SYSTEM UNDO SEGMENT System Tablespace


Database " "Objects .System Tablespace

:NON-SYSTEM UNDO SEGMENTS Tablespaces Database


System Tablespace Non-System Undo
Segment Database .Tablespaces

:DEFERRED UNDO SEGMENTS Tablespace


Offline Rollback " "Transactions
Tablespace .Online

102

MANAGING UNDO DATA


Undo Data :

.AUTOMATIC UNDO MANAGEMENT


.MANUAL UNDO MANAGEMENT

.
:AUTOMATIC UNDO MANAGEMENT
Undo Tablespace .Instance
Undo Tablespace .Oracle Server
Undo Segment _SYSSMUn$ ._SYSSMU1$
Automatic Undo Management Undo Tablespace
.Active Undo Tablespace Database
.Active
" UNDO_MANAGEMENT "Parameter
AUTO .Initialization Parameter File
Database Default .MANUAL
Undo Tablespace Automatic Undo
Management " UNDO_TABLESPACE "Parameter
Initialization Parameter File Undo Tablespace Database
" ."Parameter
.ALTER SYSTEM

:6.2
UNDO_TABLESPACE ) Tablespace
:(Active
;ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBSPACE
Console :

Console .Standalone
Database .
SYSDBA .Normal
.Instance Manager
.Configuration
.Undo
Current Undo Tablespace .Undo Tablespace
.Apply

103

:Snapshot Too Old Error


)Undo Tablespace ALTER
SYSTEM ( Console Query Undo Tablespace
.
:
-1 UNDO TABLESPACE CREATE DATABASE
UNDO_MANAGEMENT AUTO
Undo Tablespace .SYS_UNDOTBS
-2 Undo Tablespace DROP TABLESPACE
Undo Tablespace .(Active)Instance
:
-1 Undo Tablespace CREATE DATABASE
.CREATE UNDO TABLESPACE
-2 Automatic Undo Management .Undo Tablespace

:6.3
Undo Tablespace DROP TABLESPACE
Undo Tablespace
Undo Tablespace Tablespace :
SELECT Z.NAME, X.STATUS
FROM V$ROLLNAME Z, V$ROLLSTAT X
WHERE Z.NAME IN
(SELECT SEGMENT_NAME FROM DBA_SEGMENTS
)'WHERE TABLESPACE_NAME = 'UNDOTBS
; AND Z.USN = X.USN
STATUS PENDING ONLINE Tablespace
PENDING OFFLINE .Tablespace

:Resource Manager
Resource Manager
Undo Data ""Maxsize
.Undo Data
UNDO_POOL " "Default .UNLIMITED

104

QUERYING UNDO INFORMATION


:Undo Segment Views
Undo Tablespace :V$UNDOSTAT
. 10 Undo Tablespace

SELECT BEGIN_TIME, END_TIME, UNDOBLKS


FROM V$UNDOSTAT;
Undo Segment :DBA_ROLLBACK_SEGS
.Offline Segment .Database
SELECT SEGMENT_NAME, TABLESPACE_NAME, OWNER, STATUS
FROM DBA_ROLLBACK_SEGS;
.Online Segments :V$ROLLNAME

SELECT USN, NAME FROM V$ROLLNAME;


Segments Online Segments :V$ROLLSTAT
.USN V$ROLLNAME Join . Extents
SELECT A.NAME , B.EXTENTS
FROM V$ROLLNAME A , V$ROLLSTAT B
WHERE A.USN = B.USN;

105

Managing tables & indexes &


constraints

106

STORING DATA
DATA Rows Columns .Tables
Tables:

) TABLES :(Regular Tables Table


Rows .Oracle Sever

:PARTITIONED TABLES Table " "Partition


Segment Segment Tablespace.

:INDEX-ORGANIZED TABLE Primary Key Table


PK Table Regular Table
PK ) ".("Separate Storage

:CLUSTERED TABLE Table Tables


.Data Blocks Cluster
Key Rows .

:DATA TYPES
Data Types Scalar, Collection,
.Relationship
:Scalar Data Types
:Scalar Data Types

:CHAR, NCHAR " "Fixed-Length


" ."Characters 10 Bytes 7
Bytes 3bytes .
)( 2000 Row Default .1
NCHAR CHAR Unicode Character
.
:VARCHAR2, NVARCHAR2 " "Variable-Length
.Characters 20 Bytes
Column 15 bytes 15 Bytes
. 4000
Row ) Default ( .
NVARCHAR2 VARCHAR2 Unicode Character
.
:NUMBER . 38
.

107

:DATE .
31 9999
1.4712 .
:TIMESTAMP DATE
. 9 ) ( 0.987654321 Default 6.
:TIMESTAMP WITH TIME ZONE TIMESTAMP
) (.
.
:TIMESTAMP WITH LOCAL TIME ZONE
TIMESTAMP Session Time Zone

3
) 3 (
. .
:ROW .Binary Data 2000
.
:LONG RAW Row ) 2GB (
:LONG ) 2GB
CLOB .(NCLOB Table
Long.
:CLOB, NCLOB 4GB .Character Data
:BLOB 4GB Unstructured Data Binary Images
.Documents
:BFILE Database
.4GB
:ROWID, UROWID 10 bytes Row
Database Row .
ROWID UROWID Rows No-Oracle
)Tables Database (.

:Collections Data Types


:

) :VARYING ARRAYS (VARRAY


) Data Type (.
:NESTED TABLES Rows Rows
Table " "Pointer Row .Table

):Relationship Data Types (REFs


Pointers Tables.

108

MANAGING TABLES
:CREATE TABLES
Table CREATE TABLE
" ."Introduction to SQL Table
Schema CREATE TABLE privilege Table
Schemas .CREATE ANY TABLE privilege
:Tables
Table Tablespace Tablespaces Undo
Segments Temporary Segments .Indexes
) Locally Managed (Storage
.Fragmentation

:7.1
Locally Managed Table :
CREATE TABLE HR.TEST
;)(FIRST VARCHAR2 (10), LAST NUMBER
:
CREATE TABLE HR.TEST
)(FIRST VARCHAR2 (10), LAST NUMBER
TABLESPACE EXAMPLE
PCTFREE 10 PCTUSED 20
;MAXTRANS 200 MINTRANS 1
TABLESPACE EXAMPLE Tablespace
Table .Example Tablespace
Default .System Tablespace Table
Schema .HR
Console :

Console .Standalone
Database .
SYSDBA .Normal
+ .Schema Manager
Table Create .
) (Table Apply
Create Using Wizard Create .Table

109

:7.2
Dictionary Managed Table :
CREATE TABLE HR.TEST2
)(FIRST VARCHAR2 (10), LAST NUMBER
TABLESPACE EXAMPLE
PCTFREE 10 PCTUSED 20
MAXTRANS 200 INITRANS 1
STORAGE (INITIAL 200K NEXT 200K
PCTINCREASE 50
MINEXTENTS 1 MAXEXTENTS 5
FREELISTS 1 FREELIST GROUPS 1
; )BUFFER_POOL DEFAULT
: Storage
:INITIAL .Extent
:NEXT Extent Extent.
:PCTINCREASE Extents ) (
. Extents +200K) 300K
) (%50 .(Extent
:MINEXTENT Extents .Table
:MAXEXTENTS Extents .Table
:FREELIST GROUP Freelist .Table
:FREELISTS Freelist .
:BUFFER_POOL ) (Default, Keep, Recycle
: Storage Default .
: .Locally Managed Table
Console :

Console .Standalone
Database .
SYSDBA .Normal
+ .Schema Manager
Table Create .
Initial Size, Next Size, Increase Size by, Freelists, Groups,
.Buffer pool
.Apply

110

:CREATING TEMPORARY TABLES


Temporary Table
" "Transaction Session
) (Commit
.Database
Temporary Table CREATE GLOBAL TEMPORARY TABLE
Session :
:ON COMMIT DELETE ROWS .
:ON COMMIT PRESERVE ROWS .Session
: Session .
: Views, Indexes Temporary Table Table.
:2 ) DML (INSERT, DELETE Temporary Table
.Redo Log Files

:7.3
Temporary Table :Session
CREATE GLOBAL TEMPORARY TABLE TEMP_TABLE
)(TEMP_NAME VARCHAR2 (25), TEMP_DATE DATE
;ON COMMIT PRESERVE ROWS

:ALTERING TABLES
:ALTER TABLE
:Changing the Block Storage Parameters
PCTUSED, PCTFREE, MAXTRANS, Tablespace
Table .MINTRANS
: Storage .Freelists

111

:7.4
ALTER TABLE HR.TEST2
PCTUSED 40
PCTFREE 20
;MAXTRANS 250
Console :

Console .Standalone
Database .
SYSDBA .Normal
+ .Schema Manager
+ .Table
Table ) (HR
Table )
"."View\Edit Details
Storage .Apply

:Manual Allocating Extents


Extents Table :
ALTER TABLE [schema.]table_name
ALLOCATE EXTENT
[
]SIZE number [K|M
DATAFILE filename
]
] SIZE number [K|M Extent
NEXT DATAFILE filename Extent Data
File Tablespace .Table

:7.5
Extent :
ALTER TABLE HR.TEST2
;ALLOCATE EXTENT

112

:Moving Tables
) Table (Partitioned Table Tablespace Tablespace
MOVE .ALTER SYSTEM
Table Storage Parameters .7.6
: Storage Parameters Table
Tablespace ) Table Segment ( .7.6
:2 Indexes Table .

:7.6
ALTER TABLE HR.TEST2 MOVE
TABLESPACE APP_DATA
)STORAGE (INITIAL 300K
PCTUSED 30
;INITRANS 2
Storage Parameters Table Tablespace:
ALTER TABLE HR.TEST2 MOVE
TABLESPACE EXAMPLE
)STORAGE (INITIAL 300K
;PCTUSED 30
HR.TEST2 Example Tablespace .

:DROPPING TABLES AND COLUMNS


:Truncate a Table
TRUNCATE TABLE Table
) ( . TRUNCATE TABLE
) DATA DEFINITION LANGUAGE (DDL Undo Data
DDL ) Rollback (.
:
-1 TRUNCATE TABLE Indexes .Table
-2 Table Foreign Key Table.

113

:7.7
HR :
;TRUNCATE TABLE TEST2
DBA " "Privileges :Schema
;TRUNCATE TABLE HR.TEST2

:Drop a Table
Table .DROP TABLE
CASCADE CONSTRAINTS Table Foreign key Table.

:7.8
Table :Database
;DROP TABLE HR.TEST2

:Dropping a Column
Column Table . ALTER TABLE
Column Undo Space Tables
. Column UNUSED
) Table(.
Column UNUSED ) (
.DESCRIBE
ALTER TABLE Column Column
UNUSED Column .
CASCADE CONSTRAINTS Column Foreign key
Column.
: Column Table
Column .

114

:7.9
Column :
ALTER TABLE HR.TEST
;DROP COLUMN LAST CASCADE CONSTRAINTS
Column Column :
ALTER TABLE HR.TEST
;DROP COLUMNS CONTINUE
Column :UNUSED
ALTER TABLE HR.EMPLOYEES
;SET UNUSED COLUMN PHONE_NUMBER CASCADE CONSTRAINTS
:Unused Columns
ALTER TABLE HR.EMPLOYEES
;DROP UNUSED COLUMNS

:QUERYING TABLE INFORMATION


Unused Columns Table :

:DBA_UNUSED_COL_TABS Columns
UNUSED Table .Table

Tables :
:DBA_TABLES Table Tablespace
Table Table ) Storage (PCTUSED
.
:DBA_OBJECTS " "Objects .Table

.
Columns Table :

:DBA_TAB_COLUMNS Table Column


Column.

: view DBA_TABLES USER_TABLES


.ALL_TABLES Dictionary Views .

115

MANAGING INDEXES
Index Tables Input/Output
) Queries Table ( .
Table Index Partitioned Table
Partitioned Index Storage Parameters Index
Storage Parameters .Table
Index Column Single Index
Index ) Column ( 32 Columns
.Composite Index Indexes Table
Index .Oracle Server
:Index

:UNIQUE INDEX Rows


Column Index.
:NON-UNIQUE INDEX Rows Column
Index.
:FUNCTION-BASED INDEX
Columns " "Functions SUBSTR
INSTR REPLACE .Column
:PARTITIONED INDEX INDEX Segment
Tablespaces . Tables
.Partitioned Tables

Index B-Tree Index .Bitmap Index


:B-TREE INDEX
Index .
Root Branches Leafs Index Entries
Rows Table . ROWIDs Lists 7.1 1
Root 2 Branch 3 .Leaf
Index Entry :

:HEADER Columns Single, ) Index


.(Composite
:COLUMN LENGTH .Column
:COLUMN VALUE .Column
:ROWID ROWIDs Rows .Table

116

7.1
:
-1 INSERT Table Index Entry Rows
.
-2 B-Tree Index Rows .NULL
WHERE (where last_name = null) NULL
Table .Index
-3 Column )(
.
-4 Columns OR .

:BITMAP INDEX
Index B-Tree ROWIDs
" "Bitmap Rows Table . ROWID
:
-1 Column "."Low Update
-2 WHERE OR .
-3 Table )(
) (.
-4 Column Bitmap .

117

:CREATING B-TREE INDEXES


: Index
DML Table Indexes
. Indexes

. Tablespace Indexes

. Indexes NOLOGGING

.Table INITRANS

: B-Tree Index
CREATE [UNIQUE] INDEX index_name
ON [schema.]TABLE (Column [ASC | DESC] , Column [ASC|DESC] , )
[TABLESPACE tablespace_name]
[PCTFREE number]
[MAXTRANS number]
[MINTRANS number]
[LOGGING | NOLOGGING]
[NOSORT]
[STORAGE INITIAL number K|M NEXT number K|M ..]
:
Index Block :PCTFREE
. Indexes
Oracle Rows :NOSORT
.Index Rows Server
Index Oracle Server :ASC|DESC
.
.Index PCTUSED :

:7.10
:B-Tree Non-Unique Index
CREATE INDEX ind_HR_test
ON HR.TEST (FIRST)
PCTFREE 30
STORAGE (INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE INDX;
. CREATE UNIQUE B-Tree Unique Index

118

:CREATING BITMAP INDEXES


Bitmap Index BITMAP CREATE INDEX
.7.10 Bitmap
CREATE_BITMAP_AREA_SIZE Default .8MB
Index
)( Column ) = (.

:7.11
CREATE BITMAP INDEX ind_HR_jobid
)ON HR.JOBS (JOB_ID
PCTFREE 30
)STORAGE (INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50
;TABLESPACE INDX

:7.12
B-Tree Index Bitmap Index Console :

Console .Standalone
Database .
SYSDBA .Normal
+ .Schema Manager
Index .Create
Index Schema Tablespace Column
Columns Index .Table Columns
Bitmap Index ) (Create
.Bitmap
)(Storage, Partitions, Options
.Create

119

:ALTERING INDEXES
:ALTER INDEX
:Changing the Block Storage Parameters
MAXTRANS Storage
.MAXEXTENTS

:7.13
ALTER INDEX ind_HR_jobid
MAXTRANS 250
;)STORAGE (MAXEXTENTS 200
Console :

Console .Standalone
Database .
SYSDBA .Normal
+ .Schema Manager
+ .Index
Index ) (HR
Index )
"."View\Edit Details
Storage .Apply

:Allocating & Deallocating Extents


Extents Index Extent Table
. Extents Index
ALLOCATE EXTENT :
]]DEALLOCATE UNUSED [KEEP number [K|M
:

:KEEP .Unused Extents

120

:7.14
: Extent
ALTER INDEX ind_HR_jobid
;ALLOCATE EXTENT SIZE 200K
):(Extents
ALTER INDEX ind_HR_jobid
;DEALLOCATE UNUSED

:Rebuilding Indexes
Index Tablespace Storage Parameters
ALTER INDEX REBUILD :
ALTER INDEX [schema.]Index_name REBUILD
][TABLESPACE tablespace_name
][PCTFREE number
][INITRANS number
][MAXTRANS number
][LOGGING | NOLOGGING
][REVERSE | NOREVERSE
][STORAGE (INITIAL SIZE [K|M] NEXT SIZE [K|M] .
:

:REVERSE Index Reverse Key Index


. Column Order_ID
12345 54321 Column .Index
Columns
Leafs .

: Rebuild Index

Index Index
Index
Rows ) (Fragmentation
.

Queries Index.

: Rebuild Index B-Tree Bitmap .

121

:7.15
Rebuild :Index
ALTER INDEX ind_HR_Jobid REBUILD
;TABLESPACE INDX02

:Rebuilding ONLINE
Rebuild Table .
DML Table Rebuild Index Index .
) Oracle8i (Oracle9i DML
Rebuild Index ONLINE REBUILD
.
: DDL Table .Rebuild Index

:7.16
Rebuild Online :Index
;ALTER INDEX ind_HR_Jobid REBUILD ONLINE

:Coalescing Indexes
Fragmentation Index Coalesce .Index
7.2 leafs 2 Fragmentation
Coalesce
Leaf .

7.2

122

:7.17
Coalescing :Index
;ALTER INDEX HR.ind_hr_jobid COALESCE

:Identify Unused Indexes


Index .
index .V$OBJECT_USAGE
: Index Index
.V$OBJECT_USAGE

:7.18
Index :
;ALTER INDEX HR.ind_hr_jobid MONITORING USAGE
:Index
;ALTER INDEX HR.ind_hr_jobid NOMONITORING USAGE

:ANALYZING INDEXES
ANALYZE INDEX:

Blocks Index " Block


."Corruption
.Index

ANALYZE INDEX Index View


INDEX_STATS View Blocks Blocks
LF_ROWS DEL_LF_ROWS
) 30% 50 100 (%50
Index " "Rows Fragmentation .Index

123

:7.19
Analyze :Index
;ANALYZE INDEX HR.JOB_ID_PK VALIDATE STRUCTURE
:INDEX_STATS
SELECT BLOCKS , PCT_USED, LF_ROWS , DEL_LF_ROWS
;FROM INDEX_STATS
:
BLOCKS PCT_USED LF_ROWS DEL_LF_ROWS
----------- ---------- ---------- ---------0
19
9
16
.30%

:DROPPING INDEXES
Index Index INVALID
Instance Index .DROP INDEX
: Index Primary Key Unique Key .FK

:7.20
:Index
;DROP INDEX hr.ind_hr_jobid
Console :

Console .Standalone
Database .
SYSDBA .Normal
+ .Schema Manager
+ .Index
Index ) (HR
Index
" )"Remove Object .(Remove
.Yes

124

:QUERYING INDEX INFORMATION


Index :

:DBA_INDEXES Index Table


Index Index Storage.

:DBA_IND_COLUMNS Index Column


Index Column.

:DBA_IND_EXPRESSIONS .Function-Based Indexes

:V$OBJECT_USAGE . Monitoring Index


Index Table Index
Monitoring Index ) USED
Index ( "."Monitoring

125

MANAGING CONSTRAINTS
) Data (Column
Database Triggers Application Code .Integrity Constraints
Application Code ) (
Client Database .Procedure Database Triggers
PL/SQL Database INSERT
.UPDATE

:INTEGRITY CONSTRAINTS

.Data Dictionary Integrity
Constraint:

:NOT NULL Column )NULL Rows


(
:UNIQUE )Column (Column
.
UNIQUE NULL .Rows
:PRIMARY KEY ) Column (Column Primary Key
.Table PK Rows Column
Rows .NULL
:FOREIGN KEY ) Column (Column Foreign Key
Table PK Unique Table Table.
:CHECK Rows ) Rows
M F (.

:Integrity Constraints
Constraints Table
:

:DISABLE NOVALIDATE Constraint



.Constraint
:DISABLE VALIDATE Constraint Index
) .(DML
:ENABLE NOVALIDATE
Constraint .Constraint
:ENABLE VALIDATE
.Constraint Constraint
.

126

:
-1
Locks Table DML
Enable Novalidate .Enable Validate
-2 Constraint Primary Key Unique Key Enable
Disable Index .
-3 Enable Novalidate Enable Validate .DDL

:CONSTRAINTS CHECKING
Constraints Table
DML Nondeferred Immediate Constraints
) Commit ( Deferred
Rollback .Constraint
Nondeferred
Deferred :
:INITIALLY IMMEDIATE .Nondeferred
:INITIALLY DEFERRED .Deferred
Constraint :
SET CONSTRAINT | CONSTRAINTS
)(constraint_name | ALL
)(IMMEDIATE | DEFERRED
ALTER SESSION ) Session (:
ALTER SESSION
)SET CONSTRAINT[S] = (IMMEDIATE | DEFERRED | DEFAULT

:7.21
Constraints :Deferred
;SET CONSTRAINTS ALL DEFERRED

127

:CREATING CONSTRAINTS
.ALTER TABLE CREATE TABLE Constraints
Table-Level Column-Level Constraints
. Column Constraint
Constraints REFERENCES Privilege
. Schema Schemas
:Column-Level Constraints
CREATE TABLE table_name
(column_name TYPE [CONSTRAINT constraint_name] C1 | C2 | C3 | C4| C5)
[NOT DEFERRABLE | DEFERRABLE [INITIALLY (IMMEDIATE |
DEFERRED)] ]
[DISABLE | ENABLE [VALIDATE | NOVALIDATE]
:Constraints C1, C2, C3, C4
[NOT] NULL =C1
UNIQUE [USING INDEX .] =C2
PRIMARY KEY [USING INDEX] =C3
REFERENCES [schema.] table_name [(column_name)] [ON DELETE =C4
CASCADE]
CHECK (condition) =C5
USING CREATE INDEX USING INDEX
ON [schema.]TABLE (Column [ASC | DESC] CREATE
.Index
:
FK Child :ON DELETE CASCADE
.(Introduction to SQL ) Parent

:2.22
:Column-Level Constraints
CREATE TABLE hr.new_emp (
Emp_id NUMBER(8) CONSTRAINT new_emp_id_pk PRIMARY KEY
DEFERRABLE INITIALLY DEFERRED
USING INDEX STORAGE (INITIAL 100K NEXT 100K) TABLESPACE indx,
Emp_Name VARCHAR2(20) CONSTRAINT new_emp_name NOT NULL,
Salary NUMBER(10) CONSTRAINT new_emp_ck CHECK (salary >0)
);

128

:Table-Level Constraints
CREATE TABLE table_name
(column_name TYPE , column_name TYPE, . ,
[CONSTRAINT constraint_name]
PRIMARY KEY (column_name , column_name, ) [USING INDEX .]
| UNIQUE (column_name , column_name, ) [USING INDEX .]
| REFERENCES [schema.] table_name [(column_name, column_name, )]
[ON DELETE CASCADE]
| CHECK (condition)
[NOT DEFERRABLE | DEFERRABLE [INITIALLY (IMMEDIATE |
DEFERRED)] ]
[DISABLE | ENABLE [VALIDATE | NOVALIDATE]
);
.Column-Level NOT NULL Constraint :

:2.23
:Table-Level Constraints
CREATE TABLE hr.new_emp
(
Emp_id NUMBER(8)
Dept_id NUMBER (8)
Emp_Name VARCHAR2(20) CONSTRAINT new_emp_name NOT NULL,
Dept_name VARCHAR2(20),
Salary NUMBER(10),
CONSTRAINT new_emp_id_pk PRIMARY KEY (Emp_id , Dept_id)
DEFERRABLE
USING INDEX STORAGE (INITIAL 200K NEXT 200K) TABLESPACE indx
CONSTRAINT new_emp_ck CHECK (salary > 0)
);

Table Console Constraint :


.Constraints
.Table Tablespace Indexes :

129

:USING ALTER TABLE


.Constraints ALTER TABLE
:Creating Constraints
CREATE TABLE Constraints
.2.24 ALTER TABLE

:2.24
:ALTER TABLE Constraints
ALTER TABLE hr.new_emp ADD
(
CONSTRAINT new_emp_id_fk FOREIGN KEY (Dept_id)
REFERENCES hr.departments (id)
DEFERRABLE
);
Constraint NOT NULL
:NULL NOT NULL
ALTER TABLE hr.new_emp MODIFY Dept_name NOT NULL;

:Enabling Constraints
.ALTER TABLE Enable Disable Constraint

:Enable Novalidate
Unique Constraints Validate
Table Locks PK Constraints
Disable . DML
.Enable Novalidate
ALTER TABLE [schema.] table_name
ENABLE NOVALIDATE {CONSTRAINT constraint_name | PRIMARY KEY |
UNIQUE (column , column2, .) }
[USING INDEX..]
PK Constraint USING INDEX
Deferrable Unique Constraint
. Disabled Index

130

:Enable Validate
" "Default Disable .Enable
Locks
Indexes PK,UNIQUE Constraints Oracle Server Index
Non-Unique Constraints Deferrable
Oracle Server Index Unique Constraints
.Nondeferrable
Disable Enable Novalidate
NOVALIDATE Validate) VALIDATE (Default
EXCEPTIONS .

:2.25
:Novalidate
ALTER TABLE hr.new_emp
;ENABLE NOVALIDATE CONSTRAINT new_emp_id_pk
:Validate
ALTER TABLE hr.new_emp
;ENABLE VALIDATE CONSTRAINT new_emp_id_pk
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Schema Manager
+ .Table
Table ) (HR
Table )
"."View\Edit Details
Constraints .Apply

131

:USING EXCEPTIONS
Constraints EXCEPTIONS
.EXCEPTIONS Table Table Constraint " Rows"
Enable Disable Constraint
:
utlexcpt.sql Script Exceptions Table
:SQLPLUS

@ C:\oracle\ora90\rdbms\admin\utlexcpt.sql
ALTER Enable Validate Constraint
:TABLE

EXCEPTIONS INTO system.exceptions


Enable Validate Constraint
.Exceptions Table

SELECT * FROM table_name


WHERE ROWID IN (SELECT ROW_ID FROM EXCEPTIONS);
.UPDATE TABLE

.ALTER TABLE Enable Validate Constraint

:QUERYING CONSTRAINTS INFORMATION


: Constraints
Constraint :DBA_CONSTRAINTS
.

Columns :DBA_CONS_COLUMNS
.Constraints

132

Managing USERS & password


SECURITY& RESOURCES

133

PASSWORD MANAGEMENT
:PROFILES
Profile Password Resources DBA
" "Parameters Profile
Database .
Database Oracle Sever Default Profile
Profile) Default Profile .(Unlimited
" "Assign Profile Users Roles Profiles
Profile Session
Database .Profile Profile Users CREATE
USER .ALTER USER
: .(Enable, Disable) Profile

:MANAGING PASSWORD
Password Profile:

" "Password .
)
(
.
Account )
(.

:Locking Account
Account Account
Account :
:FAILED_LOGING_ATTEMPTS
Account
.Account
:PASSWORD_LOCK_TIME Account
Account ) 3(.
DBA Account ALTER USER
Account DBA DBA.

134

:Password Expiration
" "Password
.
Database
.Account

:PASSWORD_LIFE_TIME
Account Account .Expired
:PASSWORD_GRACE_TIME
Account
.

:
PASSWORD_LIFE_TIME PASSWORD_GRACE_TIME
: Account
3 .Account

:Password History

.

:PASSWORD_REUSE_TIME
.
:PASSWORD_REUSE_MAX
. .

:
.Unlimited
:Password Verification
.PL/SQL

.

:PASSWORD_VERIFY_FUNCTION PL/SQL Function


.

: Function SYS Schema Boolean


" "True "."False

135

VERIFY_FUNCTION utlpwdmg.sql Oracle Server


.PASSWORD_VERIFY_FUNCTION
:VERIFY_FUNCTION

.$
.

N1Z$3 N1E$
.(3,Z)

:CREATING PROFILE TO MANAGE PASSWORD


: Password Profile
CREATE PROFILE profile_name LIMIT
[FAILED_LOGING_ATTEMPTS number]
[PASSWORD_LOCK_TIME number_of_days]
[PASSWORD_LIFE_TIME number_of_days]
[PASSWORD_GRACE_TIME number_of_days]
[{PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX}
number_of_days]
[PASSWORD_VERIFY_FUNCTION {function_name | NULL | DEFAULT}]
:
:{PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX}
. } {
.(number_of_days number) UNLIMITED
.Unlimited Default :

:8.1
: Profile
CREATE PROFILE myprofile LIMIT
FAILED_LOGING_ATTEMPTS 3
PASSWORD_LOCK_TIME 5
PASSWORD_LIFE_TIME 15
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 15
PASSWORD_VERIFY_FUNCTION verify_function;

136

: 1/24
1/1400 .
Profile :Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
Profile .Create
.Profile
Password .
.Create

: Profile "."User

:ALTERING PROFILE
ALTER PROFILE .8.2

:8.2
ALTER PROFILE myprofile
FAILED_LOGING_ATTEMPTS 2
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 10
PASSWORD_GRACE_TIME 7/24
PASSWORD_REUSE_TIME 10
;PASSWORD_VERIFY_FUNCTION verify_function
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Profile Profile .
Password . Apply

: Profile ALTER PROFILE Console


Session ) Session(.

137

:DROPPING PROFILE
Profile DROP PROFILE :
;]DROP PROFILE profile_name [CASCADE
:

:CASCADE " "Revoke Profile


.Default Profile

:8.3
:Profile
;DROP PROFILE myprofile CASCADE
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Profile Profile
) Remove Object Remove
(.
.Yes

:
-1 .Default Profile
-2 Session .

138

RESOURCE MANAGEMENT
Resources Profile
Database Database
" "Idle Sessions .
" RESOURCE_LIMIT "Parameter Initiliazation Parameter File
TRUE Resources Default
FALSE
Database ALTER SYSTEM .8.4

:8.4
RESOURCE_LIMIT :
;ALTER SYSTEM SET RESOURCE_LIMIT = TRUE

Resources :Profile

:CPU_PER_SESSION Session
CPU " "Processor )
" "( .
:CPU_PER_CALL SQL
CPU .
:SESSIONS_PER_USER Sessions .
Session
SQL PLUS ORACLE FORMS
.
:CONNECT_TIME Session
Database Database
Session Rollback .Commit
:IDLE_TIME Session
Database .Database
:PRIVATE_SGA Session ) SGA
.(Shared Server
:LOGICAL_READS_PER_SESSION Data Blocks
) Session (.
:LOGICAL_READS_PER_CALL Data Blocks
SQL.
:COMPOSITE_LIMIT CPU_PER_SESSION
CONNECT_TIME LOGICAL_READS_PER_CALLPRIVATE_SGA
.Resource Cost

139

:CREATING PROFILE TO MANAGE RESOURCES


: Resources Profile
CREATE PROFILE profile_name LIMIT
[SESSIONS_PER_USER n1]
[CPU_PER_SESSION n1]
[CONNECT_TIME n1]
[IDLE_TIME n1]
[CPU_PER_CALL n1]
[LOGICAL_READS_PER_SESSION n1]
[LOGICAL_READS_PER_CALL n1]
[COMPOSITE_LIMIT n1]
[PRIVATE_SGA n2]
:
.UNLIMITED, DEFAULT, NUMBER :n1
.UNLIMITED, DEFAULT, NUMBER K|M :n2

:8.5
: Resources Profile
CREATE PROFILE myprofile LIMIT
SESSIONS_PER_USER 3
CPU_PER_SESSION UNLIMITED
IDLE_TIME 15
CONNECT_TIME 90;
:Console Profile
.Standalone Console
. Database
.Normal SYSDBA
.Security Manager +
.Create Profile
.Profile
.General
.Create

140

:USING DATABASE RESOURCE MANAGER


Oracle Server Database Resource Manager
Database Privilege . Resources
.ADMINISTER_RESOURCE_MANAGER privilege Resource Manager
: Database Resource Manager
Resources :CONSUMER GROUP
Profile )
.(Resources
.Consumer Group Resources :PLAN
.Consumer Groups Resources :ALLOCATION METHOD
PLANS DBA :PLAN DIRECTIVES
.Consumer Groups

Database Resource Manager :


.Oracle9i DBA
.Managing Undo Data Database Resource Manager :

:QUERYING INFORMATION
:Profile
Profile :DBA_PROFILES
Password )Resource_Type Column
.(Kernel Resources

SELECT * FROM DBA_PROFILES


WHERE PROFILE = myprofile
AND RESOURCE_TYPE = KERNEL;
:Account ) (
.( - )Account :DBA_USERS

:(COMPOSITE_LIMIT ) Resource Cost


.Composite_Limit :RESOURCE_COST

141

MANAGING USERS
DBA Database
Account Account .User
Privileges Profile Tablespace " "Objects
Temporary Tablespace
Tablespace .Tablespace Quotas
" "Objects ) Database (Tables, Views, Indexes
Schema Schema.

:CREATING USERS
User :
CREATE USER user_name
]IDENTIFIED [BY password | EXTERNALLY
][DEFAULT TABLESPACE Tablespace_name
][TEMPORARY TABLESPACE Tablespace_name
] [QUOTA {number K|M | UNLIMITED} ON Tablespace_name,
][PASSWORD EXPIRE
]}[ACCOUNT {LOCK | UNLOCK
]}[PROFILE {profile_name | DEFAULT
:

:EXTERNALLY .
:DEFAULT TABLESPACE Tablespace
.
:TEMPORARY TABLESPACE Temporary Tablespace
.
:QUOTA Tablespace
" "Objects.
:PASSWORD EXPIRE DBA
Account Account.
:ACCOUNT DBA Account
.
:PROFILE Profile .

142

:8.6
User :
CREATE USER Ahmad
IDENTIFIED BY newemp
DEFAULT TABLESPACE data
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
QUOTA 2M ON indx
QUOTA 10M ON data
;PASSWORD EXPIRE
User :Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
Users .Create
General .QUOTA
.Create

:Operating System Authentication


Database
)
" (" Operating System Database
. EXTERNALLY
.CREATE USER OS_AUTHENT_PREFIX
Database Default .OPS$

:
) (
Database Ahmad
Database .OPS$Ahmad
Ahmad Database
) (Ahmad Account
).(OPS$Ahmad

143

: OS_AUTHENT_PREFIX
) Database Database (.
REMOTE_OS_AUTHENT
Remote Database ) .( Database

:
REMOTE_OS_AUTHENT )
Database ( ) (Unix Oracle Server
True
Database ) False (Default
Database Oracle Server .

8.1

:ALTERING USERS
ALTER USER Default Tablespace Temporary
Tablespace .Quota

:8.7
Quota:
ALTER USER Ahmad
;QUOTA 0 ON users
: Quota Table Users Tablespace
Table ) .(Extents

144

:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Users .
.
.Apply

:DROPPING USERS
Database :
]DROP USER user_name [CASCADE
:

:CASCADE " "Objects


Schema .

: .Database KILL SESSION


.Database

:8.8
:
;DROP USER Ahmad

:QUERYING INFORMATION

:DBA_USERS Default
Tablespace Temporary Tablespace Profile Profile
Account .

:DBA_TS_QUOTAS Quotas
.Tablespaces

145

Managing PRIVILEGES &


AUDITING & ROLES

146

PRIVILEGES
Privileges Database
. Privileges
Roles Privileges
Privileges Public
.Database
Privileges:

:OBJECT Privileges "."Objects


:SYSTEM Privileges
Database .

:SYSTEM PRIVILEGES
System Privileges Database
GRANT )( .REVOKE System
Privileges Database Schema
Schemas .
Privileges ANY
) CREATE TABLE ( ) CREATE ANY TABLE (.
:System Privileges

ALTER SYSTEM
ALTER SESSION
ALTER DATABASE
CREATE TABLESPACE
CREATE TABLE
CREATE PROCEDURE
CREATE CLUSTER
CREATE SESSION
RESTRICTED SESSION
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
CREATE ANY SEQUENCE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
147

SELECT ANY TABLE


UPDATE ANY TABLE
DELETE ANY TABLE
BACKUP ANY TABLE
INSERT ANY TABLE
GRANT ANY PRIVILEGE
GRANT ANY ROLE
SYSOPER
SYSDBA

:
ANALYZE INDEX privilege CREATE INDEX privilege -1
CREATE TABLE CREATE TABLE privilege
.Indexes
.CREATE TABLE privilege DROP TABLE Privilege -2
.CREATE PROCEDURE Privilege DROP PROCEDURE privilege -3
.CREATE CLUSTER privilege DROP CLUSTER privilege -4
UNLIMITED TABLESPACE privilege -5
.Roles Tablespace
DROP Schema Table Truncate -6
.ANY TABLE

:Protecting the Dictionary


SELECT ANY TABLE ALTER ANY TABLE
Dictionary Objects
07_DICTIONARY_ACCESSIBILITY .Database
Dictionary Objects DBA Initialization Parameter File
SYS False
. Dictionary Schema

148

:Granting System Privilege


Privileges :
GRANT system_privilege , system_privilege,
TO {user_name | role_name | PUBLIC} , { user_name | role_name | PUBLIC} , ..
][WITH ADMIN OPTION
:

:Role_name Privileges .Roles


:WITH ADMIN OPTION Privileges
.

:
:WITH ADMIN OPTION
DBA Ahmad . Omar DBA
CREATE ANY TABLE Ahmad WITH ADMIN OPTION
Ahmad CREATE ANY TABLE .Omar
WITH ADMIN OPTION Ahamd Privilege
Omar Omar Privilege )
( Privileges .DBA

:9.1
;GRANT CREATE ANY TABLE TO Ahmad, Omar
GRANT ALTER ANY TABLE , ALTER ANY INDEX
;TO Ali WITH ADMIN OPTION

:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Users .
.System Privileges
Privilege .
Admin Option .
.Apply

149

:Revoking System Privilege


Privileges :
REVOKE system_privilege , system_privilege,
| FROM {user_name | role_name | PUBLIC} , { user_name | role_name
PUBLIC} , ..
: Privilege .
CREATE TABLE Tables
Views Views Views .Tables

:
REVOKE Privilege WITH ADMIN OPTION .GRANT
DBA CREATE ANY TABLE Ahmad WITH ADMIN
OPTION Ahmad CREATE ANY TABLE .Omar
REVOKE DBA CREATE ANY TABLE Ahmad
REVOKE CREATE ANY TABLE Omar Omar
.CREATE ANY TABLE

:9.2
;REVOKE CREATE ANY TABLE FROM Ahmad, Omar

:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Users .
.System Privileges
Privilege .
.Apply

150

:OBJECT PRIVILEGES
Table, View, Sequence, Object Privilege
.Procedure, Function, Package
:Object Privilege
.Table,View, Sequence ( Query) :SELECT
.Table, View :UPDATE
.Table, View :DELETE
.Table, View :INSERT
.Table, Sequence, Procedure :ALTER
.Table, View Index :INDEX
.Table Foreign Key :REFERENCES
.Procedure, Function PL/SQL :EXECUTE

:Granting Object Privilege


: Privileges
GRANT object_privilege, object_privilege, | ALL [PRIVILEGES]
ON [schema.] object_name
TO {user_name | role_name | PUBLIC} , .
[WITH GRANT OPTION]
:
Object Privileges :ALL
Privileges :WITH GRANT OPTION
.

:
Object Object Privileges -1
.WITH GRANT OPTION Object Privilege Schema
. Schema Objects Object Privileges -2

151

:9.3
GRANT UPDATE ON hr.employees
TO Ahmad
WITH GRANT OPTION
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Users Privilege
.PM
.Object Privileges
) (HR Object
Privilege .PM ) Object (Tables ) Objects
(Employees
Privilege ) .(Update
.
.Apply

:Revoking Object Privilege


Privileges :
]REVOKE object_privilege, object_privilege, | ALL [PRIVILEGES
ON [schema.] object_name
FROM {user_name | role_name | PUBLIC} , .
][CASCADE CONSTRAINTS

: Revoke .Grant
:

:CASCADE CONSTRAINTS Foreign Keys


.REFERENCES privilege

152

:
REVOKE Privilege WITH GRANT OPTION .GRANT
Ali SELECT TABLE Ahmad WITH GRANT
OPTION Ahmad SELECT TABLE .Omar
REVOKE Ali SELECT TABLE Ahmad
REVOKE SELECT TABLE Omar Omar
SELECT TABLE.

9.4
REVOKE SELECT ON hr.employees
;FROM Ahmad, Omar
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Users Privileges
.
.Object Privileges
Privilege .
.Apply

:QUERYING INFORMATION
:System Privileges

:DBA_SYS_PRIVS System Privileges Users,


.Roles

:DBA_TAB_PRIVS Object Privileges


Privileges.

:SESSION_PRIVS System Privileges


).(Session

153

AUDITING THE DATABASE


Auditing Database
Database
.Database AUD$ SYS schema
" ."Operating System
Auditing AUDIT_TRAIL True
DB OS Default
.NONE Auditing None
Instance Privileges ) DBA Privileges
.(DBA
DBA Auditing ) By
(Access Session ).(By Session
Audit :

SQL
.Privileges
"."Objects

: AUD$ Audit Trail Base Tables


DBA .
Audit Trail
SQL " ."Error Messages
Audit Trail . Audit Trail Auditing
) SQL (Privileges
AUDIT ANY privileges By Session .By Access
: Audit Trail DELETE .TRUNCATE
Audit Trail :
;AUDIT DELETE ON SYS.AUD$ BY ACCESS
AUD$ SYSTEM TABLESPACE Tablespace
Indexes Columns ).(sessionid , ses$tid
: Indexes .Tables

154

:9.5
Auditing :SQL
DDL : Tables
;AUDIT TABLE
Auditing :Privileges
;AUDIT CREATE ANY SEQUENCE
Auditing :Objects
;AUDIT UPDATE, DELETE ON HR.EMPLOYEES

:AUDITING OPTIONS
.

:WHENEVER SUCCESSFUL SQL


.
:WHENEVER NOT SUCCESSFUL SQL

.
.BY ACCESS
.BY SESSION

:9.6
) Sessions : (Database
;AUDIT SESSION
:
;AUDIT SESSION WHENEVER SUCCESSFUL
:
;AUDIT SESSION WHENEVER NOT SUCCESSFUL

155

:NOAUDITING
Aduiting NOAUDIT
.Auditing

:9.7
:Noauditing
;NOAUDIT UPDATE, DELETE ON HR.EMPLOYEES

:QUERYING INFORMATION
:Auditing

:ALL_DEF_AUDIT_OPTS .Deafult Audit Options

:DBA_STMT_AUDIT_OPTS .SQL

:DBA_PRIV_AUDIT_OPTS .Privileges

:DBA_OBJ_AUDIT_OPTS .Objects
:Auditing

:DBA_AUDIT_TRAIL .Auditing

:DBA_AUDIT_OBJECT Auditing .Privileges

:DBA_AUDIT_STATMENT Auditing
.SQL

:DBA_AUDIT_SESSION Auditing
.Database

156

MANAGING ROLES
Roles Privileges Role Privileges
. DBA Privileges
Database DBA GRANT
REVOKE Role GRANT REVOKE
. Role System Privileges Object Privileges
Role Schema .Data Dictionary

:CREATING ROLES
Roles :
CREATE ROLE role_name [NOT IDENTIFIED
} | IDENTIFIED { BY password | EXTERNALLY
:

:NOT IDENTIFIED .Role


:IDENTIFIED Role .
:EXTERNALLY Role .

: Role Externally .

:9.8
:Role
;CREATE ROLE newusers
:
;CREATE ROLE newusers2 IDENTIFIED BY n6iut30o
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
Roles .Create
Role .Create

157

:
-1 Role Role Privileges
GRANT Role .Privileges
-2 Role .CREATE ROLE privilege

:PREDEFINED ROLES
Database Roles :

:CONNECT Privileges Role Database


Session Tables, Views, Synonym, Cluster,
.Database Link

:RESOURCE Privileges Role Tables


.Cluster, Sequence, Functions, Procedures, Triggers

:SELECT_CATALOG_ROLE Privileges Role


) Data Dictionary Query Tables .(Views

:DELETE_CATALOG_ROLE Privilege Role


) (DELETE .Data Dictionary

:EXECUTE_CATALOG_ROLE Privilege Role


EXECUTE .Data Dictionary

:EXP_FULL_DATABASE Privilege Role


Export .Database

:EXP_FULL_DATABASE Privilege Role


Import .Database

: Export Import
.Oracle9i
: Data Dictionary Views _ DBA
.SELECT_CATALOG_ROLE

158

:MODIFYING ROLES
Role ALTER ROLE
.9.9
: Role .ALTER ANY ROLE privilege

:9.9
:Role
;ALTER ROLE newusers2 IDENTIFIED EXTERNALLY
:
;ALTER ROLE newusers NOTIDENTIFIED
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Roles Role .
.Authentication
.Apply

:ASSIGNING PRIVILEGES TO ROLES


Role Role Privileges
GRANT Privileges Role TO
Public .9.10

:9.10
Privileges :Roles
;GRANT CREATE ROLE TO adminusers
;GRANT SELECT ON HR.EMPLOYEES TO newusers2

159

:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Roles Role Privileges.
System Privileges Object Privileges
.Privileges
.Apply

:ASSIGNING ROLES TO USERS


Roles GRANT Privileges
Role GRANT Privilege
.9.11

:9.11
Privileges :Roles
;GRANT adminusers TO Omar WITH ADMIN OPTION
;GRANT newusers TO Khaled
Roles.
;GRANT newusers TO newusers2

:
-1 Role WITH ADMIN OPTION
.Role
-2 GRANT ANY ROLE privilege Roles
.
-3 Roles Enable
Intialazation Parameter File MAX_ENABLED_ROLES Default
.20

160

:ASSIGNING DEFAULT ROLES


Role Enable
Roles Default Role Enable
.Database Deafult Role :
ALTER USER user_name DEFAULT ROLE
} { role_name , role_name | ALL [EXCEPT role_name , [role_name] ] | NONE
:

] :ALL [EXCEPT Roles .EXCEPT

: Roles GRANT
Roles .Roles

:9.12
Default Role:
;ALTER USER Ahmad DEFAULT ROLE newusers, newusers2
;ALTER USER Khalid DEFAULT ROLE ALL
;ALTER USER Omar DEFAULT ROLE ALL EXCEPT adminusers
;ALTER USER Ali DEFAULT ROLE NONE
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Users User .
Role Deafult Role
.Default
.Apply

161

:ENABLING AND DISABLING ROLES


Role Enable Disable .SET ROLE
Role Disable Enable
Privileges . SET ROLE Session
Role .Database Role
SET ROLE Defualt Role
Roles Deafult Role Enable .
Role :
SET ROLE
]{ role_name [IDENTIFIED BY PASSWORD] [, role_name .
]| ALL [EXCEPT [role_name, role_name,
} |NONE

:9.13
Role :Enable
;SET ROLE newusers, departA_users

;SET ROLE newusers2 IDENRIFIED BY n6iut30o


Roles Enable :adminusers
;SET ROLE ALL EXCEPT adminusers
Roles :Disable
;SET ROLE NONE

:REMOVING ROLES FROM USERS


Roles Users :
REVOKE role_name , role_name,
;FROM { role_name | PUBLIC} , {role_name | PUBLIC} , ..

:9.14
Role :Users
;REVOKE newusers FROM Khaled
:Console Privileges .Users

162

:DROPPING ROLES
Roles Database Users :
; DROP ROLE role_name
: DROP ANY ROLE privilege Role .Database

:9.15
Role :Database
;DROP ROLE newusers2
:Console

Console .Standalone
Database .
SYSDBA .Normal
+ .Security Manager
+ Roles Role
) Remove Object Remove
(.
.Yes

:QUERYING INFORMATION
:Roles

:DBA_ROLES Roles .Database

:DBA_ROLE_PRIVS Roles
Roles.

:ROLE_ROLE_PRIVS Roles Roles.

:DBA_SYS_PRIVS System Privileges


.Roles

:ROLE_SYS_PRIVS System Privileges .Roles

:ROLE_TAB_PRIVS Object Privileges .Roles

:SESSION_ROLES Enabled Roles .

163

GLOBALIZATION SUPPORT

164

GLOBALIZATION SUPPORT
Globalization Support .
:Globalization Support

.
Database Utilities .
Error Messages .
.
.
.
.
" "Encoding Schemes .Unicode
Client .

:ENCODING SCHEMES
:

:SINGLE-BYTE . ) 7-bit
(US7ASCII ) 8-bit .(WE8DEC

:VARYING-WIDTH
) JEUC .(AL32UTF8

:FIXED-WIDTH ) .(AL16UTF16

:UNICODE
) ( . Unicode
) Varying-Width (UTF-8) Fixed-Width .(UTF-16

:CHOOSING CHARACTER SET


CREATE DATABASE CHARACTER SET
" "Character Set ) Database
.(AL32UTF8 Character set Tables Columns Data
.CHAR, VARCHAR2, LONG, CLOB Default Character Set
.US7ASCII Character Set Database
) Character Set (.
Character set
Character Set
.

165

Character Set " Operating


"System
.
Single-Byte Varying-Width
Single-Byte .
: Fixed-Width .Character Set

:CHOOSING NATIONAL CHARACTER SET


CREATE DATABASE NATIONAL CHARACTER SET
.NCHAR, NVARCHAR2, NCLOB Default
National Character Set .AF16UTF16 National Character
UTF-16 Unicode .UTF-8 National Character Set
Database .
National Character Set
1 Byte 2 Byte ) (
UTF-8 ) Varying-Width 1 (3
UTF-16 Database .Fixed-Width

:USING NLS PARAMETERS


) National Language Support (NLS

) ( .
NLS :

.Initialization Parameter File


) Environment Variables (Registry
.ALTER SESSION

ALTER SESSION Environment


. Variables Initialization Parameter File
ALTER SESSION ALTER SESSION
Initialization Parameter File Environment
.Variables
: ALTER SESSION Environment
.Variables
: Environment Variables .

166

:NLS Parameters
:

:NLS_LANGUAGE
) (AD, BC ) (PM, AM
" "Error Messages
.Sorting

:NLS_TERRITORY
.ISO

.NLS_LANG

NLS_LANGUAGE Default :

:NLS_DATE_LANGUAGE )
.(MON
:NLS_SORT " "Sorting
NLS_SORT =German .

NLS_TERRITORY Default :

:NLS_CURRENCY .
:NLS_ISO_CURRENCY USD .
:NLS_DATE_FORMAT .
:NLS_NUMERIC_CHARACTERS
) .(222.44.5

NLS_TERRITORY Default
NLS_TERRITORY .
NLS_TERRITORY
NLS_TERRITORY Environment Variables
ALTER SESSION
. NLS_CURRENCY ) (
Initialization Parameter File
NLS_TERRITORY ) ( .
:NLS_LANG Parameter
NLS_LANG
.Environment Variables Language Territory Character
Set :
NLS_LANG = Langugae_Territory.Charset

167

:
NLS_LANGUAGE :Language
NLS_LANG NLS_LANGUAGE
.
NLS_TERRITORY :Territory
NLS_LANG NLS_TERRITORY
.
. Character Set :Charset
:NLS and Functions
NLS Parameters " Introduction to SQL"
.10.1 TO_CHAR

:10.1
SELECT TO_CHAR (hire_date, DD.Mon.YYYY,
NLS_DATE_LANGUAGE = GERMAN)
FROM HR.EMPLOYEES

:TO_CHAR
NLS_DATE_LANGUAGE
NLS_NUMERIC_CHARACTERS
NLS_CURRENCY
NLS_ISO_CURRENCY
NLS_CALENDAR

:TO_DATE
NLS_DATE_LANGUAGE
NLS_CALENDAR

:TO_NUMBER
NLS_NUMERIC_CHARACTERS
NLS_CURRENCY
NLS_ISO_CURRENCY

168

:QUERYING INFORMATION
:NLS
Character Set :NLS_DATABASE_PARAMETER
.Database National Character Set

SELECT PARAMETER, VALUE


FROM NLS_DATABASE_PARAMETER
WHERE PARAMETER LIKE %CHARACTERSET%;
NLS :NLS_INSTANCE_PARAMETER
.Initialization Parameter File

NLS :NLS_SESSION_PARAMETER
. Session

:V$NLS_VALID_VALUES
.Language, Territory, Character Set

169

You might also like