Академический Документы
Профессиональный Документы
Культура Документы
1/70
Preface...........................................................................................................................4 Naming Conventions and Terms ...............................................................................4 Implementation Roadmap..........................................................................................5 Technical Knowledge ............................................................................................5 Evaluation ..............................................................................................................5 Pre-Installation.......................................................................................................5 Installation..............................................................................................................5 Testing....................................................................................................................5 Prerequisites...............................................................................................................6 New Cluster Hardware...........................................................................................6 Storage ...............................................................................................................6 Hardware Configuration ............................................................................................7 Storage ...................................................................................................................7 Network..................................................................................................................8 Network Interfaces.............................................................................................8 System Configuration ..............................................................................................10 Operating System.................................................................................................10 Support of Windows 2003 Server........................................................................10 Microsoft Cluster Software and Heartbeat ..........................................................11 Windows 2003 64-bit or 32-bit............................................................................11 Windows 2003 64-bit on x86_64 platforms ....................................................11 Windows 2003 32-bit on x86_32 platforms ....................................................11 Storage, Disks ......................................................................................................12 Network Interfaces...............................................................................................14 Installation before Migration?..................................................................................14 Software Installation & Configuration ....................................................................16 Overview..................................................................................................................16 Oracle Clusterware (OCW)......................................................................................17 Installation............................................................................................................17 Upgrade................................................................................................................29 Oracle CFS...............................................................................................................31 Choosing the right NIC for OCFS .......................................................................31 Setting up OCFS volumes....................................................................................31 OCFS IO-Modes ..................................................................................................31 Rules for Formatting Volumes with OCFS .....................................................31 Formatting Volumes ............................................................................................32 Migration..................................................................................................................33 Oracle RDBMS Software ....................................................................................33 Installation........................................................................................................33 Upgrade............................................................................................................34 Database Conversion to RAC ..............................................................................34 Enabling RAC..........................................................................................................34 Undo Tablespaces ................................................................................................34 Online Redo Logs ................................................................................................35 Init.ora and Spfile.ora ..........................................................................................35 Oracle Administrator Groups...............................................................................36 Oracle Instance Creation......................................................................................37 Environment Variables ........................................................................................37 SQL*Net Configuration and Service Creation ....................................................37
2/70
Major Differences between Oracle 9i and Oracle 10g Configurations............37 Oracle Net Configuration Assistant (netca).....................................................38 Listener.ora ......................................................................................................42 Tnsnames.ora ...................................................................................................43 Sqlnet.ora .........................................................................................................45 Putting the Database and Instances under CRS control...................................45 Services ............................................................................................................46 Checking the Setup ..............................................................................................47 Srvctl and crsctl........................................................................................................48 Windows 2003 and NTBackup................................................................................49 Backing up OCR ......................................................................................................49 Backup .....................................................................................................................49 Testing......................................................................................................................50 Failures.................................................................................................................50 Hardware Failures ............................................................................................50 Software Failures .............................................................................................51 SAP Application Workload .................................................................................52 Additional Performance Recommendations ............................................................52 Automated Segment Space Management (ASSM)..............................................52 Local Update Dispatching....................................................................................52 Automatic Offlining of Undo Segments by SMON ............................................53 Appendix A: Oracle Cluster File System for Windows (OCFS).............................53 Introduction..........................................................................................................53 Mount and Volume Recognition Process ........................................................53 Differences to NTFS and FAT.............................................................................54 Security ............................................................................................................54 Multi-Host Concurrent Metadata Changes ......................................................54 Predictable Hangs.........................................................................................54 Mount Points, Drive Letters.............................................................................54 Internal Metadata for Multiple Cluster Nodes .................................................54 OCFS Administration ..........................................................................................55 Setting Volumes Offline ..................................................................................55 Setting Volumes Online...................................................................................55 Adding a new OCFS Volume ..........................................................................55 Removing a Volume ........................................................................................55 Split-Mirror Backup and Restore under OCFS....................................................56 Appendix B: FAQ ....................................................................................................56 Appendix C: BR*Tools Sample Configuration for Legato Networker................58 initT011.sap: ........................................................................................................58 initT012.sap: ........................................................................................................58 initT01arch.sap: ...................................................................................................58 initT01arch.utl......................................................................................................64
3/70
Preface
Oracle Real Application Clusters (RAC) is a supported solution for the database backend in an SAP installation. Using SAP with Oracle RAC provides high availability and scalability. The purpose of this document is to provide best practices on how to migrate an existing single-node SAP installation to a multiple-instance Oracle 10gR2 RAC cluster database configuration. This document covers the installation of Oracle Clusterware, Oracle Cluster Filesystem (OCFS) and Oracle RDBMS software. It describes the necessary changes to the database structures on the disk, as well as to database and SAP system configurations. The pre-installation steps for setting up the underlying cluster hardware are also discussed as a preliminary requirement. However, due to the fact that the cluster technology from different hardware vendors is evolving quickly, this paper just gives some guidelines on what hardware is required and how this hardware has to be configured. It is highly recommended that you be familiar with installing and configuring SAP and Oracle RDBMS software before starting a new SAP and Oracle RAC integration! Please refer also to the white paper Configuration of SAP NetWeaver for Oracle 10g Release 2 Real Application Clusters.
Extended partition
Logical volume
OCR
4/70
Implementation Roadmap
Technical Knowledge
Clusters are different to single server systems and require specific skills in terms of implementation and administration. This is also true for Oracle 10gR2 RAC Clusters running on Windows. Many customers run single instance systems for many years and know their systems very well. But most do not have enough technical knowledge to implement and run a RAC system. It is essential to build up that knowledge and make yourself familiar with that new technology. This will take time, so start as early as possible.
Evaluation
In Oracle RAC environments with two or more nodes the hardware configuration is different compared with single server systems. The most important differences are the requirement of a shared storage system and local disks. Also the number of network interfaces and switches is usually higher than in single server systems. Take time to evaluate the hardware components and check if they meet all requirements for running RAC. This will avoid misunderstandings and trouble later on.
Pre-Installation
Before starting an installation of the whole software stack to run Oracle RAC ensure you have a detailed plan of how your configuration should look like. E.g. required IP addresses, sub net masks, default gateway, bind order of network interface cards, DNS, configuration of network switches and vlans, disk layout, volume sizes and usage, drive letters or symbolic links that have to be used, swap space configuration and much more.
Installation
An installation of RAC on a Windows cluster consists of multiple steps. Each step of the installation should be finished, checked and tested meticulously before proceeding with the next step. Overlooking wrong or missing configuration steps will very likely cause problems during the later steps.
Testing
When the installation of the whole Windows cluster with Oracle RAC is done it is necessary to test your configuration before going live. Create a detailed test plan. This plan should include tests for hardware failures, software failures, application and load tests and backup and recovery scenarios. Test examples are documented in a later chapter Testing. Going live tests should take weeks not days!
5/70
Prerequisites
New Cluster Hardware
New cluster hardware must be provided in order to set up a new RAC environment. Storage Each node of the cluster must have its own local disks attached for Operating System and Oracle Clustersoftware. The cluster must have shared disks attached to each node for the Database and Oracle RDBMS software. Node 1 Node 2 Node N
Fiberchannel Switch
Shared Storage
Each node requires at least 2 NICs: In an Oracle RAC environment, database instances communicate with each other using a dedicated private network called Cluster Interconnect. This private network requires at least Gigabit Ethernet, and a dedicated EthernetSwitch must be used to connect each node to this private network. OCFS will also use this private network for synchronization purposes. Two teamed NICs are recommended in order to ensure that the cluster interconnect still works even if one connection fails. This requires two switches, which must be connected with each other in order to detect a failed connection. The second NIC is required for the public network from the RAC point of view. It should be used for all other networking needs like connecting SAP application servers to the DB in 3-tier configurations or connecting front-end users to the application servers in 2-tier configurations. One or more additional NICs may be required when MSCS is used to provide high availability for the SAP central instance.
6/70
Node 1
Node 2
Node N
Hardware Configuration
Storage
The required number and size of shared disks must be discussed with the hardware vendor. This depends on customers requirements. The storage devices should be dual attached to each server in order to lower the risk of a single path failure. A high available connection to the storage devices can be provided in conjunction with appropriate drivers (e.g. EMC Powerpath). As a general rule there should be: Three extended partitions (each >=500MB) for the Oracle Cluster Ready Service (OCW) voting disks. These should be distributed over multiple physical disks. Two extended partitions (each >=500MB) for the Oracle Cluster Repository (OCR). These should be distributed over multiple physical disks. One extended partition for Oracle HOME (>=4GB) At least one extended partition for the database files (depends on the size of the database)
7/70
Network
Network Interfaces Proper configuration of the network is one of the most important and most difficult tasks of the whole cluster configuration process. Extreme care and attention must be taken when selecting and configuring network interface cards and configuring network protocols and services. Furthermore, newly configured clusters must be extensively tested and verified in order to ensure that all components are working properly with each other. Incorrect or incomplete network configuration can be very hard to diagnose and might cause serious issues like hardware crashes, hangs or data loss!
8/70
For Windows 2003 Server, Microsoft recommends disabling IP media sense policy. Please refer to Microsoft Knowledge Base article # 239924 for more information. Although using teamed NICs is recommended in order to ensure a reliable cluster interconnect, extreme care should be taken when using teamed NIC configurations. Not all NIC teaming solutions might be as stable and welltested as you might expect! Only solutions of proven reliability (e.g. NICs of the Intel PROSet family) should be used for teaming NICs. Even then, the implementation can be finicky. If any network problems arise, disable network teaming and make sure the network is working properly without it. If firewall software is installed on the cluster nodes, it should be disabled. Care should be taken when installing MS Windows Service Packs. Service packs might add new security features, such as an integrated firewall, that might prevent cluster communications from working properly, thus causing serious problems! It is strongly recommended that you use a dedicated server as a firewall between the cluster nodes and the outside world instead of a personal firewall solution. If there is antivirus software installed on the cluster nodes, ensure that it does not affect network communications. Many modern antivirus solutions also install network filter drivers that can interfere with proper networking. It is
9/70
strongly recommended that you do not install any antivirus software on the cluster nodes and that you scan all software to be installed on another PC dedicated for virus scanning. Use human-readable names for your network interface like Public, Private, Interconnect etc. Never use non-alphanumeric characters or special characters in their names. Allowed are A-Z, a-z and 0-9. If this rule is ignored, you cannot install Oracle Clusterware successfully!
Please also refer to "Server Clusters: Network Configuration Best Practices for Windows 2000 and Windows Server 2003" at http://www.microsoft.com/technet/prodtechnol/windowsserver2003/technologies/clus tering/clstntbp.mspx
TCP/IP Configuration
The private network to be used for the cluster interconnect should be a dedicated switched (and if possible redundant) Gigabit Ethernet network. A sample network configuration is shown below: Node / NIC 1/1 1/2 2/1 2/2 IP-Address 1.1.1.1 IP for public network 1.1.1.2 IP for public network Subnet Mask 255.255.255.0 255.255.255.0
Do not specify a default gateway for private interconnect. Only one default gateway must be configured - usually on the public network.
System Configuration
Operating System
Windows 2003 Server Standard or Enterprise Edition must be used on all nodes. Make sure that the latest Windows service packs and patches have been installed on all nodes. Use the same users and passwords on all cluster nodes. This is required in order to be able to copy files from one node to another during software installation. It is highly recommended that you use domain users only and that you add them to the required local groups. See Oracle Administrator Groups.
10/70
Tuning OS Memory
On Windows 2003 Server operating systems, the memory pool sizes differ greatly when using /3GB /PAE /AME switches in boot.ini compared to when these switches are not used. Kernel Memory without the /3GB switch: Non-paged Pool Memory Max =~ 256MB Paged Pool Memory Max =~ 332MB Free System PTEs =~ 450MB Kernel Memory with the /3GB switch: Non-paged Pool Memory Max =~ 128MB Paged Pool Memory Max =~ 256MB Free System PTEs =~ 64MB
11/70
As you can see, the pool sizes are significantly reduced when using the /3GB switches. The free system PTEs in particular are reduced dramatically. This can cause several problems in RAC environments. For systems using the /3GB switches, you should monitor free system PTEs using perfmon to ensure that the number never drops below 20000. If the number of free system PTEs drops below 20000, you may have to deal with database instance crashes due to insufficient free system PTEs. It is therefore recommended that you use Windows 2003 Server, which supports the /userva switch in boot.ini. Please refer to Microsofts support page and Knowledge Base to find out if it is supported or not. The /userva switch reduces the 3072MB available to user processes to the given value and provides the memory gained to the free system PTE pool. The recommended boot.ini parameters for such installations are: /3GB /PAE /AME /Userva=3008 Please note that this reduces the available memory for user processes by 64MB and gives the memory to the free system PTEs. The free system PTEs should still be monitored to ensure that this reduction was enough, especially if other PTEconsuming applications are also running on the same cluster node. Please also refer to the following articles and notes for further information: MS Knowledge Base #316739 How to use the /userva switch with the /3GB switch to tune the User-mode space to a value between 2 GB and 3 GB #810371 Using the /Userva switch on Windows Server 2003-based computers that are running Exchange Server Oracle Metalink #297498.1 Resolving Instance Evictions on Windows Platforms Due to OS 10055 Errors
Storage, Disks
OCW for Windows is installed together with OCFS and must be installed in a separate Oracle Home on local disks, e.g. C:\oracle\ohcrs102. OCW requires Voting disk volumes and Cluster Repository disk volumes. Three voting disk volumes and two volumes are recommended for the cluster repository (one is used as a mirror). These must be placed on OCFS volumes as described later. All volumes must be created in extended partitions on a basic disk. Dynamic disks are not supported! All disk volumes used by Oracle Clusterware require drive letters! For disks storing Oracle binaries and database files, extended partitions must be created on a basic volume (not a dynamic volume) on each disk. All of
12/70
these partitions must be formatted using the ocfsformat tool, discussed later. OCFS also supports mount points for OCFS volumes. They can also be mixed with volumes with drive letters. It is NOT recommended that you create any OCFS volumes manually before OCW is installed properly!
Before starting to install OCW, create the required volumes in the Disk Administrator of Windows. Do NOT assign drive letters or mount points for them and do NOT format the volumes. Drive letters are assigned during OCW installation. The volumes will be formatted during OCW installation. Drive letters that have already been assigned before OCW installation will not be available for use as voting disks or home/mirror of the cluster repository. After the volumes have been created, it is highly recommended that you reboot all the cluster nodes to ensure that every node will see the changes made by the Disk Administrator from one of the nodes. E.g.: Purpose OCW Home Oracle HOME Oracle Database Oracle Database Oracle Database OCW voting disk volume 1 OCW voting disk volume 2 OCW voting disk volume 3 OCW cluster repository disk volume OCW cluster repository disk volume (mirror) Oracle Database SAP
Disk/Partition Physicaldisk0/0 Physicaldisk1/0 Physicaldisk2/0 Physicaldisk3/0 Physicaldisk4/0 Physicaldisk1/1 Physicaldisk2/1 Physicaldisk3/1 Physicaldisk3/1
Location C:\oracle\ohcrs102 M:\oracle\<sid>\102 N:\oracle\<sid>\sapdata. O:\oracle\<sid>\origlog. P:\oracle\<sid>\mirrlog. Q:\ R:\ S:\ T:\
FS-Type* NTFS OCFS OCFS OCFS OCFS OCFS OCFS OCFS OCFS
Physicaldisk4/1
U:\
OCFS
Physicaldisk5/0 Physicaldisk6/0
C:\oracle\<sid>\sapdatax W:\usr\
OCFS Volume mounted into an NTFS directory NTFS (it is not supported to run SAP from OCFS)
* If the SAP system and the database are to be installed on a cluster node from scratch and not copied from a different server to one of the cluster nodes, some additional installation steps apply. In order to avoid problems with incompatibilities between sapinst and OCFS, you must switch file systems at the relevant installation step by backing up the volume, dropping the volume and then reformatting it with the appropriate file system.
13/70
Network Interfaces
Use static IP addresses for the cluster interconnect (private network), the public network, the VIP,
and make sure that each cluster node can be reached from the other nodes by a public hostname, a private hostname, a VIP hostname.
The hosts file under c:\windows\system32\drivers\etc should resolve the hostnames. E.g. 127.0.0.1 192.168.228.1 192.168.228.50 192.168.228.51 192.168.228.52 192.168.228.53 192.168.228.54 192.168.228.55 192.168.22.50 192.168.22.51 192.168.22.52 192.168.228.60 192.168.22.60 localhost oracx3 w2kracna w2kracna.vmware w2kracnb w2kracnb.vmware w2kracna-vip w2kracna-vip.vmware w2kracnb-vip w2kracnb-vip.vmware w2kracnc w2kracnc.vmware w2kracnc-vip w2kracnc-vip.vmware w2kracna-priv w2kracnb-priv w2kracnc-priv w2kdom w2kdom.vmware w2kdom-priv w2kdom-priv.vmware
Do not start OCW software installation until all nodes have been properly configured. For production systems, you must use teamed, fault-tolerant NICs and redundant switches to ensure that the RAC interconnect is highly available. Otherwise, a simple switch failure might cause one or more nodes to fail. If the network interface cards support interrupt throttling, you should keep the hardware default. This will usually prevent very high interrupt rates during high network loads in terms of many but small packets, as well as reduce the load on PCI buses while not significantly delaying the delivery of the data to be transferred (small latency).
14/70
These assumptions have been made because there is no standard installation procedure for all of these components. There are some obstacles that will cause the installation to fail, e.g. SAP installation tools do not know anything about OCFS. They all assume NTFS as the underlying file system to be used and try to set NTFS file system permissions (ACLs) for some Oracle directories. As OCFS does not support ACLs, the whole setup procedure will fail. To avoid this and other problems, there is no direct installation path. You have to install an SAP System and a single-instance Oracle database on NTFS and move all Oracle files (Oracle Software and Oracle Database) to OCFS volumes later. For a completely new system, first install the SAP System with the Oracle database as described in SAP installation guides, and then continue with the migration steps described in this document. If the source system is initially installed on one of the cluster nodes, proceed as follows in order to avoid these obstacles: 1. Check all prerequisites. 2. Install Oracle Clusterware (OCW) while ALL (!!!) nodes are up and running on a local disk, e.g. C:\ 3. Create an OCFS volume and install the Oracle database software on this volume while all nodes are up and running. This will ensure that the Oracle Universal Installer makes important registry and environment settings. 4. Backup the whole volume. 5. Drop the OCFS volume using ocfsutil while all nodes are up and running. Check that all nodes dropped it properly by trying to access it. 6. Shut down all the cluster nodes, except the one where the installation will be performed. 7. Reformat the volume with NTFS and create the volumes needed for the database and the SAP system. 8. Restore the backup from step 3. 9. Perform a standard SAP installation. 10. Back up all volumes (Oracle database software, Oracle database, SAP System) and drop all NTFS partitions you created in step 7 except the one where the SAP System was installed. 11. Create OCFS volumes for all NTFS volumes dropped in step 10. 12. Restore all files from the previous backup(s). Keep the drive letters assigned during the whole setup! Never boot another node while one of the shared disk volumes contains an NTFS file system. This would cause data corruption! To switch an NTFS volume to an OCFS volume, proceed as follows: 1. 2. 3. 4. Delete the volume using Disk Administrator Create the volume using Disk Administrator without formatting it Reboot all nodes and check that drive letters have been assigned correctly Format the volume on one node using ocfsformat
15/70
To switch an OCFS volume to a NTFS volume, proceed as follows: 1. Use ocfsutil to delete the volume cluster wide (all nodes should be up and running) and check that the volume is now inaccessible from all the nodes. 2. Shut down all nodes except one in order to prevent simultaneous access from more than one node. 3. Format the volume with NTFS.
The installation and upgrade of each component are described in the following sections.
16/70
The next screen shows the result of some prerequisite checks. Do not continue if any of the checks fail, otherwise the installation may not work properly.
17/70
Specify the cluster configuration. Ensure that public, private and virtual hostnames are correct.
18/70
Define how to use the installed NICs. If more than two NICs are displayed, e.g. when using NAS (network attached storage) or SAN (storage area network) solutions, click Edit and select Do not use for these NICs.
The next screen shows all volumes available for use by OCW. Select a volume and press Edit to define how this volume shall be used. Please note that this screenshot was taken on a demo system that uses only one voting disk and two OCR disks. In a production environment, three voting disks are highly recommended.
19/70
Choose Format with OCFS, select the drive letter to assign, select Place voting disk on this partition, and press OK
20/70
Specify that you want to use this volume as the primary location for the OCR.
21/70
Specify that you want to use this volume as the mirror location for the OCR.
22/70
One of the following warning messages will appear if you placed the primary cluster repository and its mirror on the same physical disk, or if you have configured just one voting disk. This is not recommended for production systems!
23/70
After all files have been copied, the installer runs a number of configuration assistants. In some situations Virtual Private IP Configuration Assistant will fail as shown below. If this is the case, press OK and NEXT to finish the installation. A second error message will appear saying that one of the configuration assistants had a problem.
24/70
25/70
If the Virtual Private IP Configuration Assistant fails, then it should be run manually. Open a command prompt window and start VIPCA by calling vipca.bat. It is located in the bin directory of OCWs Oracle Home, e.g. c:\oracle\ohcrs102\bin\vipca.bat. Configure VIP as shown below.
26/70
27/70
28/70
Upgrade
After the installation, upgrade the Oracle Clusterware to the latest release shipped with the latest patch set. Follow the instructions in the release information document on how to do this. Usually, you just have to stop the running CRS on each node by calling crsctl stop crs before starting the upgrade of OCW components. Note that stopping CRS may take a few minutes. Check the absence of crsd.exe and evtd.exe in the Windows Task Manager. If one of these processes did not terminate after 5 minutes it is necessary to kill them using Windows Task Manager before proceeding with the upgrade. The screenshots below demonstrate the mandatory upgrade from OCW 10.2.0.1 to 10.2.0.2!!!
29/70
30/70
Important: After installing OCW patches run the post-patch batch file patch102.bat on every node. This may take a while. Do not run the script in parallel on more than one node. E.g. C:\oracle\crs102\install\patch102.bat
Oracle CFS
As described earlier, CRS voting disks, primary OCR and mirror OCR locations are defined and created using the OCW installation tool. OCFS volumes for Oracle database software and all files belonging to the database should be created manually.
OCFS IO-Modes
OCFS supports DirectIO-Mode and NondirectIO-Mode for volumes. Rules for Formatting Volumes with OCFS Please take care when deciding how to format a volume. There are some restrictions on what may be stored depending on how a volume was formatted. Type of data stored on OCFS volume ORACLE_HOME (Oracle executables etc.) Datafiles Archivelogfiles (saparch or oraarch) DB alertfiles and tracefiles (saptrace) DB controlfiles Online Redo Logfiles IO-Modes allowed non-direct non-direct Direct Direct non-direct non-direct
To format a volume for DirectIO-Mode, use /d. To format a volume for NondirectIO-Mode (default), just omit the /d.
31/70
Formatting Volumes
Ocfsformat is used to format new OCFS volumes. The table below shows how to use Ocfsformat for different drive letters / links or DirectIO / NondirectIO modes: Volume configuration Command / Example Assign a drive letter to a ocfsformat /l <driveletter>: /c <clustersize in kb) volume with NondirectIO-Mode /v <volumelabel> /f e.g. ocfsformat /l e: /c 8 /v sapdata1 /f Assign a drive letter to a volume with DirectIO-Mode ocfsformat /l <driveletter>: /c <clustersize in kb) /v <volumelabel> /f /d e.g. ocfsformat /l e: /c 8 /v sapdata1 /f /d Assign an NTFS link s to a ocfsformat /l <path to mountpoint> /c <clustersize volume with NondirectIO-Mode in kb) /v <volumelabel> /f e.g. ocfsformat /l c:\oracle\T01\sapdata1 /c 8 /v sapdata1 /f Assign an NTFS link to a volume with DirectIO-Mode ocfsformat /l <path to mountpoint> /c <clustersize in kb) /v <volumelabel> /f /d e.g. ocfsformat /l c:\oracle\T01\sapdata1 /c 8 /v sapdata1 /f /d
Always specify 8 KB as the cluster size to be used. Attention If a disk was already formatted with ocfsformat and needs to be formatted again, you MUST dismount the volume on the cluster first! Otherwise the ocfsformat will not format the disk properly and might cause corruptions in the future. It will not show an error, but the disk will not be usable if you forget this step! Use ocfsutil to dismount the volume on the cluster and then ocfsformat to format it. Again: Read Appendix A: Oracle Cluster File System for Windows (OCFS) before starting with OCFS!
32/70
Migration
If there is an Oracle Home installed on the target system, this will have to be removed first. During the installation described in the next section, some registry entries are made on all of the cluster nodes. They are required to successfully run RAC on all the nodes. It is assumed that OCW is already installed and upgraded to the latest patch set.
If you are using Oracle RDBMS CDs shipped by SAP, you will have to execute setup.exe directly. SAPs documentation says to use a setup script that invokes
33/70
setup.exe with a special response file. Do not start setup.exe in this way because setup based on the response file will not install the RAC option. As already mentioned, it is assumed that a database that can be copied to the cluster already exists on a source system, or that a new database will be installed on one of the nodes before the migration starts. Usually you might want to run the central instance (probably highly available by using MS-Cluster) on the cluster together with the database. If this is the case, you will have to install all SAP/CI related files on a separate NTFS volume as a cluster resource later. Upgrade Get the latest patch set for Oracle 10gR2 and install it as described in the patch set note that comes with it.
Enabling RAC
Undo Tablespaces
Create one undo tablespace for each node on the first instance. The undo tablespaces should be as large as your current PSAPUNDO tablespace.
34/70
E.g.
create undo tablespace PSAPUNDO1 datafile 'J:\oracle\T01\sapundo1\undo_1\undo1.data1' size 100M autoextend on; create undo tablespace PSAPUNDO2 datafile 'J:\oracle\T01\sapundo2\undo_2\undo2.data1' size 100M autoextend on;
You should add the same number of redo log groups and mirrors as in a single node environment. The redo log sizes should also be the same. If you have plenty of disk space, its a good idea to use this additional disk space for more online redologs. This will reduce the chance that the system requires archived redologs during crash recovery. For all new redolog groups been added, the corresponding thread has to be enabled: alter database enable thread 2;
2.
If you are already using a spfile.ora, you will have to transfer it to a pfile in order to be able to make the necessary changes for RAC: e.g.
create pfile = init_work.ora from spfile;
3.
Modify the init_work.ora" and add the following lines for each instance:
35/70
<sid><instancenumber>.instance_name='<sid><instancenumber>' <sid><instancenumber>.instancenumber=<instancenumber> <sid><instancenumber>.local_listener=<listener_name> <sid><instancenumber>.thread=<threadnumber> <sid><instancenumber>.undo_tablespace=<nameofundotablespace> E.g. assuming that your SID is T01, you have 2 instances:
*.cluster_database=TRUE T011.instance_name='T011' T012.instance_name='T012' T011.instance_number=1 T012.instance_number=2 T011.local_listener='LISTENER_T01_W2KRACNA.world' T012.local_listener='LISTENER_T01_W2KRACNB.world' T011.thread=1 T012.thread=2 T011.undo_tablespace='PSAPUNDO1' T012.undo_tablespace='PSAPUNDO2' T011.remote_listener='REMOTE_LISTENER_T01_W2KRACNA.world' T012.remote_listener='REMOTE_LISTENER_T01_W2KRACNB.world'
4.
Enable automatic undo management by setting undo_management=auto 5. Save the modified init_work.ora and create a spfile.ora from it: Create spfile from pfile = init_work.ora Please note that it is not possible to start the database until Oracle Administrator Groups and the Windows services for the instances have been created and the SQL*Net and Services configuration is completed. This is described in the following sections.
36/70
Environment Variables
On Node 1: Set ORACLE_SID to <SID>1 Set NLS_LANG to the right value for your system. E.g. AMERICAN_AMERICA.WE8DEC for a Non-Unicode system. Set DBS_ORA_TNSNAME to the service name to which the application server should connect. E.g. T01_D00 (as defined in tnsnames.ora) On Node 2: Set ORACLE_SID to <SID>2 Set NLS_LANG to the right value for your system. E.g. AMERICAN_AMERICA.WE8DEC for a non-Unicode system. Set DBS_ORA_TNSNAME to the service name to which the application server should connect. E.g. T01_D01 (as defined in tnsnames.ora)
37/70
Make sure TNS_ADMIN is not set before starting netca! Application Servers of course may use their own tnsnames.ora and sqlnet.ora to connect to the database. While the listener name was OracleTNSListener<SID> with Oracle 9i, Oracle 10g uses different node-specific names for the listener on each node. With Oracle 9i, the server provided high availability through RAC and the client decided which RAC instance to connect to by having multiple entries in the address list in tnsnames.ora. Oracle 10g introduces services to which a client connects. The client does not decide to which database instance it will connect based on the supplied address list in tnsnames.ora and which instances are available during connect time. Instead it connects to a service that can run on one or more nodes. Although it is possible not to use services, it is highly recommended to do so. A configuration without services is not discussed in this whitepaper.
Oracle Net Configuration Assistant (netca) Run netca to create a listener on all cluster nodes. As per convention, the names should be LISTENER_<SID>_<hostname>. Furthermore, Netca not only creates the required entries in listener.ora, it also creates the corresponding resources in the OCR. The screenshots below show a sample configuration:
38/70
39/70
As already mentioned above, the convention for listener names is LISTENER_<SID>_<hostname. Only enter LISTENER_<SID> here because netca will append the hostnames automatically!
40/70
41/70
When netca has finished configuring listeners, your listener.ora configuration file should look like this: Listener.ora This is a sample configuration:
SID_LIST_LISTENER_T01_W2KRACNA = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = R:\oracle\T01\102) (PROGRAM = extproc) ) ) SID_LIST_LISTENER_T01_W2KRACNB = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = R:\oracle\T01\102) (PROGRAM = extproc) ) ) LISTENER_T01_W2KRACNA = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracna-vip)(PORT = 1527)(IP = FIRST)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.228.50)(PORT = 1527)(IP = FIRST)) ) )
42/70
LISTENER_T01_W2KRACNB = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracnb-vip)(PORT = 1527)(IP = FIRST)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.228.51)(PORT = 1527)(IP = FIRST)) ) )
43/70
### SERVICE ENTRY FOR SAP CENTRAL INSTANCE ### T01_D00.WORLD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracna-vip)(PORT = 1527)) (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracnb-vip)(PORT = 1527)) ) (CONNECT_DATA = (SERVICE_NAME = T01_D00) (GLOBAL_NAME = T01.WORLD) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) ) ) ) ### SERVICE ENTRY FOR CONNECT TO INSTANCE T011 ### T011.WORLD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracna-vip)(PORT = 1527)) (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracnb-vip)(PORT = 1527)) ) (CONNECT_DATA = (SERVICE_NAME = T011) (GLOBAL_NAME = T01.WORLD) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) ) ) ) ### SERVICE ENTRY FOR CONNECT TO INSTANCE T012 ### T012.WORLD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracna-vip)(PORT = 1527)) (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracnb-vip)(PORT = 1527)) ) (CONNECT_DATA = (SERVICE_NAME = T012) (GLOBAL_NAME = T01.WORLD) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) ) ) ) ### DEFAULT SERVICE ENTRY FOR CONNECT TO ANY INSTANCE ### T01.WORLD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracna-vip)(PORT = 1527)) (ADDRESS = (PROTOCOL = TCP)(HOST = w2kracnb-vip)(PORT = 1527)) ) (CONNECT_DATA = (SERVICE_NAME = T01) (GLOBAL_NAME = T01.WORLD)
44/70
(FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) ) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )
Putting the Database and Instances under CRS control After completing the steps described above, the database instances can be started using sqlplus. The next step is to put the database and database instances under CRS control. CRS will then monitor these resources and can take actions if one or more of these resources fail. 1. Add the database resource to the OCR e.g. srvctl add database -d T01 -o R:\oracle\T01\102 2. Add the database instances to the OCR e.g. srvctl add instance -d T01 -i T011 -n w2kracna srvctl add instance -d T01 -i T012 -n w2kracnb 3. Activate the database resource e.g. srvctl start database -d TST 4. Check that the database resource and the instances have come online. e.g. crs_stat t
45/70
Name Type Target State Host ----------------------------------------------------------------------------------ora....11.inst application ONLINE ONLINE w2kracna ora....12.inst application ONLINE ONLINE w2kracnb ora.T01.db application ONLINE ONLINE w2kracna ora....NA.lsnr application ONLINE ONLINE w2kracna ora....cna.gsd application ONLINE ONLINE w2kracna ora....cna.ons application ONLINE ONLINE w2kracna ora....cna.vip application ONLINE ONLINE w2kracna ora....NB.lsnr application ONLINE ONLINE w2kracnb ora....cnb.gsd application ONLINE ONLINE w2kracnb ora....cnb.ons application ONLINE ONLINE w2kracnb ora....cnb.vip application ONLINE ONLINE w2kracnb Services After configuring SQL*Net, the services have to be defined in OCR. For services to which SAP application servers will connect, our naming convention is: <SID>_<sapinstancename>, e.g. T01_D00 as service name for the central instance of T01. Each Oracle RAC instance must have a service named like the instance itself. If the instance name is T011, then the service name must be T011. This service must be configured to run on this instance only. E.g. srvctl add service -d T01 -s T011 -r "T011" srvctl add service -d T01 -s T012 -r "T012" Each SAP instance must have its own service for instance T01_D00, for the central instance of T01, T01_D01, for an additional application instance and so on. Never configure a service for SAP instances to run on more than one Oracle instance at the same time! This can cause problems in the SAP system such as aborted transactions, performance issues etc. E.g. Lets assume service T01_D00 should be run preferably on instance T011 but may also run on instance T012. srvctl add service d T01 s T01_D00 r T011 a T012 Once you have defined the services, start them with: Srvctl start service d <databasesid> -s <servicename> E.g. Srvctl start service d T01 s T011 Srvctl start service d T01 s T012 Srvctl start service d T01 s T01_D00
46/70
R:\oracle\T01\102\NETWORK\ADMIN>crs_stat -t Name Type Target State Host -----------------------------------------------------------ora....011.srv application ONLINE ONLINE w2kracna ora....T011.cs application ONLINE ONLINE w2kracna ora....11.inst application ONLINE ONLINE w2kracna ora....012.srv application ONLINE ONLINE w2kracnb ora....T012.cs application ONLINE ONLINE w2kracnb ora....12.inst application ONLINE ONLINE w2kracnb ora....011.srv application ONLINE ONLINE w2kracna ora...._D00.cs application ONLINE ONLINE w2kracna ora.T01.db application ONLINE ONLINE w2kracna ora....NA.lsnr application ONLINE ONLINE w2kracna ora....cna.gsd application ONLINE ONLINE w2kracna ora....cna.ons application ONLINE ONLINE w2kracna ora....cna.vip application ONLINE ONLINE w2kracna ora....NB.lsnr application ONLINE ONLINE w2kracnb ora....cnb.gsd application ONLINE ONLINE w2kracnb ora....cnb.ons application ONLINE ONLINE w2kracnb ora....cnb.vip application ONLINE ONLINE w2kracnb
Reboot the cluster nodes and check that all services start properly. From each node, use the tnsping utility to ping all configured services (e.g. tnsping T01, tnsping T011, tnsping T012, tnsping T01_D00). Try to connect to every service using sqlplus on each node (e.g. sqlplus /@T01, sqlplus /@T011, sqlplus /@T012, sqlplus /@T01_D00). Check that database instances stop and start as expected using srvctl utility, which is described in the next section. Check that relocating your services to where SAP connects to works as expected. Check the alert logs for errors.
47/70
Srvctl start service d <sid> -s <service> Srvctl stop service d <sid> -s <service> Srvctl relocate service d <sid> -s <service> -i <currentinstance> -t <newinstance> -f
Crs_stat t
Displays a table of all CRS resources with their current state and their target state Refer to CRS documentation for a complete reference.
48/70
Backing up OCR
Backing up the Oracle Cluster Repository is very important. Losing OCR will definitely mean unplanned downtime. Please refer to the standard Oracle documentation Oracle Real Application Clusters Administrators Guide 10g Release 2 for further information.
Backup
The backup strategy to be implemented may become quite complicated depending on the customers requirements. There are currently two tested and supported ways of backing up. Split-mirror (e.g. by using EMCs BCV technology) for the database together with br*tools and Legato Networker for the archives BR*Tools with Oracle Recovery Manager (RMAN). This is the recommended option for most customers where the backup time is not critical because of the size of the database. It is very important to understand that not every backup tool for backing up Oracle databases can work with Oracle databases on OCFS! Most backup tools assume that the database resides on NTFS and not on OCFS. A sample BR*Tools configuration for the first option can be found in Appendix C: BR*Tools Sample Configuration for Legato Networker. Additional scripts are required to successfully implement a backup method. The customers storage partner should be involved in the implementation of these scripts. As a general rule, each backup and restore scenario that is not based on BR*Tools with RMAN has to be treated as an implementation project which may require development of scripts and will require testing.
49/70
Testing
Failures
One of the most important things before going into production with a new cluster environment is testing. Only by testing the behaviour of the cluster by simulating hardware and software failures ensures that it will react as expected when a real failure occurs. The following two sections describe some basic tests that should be done. It is highly recommended not to go into production if those tests do not show the expected results. The list is not complete and customers may think about additional tests that have to be done for their specific cluster environment and HA requirements. Hardware Failures
Action Disconnect one cluster node from the switch by unplugging all network cables of the Oracle Interconnect. If you have NIC teaming active (redundant interconnect) also check what happens when you unplug only one network cable. Expected Behaviour In a two node RAC cluster one of both nodes should crash. In a three or more node RAC cluster the node where you did unplug the network cables should crash. In both situations the VIP should move to one of the remaining nodes. One of the remaining
50/70
instances should do the crash recovery for the crashed node. Services should move to the remaining nodes as defined.
(Multiple) Switch Failures with all nodes loosing their connection
Action Turn off or disable the network switch of the Oracle Interconnect. Expected Behaviour Regardless of the number of cluster nodes all nodes except one should crash. The remaining node should takeover the VIPs of the crashed nodes, perform a crash recovery and provide the database services as defined.
Storage Failures
One cluster node looses its storage connection
Action Unplug one of the cluster nodes from the storage. If you have redundant paths to the storage also check what happens when you unplug only one (fiberchannel-) cable. Expected Behaviour The node should crash without automatic reboot. Automatic reboot may be a configuration option in the BIOS of the node.
All cluster nodes lose their storage connection
Action Unplug all cluster nodes from the storage or turn off all switches to the storage. Expected Behaviour All cluster nodes should crash. After reconnecting the nodes to the storage and rebooting all the nodes the database should be available as expected. Software Failures
Shutdown abort
Action
The cluster node should stay up and running. One of the remaining Oracle instances should do the crash recovery. All services of the stopped instance should move to the previously defined remaining instances. crs_stat utility should display OFFLINE as the target state for the stopped instance.
Kill oracle.exe
Action
The cluster node should stay up and running. One of the remaining Oracle instances should do the crash recovery. All services of the killed instance should move to the previously defined remaining instances. CRS should start the killed instance
51/70
automatically. All services that moved to other instances should stay there. They have to be relocated manually.
52/70
have a number of update-processes on each SAP instance turn off update-dispatching and use the local update-processes
To turn off update dispatching, set rdisp/vb_dispatching to 0 as described in SAP note #62203. Also, set rdisp/vb_name to the name of the local instance (e.g. rdisp/vb_name = app1_C11_00).
It is highly recommended that you set this event for production systems.
shut down properly) or whether the volume has simply been disabled because the administrator is doing maintenance work.
Mount Points, Drive Letters OCFS only supports one mount point per volume. It can either be a drive letter or linked from an NTFS partition. The mount point is assigned by the Disk Administrator and stored on each OCFS volume during formatting. It is not sufficient to change a mount point in the Disk Administrator only. You must change it using ocfsutil. Although it is better not to change mount points once the volume has been formatted as this may create an inconsistent view onto the volumes from different nodes. NTFS links to OCFS volumes should be preferred over drive letters. Internal Metadata for Multiple Cluster Nodes One of the most important things to know about OCFS is that it needs some extra disk space for its node specific metadata. This node specific metadata is usually allocated
54/70
only once when a node mounts a volume the first time and will stay allocated during the whole lifetime of the file system on the volume. It is very important that every node that will ever need to access a volume has to immediately mount it at least once after the volume was formatted and before any data is written to it. This guarantees that every node has allocated its metadata before the volume is filled up with data. If you fill up the volume with data you may never be able to mount the volume on a new cluster node later on.
OCFS Administration
Be sure to back up all data so that you can restore the system in case something goes wrong. Always do critical maintenance tasks, such as adding or removing volumes, during offline hours. Setting Volumes Offline OCFS volumes that are in use can be set offline with ocfsutil. Setting a volume offline results in the volume being dismounted by the file system and the offline state being written to the volume in order to prevent automatic (re-) mounting (which occurs during reboot and on several other events). Although the volume will be set offline on the node on which ocfsutil was executed, the volume stays online on all the other nodes. This is true even if the volume already contains offline state. The reason is that there is no automatic function that dismounts the volumes on the other nodes. You must therefore take the volume offline on EACH node by executing ocfsutil on every node. Setting Volumes Online As discussed before, setting a volume offline will prevent it from being mounted by OCFS because the offline state is stored on the volume itself. You can initiate a mount by using ocfsutil to set a volume online. This just marks the volume with an online state and the file system driver will mount it when it receives the next mount request from the operating system (usually during boot, on first access or manually with the mountvol command). Adding a new OCFS Volume If the new volume is already available in the Disk Administrator of all cluster nodes and the drive letter or link is already assigned consistently on all nodes, you can just use ocfsformat to format the volume. Otherwise create the volume in Disk Administrator and reboot all the nodes. After reboot, check that the drive letter or link has been assigned correctly and then format the volume using ocfsformat. Removing a Volume Before removing a volume using Disk Administrator, you must set a volume offline and delete it from OCFS usage.
55/70
1. Set the volume offline on all cluster nodes: ocfsutil /c OfflineVol /m <driveletter>: or <mountpoint> 2. Check that the volume has been offlined properly by trying to access it. Do this on all nodes. 3. Delete the volume from OCFS configuration: ocfsutil /c DeleteVol /m <driveletter>: or <mountpoint>
Appendix B: FAQ
The following list of Questions and Answers is a compilation of some questions from partners and customers that want to implement or already have implemented SAP with Oracle RAC on Windows. Q: What are the differences between OCFS for Windows and OCFS1/OCFS2 for Linux ? A: The filesystems are completely different! While OCFS on Linux is available as two different versions OCFS1 and OCFS2, OCFS on Windows is available as OCFS 9.2 and OCFS 10.2. All filesystem versions are incompatible with each other, so basically no volume created with one filesystem type can be mounted using another filesystem driver. Although OCFS 9.2 can be upgraded to 10.2 this is not recommended. It is not possible to use different OCFS filesystems at the same time.
56/70
Q: Is it possible to install SAP (SAP binaries and Oracle database that is created by sapinst and loaded with R3load) on OCFS for Windows ? A: No! As described in one of the previous chapters sapinst does not know about any other filesystem than NTFS. OCFS does not support ACLs and the installation will fail if one tries to install directly to OCFS volumes. Q: Is it allowed or possible to share CRS home on an OCFS volume like on Linux ? A: No! On Windows CRS has to be installed on a local disk (e.g. C:\). Q: Is it possible to run more than one database on a RAC cluster ? A: Yes. As long as each database has its own ORACLE_HOME! It is not supported to share an ORACLE_HOME to run different databases, but multiple nodes have to share the ORACLE_HOME for the same database. Q: Is it possible to use symbolic links for those volumes that contain Oracle Cluster Repository (OCR) and voting disks? A: No. The standard installation of CRS does only support driveletters. Q: Is it possible to use symbolic links for ORACLE_HOME and database files ? A: Yes. This is described in an earlier chapter of this document. Q: Is it possible to re-install CRS ? A: Yes, but it is a little bit tricky to do it the right way! Before de-installing CRS using Oracle Universal Installer it is necessary to delete the OCFS volumes where CRS stores its OCR and voting files. The steps are: Stop CRS on every node. Use ocfsutil /c DeleteVol /m to delete the volumes. De-install CRS using Oracle Universal Installer. It is very important to delete the partitions first because otherwise the installation procedure will install and start OCFS, OCFS will mount the volumes and then the installation procedure will format the volumes while the volumes are already mounted. This would cause data corruption!!!
57/70
58/70
# default: %SAPDATA_HOME%\sapbackup backup_root_dir = B:\oracle\T01\sapbackup # stage root directory [<path_name> | (<path_name_list>)] # default: value of the backup_root_dir parameter stage_root_dir = B:\oracle\T01\sapbackup # compression flag [yes | no | hardware | only] # default: no compress = no # compress command # first $-character is replaced by the source file name # second $-character is replaced by the target file name # <target_file_name> = <source_file_name>.Z # for compress command the -c option must be set # recommended setting for brbackup -k only run: # "%SAPEXE%\mkszip -l 0 -c $ > $" # no default compress_cmd = "G:\usr\sap\T01\sys\exe\run\mkszip -c $ > $" # uncompress command # first $-character is replaced by the source file name # second $-character is replaced by the target file name # <source_file_name> = <target_file_name>.Z # for uncompress command the -c option must be set # no default uncompress_cmd = "G:\usr\sap\T01\sys\exe\run\uncompress -c $ > $" # directory for compression [<path_name> | (<path_name_list>)] # default: value of the backup_root_dir parameter compress_dir = B:\oracle\T01\sapreorg # brarchive function [save | second_copy | double_save | save_delete # | second_copy_delete | double_save_delete | copy_save # | copy_delete_save | delete_saved | delete_copied] # default: save archive_function = save_delete # directory for archive log copies to disk # default: first value of the backup_root_dir parameter archive_copy_dir = B:\oracle\T01\sapbackup # directory for archive log copies to stage # should contain <SID> subdirectory # default: first value of the stage_root_dir parameter archive_stage_dir = B:\oracle\T01\sapbackup # new database home directory for disk_copy | disk_standby # no default # new_db_home = H:\oracle\C11 # stage database home directory for stage_copy | stage_standby # default: value of the new_db_home parameter # stage_db_home = /oracle/C11 # original database home directory for split mirror disk backup # no default # orig_db_home = /oracle/C11 # remote host name # no default # remote_host = <host_name> # remote user name # default: current operating system user # remote_user = <user_name>
59/70
# tape copy command [cpio | cpio_gnu | dd | rman | rman_dd] # default: cpio tape_copy_cmd = cpio # disk copy command [copy | dd | rman] # default: copy disk_copy_cmd = copy # stage copy command [rcp | ftp] # default: rcp stage_copy_cmd = rcp # flags for cpio output command # default: -ovB cpio_flags = -ovB # flags for cpio input command # default: -iuvB cpio_in_flags = -iuvB # flags for cpio command for copy of directories to disk # default: -pdcu cpio_disk_flags = -pdcu # flags for dd output command # default: "obs=16k" # caution: option "obs=" not supported for Windows NT # recommended setting: # Unix: "obs=nk bs=nk", example: "obs=64k bs=64k" # NT: "bs=nk", example: "bs=64k" dd_flags = "bs=64k" # flags for dd input command # default: "ibs=16k" # caution: option "ibs=" not supported for Windows NT # recommended setting: # Unix: "ibs=nk bs=nk", example: "ibs=64k bs=64k" # NT: "bs=nk", example: "bs=64k" dd_in_flags = "bs=64k" # number of members in RMAN savesets [ 1 | 2 | 3 | 4 | tsp | all ] # default: 1 saveset_members = 1 # # # # # # # # # # # # # # # # # # # additional parameters for RMAN rman_channels and rman_filesperset are only used when rman_util rman_channels defines the number of parallel sbt channel allocations rman_filesperset = 0 means: one file per saveset - for non-incremental backups all files in one saveset - for incremental backups the others have the same meaning as for native RMAN rman_channels = 1 rman_filesperset = 0 rman_kbytes = 0 rman_readrate = 0 rman_maxopenfiles = 0 rman_setsize = 0 additional parameters for RMAN version 8.1 the parameters have the same meaning as for native RMAN rman_diskratio = 0 rman_pool = 0 rman_duplex = 0 | 1 | 2 | 3 | 4 rman_proxy = no | yes | only
# remote copy-out command (backup_dev_type = pipe) # $-character is replaced by current device address # no default copy_out_cmd = "dd ibs=8k obs=64k of=$"
60/70
# remote copy-in command (backup_dev_type = pipe) # $-character is replaced by current device address # no default copy_in_cmd = "dd ibs=64k obs=8k if=$" # rewind command # $-character is replaced by current device address # no default # operating system dependent, examples: # HP-UX: "mt -t $ rew" # OSF1: "mt -f $ rew" # AIX: "tctl -f $ rewind" # SINIX: "mt -f $ rew" # SUN: "mt -f $ rew" # NT: "mt -f $ rewind" rewind = "mt -f $ rewind" # rewind and set offline command # $-character is replaced by current device address # default: value of the rewind parameter # operating system dependent, examples: # HP-UX: "mt -t $ offl" # OSF1: "mt -f $ offline" # AIX: "tctl -f $ offline" # SINIX: "mt -f $ offline" # SUN: "mt -f $ offline" # NT: "mt -f $ offline" rewind_offline = "mt -f $ offline" # tape positioning command # first $-character is replaced by current device address # second $-character is replaced by number of files to be skipped # no default # operating system dependent, examples: # HP-UX: "mt -t $ fsf $" # OSF1: "mt -f $ fsf $" # AIX: "tctl -f $ fsf $" # SINIX: "mt -f $ fsf $" # SUN: "mt -f $ fsf $" # NT: "mt -f $ fsf $" tape_pos_cmd = "mt -f $ fsf $" # # # # # # # # # # # # # # # # # # # # mount backup volume command in auto loader / juke box used if backup_dev_type = tape_box | pipe_box caution: if successful, exit code 0 and no output! no default mount_cmd = "<mount_cmd> $ $ $ [$]" dismount backup volume command in auto loader / juke box used if backup_dev_type = tape_box | pipe_box caution: if successful, exit code 0 and no output! no default dismount_cmd = "<dismount_cmd> $ $ [$]" split mirror disks command used if backup_type = offline_split | online_split caution: if successful, exit code 0 and no output! no default split_cmd = "<split_cmd> [$]" resynchronize mirror disks command used if backup_type = offline_split | online_split caution: if successful, exit code 0 and no output! no default resync_cmd = "<resync_cmd> [$]"
61/70
# default: 1200M # recommended values for tape devices without hardware compression: # 60 m 4 mm DAT DDS-1 tape: 1200M # 90 m 4 mm DAT DDS-1 tape: 1800M # 120 m 4 mm DAT DDS-2 tape: 3800M # 125 m 4 mm DAT DDS-3 tape: 11000M # 112 m 8 mm Video tape: 2000M # 112 m 8 mm high density: 4500M # DLT 2000 10/20 GB: 10000M # DLT 2000XT 15/30 GB: 15000M # DLT 4000 20/40 GB: 20000M # DLT 7000 35/70 GB: 35000M # recommended values for tape devices with hardware compression: # 60 m 4 mm DAT DDS-1 tape: 1000M # 90 m 4 mm DAT DDS-1 tape: 1600M # 120 m 4 mm DAT DDS-2 tape: 3600M # 125 m 4 mm DAT DDS-3 tape: 10000M # 112 m 8 mm Video tape: 1800M # 112 m 8 mm high density: 4300M # DLT 2000 10/20 GB: 9000M # DLT 2000XT 15/30 GB: 14000M # DLT 4000 20/40 GB: 18000M # DLT 7000 35/70 GB: 30000M tape_size = 1200M # volume size in KB = K, MB = M or GB = G used by brarchive # default: value of the tape_size parameter # tape_size_arch = 1200M # level of parallel execution # default: 0 - set to number of backup devices exec_parallel = 0 # address of backup device without rewind # [<dev_address> | (<dev_address_list>)] # no default # operating system dependent, examples: # HP-UX: /dev/rmt/0mn # OSF1: /dev/nrmt0h # AIX: /dev/rmt0.1 # SINIX: /dev/ios0/rstape005n # SUN: /dev/rmt/0mn # NT: /dev/nmt0 tape_address = /dev/nmt0 # # # # address of backup device without rewind used by brarchive default: value of the tape_address parameter operating system dependent tape_address_arch = /dev/nmt0
# address of backup device with rewind # [<dev_address> | (<dev_address_list>)] # no default # operating system dependent, examples: # HP-UX: /dev/rmt/0m # OSF1: /dev/rmt0h # AIX: /dev/rmt0 # SINIX: /dev/ios0/rstape005 # SUN: /dev/rmt/0m # NT: /dev/mt0 tape_address_rew = /dev/mt0 # # # # address of backup device with rewind used by brarchive default: value of the tape_address_rew parameter operating system dependent tape_address_rew_arch = /dev/mt0
62/70
# # # # # # # # #
[<dev_address> | (<dev_address_list>)] default: value of the tape_address_rew parameter operating system dependent tape_address_ctl = /dev/... address of backup device with control for mount/dismount command used by brarchive default: value of the tape_address_rew_arch parameter operating system dependent tape_address_ctl_arch = /dev/...
# volumes for brarchive # [<volume_name> | (<volume_name_list>) | # no default volume_archive = (T01A01, T01A02, T01A03, T01A06, T01A07, T01A08, T01A11, T01A12, T01A13, T01A16, T01A17, T01A18, T01A21, T01A22, T01A23, T01A26, T01A27, T01A28,
SCRATCH] T01A04, T01A09, T01A14, T01A19, T01A24, T01A29, T01A05, T01A10, T01A15, T01A20, T01A25, T01A30)
# volumes for brbackup # [<volume_name> | (<volume_name_list>) | SCRATCH] # no default volume_backup = (T01B01, T01B02, T01B03, T01B04, T01B05, T01B06, T01B07, T01B08, T01B09, T01B10, T01B11, T01B12, T01B13, T01B14, T01B15, T01B16, T01B17, T01B18, T01B19, T01B20, T01B21, T01B22, T01B23, T01B24, T01B25, T01B26, T01B27, T01B28, T01B29, T01B30) # expiration period for backup volumes in days # default: 30 expir_period = 30 # recommended usages of backup volumes # default: 100 tape_use_count = 100 # backup utility parameter file # default: no parameter file util_par_file = F:\oracle\T01\102\database\initT01.utl # mount/dismount command parameter file # default: no parameter file # mount_par_file = initT01.mnt # # # # # # # # # # # # # # # # # Oracle instance string to the primary database [primary_db = <inst_str> | LOCAL] no default primary_db = <inst_str> description of parallel instances for Oracle Parallel Server parallel_instances = <instance_desc> | (<instance_desc_list>) <instance_desc_list> -> <instance_desc>[,<instance_desc>...] <instance_desc> -> <Oracle_sid>:<Oracle_home>@<inst_str> <Oracle_sid> -> Oracle system id for parallel instance <Oracle_home> -> Oracle home for parallel instance <inst_str> -> Oracle instance string to parallel instance Do not include the local instance in the parameter definition! default: no parallel instances example for initC11.sap: parallel_instances = (C11_002:/oracle/C11@C11_002, C11_003:/oracle/C11@C11_003)
63/70
initT01arch.utl
# # This is the sample init.utl file. # # This file contains settings for the NetWorker Module for SAP with # Oracle (a.k.a. NMSAP). # # Note: Comments have a "#" in the first column. # Parameter name is always lowercase. # ###########################################################################
# # # # # # # # #
Default Value: no Valid Values: no/yes Set to 'yes' if you want client-side software compression. No compression unless set to 'yes'. This parameter is mutually exclusive from 'checksum' and 'encrypt'. The priority order is: 'compress', 'checksum', 'encrypt'. So, if you specify all, only compression will be done. compress = yes
# # # # # #
Default Value: 20 Valid Values: > 0 integer Number of savesets to use for backups. This parameter will be ignored if 'ss_group_by_fs' is set to 'yes'. savesets = 20
# Default Value: 8 # Valid Values: > 0 integer # Number of simultaneous savesets/savestreams to send to server. # Be sure your server and devices are configured to support at least # as many streams. # parallelism = 2
# Default Value: Default # Valid Values: any group defined in your NetWorker server # Uncomment to set the group to use for saves. If not specified, # the Default group is used. # group = sonder8wochendb1
# Default Value: Default # Valid Values: any pool defined in your NetWorker server # Uncomment to set the media pool to use for saves. If not specified, # the Default pool is used. # pool = svbackup04oracleRAC
# Default Value: 2 Weeks # Valid Values: any string in getdate(man nsr_getdate) format. # Uncomment to set the explicit expiration date for this save set. # The setting here will supersede the browse and retention policy settings # in the client resource. Must be in getdate (man nsr_getdate) format, # e.g. 3 Months. Do not use quotes. # expiration = 1 Weeks
64/70
# # # # # # # # #
Default Value: <null> Valid Values: any string which is a valid mail command in your system Notifications for backint activity. Unices only. See documentation for details. notify_start = mailx -s 'backint start' root notify_done = mailx -s 'backint done' root notify_success = mailx -s 'backint success' root notify_error = mailx -s 'backint error' root
# Default Value: local host # Valid Values: your NetWorker server hostname # Set the NetWorker server hostname to use for backups and restores. # server = svbackup01
# Default Value: local host # Valid Values: your NetWorker client hostname # Use the client name under which the current backup should be catalogued. # Setting the client name will append the "-c <hostname>" to the save # command that is built by backint. This should always be set if the client # is a virtual cluster client. # client = svsapswpracdb
# # # # # #
Default Value: no Valid Values: no/yes Dump more information from NetWorker functions into log file. For other diagnostic procedures, please contact Technical Support. verbose = yes
# # # # # # # #
Default Value: <null> Valid Values: the directory name(s) of your raw disk partitions Set raw partition directory other than /dev and /devices. Any files below these two directories are considered to be raw disk partitions. If you have raw partitions under another directory, you must use this option. Use a semicolon to separate directory paths e.g. raw_dir = /oracle/data;/sap/data;/lotus/data raw_dir = /oracle/data
# Default Value: no # Valid Values: no/yes # Unices only (query_index is always forced to 'yes' for Windows). # This variable controls querying of the NetWorker server indexes (indices) # before backint starts a recover. If the value is 'no', the query will not # take place. If the value is 'yes', before recover starts the server will be # queried for validation of the requested files & backup id's. # # query_index = yes
# Default Value : old # Valid Values : old/new # This variable controls the saveset naming convention. If the # value is "old" the saveset name for ALL backups is "backint:<ORACLE_SID>". If # the value is "new" the saveset name for each session will differ according # to the files being backed up. The saveset name will be
65/70
# "backint:<ORACLE_SID>:<absolute path of the first filename in the saveset>". # # Please be aware that setting ssNameFormat=new will eliminate the # possibility of recovering the database with NetWorker recover -S and brrestore # will be the only alternative to recover the savesets. Recovering with # NetWorker recover is at your sole discretion. # # ssNameFormat = old
# Default Value : 30. # Valid Values : > 0 integer. # This variable controls the amount of time (in minutes) # that backint will wait for brbackup/brconnect to remove the semaphore file. # At the end of this timeout period, if the semaphore file was not deleted # backint will exit with an error. # # sem_timeout = 30
# # # # # #
Default Value: yes Valid Values: yes/no, setting to 'no' is at your sole discretion. This variable controls the "-l Full" invocation of save. If set to 'yes' the file will be saved with the "-l Full" parameter set. level_full = yes
# # # # # #
Default Value: 0 Valid Values: > 0 integer This variable controls the number of times a failed backup is retried for each saveset. retry_count = 0
# # # # # # #
Default Value: 0 Valid Values: > 0 integer This variable sets the maximum number backint session logs to be saved in the log file. If the value of this parameter is 0, ALL backup logs will be saved in the log file. Please refer to backint_log parameter. max_logs = 1
# Default Value: /nsr/applogs/arch_backint<ORACLE_SID>.log # Valid Values: any valid fullpath name with proper permission # Fullpath name (absolute path and filename) of backint log file for running # brarchive. # arch_backint_log = b:\oracle\swp\backint\legato\arch_backintswp.log
# Default Value: /nsr/applogs/backint<ORACLE_SID>.log # Valid Values: any valid fullpath name with proper permission # Fullpath name of backint log file for running brbackup/brrestore. # # You can specify a separate log file for restore by modifying this parameter
66/70
# before running brrestore. Alternatively, you can specify your own value for # backint_log in your own init<ORACLE_SID>_restore.utl file, which can be # referenced from your own init<ORACLE_SID>_restore.sap's 'util_par_file' # parameter (brrestore -p init<ORACLE_SID>_restore.sap). # backint_log = b:\oracle\swp\backint\legato\backintswp.log
# Default Value: /nsr/applogs # Valid Values: any valid directory name with proper permission # Directory name of backint temporary files # backint_tmpdir = b:\oracle\swp\backint\legato
# # # # # #
Default Value: no Valid Values: no/yes Group saveset by file system If set to 'yes', savesets parameter will be ignored ss_group_by_fs = yes
# # # # # #
Default Value: 0 Valid Values: > 0 integer saveset grouping max size in MB. If not set, unlimited sizing takes effect. ss_size_max = 4096
# Default Value: no # Valid Values: no/yes # Unices only: whether to allow restoring previous backup if the required one # cannot be found when query_index = no. # # prev_bk_restore = yes
# # # # # # # #
Default Value: no Valid Values: no/yes Set to "yes" if you want to do CRC checking on restore. This parameter is mutually exclusive from 'compress' and 'encrypt'. The priority order is: 'compress', 'checksum', 'encrypt'. So, if you specify all, only compression will be done. checksum = yes
# # # # # # # #
Default Value: no Valid Values: no/yes Set to "yes" if you want to encrypt the backup data. This parameter is mutually exclusive from 'compress' and 'checksum'. The priority order is: 'compress', 'checksum', 'encrypt'. So, if you specify all, only compression will be done. encrypt = yes
########################################################################### # # New parameters added in NMSAP 3.0 - New PS Snapshot Feature: # NMSAP 3.0 and the accompanying PS modules only officially support scheduled # backups as invoked from savegrp, whereby PS snapshot disk hardware resources
67/70
# will be automatically managed by NetWorker. # # Default Value: no # Valid Values: no/yes # This variable controls whether to enable the new PS (aka snapshot) feature's # mode. An accompanying PS module must be installed and licensed. # # Note that PS savesets will be named "backint:<SID|UID>:PS:". You should # set all ps_xxx_mode variables to yes (or all to no or commented out). Setting # ps_backup_mode to yes (and ps_archive_mode to yes or no) generally requires # ps_restore_mode and ps_inquire_mode both be set to yes; doing otherwise # is intended only for diagnostic/exploratory purposes and is to be used at # your sole discretion. # # ps_backup_mode = yes # ps_archive_mode = yes # ps_restore_mode = yes # ps_inquire_mode = yes
# Default Value: <null> # Valid Values: any string, but should be a valid absolute path name of # a PS file that has parameters which will be blindly passed by backint to # the PS module. Refer to the documentation of the relevant PS module for # details. # # This variable indirectly controls the behaviour of the PS module. It is # mandatory once the ps_xxx_mode variables are set to yes. PS module specific # parameters are specified in one or more "x = y" lines, e.g.: # NSR_SNAP_TYPE = sunii # # ps_opaque_pfilename = /nsr/res/nsrsapps.cfg
# Default Value: <null> # Valid Values: any string of numbers, but should be one or more valid backint # run numbers, e.g. "2" --- minus the quotes in actuality. Run#2 is usually # the second backint run invocation by brtools that only backs up the parameter # files, the SAP backup catalogue files, etc. The first backint run will usually # be for the main database data files; these files are usually very large and # are the only ones that will really benefit from undergoing PS snapshot # processing. # # This variable says whether to force all "PS" files in a backint session # to follow the traditional non-snapshot processing, i.e., whether to exclude # them from any PS snapshot processing, thereby saving valuable snapshot # disk hardware resources for the large files. # # The following starting values are recommended: # ps_exclude_backup_bi_run_nums = 2 ps_exclude_archive_bi_run_nums = 1;2
# # # #
Default Value: <null> Valid Values: any fullpath string, including standard Unix wild-card characters. The values should be based on actual brtools input file names passed to backint.
68/70
# # This variable controls whether to force "PS" files to follow the traditional # non-snapshot processing, i.e. whether to exclude them from any PS processing. # A "PS" file is one that is on a NetWorker-aware snapshot-capable file system. # # Note that there is limited support for wildcard characters on Windows: a # single trailing '*' denotes simple case-insensitive prefix matching, e.g., # C:\DB01\FOO.DBF will be excluded from PS backups if ps_exclude_backup_paths = # C:\*, or = c:\db*, or = C:\DB01\*, and so forth. Under Unix, the wildcard # matching is as provided by standard shell support for full file path names, # e.g., /db01/foo.dbf will be excluded if ps_exclude_backup_paths = # /db01/foo.*, or /db??/*.dbf, but not excluded if ps_exclude_backup_paths = # /db*. # # Preference should be given to setting ps_exclude_xxx_bi_run_nums before # using this parameter. # # ps_exclude_backup_paths = # ps_exclude_archive_paths =
# Default Value: yes # Valid Values: no/yes # This variable says whether to do all PS file processing before any # traditional, non-snapshot nonPS file processing. This can help prevent # potential resource conflicts. This can be set to no to allow for concurrent # processing of PS and nonPS files during backup/archive and restore modes, # when there is no possibility of resource usage conflicts --- to be used # solely at your own discretion. # # ps_ps_before_nonps = no
# Default Value: yes # Valid Values: no/yes # This variable says whether to group all session files (aka objects) in # each PS operation (prepare/sync, snapshot/split, save/restore, postpare). # Certain DB disk/filesystem configurations and brbackup usage can show # better NMSAP performance if ps_group_objs is set to yes, e.g. large number of # files being processed by current BRTools & PS engines, with util_file_online. # However, grouping objects also reduces the potential parallelism during # certain backup and restore sub-operations; consider setting to no for these # cases. # # ps_group_objs=yes is also intended for use with BRTools6.10+ offline & file_ # online: brbackup -t offline -d util_file_online. # # ps_group_objs = no
###########################################################################
69/70
SAP Netweaver / Oracle Database 10gR2 RAC on Windows 2003 A Best Practices Guide June 2007 Author: Markus Breunig Contributing Authors: Yuri Sharonin, Jan Klokkers
Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 www.oracle.com
Oracle is a registered trademark of Oracle Corporation. Various Product and service names referenced herein may be trademarks of Oracle Corporation. All other product and service names mentioned may be trademarks of their respective owners. Copyright 2003, 2004, 2005, 2006, 2007 Oracle Corporation All rights reserved.
70/70