database creation

31
Database creation Using a script: Connect internal as sysdba; create database NAME….; Using the OEM GUI Parameters stored in a small DB Access to other utility pgms – eg: RMAN Can accommodate several DBAs Key decisions on sizing Eg: assign a block size – once and for all

Upload: rehan

Post on 12-Jan-2016

41 views

Category:

Documents


0 download

DESCRIPTION

Database creation. Using a script: Connect internal as sysdba; create database NAME….; Using the OEM GUI Parameters stored in a small DB Access to other utility pgms – eg: RMAN Can accommodate several DBAs Key decisions on sizing Eg: assign a block size – once and for all. Block size. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Database creation

Database creation

• Using a script:Connect internal as sysdba;create database NAME….;

• Using the OEM GUI– Parameters stored in a small DB– Access to other utility pgms – eg: RMAN– Can accommodate several DBAs

• Key decisions on sizing– Eg: assign a block size – once and for all

Page 2: Database creation

Block size• Smallest unit of storage in oracle DB• Critical perf. Factor as inefficient space use leads to

increase I/O activity• Block overhead

– Integrity section (90 bytes)– Runtime overhead (136 bytes)– Transactional header (24 bytes and growing)– Directory section (Pointers…)– And then………..data

• Big is beautiful? Percentage of overhead decreases when block size increases, but no right answer here

}Approx. 256 b

Page 3: Database creation

2 K, 4K, 8K or 16K?

• OLTP prefer smaller – small granularity increase likelihood that data is in buffer (indexed access)

• DW or DSS prefer larger – physically close data used together + less movement

• In practice constraint on memory will also dictate• Buffer size + now split in 3 areas:

– KEEP pool– RECYCLE pool– DEFAULT pool

Page 4: Database creation

Block size and row size

• Table with average row length = 2236 b (10m records)

• Block size 4k = 4006 b => one row per block

• 8 k => 3 rows per block

Page 5: Database creation

Opening and closing the DB

Startup open NAME;

Or

Startup mount NAME;

Alter database open;

Shutdown;

Else – use OEM menus

Page 6: Database creation

When DB is started

1. System Global Area (SGA) created:a) Data block buffer cache created

• Size is key for performance of DB

• fraction of whole DB

• DB_BLOCK_BUFFERS / DB_BLOCK_SIZE

• Least Recently Used (LRU) method

• Too small means fight for space between objects => increase in misses => increase in I/O

• Too big = crippling for other operations

page846

Page 7: Database creation

When DB created (2)

b) Shared SQL Pool created:• Stores DD cache: info about data structure

• Stores library cache: info about SQL statements run

• LRU algorithm

• Too small => no re-use and low performance

• SHARED_POOL_SIZE in init.ora

Page 8: Database creation

Parameter files: INIT.ORA

• Initialisation file for each DB

• MYDB = > initmydb.ora

• Contains sizing of SGA and number of parameters, DB name and block size

• Read at startup means changes only implemented at next startup

Page 9: Database creation

The control file

• Each DB also has a control file• Contains Dbname, name and location of

files and redo logs, timestamp of DB creation

• Can be mirrored for added security• Identifies all files that must be opened when

Db is loaded• Also used in DB recovery

Page 10: Database creation

Data hierarchy in Oracle• Data hierarchy in Oracle is specific (and demented!)• Normally, unit of storage is file…

– Managed by OS– Can grow / shrink– Physical sections logically connected by OS

• In Oracle a DB = one or more tablespaces– One or more objects, indexes, clusters…– Fixed size – gets full– Extended by DBA only– One file can support only ONE tablespace

See figure 3.1

Page 11: Database creation

About tablespaces

• Kind of partitioning– Except fixed size

• Extended by dba

– Oracle very strong at TS level

• Optimal seems to be around 2GB• Strategy = isolate aged data into one

tablespace => can be made read-only• Should store similar objects together

Page 12: Database creation

Reasoning behind TS creation

• Business relevance

• Size of objects

• Type of activity

• Volume of activity

• Backup

• Transportability

• Time-based changes in activity

Page 13: Database creation

Reasoning behind TS creation

• Business relevance

• Size of objects

• Type of activity

• Volume of activity

• Backup

• Transportability

• Time-based changes in activity

e.g. modular design / keep data togegther

Object of similar sizes – reuse of space

e.g. index VS table / full scan VS rowID

Low I/O VS high I/O objects

TS is smallest unit for Bcup and restore

Cloning copy is done by TS as well

DW env. Aged archived system better – access time relatedBias towards more rather than less = > compromiseAlso perf reading

P 148

Page 14: Database creation

Create a tablespace• Create tablespace FREDDY datafile

‘path\freddy.dbf’ size 1000K

Default storage (initial 10K next 10K

Minextent 1 maxextents 100

Pctincrease 0)

Permanent;10 10 10 10 10 10 10 10 10

1010 20 30 40 50 60 70 80 90

100

10 10 12 14.4 17.2 20.7 25 30 3642.3

