How is SQL AlwaysOn AG supported in Azure without 3 fault domains?

For a Windows cluster to achieve quorum there needs to be 3 nodes. Hence, all tutorials guide you to create 3 VMs in the same availability set. (See image
here.)
However, Azure only makes a guarantee for the first two VMs in an availability set to end up in different fault domains. Any additional VMs might end up in the same fault domain as the first two. (See
here, and here
under Partitioning.)
How then can Microsoft support SQL AlwaysOn AG on Azure VMs without true quorum?
Here's what happened:
We host a very large multi-tenant software in Azure IaaS backed by a SQL cluster configured, according to best practices, as 3 VMs in one availability set. Yesterday the passive and witness nodes simultaneously crashed, the active node promptly shut down
the cluster since majority vote was lost. When the nodes were restarted (within minutes) they showed that they crashed, leaving me with the only assumption that they are on the same hardware and we indeed only get two fault domains.
This happened 3 times. In one day. With a few hours between each outage.
Support confirmed there was indeed an outage on the hardware hosting those VMs.
So back to the question above, without the proper hardware configuration, how can this even be supported for production?
We invested months of research and testing on different platforms till we chose our current configuration on Azure. However, it's impossible for us to continue hosting a production system on Azure with such a bug in its current clustering/HA support.
Regards, Shloma Baum FieldOne Systems http://www.FieldOne.com

An alternative to the 3-node Windows cluster is to use 2 nodes with a file share witness, using the domain controller to host the file share. Depending on the version of Windows Server, your Availability Group is still dependent on Active Directory and
DNS and, hence, if the domain controller goes down, you still run the risk of not having an automatic failover (or with Windows Server 2012 and higher, longer failover time) even in a 3-node cluster. Windows Server 2012 R2 introduces dynamic witness such that
even if you only have 1 node in the cluster, your cluster resources can stay online as the quorum is dynamically adjusted depending on the number of available votes. But to really provide real HA/DR in Azure, you need to span your Windows cluster in different
Affinity Groups and even Regions to minimize having the cluster nodes being impacted by a single host failure.
Edwin Sarmiento SQL Server MVP | Microsoft Certified Master
Blog |
Twitter | LinkedIn
SQL Server High Availability and Disaster Recover Deep Dive Course

