Oracle - Practical 14
INTRODUCTION TO ORACLE DBA
An Oracle database system can be quite large and serve many users. Therefore, it is often
necessary for one person or a group of people to be responsible for managing the database
system. The database administrator, or DBA, is the manager.
DBA Responsibilities:
1. Installing and upgrading the Oracle Server and application tools.
2. Creating primary database storage structures and primary objects.
3. Allocating system storage and planning future storage requirements for the database
system.
4. Modifying the database structure.
5. Enrolling users
6. Controlling and monitoring user access to the database
7. Backing up and recovering the database
8. Maintaining the system security
9. Monitoring and optimising database performance.
In some database systems there may be several DBAs with different responsibilities. For,
example different DBAs might be responsible for creating users, monitoring users, monitoring
system resources, and maintaining system security.
In contrast with the responsibilities of a DBA, an application developer in a database system
may be responsible for designing and developing database applications, designing database
objects, and tuning applications.
We will cover some of the tasks of a database administrator.
Today we will start with an overview of the Oracle Server architecture – this was covered in
more detail in your Lectures.
Oracle Server architecture :










The System Global Area is a group of the following shared memory constructs
Shared Pool
Database buffer cache
Redo Log Buffer
The background processes asynchronously perform distinct tasks on behalf of all
database users.
Server processes use shared memory to process SQL statements.
User processes run the tool or application and exchange SQL statement processing
with the server process.
An Oracle instance consists of the SGA and background processes.
An Oracle database contains all the datafiles, redo log files and control files.
Redo Log files record all changes made to the database, and are used for data
recovery.
A control file describes the structure of the database and is needed to mount and
open the database.
A parameter file is used to size the SGA and locate the control files when starting up
an Oracle instance.
An alert file of a database is a chronological log of messages and errors.
Page 1
Oracle - Practical 14
Summary
Oracle Instance
PMON
SMON
DBWR
SNPn
Shared Pool
LCKn
RECO
SGA
Database Buffer Cache
Snnn
Dnnn
Pnnn
Redo Log
Buffer
CKPT
LGWR
ARCH
Server
Processes
User
Processes
Oracle Database
Parameter File
Control Files
DataFiles
Redo Log Files
Next we will look at creating an Oracle database.
Considerations before creating a database :
1. Planning for database creation :
 Plan the database tables and indexes and estimate the amount of space they
will require.
 Plan the layout of the underlying operating system files that are to comprise
your database.
 Select the global database name, which is the name and location of the
database within the network structure. Create the global database name by
setting both the DB_NAME and DB_DOMAIN initialization parameters.
 Familiarize yourself with the initialization parameters that comprise the
initialization parameter file.
 Select the standard database block size. This is specified at database
creation by the DB_BLOCK_SIZE initialization parameter and cannot be
changed after the database is created. The DB_BLOCK_SIZE initialization
parameter specifies the standard block size for the database. This block size
is used for the SYSTEM tablespace and by default in other tablespaces.
Typically, DB_BLOCK_SIZE is set to either 4K or 8K. If not specified, the
default data block size is operating system specific, and is generally
adequate.
 Develop a backup and recovery strategy to protect the database from failure.
 Familiarize yourself with the principles and options of starting up and shutting
down an instance and mounting and opening a database.
 Ensure correct Licenses are obtained from Oracle.
Page 2
Oracle - Practical 14
2. Meeting creation prerequisites.
To create a new database, the following prerequisites must be met:
 The desired Oracle software is installed. This includes setting up various
environment variables unique to your operating system and establishing the
directory structure for software and database files.
 You have the operating system privileges associated with a fully operational
database administrator.
 There is sufficient memory available to start the Oracle instance.
 There is sufficient disk storage space for the planned database on the computer
that executes Oracle.
 A user is required to own the Oracle databases and server. This user is normally
called oracle and must be a member of the dba group. Also ensure a home
directory is created for the user oracle.
3. Deciding how to create an Oracle database.
Creating a database includes the following operations:
 Creating information structures, including the data dictionary, that Oracle requires
