everythingOracle.bizhat.com

 

'Everything you wanted
to know about Oracle'

Training References Syntax Tell A Friend Contact Us

 

 

DBA Fundamentals

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
<< Previous

Chapter # 53

Next >>


 

Client Side Configuration

 

The following are the various naming methods supported by Oracle Net.

1- Host Naming Method

2- Local Naming Method

3- Directory Naming Method

4- Oracle Names Method

Host Naming Method

When you using the Host Naming method, a client must specify a username, password, and a connect string. The connect string either should be the hostname or its IP address. The database listener on the server must listen to the port number 1521. This will not work if you change the port number.

Now, the SQL NET on the client machine looks for the host in the network, and will attempt to connect to the server�s listener by assuming that there is a listener on port 1521.

Now the listener hears the request, and pass the request to either a dispatcher or dedicated server depending on its configuration.

Notice that your global database name must be the same as your machine name (hostname) or alias name. This is an easiest Oracle Network Configuration that you can have. The problem you have is that you cannot have more than one database in your machine, you can�t change your machine name or your instance name, and your port must be 1521.

The following is an example of how you can use naming resolution in your machine by using /etc/hosts file on the Unix platform:

#IP address of server host name alias

#----------------------- ------------ ---------

256.32.156.72 supper-pc mycomputer

 

The following is an example of parameters that you should set in your listener configuration file (listener.ora).

LISTENER4MYHOSTMETHOD=

(DESCRIPTION=

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp) (HOST=mycomupter) (PORT=1521))

(ADDRESS=(PROTOCOL=ipc) (KEY=extproc))

)

)

SID_LIST_LISTENER4MYHOSTMETHOD=

(SID_LIST=

(SID_DESC=

(GLOBAL_DBNAME=mydbs.company)

(ORACLE_HOME=/u01/app/oracle/product/9.2.0)

(PROGRAM=extproc)

(SID_NAME=mydbs)

)

)

Local Naming Method

When you using the Local Naming method, the same as the Host Naming method, a client must specify a username, password, and a connect string. The connect string must be your Service Name. The Service Name is an entry that was defined in the TNSNAMES.ORA file. The TNS stand for Transparent Network Substrate. In contrast to the Host Naming Method, the Local Naming Method can use any port number as long as it has not been used. The Oracle default port number is 1521 or 1526.

In the Service Name entry in the TNSNAMES.ORA file, you should define the hostname or the IP address of the database server. You use the hostname if the name was define in DNS directory or the /etc/hosts file.

For each address (ADDRESS=) you may use a different protocol type such as TCP, NMP, IPC, SPX and etc. If you use TCP, you should specify the host name (or an IP address) and the port number to be used. If you use NMP (Named Pipes) for a network using Novel, you should specify your Machine Name and the Pipe Name. If you use IPC (Interprocess Communication), you should specific the library name that will be accessed on the same node. The IPC protocol will be used only when client and server run on the same machine or node. If you use SPX, the IPX/SPX Microsoft protocol, you should specify a service name. For other protocol, you may have to specify the relevant information for establishing the Oracle connectivity.

Now, the SQL NET on the client machine by using the service name, it looks for the host in the network, and will attempt to connect to the server�s listener by using a specified port number in the listener.

Now the listener hears the request, and pass the request to either a dispatcher or dedicated server depending on its configuration.

In the Service Name entry, you must define your database instance name (SID) with its Home Oracle ($ORACLE_HOME) address path.

This method not only uses the tnsnames.ora file but also the SQLNET.ORA file. You may use the SQLNET.ORA file to identify client preferences such as the database domain, directory path, security, and firewall. These two files are located in the $ORACLE_HOME/network/admin directory.

The following shows what the TNSNAMES file typically looks like:

mydbs=

(DESCRIPTION =

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=106.36.197.51)(PORT=1526)

)

)

(CONNECT_DATA=(SID=mydbs)

(ORACLE_HOME=/u01/app/oracle/product/9.2.0)(SERVER=DEDICATED))

----------------OR------------------

mydbs=

(DESCRIPTION =

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=106.36.197.51)(PORT=1526)

)

)

(CONNECT_DATA=

(SERVICE_NAME=mydbs))

The following shows what the SQLNET.ORA file typically looks like:

AUTOMATIC_IPC = OFF

TRACE_LEVEL_CLIENT = OFF

NAMES.DIRECTORY_PATH = (TNSNAMES)

NAMES.DEFAULT_DOMAIN = world

NAME.DEFAULT_ZONE = world

NAMES.DEFAULT_DOMAIN = world

Later in this book, you will learn how to create, delete, and maintain the TNSNAMES.ORA and SQLNET.ORA file using the NET Manager utility.

