Need to maintain transactional consistency of the data across both servers, need to achieve these goals...

Why is it that Bernie Sanders is always called a "socialist"?

What really causes series inductance of capacitors?

What does "move past people" mean in this context?

What is formjacking?

Isn't a semicolon (';') needed after a function declaration in C++?

Is practicing on a digital piano harmful to an experienced piano player?

Problems with position of tikzpictures in beamer

What is an efficient way to digitize a family photo collection?

What could cause an entire planet of humans to become aphasic?

Sing Baby Shark

Is the tritone (A4 / d5) still banned in Roman Catholic music?

In the Lost in Space intro why was Dr. Smith actor listed as a special guest star?

What is an explicit bijection in combinatorics?

Is it possible to detect 100% of SQLi with a simple regex?

How do I purchase a drop bar bike that will be converted to flat bar?

Missing a connection and don't have money to book next flight

How do I add a strong "onion flavor" to the biryani (in restaurant style)?

How can guns be countered by melee combat without raw-ability or exceptional explanations?

When does a person lose diplomatic status?

What does "south of due west" mean?

Coworker is trying to get me to sign his petition to run for office. How to decline politely?

Can't figure out a htaccess rule

Minimum Viable Product for RTS game?

Two oatmeal pies a day keep the doctor away?



Need to maintain transactional consistency of the data across both servers, need to achieve these goals without manual intervention


AlwaysOn AG, DTC with failoverClustering vs. transactional replication vs. availability groupsDoes “Synchronous-Commit Availability Mode” ensure consistency between Replicas?Secondary replica indexingSQL Server 2012 AlwaysOn Availability GroupAlwaysOn Synchronous Mode PossibiltyAvailability Groups using Multi-Subnet Clustering: Preferred Owners for Roles and Possible Owners for AG Listener IPsAvailability Group of SQL Servers 2012, 2012 and 2016 possible?Multi-homed SQL Server with High Availability GroupsAlwaysOn commit on Primary if Secondary goes down













0















I got this question about MS SQL Server 2012 administration, two production servers in the same data center. You need to ensure that database remains available if a catastrophic server failure or a disk failure occurs.



You need to maintain transactional consistency of the data across both servers. You need to achieve these goals without manual intervention.



The correct answer for the above question is



>>
Two servers configured on the same subnet
SQL Server Availability Group configured in Synchronous-Commit Availability Mode
<<



But I think the correct answer should be





Two servers configured in Windows Failover Cluster in the same data center SQL Server configured as a clustered instance<<












share|improve this question















migrated from stackoverflow.com Sep 15 '15 at 14:05