Similar Messages

  • SQL server 2014 cloud adapter (Azure) how to install manually?

    The SQL Server Cloud Adapter is installed when you use a pre-configured Azure VM for SQL Server:
    http://msdn.microsoft.com/en-us/library/dn169301(v=sql.120).aspx
    How do you install this if you do your own manual SQL Server install on an Azure VM?
    If it is not installed, can you still use the Deploy to Azure wizard in Management Studio?
    Tim

    Hello,
    To deploy a SQL Server database to a Windows Azure vitual machine the cloud adapter is required.
    You can download and install it from the following link:
    http://www.microsoft.com/en-us/download/details.aspx?id=42295 
    (ENU\x64\SqlCloudAdapter.msi)
    The following article may help you configure this adapter:
    http://msdn.microsoft.com/en-us/library/dn169301(v=sql.120).aspx
    Hope this helps.
    Regards,
    Alberto Morillo
    SQLCoffee.com

  • Which SQL Server Edition support how many sessions to the instance from SQL Management Studio on the client side

    Hi,
    I'm looking for some help on the below query to verify which version of sql server edition supports multiple or N number of sessions to the SQL server Instance using the SQL Server Management Studio tool from the client side.
    SQL Standard Vs Enterprise.
    your urgent help is much appreciated.
    Br.

    Hello,
    See Maximum Capacity Specifications for SQL Server =>
    User connections = 32,767; and this value is independent of use SQL Server Version, edition or the used tools, like SSMS in your question 
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • Upgrade path from Access 2003/SQL 2003 ADP to cloud, Azure, etc.

    My company uses a massive client database to track all interactions with our clients -- phone log, billing info, authorized users, associates, products and services they subscribe to, etc. -- as well as separate records for leads and clients. There are
    over 25,000 clients and leads in the database and each client or lead has at least 30 selectable options plus numerous phone/interaction log entries.
    The database is in MS-SQL 2003 Server with an Access 2003 ADP front-end running on Windows Server 2003, accessible from over 30 user accounts on the WS2003 box and accessed either over RDP or in-house XP clients.
    Therein lies my problem. I did not build this monster, but am now the servers admin for this company and so it has become "my problem". Windows XP and Office 2003 are already past EOL and Windows Server 2003 will be EOL in July 2015.  However,
    Access 2013 does not support the ADP file format and so I cannot open the ADP on a newer computer. 
    Rewriting the database and its records -- estimating there are over 50,000,000 records in this database -- is prohibitive. My employer would rather use the WS2003 servers to perpetuity than rewrite this beast. However, knowing what I do about the security risks
    and the confidential client data stored in it, I am arguing that we must eliminate all of our XP/2003 servers ASAP or we will be the next Target or Home Depot. 
    What options do we have? Cost is a factor but not a deal-breaker since we have to do something. 
    Ideally, I would like to be able to migrate the MS-SQL 2003 back end to Azure SQL; then hire a programmer to rewrite the .ADP Access 2003 file into either a .NET application or a MS Access 2013 front end.  However, we cannot afford much downtime for this
    -- as our 30+ staff are routinely and simultaneously entering and transcribing phone calls throughout the work day -- and whatever we do still needs to be able to be simultaneously accessed by multiple staff members.
    I should add that I am not going to be programming this myself; I am the department head and supervisor of this project, but will be putting together the job description and work order for the developer we hire or contract with to do this job. So what I need
    from the community is a recommendation on how we should go about this:  Which services, which software, and how should we implement it?
    Thank you in advance.

    It seems to me that the most critical component is the ADP file. Some later version of Access must be able to open it. Or?
    Then again, this is not an Access forum.
    From the database-side of things, it is not inconceivable that the database could survive the ordeal even if you replace the Access client with a .Net client. Of course, if you are on SQL 2000 (as Kalman says, there is no SQL 2003), their is a fair chance
    that you are using some deprecated features that have been removed. Still, that would not be a showstopper.
    As for downtime, there is no reason to have any downtime while the new application is being developed, but you may need some downtime when you do the migration itself. Typically, that would be on a weekend. And of course, it needs planning. If a downtime
    during a weekend is not acceptable, migration could be done incrementally, but it would take more time to develop and test.
    I think your first step is to bring in a contractor with experience of application development, both client-side and database-side who can study the case more carefully and from this make recommendations. Obviously, that would be a senior consultant.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • How Many SQL Licenses?

    Our DBA needs to know how many SQL licenses to purchase.
    Is that number based on how many users we think will be
    accessing RH at one time...or is it just one license?
    Thanks
      Doug

    Hi Doug,
    Unfortunately even I am not aware how SQL Server licensing works
    What I can tell you is the you will need single user name and password account to access SQL Server from RoboHelp Server 8 for a single context and then number of concurrent database connections for that account depend on factors I explianed in my last mail.
    I have a hunch you should need a single license as SQL Server supports a large number of concurrent connections for single user account. But again as I said, I am not sure on this and you would need to get this confirmed.
    Tulika.

  • How to do High Avilability Group Configuration steps without SAN or ISCSI storage in sql 2012

    Hi I want to know how to configure HAG Always on in sql 2012 that uses
    WSFC on windows 2008 R2 without ISCSI storage???
    srm_2010

    Hi I want to know how to configure HAG Always on in sql 2012 that uses
    WSFC on windows 2008 R2 without ISCSI storage???
    srm_2010
    Please give a try to these URLs:
    Step-By-Step: Creating a SQL Server 2012 AlwaysOn Availability Group
    http://blogs.technet.com/b/canitpro/archive/2013/08/20/step-by-step-creating-a-sql-server-2012-alwayson-availability-group.aspx
    How to deploy SQL Server AlwaysOn in a failover cluster without shared storage to achieve high availability SQL
    http://www.techrepublic.com/blog/the-enterprise-cloud/sql-server-2012-alwayson-high-availability-database-for-cloud-data-centers/
    AlwaysOn Architecture
    http://msdn.microsoft.com/en-us/library/jj191711.aspx
    In general it's a good idea to ask SQL Server HA and DR questions here:
    SQL Server HA and DR
    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqldisasterrecovery
    Good luck :)
    StarWind Virtual SAN clusters Hyper-V without SAS, Fibre Channel, SMB 3.0 or iSCSI, uses Ethernet to mirror internally mounted SATA disks between hosts.

  • Java.sql.SQLException: Non supported SQL92 token at position: 377:

    hi,
    i have to create oracle-java source from java program. my code is :
    ( In Java which create java source in oracle)
    strQuery = "CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED
    \"ASCOMPONENT\" AS ";
    strQuery += "import javax.xml.parsers.DocumentBuilderFactory; ";
    strQuery += "import javax.xml.parsers.DocumentBuilder; ";
    strQuery += "import org.xml.sax.SAXException; ";
    strQuery += "import org.xml.sax.SAXParseException; ";
    strQuery += "import org.w3c.dom.Document; ";
    strQuery += "import org.w3c.dom.*; ";
    strQuery += "import java.io.*; ";
    strQuery += "import oracle.jdbc.driver.*; ";
    strQuery += "import java.sql.*; ";
    strQuery += "public class ASComponent ";
    strQuery += "\n ";
    strQuery += "{ "; // error here.../
    strQuery += "\n ";
    strQuery += "public static void readXML(String strXML,String
    strTable) ";
    strQuery += "\n ";
    strQuery += "{ ";
    strQuery += "\n ";
    strQuery += " } ";
    strQuery += "\n ";
    strQuery += " } ";
    strQuery += "\n ";
    System.out.println("Query = " + strQuery);
    stmt.executeQuery(strQuery);
    i am getting error :
    java.sql.SQLException: Non supported SQL92 token at position: 377:
    so, what is that error ?
    i think when it is getting '{ ' it is giving error...?
    how we can use token '{}' in jdbc.
    so, what is the error..?
    please help me its urgent..
    Thanks in advance...

    thanks for reply.
    according to my project requirement i have to execute that script using my java program.
    java source which i am creating in oracle is :
    CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "ASCOMPONENT" AS
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    import org.w3c.dom.Document;
    import org.w3c.dom.*;
    import java.io.*;
    import oracle.jdbc.driver.*;
    import java.sql.*;
    public class ASComponent
    public static void readXML(String strXML,String strTable)
    // code here
    when i am creating above program from sql prompt, it works fine.
    but when i am creting that from java program, it is giving me exception.
    my java code to create above script is :
    conn = getConnection();
    stmt = conn.createStatement();
    strQuery = "CREATE OR REPLACE AND RESOLVE JAVA SOURCE
    NAMED \"ASCOMPONENT\" AS ";
    strQuery += "\n ";
    strQuery += "import javax.xml.parsers.DocumentBuilderFactory; ";
    strQuery += "\n ";
    strQuery += "import javax.xml.parsers.DocumentBuilder; ";
    strQuery += "import org.xml.sax.SAXException; ";
    strQuery += "import org.xml.sax.SAXParseException; ";
    strQuery += "import org.w3c.dom.Document; ";
    strQuery += "import oracle.jdbc.driver.*; ";
    strQuery += "import java.sql.*; ";
    strQuery += "public class ASComponent ";
    strQuery += "\n ";
    strQuery += " { ";
    strQuery += "\n ";
    strQuery += "public static void readXML(String strXML,String strTable) ";
    strQuery += "\n ";
    strQuery += " { ";
    strQuery += "\n ";
    strQuery += " } ";
    strQuery += "\n ";
    strQuery += " } ";
    strQuery += "\n ";
    System.out.println("Query = " + strQuery);
    stmt.executeQuery(strQuery);
    so, how we can create above sql script from java program ?
    i think token " { } " is not supporting that...
    please reply , its urgent....

  • How many users does HFM support?

    Hi,
    how many users does HFM support(Maximum)? and why we are choose HFM compare to Hyperion enterprise?
    thanks
    Edited by: user10919054 on May 18, 2009 3:07 AM

    There is no limit, as long as you pay for the licenses and make sure you have a robust system to support user connectivity and demand.
    Hyperion Enterprise is the previous Consolidation tool most commonly used by many companies. Think of HFM as the "New Generation"....

  • Backup Maintenance Plan on SQL AlwaysOn Availability Group Secondary Read-Only node

    I have 3 node SQL 2012 AlwaysOn Availability nodes with the 3rd node as Read-Only.
    The backup job within SQL Maintenance plan is failing with the following error:
    Failed:(-1073548784) Executing the query "declare @backupSetId as int
    select @backupSetId =..." failed with the following error: "Cannot open backup device 'C:\\SQLDBName_backup_2014_06_08_170156_9292095.bak'. Operating system error 2(The system cannot find the file specified.).
    VERIFY DATABASE is terminating abnormally.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
    I have verified the SQL AlwaysOn Backup preference to be "Prefer Secondary"
    Is there any special steps/settings I need to do to setup and run the backups using maintenance plan in SQL AlwaysOn?

    Hi,
    I'm marking the reply as answer as there has been no update for a couple of days.
    If you come back to find it doesn't work for you, please reply to us and unmark the answer.
    Thanks.
    Tracy Cai
    TechNet Community Support

  • I need to disable Match Services - but my iTunes crashes when I try to load it. How do I get Apple Support to disable it on my behalf?

    I need to disable Match Services - but my iTunes crashes when I try to load it. How do I get Apple Support to disable it on my behalf?

    Hi axostech!
    Here is an article that will help you troubleshoot this issue with your iTunes crashes so that you can adjust your iTunes Match settings as you desire:
    iTunes for Windows Vista, Windows 7, or Windows 8: Fix unexpected quits or launch issues
    http://support.apple.com/kb/ts1717
    Thanks for being a part of the Apple Support Communities!
    Cheers,
    Braden

  • How to install windows xp on mac mini without cd rom support

    How to install windows xp on mac mini without cd rom support. I have installed Bootcamp on my mac mini. And i was using windows xp on my mac mini before xp crashed due to a system file missing or corrupt.

    usb optical drive

  • How do I log a support call for Pages with Apple?

    Hello,
    Sorry to have to ask this question here because I suspect it has been covered and I'm searching wrong. Anyway I'm on the Apple support site trying to log a call for some erratic behaviour when Pages tries to sync with iCloud. It seems that no matter what I end up having to enter the serial number of my hardware. Well first off this is a software issue and not a hardware issue - I've been to the Genius Bar and they believe it is Pages failing to sync with the iCloud. I have had both the iPad and the iPhone replaced during the issue and still the same problem. Secondly I have two devices affected by the same Pages behaviour
    Ok so after going around in circles for quite some time and becoming quite frustrated I thought I would come here for some sane suggestions. The first of which I fully expect to be an explanation of how to log a software support call Is there anyone out there who can advise me on how to log my issue please?
    Many thanks in advance,
    Andy

    Do what you did before and, in a second session, look at V$SESSION and other relevant dynamic performance views.

  • I just purchased Adobe Acrobat XI Pro, but installation didn't work. At the last step said that it'd fund an error. Any idea? How i can contact Adobe support? I have a new Macbook Pro Yosemitte ..

    I just purchased Adobe Acrobat XI Pro, but installation didn't work. At the last step said that it'd fund an error. Any idea? How i can contact Adobe support? I have a new Macbook Pro Yosemitte ..

    Hi Francis,
    Could you please let me know how have you been trying to install Acrobat?
    Please ensure that you are signed in as admin and antivirus software is disabled at the time when you install.
    Regards,
    Anubha

  • How to contact with Apple support in Viet Nam? The phone number 1-201-2088 is unavailbe.

    How to contact with Apple support in Viet Nam? The phone number 1-201-2088 is unavailbe.

    Dial 1-201-0288, then
    dial 800-708-5413

  • Reg how an sql query works?

    I am new to Oracle and sql/plsql. What is the background processes happening when an sql query is fired to the database?
    In short how an sql query is actually working?
    what are the steps involved in it?
    pls provide me the links if it is tedious to reply
    Thanks

    Every SQL-Select Statement meets three stages parse, execute, and fetch. To know completely how SQL and PL/SQL work with Oracle, you must have to read the below Oracle Link seriously.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/sqlplsql.htm
    Regards,
    Sabdar Syed.

Maybe you are looking for