Chapter 5.Few, if any, concepts are as important to the proper administration of an Oracle database as the concept of networking. Connectivity—the ability to make connections between clients and databases, as well as between databases—has been a key component of Oracle for over a decade. While some of the terminology and technology has changed, the need for a clear understanding of networking and how it functions with the Oracle framework is at least as critical today as it was when client/server was a brand new buzzword. This chapter discusses networking and how it relates to Oracle. It also shows you the tools Oracle provides for managing its networking components and lays out the networking capabilities of the modern Oracle database. 5.1. Oracle Network ArchitectureThe complexity of Oracle networking arises to some extent from its basic simplicity. Although that statement appears to contradict itself, it points out a basic characteristic of the Oracle networking architecture: it is a simple structure that can be used to implement complex solutions. Oracle's networking architecture is simple because it is designed to allow any Oracle product, running on any supported platform, to "talk" to any other Oracle product without regard for network topologies or protocols. Figure 5.1 shows several Oracle databases and clients connected via a "cloud" with no network identification. Figure 5.1. A simple view of the Oracle network architectureBecause Oracle is designed to run on almost any network, using almost any accepted protocol, the configuration of the Oracle components that interface with the network can be very complex, which often leads to frustration when the DBA is not sure where to turn in order to solve a problem. This is because Oracle often hides its underlying complexity. For example, the simple connection shown in Figure 5.1 could, in reality, look more like the more complex connection shown in Figure 5.2, where the physical and logical components of the network can be seen. That figure shows a client and server connected using TCP/IP, 10BaseT, and token ring with routers. Figure 5.2. A more complex view of an Oracle network5.1.1. SQL*Net and Net8Oracle achieves its goal of transparent connectivity between and among its products through the use of a product called SQL*Net. 5.1.1.1. SQL*Net functionalitySimply put, SQL*Net provides all the facilities required for an Oracle client (that is, a network machine running a tool that will connect to the Oracle database) to connect to an Oracle database, to maintain that connection, and to process transactions on the database. This is done without regard for location (location transparency ), network protocol (network transparency ), host operating system, or any other factor. SQL*Net also supports the complexities of distributed transactions, and so is able to:
5.1.1.2. How SQL*Net worksSQL*Net is designed to run on top of an existing network protocol, and is therefore independent of the particular hardware and software being used to implement a network. As long as SQL*Net on both sides of the connection is using the same basic protocol (e.g., TCP/IP, LU6.2 or IPX), it won't matter to Oracle how the underlying network transports the information. Figure 5.3 shows the relationship between SQL*Net and the underlying network; it illustrates Oracle, SQL*Net, TCP/IP, and physical transport on both sides. Figure 5.3. Relationship between SQL*Net and the underlying networkThe key here is that connectivity to and from the Oracle database and tools is achieved by using SQL*Net, which presents a consistent interface to Oracle. By utilizing an appropriate protocol adapter (in this case, TCP/IP) on each side, SQL*Net is able to conform to the network protocol in use. SQL*Net creates data packets using the native network protocol, and it does not matter how the network is implemented to actually carry the SQL*Net packets. In fact, SQL*Net does not even know if a network exists, and it is possible to use SQL*Net without any network at all by making an internal connection between a client process and a server running on the same machine. SQL*Net protocol adapters are available to support a variety of network protocols, including:
When Oracle is installed, both SQL*Net and one or more supported protocol adapters must be installed. Note that not all protocols are supported on every host operating system. For example, Oracle for Windows NT does not provide a protocol adapter for LU6.2, since this is not a protocol normally supported in a Windows environment. 5.1.1.3. Oracle servicesSQL*Net connections to Oracle databases are made through services, which are actually processes running on the Oracle Server host machine. Each Oracle server maintains one or more listener processes, which are used to monitor the network for incoming connection requests. When such a request is received, the listener process is responsible for determining which Oracle instance the incoming request is seeking a connection with, and establishing an appropriate server process for that connection. The server process may be established as a dedicated process, or may use the Multi-Threaded Server, depending on how the Oracle instance is configured. For more information, see Chapter 10. In order to identify the Oracle instance to connect with, the SQL*Net connection request specifies the name of a service (sometimes called a database alias ), which in turn corresponds to a particular Oracle instance on a specific host machine. The relationships between service names and specific instances and hosts are typically maintained in the file tnsnames.ora (discussed in more detail later in this chapter). For example, the service name "test" might actually refer to an Oracle database instance with an SID of TST23, which is accessible via TCP/IP at address 123.234.210.001 using port 1526. It is certainly simpler to refer to "test"! 5.1.2. Advanced Networking OptionIn addition to the standard functionality provided by SQL*Net and Net8, Oracle now offers the Advanced Networking Option (ANO) as an extra-cost option. This option provides additional security-related functionality to Oracle connectivity. Among the capabilities of the Advanced Networking Option are:
5.1.2.1. Network securityImproved network security is provided through the following security features:
5.1.2.2. Single sign-onThe single sign-on feature allows users to access multiple accounts and applications with a single password. This feature eliminates the need for multiple passwords for users and simplifies management of user accounts and passwords for system administrators. Authentication adapters provide centralized, secure authentication services that confirm the identity of users, clients, and servers in distributed environments. Network authentication services also can provide the benefit of single sign-on for users. The following authentication adapters are supported:
5.1.2.3. DCE integrationDistributed Computing Environment (DCE) integration enables users to transparently use Oracle tools and applications to access Oracle servers in a DCE environment. The Oracle DCE integration product consists of two major components:
The DCE communications/security adapter provides:
5.1.2.4. DCE naming adapterThe DCE CDS naming adapter offers a distributed, replicated repository service for the names, addresses, and attributes of objects across the network. Because servers register their name and address information in the DCE CDS naming adapter, Oracle clients can make location-independent connections to Oracle servers. An Oracle utility is provided to load the Oracle service names with corresponding connect descriptors into the DCE CDS naming adapter. After the names are loaded, Oracle connect descriptors can be viewed from a central location with standard DCE tools, and services can be relocated without any changes to the client configuration. |
|