Sponsored Content
Full Discussion: RAC on Linux
Operating Systems Linux Gentoo RAC on Linux Post 302206359 by robotronic on Tuesday 17th of June 2008 01:45:01 PM
Old 06-17-2008
Assuming that Oracle and OS's licenses are not a problem for you Smilie, sure you can!

Once you've chosen a supported OS (eg. RHEL4) you can follow Oracle documentation for deploying your RAC environment. If you want to play, you can also use an OS that is not supported, although you may encounter problems for example during linking of Oracle binaries (you may fall into big headaches!).

My personal installation runs very well on my laptop:
Code:
2.6.24-gentoo-r8 #1 SMP Tue May 13 18:38:54 CEST 2008 x86_64 Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz GenuineIntel GNU/Linux

However it's not a RAC. I've never installed a RAC on OSs different than RHEL and Solaris.

Given your system, I would recommend installing x86_64 version for both OS and RDBMS, only don't try 32 bit Oracle on a 64 bit OS.

The only option you have for shared storage is using ASM or OCFS (very buggy). Since it's a test system, you may also try with a shared mount via NFS, but if I remember correctly it's not supported (don't know if it works the same!).

Oh, you also need two physical NICs on both servers for public addresses and private interconnect. These are required for proper installation of clusterware software.

One last word: maybe it is better to try such a complex environment on virtual machines rather than on a real hardware! For testing purposes you may be able to startup two VMs with 512MB of RAM each and be able to install correctly a Linux system and a small Oracle instance.

Good luck!

Smilie
 

2 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Oracle RAC Cluster on RedHat Linux, Node eviction

We have 2 node Oracle RAC Cluster. It is running RHEL 5 (2.6.18-92.1.10.el5PAE) Hardware is HP DL360 We have node eviction issue, Oracle evicts node. It is not very consistent. Oracle has looked all log files and said this is not Oracle issue but rather system or os issue. Server does not... (7 Replies)
Discussion started by: sanjay92
7 Replies

2. Solaris

How to converting rac to one rac ?

hi everyone, We have rac system which has two sun solaris M5000s and two oracle 11gR2 databases respectively. Also , we have unix codes on one rac and these unix codes extract txt files for external tables during first step of ETL. We run our unix codes using Util.RunThis java code and... (10 Replies)
Discussion started by: imtheone
10 Replies
rpc_rac(3RAC)					    Remote Asynchronous Calls Library Functions 				     rpc_rac(3RAC)

NAME
rpc_rac, rac_drop, rac_poll, rac_recv, rac_send - remote asynchronous calls SYNOPSIS
cc [ flag ... ] file ... -lrac -lnsl [ library ... ] #include <rpc/rpc.h> #include <rpc/rac.h> void rac_drop(CLIENT *cl, void *h); enum clnt_stat rac_poll(CLIENT *cl, void *h); enum clnt_stat rac_recv(CLIENT *cl, void *h); void *rac_send(CLIENT *cl, rpcproc_t proc, xdrproc_t xargs, void *argsp, xdrproc_t xresults, void *resultsp, struct timeval timeout); DESCRIPTION
The remote asynchronous calls (RAC) package is a special interface to the RPC library that allows messages to be sent using the RPC proto- col without blocking during the time between when the message is sent and the reply is received. To RPC servers, RAC messages are indistin- guishable from RPC messages. A client establishes an RPC session in the usual way (see rpc_clnt_create(3NSL)). A RAC message is sent using rac_send(). This routine returns immediately, allowing the client to conduct other processing. When the client wants to determine whether the returned value from the call has been received, rac_poll() is used. rac_recv() is used to collect the returned value; it can also be used to block while wait- ing for the returned value to arrive. rac_drop() is used to inform the RPC library that the client is no longer interested in the results of a particular RAC message. rac_drop() rac_drop() should be called when the user is no longer interested in the result of a rac_send() currently in progress. No message to the server is generated by this call, but any subsequent reply received for this handle will be silently dropped. It also frees any space occupied by the asynchronous call handle h. After a call to rac_drop() the handle referred to by h is invalid. It may no longer be used in any asynchronous operation. rac_poll() rac_poll() returns the status of the call currently in progress on the <CLIENT, asynchronous handle> tuple referred to by cl and h. rac_poll() return values are: RPC_SUCCESS A reply has been received and is available for reading by rac_recv(). RPC_INPROGRESS No reply has been received. The call referred to by the given handle has not yet timed out. RPC_TIMEDOUT No reply has been received. The call referred to by the given handle has exceeded the maximum timeout value specified in rac_send(). RPC_STALERACHANDLE Either the handle referred to by h is invalid or no call is currently in progress for the given <CLIENT, asynchronous handle> tuple. RPC_CANTRECV Either the file descriptor associated with the given CLIENT handle is bad, or an error occurred while attempting to receive a packet. RPC_SYSTEMERROR Space could not be allocated to receive a packet. On unreliable transports, a call to rac_poll() will trigger a retransmission when necessary (that is, if a rac_send() is in progress, no reply has been received, the per-call timeout has expired, and the total timeout has not yet expired). The return value for rac_poll() is independent of the RPC return value in the reply packet. Although a combination of clnt_control()'s CLGET_FD request and poll(2) may be used to extract the proper file descriptor and poll for packets, rac_poll() is still useful since it will determine whether a reply is available for a specific <CLIENT, asynchronous han- dle> tuple. rac_recv() rac_recv() retrieves the results of a previous asynchronous RPC call, placing them in the buffer indicated in the rac_send() call and using the XDR decode function supplied there. It depends on the application to have ensured that a reply is present (using rac_poll()). If rac_recv() is called before a reply has been received, it will block awaiting a reply. All errors normally returned by the RPC client call functions may be returned here. In addition: RPC_STALERACHANDLE Either the handle referred to by h is invalid or no call is currently in progress for the given <CLIENT, asynchronous handle> tuple. Additionally, if a packet is present and its status is not RPC_SUCCESS, it is possible that the client credentials need refreshing. In this case, RPC_AUTHERROR is returned and the client should attempt to resend the call. When a reply has been received, rac_recv() will invoke the XDR decode procedure specified in the rac_send() call. After a call to rac_recv(), the handle referred to by h is invalid. It may no longer be used in any asynchronous operation. rac_send() rac_send() initiates (sends to the server) an RPC call to the specified procedure. It does not await a reply from the server. argsp is the address of the procedure's arguments, resultsp is the address in which to place the results, xargs and xresults are XDR functions used to encode and decode respectively. Note: resultsp must be a valid pointer when rac_recv() is called. timeout should contain the total amount of time the application is will- ing to wait for a reply. Upon success, an opaque handle, known as the asynchronous handle, is returned. This handle is to be used in subsequent asynchronous calls to poll for the status of the call (rac_poll()), receive the returned results of the call (rac_recv()), or cancel the call (rac_drop()). On failure, (void *) 0 is returned. In case of failure, the application may retrieve the RPC failure code by calling clnt_geterr() immediately after a rac_send() failure (see rpc(3NSL)). Possible errors include both transient problems (such as transport failures) and perma- nent ones (such as XDR encoding failures). Multiple rac_sends on the same client handle are permitted, but may introduce unpredictable perturbations to the current timeout and retry model used by the RPC library. The interface imposes a limit on the amount of time a call may be in progress before it is considered to have failed. This method was chosen over limitations on the number of retries because of a desire for transport independence. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |Unsafe | +-----------------------------+-----------------------------+ SEE ALSO
poll(2), rpc(3NSL), rpc_clnt_create(3NSL), rpc_clnt_calls(3NSL), xdr(3NSL), attributes(5) WARNINGS
The RAC interface is not the recommended interface for having multiple RPC requests outstanding. The preferred method of accomplishing this in the Solaris environment is to use synchronous RPC calls with threads. The RAC interface is provided as a service to developers inter- ested in porting RPC applications to Solaris 2.0. Use of this interface will degrade the performance of normal synchronous RPC calls (see rpc_clnt_calls(3NSL)). For these reasons, use of this interface is disparaged. The library librac must be linked before libnsl to use RAC. If the libraries are not linked in the correct order, then the results are indeterminate. NOTES
These interfaces are unsafe in multithreaded applications. Unsafe interfaces should be called only from the main thread. SunOS 5.10 21 Jul 1998 rpc_rac(3RAC)
All times are GMT -4. The time now is 05:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy