7.4 Domains and Regions

Team-Fly    

 
Oracle Net8 Configuration and Troubleshooting
By Jonathan  Gennick , Hugo Toledo
Table of Contents
Chapter 7.  Oracle Names


7.4 Domains and Regions

In a large organization, you may be interested in setting up Oracle Names in a hierarchical manner. This allows you to offload responsibility for maintaining net service names to various subunits of your organization. In Oracle Names' terminology, the term region is used to refer to a subunit, and each region corresponds to a different domain. The term region implies a geographical scope, but that doesn't have to be the case. Figure 7.19 illustrates an arrangement with two regions: one for the research arm of an organization, and one for the manufacturing arm.

Figure 7.19. An Oracle Names environment with two regions
figs/n8c_0719.gif

The arrangement shown in Figure 7.19 allows the research arm to manage its net service names independently of the manufacturing arm. Unqualified net service names need to be unique only within a region. On a global basis, names defined in a region inherit the domain assigned to the region, and on that basis are unique across the organization. The research region's domain is rese.gennick.org , while the manufacturing region's domain is manu.gennick.org .

To provide further autonomy for the research and manufacturing regions, each uses a separate database as a repository. If the two regions are separated geographically , this also speeds access. Clients in the manufacturing arm of the organization usually use net service names defined in that region, and they can quickly be resolved using the local database. Requests by clients in one region for names defined in another region are routed via the root Names server to the appropriate regional Names server.

Also shown in Figure 7.19 is a root domain, which includes a root Names server. The purpose of the root Names server is to resolve net service names in the gennick.org domain. The root Names server also contains entries identifying all the region Names servers. The root Names server happens to be managed by the research arm, so for convenience its repository is located in the same database as the research repository. Note, however, that a different schema (username) is used. While the root and research repositories are in the same physical database, they are still stored separately in two different schemas.

7.4.1 Configuring the Root Names Server

The root Names server should be configured first. In the scenario that we are describing, the following names.ora entries can be used:

 NAMES.DOMAINS = (DOMAIN = (NAME = gennick.org) (MIN_TTL = 86400)) NAMES.SERVER_NAME = oranamesrvr0.gennick.org NAMES.ADDRESSES =    (ADDRESS = (PROTOCOL = TCP)(HOST = oranamesrvr0.gennick.org)(PORT = 1575)) NAMES.ADMIN_REGION =    (REGION =       (DESCRIPTION =          (ADDRESS=(PROTOCOL=TCP)(HOST=oranamesrvr0.gennick.org)(PORT=1521))          (CONNECT_DATA=(SID=onames)(SERVER = DEDICATED))       )       (USERID = onamesroot)       (PASSWORD = onamesroot)       (NAME = LOCAL_REGION)       (REFRESH = 1800)       (RETRY = 60)       (EXPIRE = 600)       (VERSION = 34619392)    ) NAMES.AUTO_REFRESH_EXPIRE = 1800 NAMES.AUTO_REFRESH_RETRY = 1800 NAMES.CACHE_CHECKPOINT_INTERVAL = 300 NAMES.LOG_STATS_INTERVAL = 86400 NAMES.PASSWORD = onames NAMES.RESET_STATS_INTERVAL = 86400 NAMES.SAVE_CONFIG_ON_STOP = NO 

There are several key parameters to note in this names.ora file:

NAMES.DOMAINS

Specifies that this Names server handles net service names defined in the gennick.org domain.

NAMES.SERVER_NAME

Specifies oranamesrvr0.gennick.org for the Names server's name.

NAMES.ADMIN_REGION

Specifies the information needed to connect to the database that serves as a repository for the root region. The database does not need to be on the same physical server as the Names server software.

The remaining entries in the names.ora file define various operational parameters for the root Names server.

7.4.2 Configuring a Region Names Server

The Names servers for the research and manufacturing regions are configured similarly to the root Names server, but with three key differences:

  • The NAMES.DOMAINS parameter specifies a different domain name.

  • The NAMES.SERVER_NAME parameter places the Names server into the domain represented by the region.

  • There is an additional parameter present named NAMES.DOMAIN_HINTS.

For example, here is the names.ora file for the research Names server:

 NAMES.DOMAINS = (DOMAIN = (NAME = rese.gennick.org) (MIN_TTL = 1800)) NAMES.SERVER_NAME = oranamesrvr0.rese.gennick.org NAMES.DOMAIN_HINTS=    (HINT_DESC=       (HINT_LIST=          (HINT=             (NAME=oranamesrvr0.gennick.org)             (ADDRESS=(PROTOCOL=TCP)(HOST=oranamesrvr0.gennick.org)(PORT=1575))          )       )       (DOMAIN=gennick.org)    ) NAMES.ADDRESSES =    (ADDRESS =        (PROTOCOL = TCP)(HOST = oranamesrvr0.rese.gennick.org)(PORT = 1575)) NAMES.ADMIN_REGION =    (REGION =       (DESCRIPTION =          (ADDRESS = (PROTOCOL = TCP)(HOST = oranamesrvr0.gennick.org)                     (PORT = 1521))          (CONNECT_DATA = (SID = onames)(SERVER = DEDICATED))       )       (USERID = onamesresa)       (PASSWORD = onamesresa)       (NAME = LOCAL_REGION)       (REFRESH = 1800)       (RETRY = 60)       (EXPIRE = 600)       (VERSION = 34619392)    ) NAMES.AUTO_REFRESH_EXPIRE = 1800 NAMES.AUTO_REFRESH_RETRY = 1800 NAMES.CACHE_CHECKPOINT_INTERVAL = 300 NAMES.LOG_STATS_INTERVAL = 86400 NAMES.PASSWORD = onames NAMES.RESET_STATS_INTERVAL = 86400 NAMES.SAVE_CONFIG_ON_STOP = NO 

