Tải bản đầy đủ (.pdf) (10 trang)

Oracle Database Administration for Microsoft SQL Server DBAs part 11 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (130.14 KB, 10 trang )


The flash recovery area is a valuable location for being able to
flashback the database. The sizing of this area may need to change
based on the size of the transactions and database, but it is a
dynamic change that can be made as needed. The key to sizing this
area is to have the disk space available. This will be the area where
the backup files can be stored, and based on retention, should be
estimated appropriately.
You can also remove databases with the DBCA. The Delete a Database
option (see Figure 4-2) takes care of removing the services and datafiles.
CAUTION
Even though the DBCA will ask “Are you sure?”
when you choose to delete a database, without
a backup of the database, the only parts that
can be re-created are the structures.
So what is created with the database? The redo logs and log groups,
SYSTEM tablespace, SYSAUX tablespace, temporary tablespace, undo
tablespace, and control files will be created. The catalog.sql and catproc.sql
construct the data dictionary with the views, tables, and stored procedures.
SYS, SYSTEM, and a couple more users are added as well.
The job scheduler is set up with background processes, because it is the
default setting for parameters to have job slave processes. The parameter
JOB_QUEUE_PROCESSES in Oracle Database 11
g
has a default of 1000,
and the job coordinator starts only as many processes as requested.
82
Oracle Database Administration for Microsoft SQL Server DBAs
Database Templates = model Database?
Are the Oracle templates really like SQL Server’s model database?
The templates are the basic building blocks for the database


creation. They have defaults for the files, parameters, and some basic
configuration. In that respect, they have the same kind of information
that is stored in the model database.
However, only one database is created for an Oracle server; there is
no need for templates to be used over and over again to create the
databases, as the model database is used in SQL Server.
Duplicating Databases
with Templates and Scripts
Oracle template files can be used to duplicate and rebuild databases. You can
use a template you saved to create another database in the same Oracle home
or copy the template file to another server for use. This obviously makes it easy
to duplicate a database without having to go through the setup and configure all
the options. You can reuse previously defined values and make adjustments as
needed. The database can be created easily, similar to using a response file, but
without having to go through all of the steps.
Database scripts provide another way to duplicate or re-create databases.
Using a script is really the manual way to create the database. It has the
advantage that you can take a database script from an older version, make
a couple of modifications if you want to use any new features, and then use
it to create the database in a new Oracle version.
When you use a script, setting up the external operating system and
Oracle environment is more critical than with the DBCA. This is because
nothing is set up to take the defaults. All the environment variables are
empty, and you need to make sure they are set up properly before you
create the database.
For scripts, a parameter file must be available with the parameters set for
control files. This parameter file can be copied from another database and
modified with the new database name and file directories. Also, all of the
directories need to be created before running the script. Otherwise, the
script will fail with the “ORA-27040: file create” error. The following code

shows the command-line steps for manual database creation in a Windows
environment.
set ORACLE_SID=dba01
set ORACLE_HOME=d:\oracle\app\product\11.2
## Create service
ORADIM –NEW –SID dba01 –STARTMODE auto
Instance created.
sqlplus /nolog
sqlplus> connect / as sysdba
Connected to an idle instance
sqlplus> startup nomount
Chapter 4: Database Definitions and Setup
83
pfile='d:\oracle\app\product\11.2.\database\initdba01.ora'
sqlplus> create database dba01;
Database created.
## create tablespace for Temp, users
>sqlplus> create temporary tablespace TEMP1 TEMPFILE
'e:\oracle\oradata\dba01\temp01.dbf'
Tablespace created.
sqlplus> alter database default temporary tablespace TEMP1;
Database altered.
## Run scripts for dictionary views
sqlplus> %ORACLE_HOME%\rdbms\admin\catalog.sql
sqlplus> %ORACLE_HOME%\rdbms\admin\catproc.sql
sqlplus> %ORACLE_HOME%\sqlplus\admin\pupbld.sql
## Create server parameter file
sqlplus> create spfile from pfile;
## Shutdown and startup the database
sqlplus> shutdown immediate;

Database closed.
Database dismounted.
ORACLE instance shut down.
sqlplus> startup
ORACLE instance started.
Total System Global Area 535662592 bytes
Fixed Size 1334380 bytes
Variable Size 234881940 bytes
Database Buffers 293601280 bytes
Redo Buffers 5844992 bytes
Database mounted.
Database opened.
sqlplus>
The creation of the instance starts with the service on the Windows
platform. When logging in to the database and doing a startup nomount,
the background processes actually get started and services are running, so that
the database can be created.
You can use additional scripts to continue the configuration, including to
create other tablespaces, set up the server parameter file, and then build the
dictionary views, synonyms, and PL/SQL packages.
84
Oracle Database Administration for Microsoft SQL Server DBAs
Creating the Listener
A listener is needed on the database server in order for clients to connect to
the database. The listener can be created via another creation assistant: the
Net Configuration Assistant (NETCA), as shown in Figure 4-5.
The listener can retain the default name of LISTENER, or be renamed,
perhaps to indicate the Oracle version or database service that it is listening
for, as shown in the example in Figure 4-6.
Chapter 4: Database Definitions and Setup

