Oracle
Parallel Server Getting Started
Release 8.0.5 for Windows NT A64425-01 |
|
This chapter describes the configuration tasks to create
an operating Oracle Parallel Server.
Specific topics discussed are:
The initialization files, INIT_COM.ORA and INITSID.ORA
are installed in the ORACLE_HOME\OPS directory. To use Oracle Parallel
Server Manager and to avoid specifying the PFILE parameter when starting
the database (STARTUP PFILE=C: ORANT\OPS\INITSID.ORA), copy these
file to the ORACLE_HOME\DATABASE file where initialization files
are normally located.
To change the location of the initialization files:
The Oracle SETLINKS utility creates symbolic links to raw
logical partitions.
For example, with the SETLINKS utility, you can create a symbolic link called OPS_log1t1 to the second logical partition on the second physical disk:
OPS_log1t1 \Device\Harddisk2\Partition2
The SETLINKS utility comes with the following ASCII files,
with symbolic link names already associated with raw partitions. Each node
requires two log files. If you have more than a three to four cluster,
additional symbolic link names must be linked to the files:
.
Below is a description of the symbolic link names:
To create symbolic links to the logical partitions:
You can use a worksheet similar the one below to assist
with the process:
For example, the worksheet for the two nodes shown in section
"Step 2: Create Logical Partitions In an Extended
Partition" in Chapter 3, "Performing Pre-Installation
Tasks" looks like:
Additional
Information:
See Chapter 3, "Performing Pre-Installation Tasks", for further information about the Disk Administrator. |
WARNING: Do not change the symbolic link names in OPSLINK1.TBL. If you do, symbolic link names must be modified for the following files: |
C:\> CD ORACLE_HOME\OPS C:\ORACLE_HOME\OPS> SETLINKS /F:ORALINK1.TBL
SETLINKS maps the drives to the symbolic label names:
Oracle Corporation. Copyright (c) 1997. All rights reserved. Created Link: Created Link:OPS_log1t1 = Device:\Device\Harddisk1\Partition1 Created Link:OPS_log2t1 = Device:\Device\Harddisk1\Partition2 Created Link:OPS_sys01 = Device:\Device\Harddisk1\Partition3 Created Link:OPS_usr01 = Device:\Device\Harddisk1\Partition4 Created Link:OPS_rbs01 = Device:\Device\Harddisk1\Partition5 Created Link:OPS_tmp01 = Device:\Device\Harddisk1\Partition6 Created Link:OPS_log1t2 = Device:\Device\Harddisk2\Partition1 Created Link:OPS_log2t2 = Device:\Device\Harddisk2\Partition2 Created Link:OPS_cntr01 = Device:\Device\Harddisk3\Partition3 Dos devices updated successfully.
If the cluster has third or fourth node, SETLINKS must be run again with OPSLINK2.TBL (for the third node) or OPSLINK3.TBL for the fourth node.
C:\> CD ORACLE_HOME\OPS C:\ORACLE_HOME\OPS> SETLINKS /F:ORALINK2.TBL C:\ORACLE_HOME\OPS> SETLINKS /F:ORALINK3.TBL
C:\ORACLE_HOME\OPS> SETLINKS /D
SETLINKS shows how the symbolic link names have been mapped:
Oracle Corporation. Copyright (c) 1997. All rights reserved. OPS_log1t1 = \Device\Harddisk1\Partition1 OPS_log2t1 = \Device\Harddisk1\Partition2 OPS_sys01 = \Device\Harddisk1\Partition2 OPS_usr01 = \Device\Harddisk1\Partition2 OPS_rbs01 = \Device\Harddisk1\Partition5 OPS_tmp01 = \Device\Harddisk1\Partition6 OPS_log1t2 = \Device\Harddisk2\Partition1 OPS_log2t2 = \Device\Harddisk2\Partition2 OPS_cntr01 = \Device\Harddisk2\Partition3 ...
Links can be removed or ignored by changing the contents
of the ORALINKx.TBL files and running it through SETLINKS again.
Insert a `#" at the beginning of a line to denote a comment,
which is ignored by SETLINKS.
To remove an existing symbolic link:
List a symbolic link without a device path in the ORALINKx.TBL
file.
For example:
OPS_log1t1 OPS_log2t1 \Device\Harddisk1\Partition2 OPS_sys01 \Device\Harddisk1\Partition3 OPS_usr01 \Device\Harddisk1\Partition4 OPS_rbs01 \Device\Harddisk1\Partition5 OPS_tmp01 \Device\Harddisk1\Partition6 OPS_log1t2 \Device\Harddisk2\Partition1 OPS_log2t2 \Device\Harddisk2\Partition2 OPS_cntr01 \Device\Harddisk2\Partition3
This removes the OPS_log1t1 link and creates the other links
specified.
Note: When following the steps below, note that some tasks are performed on the primary node only, while other tasks are performed on each node. |
To configure the Operating System Dependent (OSD) components:
See your OSD vendor documentation for instructions about configuring the OSD components, making sure the:
CAUTION: When configuring domains, two instances cannot reside on the same machine and be in the same domain. |
After the OSD components have been configured, an OracleServiceSID
for each instance must be created.
To create OracleServiceSID:
C:\> CD ORACLE_HOME\BIN
C:\ORACLE_HOME\BIN> CRTSRV SID
For example, to create OracleServiceOPS1 on the primary node:
C:\ORACLE_HOME\BIN> CRTSRV OPS1
The Services window appears:
Additional
Information:
See Chapter 6, "Using Multiple Oracle Homes", in the Oracle8 Enterprise Edition Getting Started for Windows NT for a description of HOME_NAME and multiple Oracle homes. |
The Service dialog box appears:
The Add User dialog box appears:
The Service dialog box reappears.
The Services window reappears.
C:\> NET STOP OracleServiceSID
The SID for an instance must be set in the registry to allow instance recognition when you access a database from a node. When you connect to a database, Oracle Parallel Server will be able to resolve the SID name.
Oracle Parallel Server requires the ORACLE_SID registry value
to be manually added to the following location:
To add the ORACLE_SID registry value:
C:\> REGEDT32
The Registry Editor window appears:
The Add Value dialog box appears:
The String Editor dialog box appears:
Registry Editor adds ORACLE_SID.
The registry exits.
Configure the nodes and clients for connections. Net8 clients
communicate with Oracle8 servers through service names, which are easy
to remember aliases for database addresses.
Each node must have the following configuration files in
ORACLE_HOME\NET80\ADMIN:
The OPSCONF utility must be used to generates a TNSNAMES.ORA
file with the service names already configured for all the nodes in a cluster
and a LISTENER.ORA file with SID_NAME parameter already set.
The steps to perform to configure the network include:
Step 6a: Stop the Network Listener
Step 6b: Configure the Service
Names
Step 6c: Start the Network Listener
Step 6d: Test the Configuration
The network listener must be stopped on each node.
To stop the network listener:
C:\> NET STOP OracleHOME_NAMETNSListener80 C:\> NET STOP OracleHOME_NAMETNSListener80LSNR
(where LSNR is the non-default network listener name)
A message appears, confirming you want to stop the network listener. Click Yes.
Configuration files can be created with the OPSCONF utility. The OPSCONF utility creates properly configured files for all nodes, including:
These files are created on the node in ORACLE_HOME\OPS. After creation, you need to move the files to their proper configuration file names and to the proper machines.
To create the configuration files:
C:\> CD ORACLE_HOME\BIN
C:\ORACLE_HOME\BIN> OPSCONF
OPSCONF runs in interactive mode, prompting you with configuration questions. Bold indicates user input:
database_name
The database name is defined in the INIT_COM.ORA file in ORACLE_HOME\DATABASE. The database name is defaulted to OPS.
port_number
Press [Enter] to accept the default value.
Press [Enter] to accept the default value unless you have changed the port number.
All the configuration files are created in ORACLE_HOME\OPS.
For example, in the TNSNAMES.ORA shown below, remove the entry for OPS.world, but leave all other entries.
OPS.world = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = opsnt1) (PORT = 1526)) (CONNECT_DATA = (SID = ops1))) (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = opsnt2) (PORT = 1526)) (CONNECT_DATA = (SID = ops2)))) ops1.world = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = opsnt1) (PORT = 1526)) (CONNECT_DATA = (SID = ops1))) ops2.world = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = opsnt2) (PORT = 1526)) (CONNECT_DATA = (SID = ops2))) opsnt1_agent.world = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = opsnt1) (PORT = 1748))) opsnt2_agent.world = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp) (HOST = opsnt2) (PORT = 1748)))
Or, merge it with your existing TOPOLOGY.ORA.
The network listener must be started on each node.
To start the network listener:
C:\> NET START OracleHOME_NAMETNSListener80 C:\> NET START OracleHOME_NAMETNSListener80LSNR
(where LSNR is the non-default network listener name)
To ensure the files are configured correctly:
C:\> SVRMGR30
SVRMGR> CONNECT INTERNAL/PASSWORD@SERVICE_NAME
If there is an error in connecting, you must troubleshoot your installation. Typically, there is a problem with the IP address, host name, or SID.
CAUTION: The instructions below assume the domain you specified during the OSD configuration is identical to the database name defined in the INIT_COM.ORA file. |
Creating an Oracle Parallel Server database involves generating:
To create the Oracle Parallel Server database:
Note: Prior to starting a OracleServiceSID service, the OraclePGMSService service must be running. If you used the CRTSRV script in "Step 4: Create Services", OraclePGMSService automatically starts when the OracleServiceSID service is started. If you chose to create your services with another method, you can still have OraclePGMSService start up automatically with a OracleServiceSID service by entering the following at the command for each node: C:\> OPSREG80 ADD SID |
C:\> NET START OracleServiceOPS1
C:\> CD ORACLE_HOME\OPS C:\ORACLE_HOME\OPS> SVRMGR30 SVRMGR> @OPSALL.SQL
The OPSALL.SQL script:
Note: You may modify the OPS.SQL script in ORACLE_HOME\OPS to better suit your database needs. |
C:\> NET STOP OracleServiceOPS1
To start the Oracle Parallel Server database in parallel
mode:
Note: When following the steps below, note that some tasks are performed on the primary node only, while other tasks are performed on each node. |
This file is re-created with new Oracle Parallel Server messages.
Note: Prior to starting a OracleServiceSID service, the OraclePGMSService service must be running. If you used the CRTSRV script in "Step 4: Create Services" of this chapter, OraclePGMSService automatically starts up when the OracleServiceSID service is started. If you chose to create your services with another method, you can still have OraclePGMSService start up automatically with a OracleServiceSID service by entering the following at the command for each node: C:\> OPSREG80 ADD SID |
C:\> NET START OracleServiceOPS1
C:\> SVRMGR30 SVRMGR> CONNECT INTERNAL/PASSWORD SVRMGR> STARTUP
The first instance to start up in shared mode determines
the values of the global constant parameters for the other instances. The
control file records the values of the GC_* parameters when the first instance
starts up.
When another instance attempts to start up in shared mode, the Oracle Server compares the values of the global constant parameters in its parameter file with those already in use and issues a message if any values are incompatible. The instance cannot mount the database unless it has the correct values for its global constant parameters.
C:\> SVRMGR30 SVRMGR> CONNECT INTERNAL/PASSWORD SVRMGR> STARTUP
Note: If PARALLEL_SERVER (the default) is set in the INIT_COM.ORA file, you do not have specify STARTUP PARALLEL. You also do not have specify the PFILE parameter when starting the database (STARTUP PFILE=C: ORANT\OPS\INITSID.ORA) if you followed the procedure in "Step 1: Copy Initialization Files" of this chapter. |
Below is a sample of the trace file, indicating successful startup for two nodes:
Thu Oct 30 15:22:59 1997 Reconfiguration started List of nodes: 1,2, Lock DB frozen Non-local Process blocks cleaned out Non-local Group blocks cleaned out Resources and locks cleaned out Traffic controller Initialized Communication channels reestablished Submitted all rdomain info Submitted all remote-lock requests Update rdomain variables Dwn-cvts replayed, VALBLKs dubious All grantable locks granted Thu Oct 30 15:23:02 1997 Reconfiguration complete
To verify instances are running:
C:\> SVRMGR30 SVRMGR> CONNECT INTERNAL/PASSWORD SVRMGR> SELECT * FROM V$ACTIVE_INSTANCES;
The following output is returned:
INST_NUMBRE INST_NAME ----------- --------- 1 node1:ops1 2 node2:ops2 3 node3:ops3 . ..
CAUTION: If another node is reconfigured after this table has been accessed and this statement is issued again, only the last node whose database was started displays. |
C:\> SVRMGR30 SVRMGR> CONNECT SCOTT/TIGER SVRMGR> SELECT * FROM EMP;
The employee table displays:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ---------- --------- --------- --------- --------- --------- --------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 14 rows selected.
SVRMGR> UPDATE EMP SET SAL = SAL + 1000 WHERE ENAME = `MILLER'; SVRMGR> COMMIT;
SVRMGR> SELECT * FROM EMP;
MILLER's salary should now be $2,300, indicating all the instances can see the database.