To test it, just go to operating system and run the tnsping utility.

Example: (tnsping service_name)

# tnsping mydbs

If your connection was successful, you will get a message showing the XXXms (ex: 30ms) number of milli-second took that the client established a connection to the database.

Oracle Names Method

When you using the Oracle Names method, the same as the Local Naming method, a client must specify a username, password, and a connect string. The connect string must be your Service Name. In contrast to the local Naming Method, the Oracle Names Method will use the IP address or host name where the Oracle Name Server was installed and is listening. In the Oracle Name Server, a user process will be directed to an assigned destination on the server. In contrast to the local naming Method, the service name doesn�t contain the hostname or its IP address.

The following are the steps to configure Oracle Names Server.

Components required for setup:

� Oracle8/81/9i,

� Net8/8i Net Server,

� Net8 Client,

� Oracle Protocol Adapters,

� Oracle Name Server,

� Net8 Assistant/Net Manager,

� Java Runtime Environment (JRE),

� Assistant Common Files.

 

1. Create the required tables for the ONames repository by connecting to the database as onames/onames and run the following script:

MS-DOS> ORACLE_HOME.sql (Windows)

MS-DOS> ORACLE_HOME.sql (Windows)

# $ORACLE_HOME/network/admin/namesini.sql (Unix)

# $ORACLE_HOME/network/admin/namesupg.sql (Unix)

2. Use Net8 Assistant and create a Name Server (mynameserver) with the following options:

Protocol = TCP

Host = myserver

Port = 1575

 

a) Use a Region Database.

b) Enter the listener information:

 

Protocol = TCP

Host = myserver

Port = 1521

c) Enter the SID name for your repository.

d) Enter the username/password of the Oracle user who ran the NAMESINI.SQL script (onames/onames).

c) Select Yes for NameServer is in the root region.

d) Click Finish

e) Save the Network Configuration.

3. Click on the �+� sign next to LOCAL and expand it and then highlight the PROFILE item. In the Naming Methods box remove TNSNAMES and HOSTNAME and then add ONAMES naming Methods. You can also, make the ONAMES naming first and the rest be TNSNAMES and HOSTNAME. Go to Preferred Oracle NameServer and from the drop down menu, enter the NameServer name. Save the Network Configuration.

 

4. Start the NameServer

 

For Oracle8 (8.0) on Windows:

C:> namesctl80 start

or

C:> namesctl start

For Unix

$ namesctl start

5. Add service name information to the repository

In the Net8 Assistant (or Netmgr for Oracle9i) click on NameServer and from the drop down menu select Manage Data. Then click Add and then enter the details for your service name, e.g.:

 

Service Name = mynameserver

Protocol = TCP

Host = myserver

Port = 1521

SID = mydbs

Then click Execute. Repeat this process for all service names you wish to have. Save Network Configuration and test a connect from SQL*Plus.

If this works your NameServer is set up and working correctly and you can then distribute the sqlnet.ora created to the client PC's or Unix workstations.

 

Setting up Checkpointing for Fail Over

Take the following scenario: If you shutdown your NameServer and repository database, and the database fails to start, you can start your NameServer but no clients will be able to connect. This could lead to a production down situation.

 

This problem can be avoided with the use of checkpoint files. Checkpointing allows all information from the NameServer cache to be written to files. So, when you start the NameServer it will read these files and put everything back in the cache. This obviously gets you around the earlier scenario as users will still be able to connect while you fix your database.

 

Checkpointing of local region data is performed automatically so if you decide to have multiple regions you need to set checkpointing up as follows:

 

1. Load the Net8 Assistant (or Netmgr for Oracle9i).

2. Click on NameServer.

3. Select Manage Server from the drop down menu.

4. Go to the Tuning tab and change the Cache Checkpoint Interval to a frequency you wish the cache to be written to file.

5. Click Apply.

 

Creation of a Second NameServer

Even though checkpointing provides some protection against fail-over it is not 100% full proof.

 

For example, let's say the node on which your NameServer resides goes down. In this situation, no one can connect at all. You can workaround this problem by running another NameServer on a different node. The clients can forward their requests to this secondary server - other all problems will be invisible to the clients.

 

1. Load Net8 Assistant (or Netmgr on Oracle9i).

2. Click on NameServer and click the '+' button.

3. The Names Wizard appears. Enter the NameServer name e.g. backup

4. Select:

Protocol = TCP

Host = server2

Port = 1575

5. Use a Region Database.

6. Enter the listener information where the first NameServer resides:

Protocol = TCP

Host = server1

Port = 1521

7. Enter the SID name where the repository is.

8. Enter the username and password of the Oracle user who ran the NAMESINI.SQL file e.g. onames/onames.