85
Shutdown Options
Several options are available for how the database is shut down:

Shutdown
normal
will not allow any new connections, but will
wait until all current connections disconnect from the database.
This is obviously the cleanest shutdown process, but can also
take a long time if users do not disconnect from the database,
and large transactions haven’t completed.

Shutdown
immediate
will not allow any new connections, but
will not wait for users to disconnect. Any active transactions
will be rolled backed. Long, uncommitted transactions still
might take a while to roll back with this option, but there is no
recovery needed on startup.

Shutdown
transactional
will wait for the currently running
transactions to complete. There are no new connections allowed,
and connected users that are inactive are disconnected. Current
transactions are not rolled backed because of shutdown, and
there is no recovery needed on startup.
■ Shutdown
abort
is a last resort. It will bring the database down

fast, but it will abort the current transactions, and uncommitted
transactions are not rolled back before shutting down. A media
recovery on startup will be required to roll back the terminated
transactions and clean up these connections.
86
Oracle Database Administration for Microsoft SQL Server DBAs
FIGURE 4-5.
Creating a listener with the Net Configuration Assistant
FIGURE 4-6.
Naming the listener
One listener can listen for all of the databases on the server, so you do not
need a listener for every database. However, depending on your upgrade
plans or maintenance downtime considerations, it might be useful to have
more than one listener. Each listener will need a different port number.
The listener must be started before connections from other clients can be
made. On Windows, the listener is a service, which can be started and
stopped via the Administration panel. On both Windows and Linux, the
lsnrctl utility can be used to script the startup and shutdown of the listener,
as in the following example.
####TO START####
>lsnrctl start LISTENER
LSNRCTL for 32-bit Windows: Version 11.1.0.6.0 - Production
on 07-FEB-2010 13:49:33
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting tnslsnr: please wait
TNSLSNR for 32-bit Windows: Version 11.1.0.6.0 – Production
System parameter file is
d:\oracle\product\11.1.0\db_1\network\admin\listener.ora
Log messages written to
d:\oracle\tnslsnr\MMTEST\listener\alert\log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=MMTEST.US.demo.com)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=MMTEST.US.demo.com)(PORT=1521)))
STATUS of the LISTENER

Alias LISTENER
Version TNSLSNR for 32-bit Windows:
Version 11.1.0.6.0 – Production
Start Date 07-FEB-2010 13:49:35
Uptime 0 days 0 hr. 0 min. 3 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File
D:\oracle\product\11.1.0\db_1\network\admin\listener.ora
Listener Log File
D:\oracle\tnslsnr\MMTEST\listener\alert\log.xml
Listening Endpoints Summary (DESCRIPTION=(ADDRESS=
(PROTOCOL=tcp)(HOST=MMTEST.US.demo.com)(PORT=1521)))
The listener supports no services
The command completed successfully
Chapter 4: Database Definitions and Setup
87
####CHECK STATUS####
>lsnrctl status listener_name
LSNRCTL for 32-bit Windows: Version 11.1.0.6.0 – Production
on 07-FEB-2010 13:50:00
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)

(HOST=MMTEST.US.demo.com)(PORT=1521)))
STATUS of the LISTENER

Alias LISTENER
Version TNSLSNR for 32-bit Windows:
Version 11.1.0.6.0 – Production
Start Date 07-FEB-2010 13:49:35
Uptime 0 days 0 hr. 0 min. 25 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File
D:\oracle\product\11.1.0\db_1\network\admin\listener.ora
Listener Log File
D:\oracle\tnslsnr\MMTEST\listener\alert\log.xml
Listening Endpoints Summary
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)
(HOST=MMTEST.US.demo.com)(PORT=1521)))
Services Summary
Service "+ASM" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s)
for this service
Service "MMDEV" has 1 instance(s).
Instance "MMDEV", status READY, has 1 handler(s)
for this service
The command completed successfully
####TO STOP####
>lsnrctl stop listener_name
LSNRCTL for 32-bit Windows: Version 11.1.0.6.0 – Production
on 07-FEB-2010 14:13:08

Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=MMTEST.US.demo.com)(PORT=1521)))
The command completed successfully
There is also a client piece for the listener, which we will look at in the
next chapter.
The database is now ready to use, but it might still need some user
tablespaces. User objects should not be in the SYSTEM tablespaces or
88
Oracle Database Administration for Microsoft SQL Server DBAs
owned be the SYSTEM schema. You might develop scripts to add some
regular users, schemas, and tablespaces.
Next, we’ll look at choosing a character set for your Oracle database.
Choosing a Character Set
An important consideration for your Oracle database is the character set it
uses. Before just accepting the default character set, you should do some
research about globalization and the options available, as well as the
application requirements for the character set of the database.
For SQL Server, collations are available at the server level and can be
configured down to the column level of a table. The SQL Server collations
are not only for international characters, but also affect whether the
database is case-sensitive and the sort order.
NLS Parameters
In Oracle, the character set choice is governed by which languages the
database needs to support, and separate parameters deal with sort order and
case sensitivity: NLS_SORT and NLS_COMP. As of Oracle Database 10
g
, the
CI value appended to the NLS_SORT parameter setting will determine if the
sort is case-sensitive. The NLS_SORT default value is BINARY, and with a