to access and use the database
 Creating and initializing the control files and redo log files for the database
 Creating new datafiles or erasing data that existed in previous datafiles
You use the CREATE DATABASE statement to perform these operations, but other
actions are necessary before you have an operational database. A few of these
actions are creating users and temporary tablespaces, building views of the data
dictionary tables, and installing Oracle built-in packages. This is why the database
creation process involves executing prepared scripts.
You have the following options for creating your new Oracle database:



Oracle Universal Installer - depending upon the type of install that you select,
this provides a graphical user interface (GUI) that guides you through the
creation of a database.
Create the database manually from a script.
Migrate or upgrade an existing database - If you are using a previous release
of Oracle, database creation is required only if you want an entirely new
database. Otherwise, you can migrate or upgrade your existing Oracle
database managed by a previous version or release of Oracle and use it with
the new version of the Oracle software
Creating a database :
We will look at manually creating an Oracle database.
1. Decide on a unique Oracle system identifier (SID) for your instance and set the
ORACLE_SID environment variable accordingly. This identifier is used to avoid
confusion with other Oracle instances that you may create later and run concurrently
on your system.
The following example sets the SID for the instance and database we are about to
create:
% setenv ORACLE_SID mynewdb
Note : The value of the DB_NAME initialization parameter should match the SID
setting.
Page 3
Oracle - Practical 14
1. The instance (System Global Area and background processes) for any Oracle
database is started using an initialization parameter file. One way of getting started
on your initialization parameter file is to edit a copy of the sample initialization
parameter file that Oracle provides on the distribution media. For ease of operation,
store your initialization parameter file in Oracle's default location, using the default
name.
Default parameter file locations are shown in the following table:
Platform Default Name
Default Location
UNIX
init$ORACLE_SID.ora
For example, the initialization
parameter file for the mynewdb
database is named:
initmynewdb.ora
$ORACLE_HOME/dbs
For example, the initialization parameter file
for the mynewdb database is stored in the
following location:
/oracle/dbs/initmynewdb.ora
NT
init$ORACLE_SID.ora
$ORACLE_HOME\database
The following is the initialization parameter file used to create the mynewdb database.
Sample Initialization Parameter File :
# Cache and I/O
DB_BLOCK_SIZE=4096
DB_CACHE_SIZE=20971520
# Cursors and Library Cache
CURSOR_SHARING=SIMILAR
OPEN_CURSORS=300
# Diagnostics and Statistics
BACKGROUND_DUMP_DEST=/oracle/admin/mynewdb/bdump
CORE_DUMP_DEST=/oracle/admin/mynewdb/cdump
TIMED_STATISTICS=TRUE
USER_DUMP_DEST=/oracle/admin/mynewdb/udump
# Control File Configuration
CONTROL_FILES=("/oracle/oradata/mynewdb/control01.ctl",
"/oracle/oradata/mynewdb/control02.ctl",
"/oracle/oradata/mynewdb/control03.ctl")
# Archive
LOG_ARCHIVE_DEST_1='LOCATION=/oracle/oradata/mynewdb/archive'
LOG_ARCHIVE_FORMAT=%t_%s.dbf
LOG_ARCHIVE_START=TRUE
# Miscellaneous
COMPATIBLE=9.0.0
DB_NAME=mynewdb
# Pools
JAVA_POOL_SIZE=31457280
LARGE_POOL_SIZE=1048576
SHARED_POOL_SIZE=52428800
# Processes and Sessions
PROCESSES=150
Page 4
Oracle - Practical 14
# Sort, Hash Joins, Bitmap Indexes
SORT_AREA_SIZE=524288
1. Connect to the Instance :
Start Server Manager and connect to your Oracle instance AS SYSDBA.
SVRMGR> CONNECT SYS/password AS SYSDBA
2. Start the instance :
Start an instance without mounting a database. Typically, you do this only during
database creation. Use the STARTUP command with the NOMOUNT option.
STARTUP NOMOUNT
Note : SGA is allocated and the background processes will be started at this point.
3. Issue the create database statement :
To create the new database, use the CREATE DATABASE statement. When you
execute a CREATE DATABASE statement, Oracle performs the following operations.
Other operations are performed depending upon the clauses that you specify in the
CREATE DATABASE statement or initialization parameters that you have set.
 Creates the datafiles for the database
 Creates the control files for the database
 Creates the redo log files for the database and establishes the