You can see that the NAMES.DOMAINS parameter associates this Names server with the domain rese.gennick.org , and that the NAMES.SERVER_NAME parameter places the Names server within that same domain. The NAMES.DOMAIN_HINTS parameter is particularly interesting because it tells this Names server where to go for authoritative information about net service names in other domains. For example, to resolve names in the gennick.org domain, the Names server named oranamesrvr0.gennick.org should be contacted. The hint specifies both the name and the address of that Names server.

You'll notice that the region database is actually the same, in spite of the fact that this is a regional Names server and it falls within a domain different from that of the root Names server. However, the username used by this Names server is different from that used by the root. As long as the schemas are separate, it doesn't matter whether they are in the same database or not.

The Names server for the manufacturing arm of the organization would be configured in the same manner as the research Names server. The only differences would be in the domain and the location of the region database. The domain, of course, would be manu.gennick.org . The region database information would be different, because as Figure 7.19 shows, the manufacturing Names server uses a completely separate database.

7.4.3 Configuring Clients

Once you have the Names servers configured, you can configure clients to use them. The following sqlnet.ora entries configure a client to use the root Names server:

 NAMES.AUTHORITY_REQUIRED = FALSE NAMES.DEFAULT_DOMAIN = gennick.org NAMES.DIRECTORY_PATH = (ONAMES,TNSNAMES) NAMES.PREFERRED_SERVERS =   (ADDRESS_LIST =      (ADDRESS=(PROTOCOL=TCP)(HOST=oranamesrvr0.gennick.org)(PORT=1575))   ) NAMES.REQUEST_RETRIES = 1 

Notice that the NAMES.DEFAULT_DOMAIN parameter has been used to place this client into the gennick.org domain. Any unqualified net service name references will be assumed to be in that domain. The NAMES.PREFERRED_SERVERS parameter lists the Names servers that this client can contact for name resolution purposes. There is only one in this casethe root Names server.

Clients in domains besides the root are configured in a similar manner. The difference is that they are placed into a different domain, and they are pointed to a different Names server. The following sqlnet.ora entries place a client into the manu.gennick.org domain:

 NAMES.AUTHORITY_REQUIRED = FALSE NAMES.DEFAULT_DOMAIN = manu.gennick.org NAMES.DIRECTORY_PATH = (ONAMES) NAMES.PREFERRED_SERVERS =   (ADDRESS_LIST =     (ADDRESS=(PROTOCOL=TCP)(HOST=oranamesrvr0.manu.gennick.org)(PORT=1575))   ) NAMES.REQUEST_RETRIES = 1 

Clients from one domain can, of course, still access services that fall within another. When a Names server gets a request for a net service name in a domain that it doesn't handle, it checks the NAMES.DOMAIN_HINTS parameter to see if another Names server has been identified for that domain. If a domain hint exists that identifies a Names server for the domain in question, the name resolution request is forwarded to that server.

7.4.4 Delegating Domains to Regions

From the root Names server, you need to execute the Names Control utility's DELEGATE_DOMAIN command for each of the regions that you've created. This command tells the root Names server about your subdomains and identifies the proper Names server to contact for each of them. For example, the following command would be used to delegate the manu.gennick.org domain to the Names server configured to handle that domain. The command should be entered into Names Control as one long line (space constraints require that it be split across two lines in this book):

 DELEGATE_DOMAIN manu.gennick.org oranamesrvr0.manu.gennick.org (ADDRESS=(PROTOCOL=TCP)(HOST=oranamesrvr0.manu.gennick.org)(PORT=1575)) 

The three parameters to the DELEGATE_DOMAIN command are:

  • The domain being delegated

  • The name of the Names server responsible for the domain

  • The protocol address of that Names server

The DELEGATE_DOMAIN command only works for one names server in each subdomain. If, for example, you have two Names servers in manu.gennick.org for purposes of redundancy, you can use DELEGATE_DOMAIN for the first, but you will need to manually insert the second into the root server's repository. (This is a known bug with Oracle Names.) The following SQL statements demonstrate how to do this. The three INSERTS identify oranamesrvr1.manu.gennick.org as another Names server in the manu.gennick.org domain. The UPDATE statement that follows the INSERTS bumps up a critical counter in the ONRS_SERIAL table:

 INSERT INTO onrs_region VALUES (    '(root)',     'oranamesrvr1.manu.gennick.org',     '(DATA_LIST=(FLAGS=0x5)(DATA=(TYPE=a.smd.)'     '(ADDRESS=(PROTOCOL=TCP)(HOST=oranamesrvr1.manu.gennick.org)'    (PORT=1575))))' ); INSERT INTO onrs_region VALUES (    '(root)',    'oranamesrvr1.manu.gennick.org',     null); INSERT INTO onrs_region VALUES (    '(root)',    'manu.gennick.org',     '(DATA_LIST=(FLAGS=0x3)(DATA=(TYPE=ns.smd.)(NAME=oranamesrvr1.manu.gennick.org.)))' ); UPDATE onrs_serial     SET serial=serial+6; 

It is never necessary to delegate the root domain to the root Names servers. The root servers delegate the root domain to themselves automatically.


Team-Fly    
Top


Oracle Net8 Configuration and Troubleshooting
Oracle Net8 Configuration and Troubleshooting
ISBN: 1565927532
EAN: 2147483647
Year: 2000
Pages: 120

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net