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
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
migrated from stackoverflow.com Sep 15 '15 at 14:05
This question came from our site for professional and enthusiast programmers.
add a comment |
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
migrated from stackoverflow.com Sep 15 '15 at 14:05
This question came from our site for professional and enthusiast programmers.
add a comment |
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
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
sql-server sql-server-2012 availability-groups clustering high-availability
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.
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
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.
add a comment |
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.
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
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
answered 6 mins ago
Brent OzarBrent Ozar
35k19104235
35k19104235
add a comment |
add a comment |
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.
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
add a comment |
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.
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
add a comment |
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.
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.
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
add a comment |
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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