ARCHIVELOG mode
 Creates the SYSTEM tablespace and the SYSTEM rollback segment
 Creates the data dictionary
 Sets the character set that stores data in the database
 Sets the database time zone
 Mounts and opens the database for use
The following statement creates database mynewdb:
CREATE DATABASE mynewdb
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE '/oracle/oradata/mynewdb/system01.dbf' SIZE 325M
DEFAULT TEMPORARY TABLESPACE temp
CHARACTER SET WE8ISO8859P1
LOGFILE GROUP 1 ('/oracle/oradata/mynewdb/redo01.log') SIZE 100M,
GROUP 2 ('/oracle/oradata/mynewdb/redo02.log') SIZE 100M,
GROUP 3 ('/oracle/oradata/mynewdb/redo03.log') SIZE 100M;
The database is created with the following characteristics:
 The database is named mynewdb
 Three control files are created as specified by the CONTROL_FILES
initialization parameter
 MAXINSTANCES specified that only one instance can have this database
mounted and open.
 MAXDATAFILES specifies the maximum number of datafiles that can be
open in the database
 The SYSTEM tablespace, consisting of the operating system file
/oracle/oradata/mynewdb/system01.dbf is created as specified by the
DATAFILE clause. If the file already exists, it is overwritten.
 The DEFAULT_TEMPORARY_TABLESPACE clause creates and names a
default temporary tablespace for this database.
Page 5
Oracle - Practical 14

The 8-bit WE8ISO8859P1 character set is used to store data in this
database.

The new database has three online redo log files as specified in the
LOGFILE
clause.
MAXLOGHISTORY,
MAXLOGFILES,
and
MAXLOGMEMBERS define limits for the redo log.
Because the ARCHIVELOG clause is not specified in this CREATE
DATABASE statement, redo log files will not initially be archived. This is
customary during database creation and an ALTER DATABASE statement
can be used later to switch to ARCHIVELOG mode. The initialization
parameters in the initialization parameter file for mynewdb affecting archiving
are
LOG_ARCHIVE_DEST_1,
LOG_ARCHIVE_FORMAT,
and
LOG_ARCHIVE_START.
The default database time zone is the same as the operating system's time
zone. You can set the database's default time zone by specifying the SET
TIME_ZONE clause of the CREATE DATABASE statement.


4. Create additional tablespaces :
To make the database functional, you need to create additional files and tablespaces
for users. The following sample script creates some additional tablespaces:
CONNECT SYS/password AS SYSDBA
-- create a user tablespace to be assigned as the default tablespace for users
CREATE TABLESPACE users
DATAFILE '/oracle/oradata/mynewdb/users01.dbf' SIZE 25M;
-- create a tablespace for tables needed by the Oracle Server Tools
CREATE TABLESPACE tools
DATAFILE '/oracle/oradata/mynewdb/tools01.dbf' SIZE 25M;
-- create a tablespace for indexes, separate from user tablespace
CREATE TABLESPACE indx
DATAFILE '/oracle/oradata/mynewdb/indx01.dbf' SIZE 25M;
-- create a tablespace for rollback.
CREATE TABLESPACE rollback
DATAFILE '/oracle/oradata/mynewdb/rollback01.dbf' SIZE 25M;
CREATE ROLLBACK SEGMENT r1 TABLESPACE rollback STORAGE 5M ;
ALTER rollback segment r1 ONLINE;
EXIT
5. Next run scripts to build data dictionary views :
Run the scripts necessary to build views, synonyms, and PL/SQL packages:
CONNECT SYS/password AS SYSDBA
@/oracle/rdbms/admin/catalog.sql;
@/oracle/rdbms/admin/catproc.sql;
EXIT;
Page 6
Oracle - Practical 14
The following table contains descriptions of the scripts:
Script
Description
CATALOG.SQL
Creates the views of the data dictionary tables, the dynamic performance
views, and public synonyms for many of the views. Grants PUBLIC access
to the synonyms.
CATPROC.SQL Runs all scripts required for or used with PL/SQL.
6. Run scripts to install Additional Options (optional) :
If you plan to install other Oracle products to work with this database, see the
installation instructions for those products. Some products require you to create
additional data dictionary tables. Usually, command files are provided to create and
load these tables into the database's data dictionary.
7. Backup the database :
You should make a full backup of the database to ensure that you have a complete
set of files from which to recover if a media failure occurs.
Starting the database :
When starting the database you must choose the state you want to start your database at.
Startup states:
NOMOUNT
Is used to create the database
MOUNT
Is used to alter file structure and modify control file flags.
OPEN
Makes the database available to all users.