This question came from our site for professional and enthusiast programmers.























    0















    I got this question about MS SQL Server 2012 administration, two production servers in the same data center. You need to ensure that database remains available if a catastrophic server failure or a disk failure occurs.



    You need to maintain transactional consistency of the data across both servers. You need to achieve these goals without manual intervention.



    The correct answer for the above question is



    >>
    Two servers configured on the same subnet
    SQL Server Availability Group configured in Synchronous-Commit Availability Mode
    <<



    But I think the correct answer should be





    Two servers configured in Windows Failover Cluster in the same data center SQL Server configured as a clustered instance<<












    share|improve this question















    migrated from stackoverflow.com Sep 15 '15 at 14:05


    This question came from our site for professional and enthusiast programmers.





















      0












      0








      0








      I got this question about MS SQL Server 2012 administration, two production servers in the same data center. You need to ensure that database remains available if a catastrophic server failure or a disk failure occurs.



      You need to maintain transactional consistency of the data across both servers. You need to achieve these goals without manual intervention.



      The correct answer for the above question is



      >>
      Two servers configured on the same subnet
      SQL Server Availability Group configured in Synchronous-Commit Availability Mode
      <<



      But I think the correct answer should be





      Two servers configured in Windows Failover Cluster in the same data center SQL Server configured as a clustered instance<<












      share|improve this question
















      I got this question about MS SQL Server 2012 administration, two production servers in the same data center. You need to ensure that database remains available if a catastrophic server failure or a disk failure occurs.



      You need to maintain transactional consistency of the data across both servers. You need to achieve these goals without manual intervention.



      The correct answer for the above question is



      >>
      Two servers configured on the same subnet
      SQL Server Availability Group configured in Synchronous-Commit Availability Mode
      <<



      But I think the correct answer should be





      Two servers configured in Windows Failover Cluster in the same data center SQL Server configured as a clustered instance<<









      sql-server sql-server-2012 availability-groups clustering high-availability






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 4 mins ago









      Brent Ozar

      35k19104235




      35k19104235










      asked Sep 15 '15 at 3:35









      Yevgraf Andreyevich ZhivagoYevgraf Andreyevich Zhivago

      2181215




      2181215




      migrated from stackoverflow.com Sep 15 '15 at 14:05


      This question came from our site for professional and enthusiast programmers.









      migrated from stackoverflow.com Sep 15 '15 at 14:05


      This question came from our site for professional and enthusiast programmers.
























          2 Answers
          2






          active

          oldest

          votes


















          0














          The tricky part is in this requirement:




          You need to ensure that database remains available if a catastrophic
          server failure or a disk failure occurs. You need to maintain
          transactional consistency of the data across both servers. You need to
          achieve these goals without manual intervention.




          The disk failure part means a failover cluster alone won't work because the storage is shared with both nodes. If the storage where the data files live fails, then both nodes will be affected.



          However, a 2-node synchronous Availability Group isn't the answer either, because as Microsoft's own documentation points out:




          If primary's session-timeout period is exceeded by a secondary replica, the primary replica temporarily shifts into asynchronous-commit mode for that secondary replica. When the secondary replica reconnects with the primary replica, they resume synchronous-commit mode.




          Read further in that link in the "Factors That Disrupt Data Synchronization" section, and Microsoft elaborates on the reasons why you can't guarantee that a 2-node AG will not lose data on failover.



          So what's the right answer for SQL Server 2012?



          There isn't one. You can't guarantee zero data loss with 2 independent SQL Server 2012s without third party tools (like SAN replication, and even then, there's a ton of work involved.) I'm guessing the question came from a test or certification written by somebody without real-world experience. That wouldn't be the first time, and it won't be the last.



          Is there a right answer for later versions?



          Yes, SQL Server 2017 introduced a new REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT setting at the Availability Group level. The default is 0, which means as long as the primary receives the transaction, it's committed. You can change that to 1 (or more), which means that if at least that number of secondaries don't also commit the transaction, then the transaction fails.





          share































            -1














            The first scenario is actually the more correct implementation. In future versions of SQL Server (starting with 2016), the standard "Failover cluster" model is deprecated. Microsoft is shifting to the HA (High Availability) model via SQL Server Availability groups, which is essentially Mirroring and Clustering mixed together (no need for a witness server), with the data completely replicated to each node in the group.



            Failover time is < 1 second, according to Microsoft professionals, as opposed to standard Failover Clustering, which can take 1+ minute for a successful automatic failover. SQL Server Availability Groups would be the way to go from this point forward.






            share|improve this answer



















            • 1





              FCI is deprecated? Can you give me the link to where you read this?

              – James Anderson
              Sep 15 '15 at 17:08











            • My mistake - 2016 is the last version it will be in. Synchronous mode will only be in the Enterprise version - Asynchronous will come default in Standard edition. I don't have a link, I apologize. I went to a local SQL training for EMC, hosted by a Microsoft SQL MVP who shared this information.

              – Greg Cardall
              Sep 15 '15 at 21:56













            • @GregCardall no, 2016 was definitely not the last version it will be in. Just FYI, MVP is not a technical qualification - you can't just believe everything you hear from MVPs (or anyone else, for that matter.)

              – Brent Ozar
              14 mins ago











            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "182"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f115087%2fneed-to-maintain-transactional-consistency-of-the-data-across-both-servers-need%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            The tricky part is in this requirement:




            You need to ensure that database remains available if a catastrophic
            server failure or a disk failure occurs. You need to maintain
            transactional consistency of the data across both servers. You need to
            achieve these goals without manual intervention.




            The disk failure part means a failover cluster alone won't work because the storage is shared with both nodes. If the storage where the data files live fails, then both nodes will be affected.



            However, a 2-node synchronous Availability Group isn't the answer either, because as Microsoft's own documentation points out:




            If primary's session-timeout period is exceeded by a secondary replica, the primary replica temporarily shifts into asynchronous-commit mode for that secondary replica. When the secondary replica reconnects with the primary replica, they resume synchronous-commit mode.




            Read further in that link in the "Factors That Disrupt Data Synchronization" section, and Microsoft elaborates on the reasons why you can't guarantee that a 2-node AG will not lose data on failover.



            So what's the right answer for SQL Server 2012?



            There isn't one. You can't guarantee zero data loss with 2 independent SQL Server 2012s without third party tools (like SAN replication, and even then, there's a ton of work involved.) I'm guessing the question came from a test or certification written by somebody without real-world experience. That wouldn't be the first time, and it won't be the last.



            Is there a right answer for later versions?



            Yes, SQL Server 2017 introduced a new REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT setting at the Availability Group level. The default is 0, which means as long as the primary receives the transaction, it's committed. You can change that to 1 (or more), which means that if at least that number of secondaries don't also commit the transaction, then the transaction fails.





            share




























              0














              The tricky part is in this requirement:




              You need to ensure that database remains available if a catastrophic
              server failure or a disk failure occurs. You need to maintain
              transactional consistency of the data across both servers. You need to
              achieve these goals without manual intervention.




              The disk failure part means a failover cluster alone won't work because the storage is shared with both nodes. If the storage where the data files live fails, then both nodes will be affected.



              However, a 2-node synchronous Availability Group isn't the answer either, because as Microsoft's own documentation points out:




              If primary's session-timeout period is exceeded by a secondary replica, the primary replica temporarily shifts into asynchronous-commit mode for that secondary replica. When the secondary replica reconnects with the primary replica, they resume synchronous-commit mode.




              Read further in that link in the "Factors That Disrupt Data Synchronization" section, and Microsoft elaborates on the reasons why you can't guarantee that a 2-node AG will not lose data on failover.



              So what's the right answer for SQL Server 2012?



              There isn't one. You can't guarantee zero data loss with 2 independent SQL Server 2012s without third party tools (like SAN replication, and even then, there's a ton of work involved.) I'm guessing the question came from a test or certification written by somebody without real-world experience. That wouldn't be the first time, and it won't be the last.



              Is there a right answer for later versions?



              Yes, SQL Server 2017 introduced a new REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT setting at the Availability Group level. The default is 0, which means as long as the primary receives the transaction, it's committed. You can change that to 1 (or more), which means that if at least that number of secondaries don't also commit the transaction, then the transaction fails.





              share


























                0












                0








                0







                The tricky part is in this requirement:




                You need to ensure that database remains available if a catastrophic
                server failure or a disk failure occurs. You need to maintain
                transactional consistency of the data across both servers. You need to
                achieve these goals without manual intervention.




                The disk failure part means a failover cluster alone won't work because the storage is shared with both nodes. If the storage where the data files live fails, then both nodes will be affected.



                However, a 2-node synchronous Availability Group isn't the answer either, because as Microsoft's own documentation points out:




                If primary's session-timeout period is exceeded by a secondary replica, the primary replica temporarily shifts into asynchronous-commit mode for that secondary replica. When the secondary replica reconnects with the primary replica, they resume synchronous-commit mode.




                Read further in that link in the "Factors That Disrupt Data Synchronization" section, and Microsoft elaborates on the reasons why you can't guarantee that a 2-node AG will not lose data on failover.



                So what's the right answer for SQL Server 2012?



                There isn't one. You can't guarantee zero data loss with 2 independent SQL Server 2012s without third party tools (like SAN replication, and even then, there's a ton of work involved.) I'm guessing the question came from a test or certification written by somebody without real-world experience. That wouldn't be the first time, and it won't be the last.



                Is there a right answer for later versions?



                Yes, SQL Server 2017 introduced a new REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT setting at the Availability Group level. The default is 0, which means as long as the primary receives the transaction, it's committed. You can change that to 1 (or more), which means that if at least that number of secondaries don't also commit the transaction, then the transaction fails.





                share













                The tricky part is in this requirement:




                You need to ensure that database remains available if a catastrophic
                server failure or a disk failure occurs. You need to maintain
                transactional consistency of the data across both servers. You need to
                achieve these goals without manual intervention.




                The disk failure part means a failover cluster alone won't work because the storage is shared with both nodes. If the storage where the data files live fails, then both nodes will be affected.



                However, a 2-node synchronous Availability Group isn't the answer either, because as Microsoft's own documentation points out:




                If primary's session-timeout period is exceeded by a secondary replica, the primary replica temporarily shifts into asynchronous-commit mode for that secondary replica. When the secondary replica reconnects with the primary replica, they resume synchronous-commit mode.




                Read further in that link in the "Factors That Disrupt Data Synchronization" section, and Microsoft elaborates on the reasons why you can't guarantee that a 2-node AG will not lose data on failover.



                So what's the right answer for SQL Server 2012?



                There isn't one. You can't guarantee zero data loss with 2 independent SQL Server 2012s without third party tools (like SAN replication, and even then, there's a ton of work involved.) I'm guessing the question came from a test or certification written by somebody without real-world experience. That wouldn't be the first time, and it won't be the last.



                Is there a right answer for later versions?



                Yes, SQL Server 2017 introduced a new REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT setting at the Availability Group level. The default is 0, which means as long as the primary receives the transaction, it's committed. You can change that to 1 (or more), which means that if at least that number of secondaries don't also commit the transaction, then the transaction fails.






                share











                share


                share










                answered 6 mins ago









                Brent OzarBrent Ozar

                35k19104235




                35k19104235

























                    -1














                    The first scenario is actually the more correct implementation. In future versions of SQL Server (starting with 2016), the standard "Failover cluster" model is deprecated. Microsoft is shifting to the HA (High Availability) model via SQL Server Availability groups, which is essentially Mirroring and Clustering mixed together (no need for a witness server), with the data completely replicated to each node in the group.



                    Failover time is < 1 second, according to Microsoft professionals, as opposed to standard Failover Clustering, which can take 1+ minute for a successful automatic failover. SQL Server Availability Groups would be the way to go from this point forward.






                    share|improve this answer



















                    • 1





                      FCI is deprecated? Can you give me the link to where you read this?

                      – James Anderson
                      Sep 15 '15 at 17:08











                    • My mistake - 2016 is the last version it will be in. Synchronous mode will only be in the Enterprise version - Asynchronous will come default in Standard edition. I don't have a link, I apologize. I went to a local SQL training for EMC, hosted by a Microsoft SQL MVP who shared this information.

                      – Greg Cardall
                      Sep 15 '15 at 21:56













                    • @GregCardall no, 2016 was definitely not the last version it will be in. Just FYI, MVP is not a technical qualification - you can't just believe everything you hear from MVPs (or anyone else, for that matter.)

                      – Brent Ozar
                      14 mins ago
















                    -1














                    The first scenario is actually the more correct implementation. In future versions of SQL Server (starting with 2016), the standard "Failover cluster" model is deprecated. Microsoft is shifting to the HA (High Availability) model via SQL Server Availability groups, which is essentially Mirroring and Clustering mixed together (no need for a witness server), with the data completely replicated to each node in the group.



                    Failover time is < 1 second, according to Microsoft professionals, as opposed to standard Failover Clustering, which can take 1+ minute for a successful automatic failover. SQL Server Availability Groups would be the way to go from this point forward.






                    share|improve this answer



















                    • 1





                      FCI is deprecated? Can you give me the link to where you read this?

                      – James Anderson
                      Sep 15 '15 at 17:08











                    • My mistake - 2016 is the last version it will be in. Synchronous mode will only be in the Enterprise version - Asynchronous will come default in Standard edition. I don't have a link, I apologize. I went to a local SQL training for EMC, hosted by a Microsoft SQL MVP who shared this information.

                      – Greg Cardall
                      Sep 15 '15 at 21:56













                    • @GregCardall no, 2016 was definitely not the last version it will be in. Just FYI, MVP is not a technical qualification - you can't just believe everything you hear from MVPs (or anyone else, for that matter.)

                      – Brent Ozar
                      14 mins ago














                    -1












                    -1








                    -1







                    The first scenario is actually the more correct implementation. In future versions of SQL Server (starting with 2016), the standard "Failover cluster" model is deprecated. Microsoft is shifting to the HA (High Availability) model via SQL Server Availability groups, which is essentially Mirroring and Clustering mixed together (no need for a witness server), with the data completely replicated to each node in the group.



                    Failover time is < 1 second, according to Microsoft professionals, as opposed to standard Failover Clustering, which can take 1+ minute for a successful automatic failover. SQL Server Availability Groups would be the way to go from this point forward.






                    share|improve this answer













                    The first scenario is actually the more correct implementation. In future versions of SQL Server (starting with 2016), the standard "Failover cluster" model is deprecated. Microsoft is shifting to the HA (High Availability) model via SQL Server Availability groups, which is essentially Mirroring and Clustering mixed together (no need for a witness server), with the data completely replicated to each node in the group.



                    Failover time is < 1 second, according to Microsoft professionals, as opposed to standard Failover Clustering, which can take 1+ minute for a successful automatic failover. SQL Server Availability Groups would be the way to go from this point forward.







                    share|improve this answer












                    share|improve this answer



                    share|improve this answer










                    answered Sep 15 '15 at 16:42









                    Greg CardallGreg Cardall

                    253




                    253








                    • 1





                      FCI is deprecated? Can you give me the link to where you read this?

                      – James Anderson
                      Sep 15 '15 at 17:08











                    • My mistake - 2016 is the last version it will be in. Synchronous mode will only be in the Enterprise version - Asynchronous will come default in Standard edition. I don't have a link, I apologize. I went to a local SQL training for EMC, hosted by a Microsoft SQL MVP who shared this information.

                      – Greg Cardall
                      Sep 15 '15 at 21:56













                    • @GregCardall no, 2016 was definitely not the last version it will be in. Just FYI, MVP is not a technical qualification - you can't just believe everything you hear from MVPs (or anyone else, for that matter.)

                      – Brent Ozar
                      14 mins ago














                    • 1





                      FCI is deprecated? Can you give me the link to where you read this?

                      – James Anderson
                      Sep 15 '15 at 17:08











                    • My mistake - 2016 is the last version it will be in. Synchronous mode will only be in the Enterprise version - Asynchronous will come default in Standard edition. I don't have a link, I apologize. I went to a local SQL training for EMC, hosted by a Microsoft SQL MVP who shared this information.

                      – Greg Cardall
                      Sep 15 '15 at 21:56













                    • @GregCardall no, 2016 was definitely not the last version it will be in. Just FYI, MVP is not a technical qualification - you can't just believe everything you hear from MVPs (or anyone else, for that matter.)

                      – Brent Ozar
                      14 mins ago








                    1




                    1





                    FCI is deprecated? Can you give me the link to where you read this?

                    – James Anderson
                    Sep 15 '15 at 17:08





                    FCI is deprecated? Can you give me the link to where you read this?

                    – James Anderson
                    Sep 15 '15 at 17:08













                    My mistake - 2016 is the last version it will be in. Synchronous mode will only be in the Enterprise version - Asynchronous will come default in Standard edition. I don't have a link, I apologize. I went to a local SQL training for EMC, hosted by a Microsoft SQL MVP who shared this information.

                    – Greg Cardall
                    Sep 15 '15 at 21:56







                    My mistake - 2016 is the last version it will be in. Synchronous mode will only be in the Enterprise version - Asynchronous will come default in Standard edition. I don't have a link, I apologize. I went to a local SQL training for EMC, hosted by a Microsoft SQL MVP who shared this information.

                    – Greg Cardall
                    Sep 15 '15 at 21:56















                    @GregCardall no, 2016 was definitely not the last version it will be in. Just FYI, MVP is not a technical qualification - you can't just believe everything you hear from MVPs (or anyone else, for that matter.)

                    – Brent Ozar
                    14 mins ago





                    @GregCardall no, 2016 was definitely not the last version it will be in. Just FYI, MVP is not a technical qualification - you can't just believe everything you hear from MVPs (or anyone else, for that matter.)

                    – Brent Ozar
                    14 mins ago


















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Database Administrators Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f115087%2fneed-to-maintain-transactional-consistency-of-the-data-across-both-servers-need%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Szabolcs (Ungheria) Altri progetti | Menu di navigazione48°10′14.56″N 21°29′33.14″E /...

                    Discografia di Klaus Schulze Indice Album in studio | Album dal vivo | Singoli | Antologie | Colonne...

                    How to make inet_server_addr() return localhost in spite of ::1/128RETURN NEXT in Postgres FunctionConnect to...