1. Trang chủ
  2. » Công Nghệ Thông Tin

OCA /OCP Oracle Database 11g A ll-in-One Exam Guide- P20 potx

10 298 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 572 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Note that the status command always tells you the address on which the listener accepts connection requests, the name and location of the listener.ora file that defines the listener, and

Trang 1

user interface For all the commands, you must specify the name of the listener, if it is not the default name of LISTENER Figures 4-6 and 4-7 show how to check the status

of a listener and to stop and start it, issuing the commands either from the operating system prompt or from within the user interface

Note that the status command always tells you the address on which the listener accepts connection requests, the name and location of the listener.ora file that defines the listener, and the name and location of the log file for the listener Also, in the examples shown in the figures, the listener LIST2 “supports no services.” This is because there are no services statically registered in the listener.ora file for that listener, and no instances have dynamically registered either Figure 4-8 uses the services command to show the state of the listener after an instance has registered dynamically

Figure 4-6 Using lsnrctl commands from the operating system prompt to check the status and

then start the listener LIST2

Trang 2

Figure 4-7 Using the lsnrctl user interface to check the status and then stop the listener LIST2

Figure 4-8

The services

command shows the

services for which

the listener will

accept connections.

Trang 3

In Figure 4-8, the output of the status command tells you that the listener called LISTENER supports three services, all available on the instance orcl11g:

• Service orcl11g.jwlnx1.bplc.co.za is the regular database service The listener can launch dedicated server sessions against it (it hasn’t launched any yet)

• Service orcl11gXDB.jwlnx1.bplc.co.za is the XML database protocol server This lets users connect to the database with protocols other than Oracle NET, such FTP and HTTP

• Service orcl11g_XPT.jwlnx1.bplc.co.za has to do with Dataguard

By default, an 11g database instance will register the XDP and XPT services, but

they cannot be used without considerable further configuration The fact that the services are shown to be “status ready” indicates that they were automatically

registered by the PMON process: the listener knows they are ready because PMON said they were If the services has been statically registered, they would be marked as

“status unknown,” indicating that while they are in the listener.ora file, they may not in fact be working

To see all the lsnrctl commands, use the HELP command:

C:\>lsnrctl help

LSNRCTL for 32-bit Windows: Version 11.1.0.4.0 - Beta

on 26-NOV-2007 17:47:16

Copyright (c) 1991, 2006, Oracle All rights reserved.

The following operations are available

An asterisk (*) denotes a modifier or extended command:

start stop status

services version reload

save_config trace change_password

quit exit set*

show*

In summary, these commands are

• START Start a listener.

• STOP Stop a listener.

• STATUS See the status of a listener.

• SERVICES See the services a listener is offering (fuller information than STATUS).

• VERSION Show the version of a listener.

• RELOAD Force a listener to reread its entry in listener.ora.

• SAVE_CONFIG Write any changes made online to the listener.ora file.

• TRACE Enable tracing of a listener’s activity.

• CHANGE_PASSWORD Set a password for a listener’s administration.

• QUIT Exit from the tool without saving changes to the listener.ora file.

• EXIT Exit from the tool and save changes to the listener.ora file.

• SET Set various options, such as tracing and timeouts.

• SHOW Show options that have been set for a listener.

Trang 4

Note that all these commands should be qualified with the name of the listener to

which the command should be applied If a name is not supplied, the command will

be executed against the listener called LISTENER

Configuring Service Aliases

Having decided what name resolution method to use, your next task is to configure

the clients to use it You can do this through Database Control, but since Database

Control is a server-side process, you can use it only to configure clients running on

the database server An alternative is to use the Net Manager This is a stand-alone

Java utility, shipped with all the Oracle client-side products

To launch the Net Manager, run netmgr from a Unix prompt, or on Windows

you will find it on the Start menu

The Net Manager navigation tree has three branches The Profile branch is used to

set options that may apply to both the client and server sides of Oracle Net and can

be used to influence the behavior of all Oracle Net connections This is where, for

example, you can configure detailed tracing of Oracle Net sessions The Service Naming

branch is used to configure client-side name resolution, and the Listeners branch is

used to configure database listeners

When you select the Profile branch as shown in Figure 4-9, you are in fact

configuring a file called sqlnet.ora This file exists by default in your ORACLE_

HOME/network/admin directory It is optional, as there are defaults for every

sqlnet.ora directive, but you will usually configure it if only to select the name

resolution method

Figure 4-9 Net Manager’s Profile editor

Trang 5