10 20 32 46.4 63.6 84.3 109.3 139.3 175.3218.5

Page 15: Database creation

• Tables = one physical space on disk [segment] – same for any object

• Each segment = space set out in tablespace [initial extent]

• When table grows allocate next extent – set of adjacent blocks

• Until tablespace is full• see figure 20.3

Object creation

Page 16: Database creation

What a segment looks like

• Each segment contains a header block• Space directory for other blocks• Properly sized tables = few extents (low

fragmentation)• Additional extents are never lost until drop

or delete commands are used• Can also adjust pctfree value (to fill a Null

value column)

Page 17: Database creation

Sizing extents

• Try to match the max capacity of your storage device to limit I/O operations

• For single objects, It is beneficial to keep extents of same size (deletion)

• Try to limit the number of extents below 50 (measure of the growth of the object)

• If too many, rebuild object with larger size extents

Page 18: Database creation

Oracle “space allocation”

• DBA allocates space for table after 2 days of hard thinking

• Oracle ignores it blatantly as follows:

Table name initial size next extent oracle sizing next extent

Smalltab 7K 7K 20K 20KMediumtab 103K 103K 120K 120K

Total size after growth smalltab = 40K instead of 14Kmediumtab = 206K instead of 240K

Page 19: Database creation

Creating and using tables

• Table creation with CREATE TABLE statement• Syntax:

Create table NAME (

field1 datatype special constraint

field2 datatype etc…

);• Special constraint: e.g. NOT NULL or PRIMARY

KEY or CHECK

Page 20: Database creation

Constraints

• Candidate key:

Create table fred (

name varchar2(10) NOT NULL

firstname varchar2(10) NOT NULL

age number

Constraint FRED_UQ unique (name, firstname)

);

Page 21: Database creation

Primary KeyCreate table fred (

name varchar2(10)firstname varchar2(10)age numberConstraint FRED_PK Primary Key (name, firstname));

• Same apart: always NOT NULL + can only have one of them in a table

• If only one field just list primary key as special constraint

Page 22: Database creation

Foreign key – aka referential integrity constraint

Create table fred (ID number NOT NULLname varchar2(10) firstname varchar2(10) age numberConstraint FRED_PK Primary Key (ID), foreign key (age) references OTHERTAB(age));

• Use ON DELETE CASCADE to maintain constraint

Page 23: Database creation

Check constraint

Create table fred (

ID number NOT NULL

name varchar2(10)

firstname varchar2(10)

age number CHECK (age between 18 and 65)

);

Page 24: Database creation

Deleting data

• Drop table statement – remove table• Or truncate table statement – empty it

• Warning: neither can be rolled back• Otherwise:Alter table NAME Add (…)Alter table NAME modify (…)

drop column fieldname• See rules on handout

Page 25: Database creation

Now what? Clusters

• To store different tables in physically close areas on disk

• Create a cluster to store both objects• Cluster key is any useful field that links the tables• Can keep name of field or pick new one

– e.g. Create cluster fred (name datatype)

– then assign tables: create table…cluster fred (name)

Page 26: Database creation

What this cluster looks like

12 Cork fred adam French13 Midleton Bob Fitz Irish14 Bally… Brian O’reilly English

Cluster Key

Table 1

Table 2

Page 27: Database creation

Finally…

• Users can have different logical views on a database

• These views are called…..?• They allow for a re-organisation of physical

DB objects for each users• Each ? can contain elements from different

tablespaces• Has limited size allocated to each user

Page 28: Database creation

Summary: storage in Oracle • Keywords: tablespace / datafiles / database objects /

segments / extents• When you create an object:

– Specify size / tablespace info = storage clause– Otherwise: default values

• Pctincrease should be used with care (affects re-usability of reclaimed space – i.e. extents)

• Wise use of tablespace eases admin (like partitioning)– sizing follows sizing of device – e.g. 2GB– Many utilities to work with tablespaces– Isolate processes – e.g. a report running inside a TS– Also for archiving

Page 29: Database creation

Performance issues

• Extent sizing a key• Oracle has 2 ways to read data:

– By rowID – typically thru an index– Full table scan

• In second case, oracle reads several blocks at a time– Set with DB_FILE_MULTIBLOCK_READ_COUNT– Limited only by I/O device buffer capacity– E.g. block = 4K, I/O buffer = 64K => ?????– Extent size should be multiple of 64K

Page 30: Database creation

example

• Table with 10 extents 64 K each• I/O device buffer = 64K => 10 reads• If extent = 640K => ???? Reads• If 8 extents 80K each => ??? Reads

– Reads cannot span extents => 16 reads or an increase of 60% in I/O operations

• Cl: either use extents much larger than buffer or use multiple of buffer size

Page 31: Database creation

And for roll back segments

• Should be kept small enough• Current wisdom is to ensure TS for rollback is

normally 50% free• Not always possible to use only one RB size

– For different types of processes – e.g. TPS

– Use two different TB to isolate activites

– Easier trouble shooting

• Discarded rollback segments go into the log file