CHAPTER 2 Implementing a Database. Introduction to Creating Databases After you’ve installed the...
-
Upload
wesley-thomas -
Category
Documents
-
view
216 -
download
3
Transcript of CHAPTER 2 Implementing a Database. Introduction to Creating Databases After you’ve installed the...
Introduction to Creating Databases• After you’ve installed the Oracle software, the next logical
step is to create a database.• DBAs must know how to configure required operating
system variables, directories, and the initialization file before creating the database.
• As part of creating the database the data dictionary must be instantiated.
• After the database is created it needs to be made available for remote Oracle Net connections by configuring and starting a listener.
Creating a Database
1. Set the operating system variables
2. Configure the initialization file
3. Create required directories
4. Create the database
5. Create the data dictionary
6. Run pupbld.sql as SYSTEM
Initialization File versus Spfile• Spfile is required by some Oracle products• Spfile is modifiable via ALTER SYSTEM• Spfile on server will be used by remote clients for
operations such as starting up the database
• Initialization text file can be edited directly with an OS editor (like vi)
• Comments can be placed in a text file
Configure Initialization File
ORACLE_HOME/dbs/init<SID>.ora
db_name
db_block_size
memory_target
control_files
undo_management
undo_tablespace
Security Related Initialization Parameters
sql92_security=TRUE
os_authent_prefix='‘
global_names=TRUE
audit_sys_operations=TRUE
audit_trail='DB'
Create Required Directories• Follow standards (OFA or standards for your environment)• Directories to contain: datafiles, control files, online redo
log files• 10g and lower requires creation of directories that
background processes can write to
Crafting a CREATE DATABASE statementCREATE DATABASE O11R2
maxlogfiles 16
maxlogmembers 4
maxdatafiles 1024
maxinstances 1
maxloghistory 680
character set "UTF8"
DATAFILE '/ora01/dbfile/O11R2/system01.dbf'
SIZE 500m
EXTENT MANAGEMENT LOCAL
UNDO TABLESPACE undotbs1 DATAFILE '/ora02/dbfile/O11R2/undotbs01.dbf'
SIZE 800m
SYSAUX DATAFILE '/ora03/dbfile/O11R2/sysaux01.dbf'
SIZE 200m
DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/ora03/dbfile/O11R2/temp01.dbf'
SIZE 800m
DEFAULT TABLESPACE users DATAFILE '/ora02/dbfile/O11R2/users01.dbf'
SIZE 20m
LOGFILE GROUP 1
('/ora02/oraredo/O11R2/redo01a.rdo',
'/ora03/oraredo/O11R2/redo01b.rdo') SIZE 100m,
GROUP 2
('/ora02/oraredo/O11R2/redo02a.rdo',
'/ora03/oraredo/O11R2/redo02b.rdo' ) SIZE 100m,
GROUP 3
('/ora02/oraredo/O11R2/redo03a.rdo',
'/ora03/oraredo/O11R2/redo03b.rdo' ) SIZE 100m
USER sys IDENTIFIED BY secretfoo
USER system IDENTIFIED BY secretfoobar;
SYS versus SYSTEM• SYS is like superuser• SYS owns all data dictionary objects• SYS has all privileges (start/stop database)
• SYSTEM is a database account that has the DBA role granted to it
• Some shops lock the SYSTEM account and don’t use it (because it’s usually the first account a hacker will try to access)
Create the Database
1. Create CREATE DATABASE statement
2. Connect as SYS and startup nomount
3. Run CREATE DATABASE statement
4. Create the data dictionary (must be done as SYS)
5. Run the pupbld.sql script as SYSTEM
Creating the Data Dictionary
SQL> connect / as sysdba
SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql
• What does the “?” translate to in the prior statements?• What do these scripts actually create?• Why do you need to be connected as SYS when creating
the data dictionary
Creating a Listener• Listener required for connections from remote clients• ORACLE_HOME/network/admin default location for
Oracle Net files• Consider setting a variable like TNS_ADMIN that points to
default location for Oracle Net files• lnsrctl utility
Listener Security ConsiderationsPASSWORDS_INVPRD=f00bar
#
ADMIN_RESTRICTIONS_INVPRD=ON
#
LOG_FILE_INVPRD=invlistener.log
LOG_DIRECTORY_INVPRD=/orahome/app/oracle/product/11.2.0.2/db_1/network/log
#
TRACE_FILE_INVPRD=invlistener.trc
TRACE_DIRECTORY_INVPRD=/orahome/app/oracle/product/11.2.0.2/db_1/network/trace
#
LOG_STATUS=ON
#
INBOUND_CONNECT_TIMEOUT_INVPRD2=60
Named ListenerINVPRD =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 131.147.127.152)(PORT = 1528))))
SID_LIST_INVPRD =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = INVPRD)
(ORACLE_HOME = /orahome/app/oracle/product/11.2.0.2/db_1)
(SID_NAME = INVPRD)))
Operating System Authentication• OS group of dba and oper assigned when installing the
Oracle software• Any OS user belonging to dba group can connect to the
database without a password
$ sqlplus / as sysdba
SQL> show user;
USER is “SYS”
SYSDBA vs. SYSOPER• SYSDBA contains all privileges• SYSOPER can start/stop, alter, toggle archivelog mode
and recover the database
Starting a Database• Nomount: background processes and memory allocated,
only file accessed at this point is the initialization file• Mount: Control files opened. Datafiles and online redo
logs not opened.• Open: Datafiles and online redo logs opened
sqlplus / as sysdba
SQL> startup;
Stopping a Database
sqlplus / as sysdba
SQL> shutdown immediate;
• NORMAL• TRANSACTIONAL• TRANSACTIONAL LOCAL• IMMEDIATE• ABORT
Database vs. Instance• Database consists of datafiles, controlfiles, and online
redo log files• Instance consists of background processes and memory
structures.
Using Database Configuration Assistant
• Good way to consistently create databases (when used with a response file)
• dbca utility
Dropping a Database• Be very careful• Permanently drops datafiles, control files and online redo
logs• You are not prompted• There is no undrop database command
How many Oracle Homes on one Database Server• One set of Oracle binaries for each database?• One set of Oracle binaries for all databases?• Different versions of Oracle binaries• Security considerations?• Hardware resource considerations?
One Database or Many Databases on One Server• One database per each application• Shared database with different users and tablespaces for
each application• Security considerations?• Hardware resource considerations?