If STARTUP NOMOUNT is issued, the instance will be started – creates the SGA
and starts the background processes, but does not allow access to the database.
If STARTUP MOUNT is issued, the instance will be started and the control file will
be opened. The control files are read to obtain the names and status of the data
files and redo log files. The database can be mounted but not opened to alter the
existing file structure e.g. renaming log or datafiles or starting recovery.
To open the database from STARTUP MOUNT, use the ALTER DATABASE
OPEN command to make it available to all users.
Example:
$ svrmgrl
Oracle Server Manager Release 2.3.3.0.0 - Production
Copyright (c) Oracle Corporation 2000, 2001. All rights reserved.
Oracle7 Server Release 8.1.6.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production
SVRMGR> connect / as sysdba;
Connected.
SVRMGR> startup;
ORACLE instance started.
Page 7
Oracle - Practical 14
Total System Global Area
4313316 bytes
Fixed Size
41876 bytes
Variable Size
4140368 bytes
Database Buffers
122880 bytes
Redo Buffers
8192 bytes
Database mounted.
Database opened.
SVRMGR> exit;
Server Manager complete.
Shutting down the database :
Close the database and shut down the instance to make the database unavailable to all
users. This is usually done to make operating system offline backups of all physical
structures, and to modify the initialisation parameters.
Note: When shutting down the server without shutting down the Oracle database first there is
a high risk of corrupting the database.
Syntax :
SHUTDOWN



NORMAL
IMMEDIATE
ABORT
Normal – waits for all currently connected users to terminate their sessions normally.
No new connections are allowed. Normal is the default mode.
Immediate - terminates currently executing SQL statements and rolls back
uncommitted transactions. The Oracle Server does not wait for currently connected
users to disconnect from the database. This closes and dismounts the database and
shuts down the instance cleanly.
Abort – does not wait for calls to complete or users to disconnect. It does not roll back
uncommitted transactions. It does not close or dismount the database, but does
shutdown the instance.
Example :
$ svrmgrl
Oracle Server Manager Release 2.3.3.0.0 - Production
Copyright (c) Oracle Corporation 2000, 2001. All rights reserved.
Oracle7 Server Release 8.1.6.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production
SVRMGR> connect / as sysdba;
Connected.
SVRMGR> shutdown;
Database closed.
Database dismounted.
ORACLE instance shut down.
SVRMGR> exit;
Server Manager complete.
Page 8
Oracle - Practical 14
Altering and Creating Users :
The database, as created, has two special users which are automatically created with default
passwords. These are:
Username
SYSTEM
SYS
These users are typically used to hold the standard data dictionary information for the
database. It is a good idea to change the passwords from the defaults as soon as possible.
This can be achieved by:
alter user system identified by <newpassword>;
alter user sys identified by <newpassword>;
Refer to previous practicals on creating roles and new users.
Data Dictionary Views :




Identify all the rollback segments and their status:
SELECT
segment_name, status
FROM
dba_rollback_segs;
Display information about tablespace definitions:
COL TABLESPACE_NAME FORMAT A10
SELECT
tablespace_name, initial_extent,next_extent,status,contents
FROM
dba_tablespaces;
Display the names of the data files belonging to the database
COL file_name FORMAT A10
SELECT
*
FROM
dba_data_files;
Display information about unused space in the database
SELECT
*
FROM
dba_free_space;
Page 9