In the Profile branch, you will see all the available naming methods, with three (TNSNAMES and EZCONNECT and HOSTNAME) selected by default: these are Local Naming and Easy Connect and Host Naming The external methods are NIS and CDS LDAP is Directory Naming Host Naming is similar to Easy Connect and retained for backward compatibility

Then you need to configure the individual Oracle Net service aliases This is done in the Service Naming branch, which in fact creates or edits the Local Naming tnsnames.ora file that resides by default in your ORACLE_HOME/network/admin directory If you are fortunate enough to be using Directory Naming, you do not need

to do this; choosing LDAP in the Profile as your naming method is enough

A typical entry in the tnsnames.ora file would be

OCP11G =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = jwacer.bplc.co.za)(PORT = 1521)) )

(CONNECT_DATA =

(SERVICE_NAME = ocp11g)

)

)

If a user enters the connect string “ocp11g”, this entry will resolve the name to a listener running on the address jwlnx1.bplc.co.za monitoring port 1521, and ask the listener for a session against an instance offering the service ocp11g To connect with this, use

sqlplus system/oracle@ocp11g

The equivalent with Easy Connect would be

sqlplus system/manager@jwacer.bplc.co.za:1521/ocp11g

To test a connect string, use the TNSPING utility This will accept a connect string, locate the Oracle Net files, resolve the string, and send a message to the listener If the listener is running and does know about the service requested, the test will return successfully For example,

C:\> tnsping ocp11g

TNS Ping Utility for 32-bit Windows: Version 11.1.0.4.0 - Beta

on 27-NOV-2007 11

:49:55

Copyright (c) 1997, 2006, Oracle All rights reserved.

Used parameter files:

D:\oracle\app\product\11.1.0\db_3\network\admin\sqlnet.ora

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION =

(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)

(HOST = 127.0.0.1)(PORT = 2521))) (CONNECT_DATA = (SERVICE_NAME = ocp11g)))

OK (40 msec)

Trang 6

Note that the output of TNSPING shows the sqlnet.ora file used, the name

resolution method used, and then the details of the address contacted The tool does not

go further than the listener; it will not check whether the instance is actually working

Filenames and the TNSADMIN Environment Variable

There are three critical files involved in configuring Oracle Net:

• The listener.ora file is a server-side file that defines database listeners

It includes the protocols, addresses, and ports on which they will listen for

incoming connection requests, and (optionally) a hard-coded list of instances

against which they will launch sessions

• The tnsnames.ora file is a client-side file used for name resolution It is

used by user processes to locate database listeners It may also be used by the

instance itself, to locate a listener with which to register

• The sqlnet.ora file is optional and may exist (possibly with different

settings) on the server side, the client side, or both It contains settings that

apply to all connections and listeners, such as security rules and encryption

The three Oracle Net files by default exist in the directory ORACLE_HOME/network/

admin It is possible to relocate them with an environment variable: TNS_ADMIN

An important use of this is on systems that have several Oracle Homes This is a very

common situation A typical Oracle server machine will have at least three homes:

one for the Enterprise Manager Grid Control Agent, one for launching database

instances, and one for launching Automatic Storage Management (ASM) instances

(ASM is covered in the second OCP examination.) Client machines may well have

several Oracle Homes as well, perhaps one each for the 10g and11g clients Setting the

TNS_ADMIN variable to point to one set of files in one of the Oracle home directories

(or indeed in a different directory altogether) means that instead of having to maintain

multiple sets of files, you need maintain only one set To set the variable, on Windows

you can use the SET command to set it for one session,

set TNS_ADMIN=c:\oracle\net

though it will usually be better to set it in the registry, as a string value key in the

Oracle Home branch On Linux and Unix, the syntax will vary depending on the

shell, but something like this will usually do:

set TNS_ADMIN=/u01/oracle/net; export TNS_ADMIN

This command could be placed in each user’s profile file, or in the /etc/

profile where every user will pick it up

Figure 4-10 traces the flow of logic utilized to resolve a typical client connection

request

Trang 7

Figure 4-10 Typical resolution logic for client connection request

Trang 8

A user typically initiates a connection to the database server by providing a

username, a password, and a connect string If a connect string is absent, the Oracle

Net client layer tries to use the ORACLE_SID environment variable or registry variable

as a default connect string value If this is not set, an error usually results If a connect

string is available, the Oracle Net client then tries to figure out what mechanism to

utilize to resolve the connect string and it does this by trying to locate the relevant

sqlnet.ora file, either in the directory specified by the TNS_ADMIN variable or

in the ORACLE_HOME/network/admin directory If neither the TNS_ADMIN nor

ORACLE_HOME variable is set, an error is returned