9. Select NameServer is NOT in the root region.

10. Leave the domain name blank

11. Enter the address information of the first NameServer, e.g.:

Protocol = TCP

Host = server1

Port = 1575

12. Click Finish.

13. In profile, have the second NameServer as your first preferred NameServer and have the original server as your second preferred NameServer. If you don't have it in this order your second NameServer won't start.

14. The Next step is to start the 2nd NameServer:

 

For Oracle8 (8.0) on Windows:

C:> namesctl80 start

 

For Unix

$ namesctl start

Again, you can set-up checkpointing as described earlier in this note.

 

 

SAMPLE CONFIGURATION

--------------------

Server 1: sun1.oracle.com

~~~~~~~~~~~~~~~~~~~~~~~~~

 

# NAMES.ORA Configuration File:/install/app/oracle/product/8.0.5/network/admin/names.ora

# Generated by Oracle Net8 Assistant

 

NAMES.SERVER_NAME=sun1_onames.oracle.com

 

NAMES.ADDRESSES=

(ADDRESS=(PROTOCOL=TCP)(HOST=sun1.oracle.com)(PORT=1575))

 

NAMES.ADMIN_REGION=

(REGION=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=TCP)(HOST=sun1.oracle.com)(PORT=1521))

(CONNECT_DATA=(SID=V805)(Server=Dedicated))

)

(USERID=names)

(PASSWORD=names)

(NAME=LOCAL_REGION)

(REFRESH=86400)

(RETRY=60)

(EXPIRE=600)

(VERSION=134230016)

)

 

 

 

# SQLNET.ORA Configuration File:/install/app/oracle/product/8.0.5/network/admin/sqlnet.ora

# Generated by Oracle Net8 Assistant

 

NAMES.PREFERRED_SERVERS =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL=TCP)(HOST=sun1.oracle.com)(PORT=1575))

)

NAMES.DEFAULT_DOMAIN = oracle.com

SQLNET.EXPIRE_TIME = 0

NAMES.DIRECTORY_PATH= (ONAMES)

 

 

Server 2: hp1.oracle.com

~~~~~~~~~~~~~~~~~~~~~~~~

 

# NAMES.ORA Configuration File:/apps/app/oracle/product/8.0.5/network/admin/names.ora

# Generated by Oracle Net8 Assistant

 

NAMES.SERVER_NAME = hp1_onames.oracle.com

 

NAMES.ADDRESSES =

(ADDRESS=(PROTOCOL=TCP)(HOST=hp1.oracle.com)(PORT=1575))

 

NAMES.ADMIN_REGION =

(REGION =

(DESCRIPTION =

(ADDRESS=(PROTOCOL=TCP)(HOST=sun1.oracle.com)(PORT=1521))

(CONNECT_DATA=(SID=V805)(Server=Dedicated))

)

(USERID = names)

(PASSWORD = names)

(NAME = LOCAL_REGION)

(REFRESH = 86400)

(RETRY = 60)

(EXPIRE = 600)

(VERSION = 134230016)

)

 

# SQLNET.ORA Configuration File:/apps/app/oracle/product/8.0.5/network/admin/sqlnet.ora

# Generated by Oracle Net8 Assistant

 

NAMES.PREFERRED_SERVERS =

(ADDRESS_LIST =

(ADDRESS=(PROTOCOL=TCP)(HOST=hp1.oracle.com)(PORT=1575))

)

NAMES.DEFAULT_DOMAIN = oracle.com

SQLNET.EXPIRE_TIME = 0

NAMES.DIRECTORY_PATH= (ONAMES)

 

 

Client Configuration

~~~~~~~~~~~~~~~~~~~~

 

# SQLNET.ORA Configuration File:/install/app/oracle/product/8.0.5/network/admin/sqlnet.ora

# Generated by Oracle Net8 Assistant

 

NAMES.PREFERRED_SERVERS =

(ADDRESS_LIST =

(ADDRESS=(PROTOCOL = TCP)(HOST=sun1.oracle.com)(PORT=1575))

(ADDRESS=(PROTOCOL = TCP)(HOST=hp1.oracle.com)(PORT=1575))

)

 

NAMES.DEFAULT_DOMAIN = oracle.com

SQLNET.EXPIRE_TIME = 0

NAMES.DIRECTORY_PATH= (ONAMES)

 

Questions:

Q: What are the various naming method supported by Oracle Net?

Q: Describe the Host Naming Method.

Q: Describe the Local Naming Method?

Q: Describe the Oracle Names Method?

     Reviews and Templates for FrontPage
     

Copyright � everythingOracle.bizhat.com 2006 All Rights Reserved.