case-insensitive sort setting, it is BINARY_CI. Here is a quick sort example
using NLS_SORT, which shows the default behavior:
sqlplus> select first_name, last_name from cust1
order by last_name;
first_name last_name

RANDY EASTWOOD
Laura Eastwood
danimal Johnson
BO MEYERS
henry johnson
sqlplus> select first_name, last_name from cust1
order by nlssort(last_name,'NLS_SORT=BINARY_CI');
first_name last_name

Laura Eastwood
RANDY EASTWOOD
henry johnson
danimal Johnson
BO MEYERS
Chapter 4: Database Definitions and Setup
89
NLS_SORT can also be set at the server or session level, instead of
including it in the sort of the query.
The client and the database can even have different character set settings
based on the NLS_LANGUAGE (NLS_LANG) parameter, which has three
parts: the language, territory, and character set. Here are a few examples:
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1
NLS_LANG=FRENCH_CANADA.WE8ISO8859P1

The NLS (National Language Support) parameters are also modifiable at
a session level, so that the sorting and language can be changed by altering
the session. Here is a quick look at the NLS parameter list:
SQL> select parameter from v$nls_parameters;
PARAMETER

NLS_CALENDAR
NLS_CHARACTERSET
NLS_COMP
NLS_CURRENCY
NLS_DATE_FORMAT
NLS_DATE_LANGUAGE
NLS_DUAL_CURRENCY
NLS_ISO_CURRENCY
NLS_LANGUAGE
NLS_LENGTH_SEMANTICS
NLS_NCHAR_CHARACTERSET
NLS_NCHAR_CONV_EXCP
NLS_NUMERIC_CHARACTERS
NLS_SORT
NLS_TERRITORY
NLS_TIME_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_TIME_TZ_FORMAT
These parameters are useful for globalization and allow you to adjust
sorting and languages. This is similar to collations on columns and
databases with SQL Server. However, the Oracle database is created with
the chosen character set. It is possible to change a database character set,
but it isn’t always an easy process.

90
Oracle Database Administration for Microsoft SQL Server DBAs
If different languages need to be supported in the database, the character
set needs to be able to handle storing and retrieving the characters for the
language. That is also why a Unicode character set, AL32UTF8, is normally
selected for databases that must support international languages. There is
also a national character setting for NCHAR, NVARCHAR2, and NCLOB. This
recommended value is AL16UTF16.
At this point, you might be thinking, “NLS this and that, sorting, case-
sensitive with Unicode character sets—does this all really mean SQL_
Latin1_General_CPI_CI_AS?” An example might make things clearer.
First, to handle international characters and support other client character
sets, such as WE8ISO8859P1, the AL32UTF8 character set is recommended.
Using AL32UTF8, the database will hold multibyte characters. Let’s look at
the type definition of two columns:
last_name varchar2(20 BYTE),
last_name2 varchar2(20 CHAR)
The last_name column will hold international characters, but it will
hold only 20 bytes. So, if any characters are 2 or more bytes, the column
will hold fewer than 20 characters. The last_name2 column will hold
20 characters, no matter how many bytes are involved. The NLS_LENGTH_
SEMANTICS parameter can be set to BYTE or CHAR for the database level,
or the datatypes can be defined on the column level.
For an example for sorting and case sensitivity, consider the following
table, which has some columns for first name, last name, and an updated
date. The character set for the database was created as AL32UTF8, and the
NLS_LANG parameter was set to AMERICAN_AMERICA.UTF8 on the server
side.
SQL> select first_name, last_name, entered_date
from mmalcher.example_sort;

FIRST_NAME LAST_NAME ENTERED_D

LAURA EASTWOOD 02-JAN-10
D'Animal Eastwood 17-JAN-10
Henry Johnson 23-JAN-10
RANDY JOHNSON 28-JAN-10
Bo Meyers 29-JAN-10
SQL> select customer_id,last_name,entered_date
from example_sort where last_name='JOHNSON';
Chapter 4: Database Definitions and Setup
91

×