Typically, sqlnet.ora contains a NAMES.DIRECTORY_PATH directive, which

lists, in order of preference, the different connection name resolution mechanisms,

like TNSNAMES, LDAP, and EZCONNECT If TNSNAMES is listed as the first preferred

mechanism, Oracle Net then tries to locate the infamous tnsnames.ora file either

in the directory specified by the TNS_ADMIN variable or in the ORACLE_HOME/

network/admin directory The tnsnames.ora file is then used to obtain the

network address of the connection string, typically yielding a hostname:port:sid

or hostname:port:servicename triad

The Oracle Net client is finally in a position to bind the user process that initiated

the connection to the database server If the connection string contained the “@”

symbol, then the listener on the hostname is contacted on the relevant port, for access

to the specified instance or service If the listener is functioning correctly, the user

process tries to negotiate a server connection, or else an error is returned If the

connection string does not contain the “@” symbol, a local IPC connection is

attempted If the instance or service is available on the same server as the client

user process, then the connection may be successfully made

Database Links

So far, Oracle Net has been discussed in the context of users connecting to database

instances Oracle Net can also be used for communications between databases: a user

session against one database can execute SQL statements against another database

This is done through a database link There are several options for creating database

links (all to do with security), but a simple example is

create database link prodstore

connect to store identified by admin123 using 'prod';

This defines a database link from the current database to a remote database

identified by the connect string PROD The link exists in and can only be used by

the current user’s schema When a statement such as

select * from orders@prodstore;

is issued, the user’s session will launch a session against the remote database, log on

to it transparently as user STORE, and run the query there The results will be sent

back to the local database and then returned to the user

Trang 9

Any SQL statements can be executed through a link, provided that the schema

to which the link connects has appropriate permissions For example, consider this scenario:

There is a production database, identified by the connect string PROD, which contains a schema STORE, with two tables: ORDERS and PRODUCTS There is a link

to this database as just defined There is also a development database, identified by the connect string DEV, which also contains the schema STORE You are connected to a third database called TEST You need to update the development schema with the production data

First, define a database link to the development database:

create database link devstore

connect to store identified by devpasswd using 'dev';

Then update the development schema to match the production schema:

truncate table orders@devstore;

truncate table customers@devstore;

insert into orders@devstore select * from orders@prodstore;

insert into customers@devstore select * from customers@prodstore;

commit;

To check whether any rows have been inserted in the production system since the last refresh of development and, if so, insert them into development, you could run this statement:

insert into orders@devstore

(select * from orders@prodstore minus select * from orders@devstore);

If it were necessary to change the name of a customer, you could do it in both databases concurrently with

update customers@prodstore set customer_name='Coda' where customer_id=10; update customers@devstore customer_name='Coda' where customer_id=10;

commit;

When necessary, Oracle will always implement a two-phase commit to ensure that

a distributed transaction (which is a transaction that affects rows in more than one

database) is treated as an atomic transaction: the changes must succeed in all databases

or be rolled back in all databases Read consistency is also maintained across the whole environment

Exercise 4-1: Configure Oracle Net In this exercise, you will set up a

complete Oracle Net environment, using graphical and command-line tools

Differences between Windows and Linux will be pointed out

1 Create a directory to be used for the Oracle Net configuration files, and set the TNS_ADMIN variable to point to this It doesn’t matter where the directory is,

as long as the Oracle user has permission to create, read, and write it

On Linux:

mkdir /u01/oracle/net

Trang 10

Ensure that all work from now is done from a session where the variable has

been set

On Windows:

mkdir d:\oracle\net

Create and set the key TNS_ADMIN as a string variable in the registry in the

Oracle Home branch This will typically be

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1

2 Check that the variable is being read by using the TNSPING command from

an operating system prompt:

tnsping orcl

This will return an error “TNS-03505: Failed to resolve name” because there

are no files in the TNS_ADMIN directory On Windows, you may need to

launch a new command prompt to pick up the new TNS_ADMIN value from

the registry

3 Start the Net Manager On Linux, run netmgr from an operating system

prompt; on Windows, launch it from the Start menu The top line of the Net

Manager window will show the location of the Oracle Net files If this is not

the new directory, then the TNS_ADMIN variable has not been set correctly

4 Create a new listener: expand the Local branch of the navigation tree,

highlight Listeners, and click the + icon

5 Enter a listener name, NEWLIST, and click OK.

6 Click Add Address

7 For Address 1, choose TCP/IP as the protocol and enter 127.0.0.1 as the host,

2521 as the port The illustration that follows shows the result.

Ngày đăng: 06/07/2014, 13:20

TỪ KHÓA LIÊN QUAN