Hello all,
I'm sharing information about how oracle rac is installed on windows 2008 server enterprise edition R2. A few months ago, i configured it successfully on VMWare server environment with shared disks.
Finally, i tested it on 2 Dell server R810 with E7540 (48 cores, 128gb ram) and Dell Equallogic 6510 storage of 14tb capacity with RAID 10.
While configuration phase of installation, i ended up with windows dead blue screen many times. (DRIVER_IRQL_NOT_LESS_OR_EQUAL) The reason of this error was Oracle Grid infrastructure can not be installed on servers with more 32 cores. So i turned of Turbo HT and oracle grid infrastructure installation completed smoothly. After installation you can patch grid with 10637621 and re-enable turbo to 48 cores. If you see this blue screen, page 7 of the second pdf below can help you.
You can use following document for installation & troubleshooting.
http://www.mits.mn/RACGuides_Rac11gR2OnWindows.pdf
http://www.mits.mn/WTRB_11g.pdf
PS: Take care of database version. If you download oracle by the time you will download 11g 2.0.1 version. When you try to patch 10637621 on it, it will require you to install oracle.rdbms.rsf, 11.2.0.2.0 component. So don't use 11g2.0.1, use version 11g2.0.2. It seems not preferred to patch 11g2.0.2 on 11g2.0.1. It's recommended to install freshly. You can download it from metalink, it's not listed current on public download page. WTRB_11g.pdf is guide to patch 11g2.0.2, not 11g2.0.1.
Tuesday, October 11, 2011
Oracle 11R2 RAC on Windows 2008 server
Sunday, January 2, 2011
Change MaxItemsInObjectGraph value on server and client side
When i was working with WCF + XPO i faced with the following problem.
CommunicationException: The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '20.20:29:58.9889422'.
It was caused by large amount of data retrieved from the server which MaxItemsInObjectGraph configuration value set to default(65535). I googled so much and finally found the solution for this. By changing MaxItemsInObjectGraph to enough value on server and client side, it was solved.
Server side:
SqlConnection conn = new SqlConnection("Initial Catalog=flight; Data Source=NEU\\SQLEXPRESS; Integrated Security=SSPI;Persist Security Info=False");
IDataStore sourceDataStore = XpoDefault.GetConnectionProvider(conn,AutoCreateOption.DatabaseAndSchema);
DataStoreServerProxy publicationObject = new DataStoreServerProxy(sourceDataStore);
Uri baseAddress = new Uri("net.tcp://0.0.0.0:1234/");
serviceHost = new ServiceHost(publicationObject, baseAddress);
NetTcpBinding binding = new NetTcpBinding(SecurityMode.None);
binding.SendTimeout = new TimeSpan(500, 30, 0);
binding.ReceiveTimeout = new TimeSpan(500, 30, 0);
binding.OpenTimeout = new TimeSpan(500, 30, 0);
binding.CloseTimeout = new TimeSpan(500, 30, 0);
binding.MaxReceivedMessageSize = 2147483647;
serviceHost.AddServiceEndpoint(typeof(IDataStoreContract), binding, "XPOService");
serviceHost.Open();
foreach (OperationDescription operation in serviceHost.Description.Endpoints[0].Contract.Operations)
{
var behavior = operation.Behaviors.Find
if (behavior != null)
behavior.MaxItemsInObjectGraph = 2147483647;
}
Client side:
NetTcpBinding binding = new NetTcpBinding(SecurityMode.None);
binding.MaxReceivedMessageSize = 2147483647;
binding.SendTimeout = new TimeSpan(500, 30, 0);
binding.ReceiveTimeout = new TimeSpan(500, 30, 0);
binding.OpenTimeout = new TimeSpan(500, 30, 0);
binding.CloseTimeout = new TimeSpan(500, 30, 0);
ChannelFactory
foreach (OperationDescription operation in factory.Endpoint.Contract.Operations)
{
var behavior = operation.Behaviors.Find
if (behavior != null)
behavior.MaxItemsInObjectGraph = 2147483647;
}
DataStoreClientProxy remoteDataStore = new DataStoreClientProxy(factory.CreateChannel());
// Initialize XPO to use that reference
XpoDefault.DataLayer = new SimpleDataLayer(remoteDataStore);
XPClassInfo[] ClassInfos = { Session.DefaultSession.GetClassInfo(typeof(City)), Session.DefaultSession.GetClassInfo(typeof(CityArea)) };
XpoDefault.DataLayer.UpdateSchema(false, ClassInfos);