sorry that Kine and I took this thread off topic, but now that we are back on topic, can you answer my original question, "why do you want to cluster the SQL server?" (the question was directed at you).
The reason I ask this question, is that often when I see clients with clustered Navision SQL servers, and I ask them "why" the normal answer is "the customer read something on the internet". When designing high reliablity, you DO NOT start by looking at technology and seeing what you can get from it, you look at the cost of down time and the maximum affordable failure window, and then you look at your whole system and what are the points that will take longer to get up, and you then draw up a plan to implement. But don't start with technology.
Now the question most importatn that took so long to extract fom you, was the size of the failure window, which you now say is 30 minutes. Work from there.
As I do understand, while designing a High Available (HA) solution on NAV, I will have to consider multiple factors (as rightly mentioned by David) before defining the Recovery Time Objective (RTO) and Recovery Point Objective (RPO). In most of the cases cluster solution would not be appropriate to design a NAV HA solution.
Here my basic intention was to understand NAV’s behaviour in cluster deployment and corresponding licensing.
I am re-iterating the questions again –
1. Does NAV support cluster deployment? (some posts says YES some say NO. A document available in PartnerSource talks about NAV 4.0 deployment in cluster)
2. If NAV support cluster deployment, does it auto fall back to the passive server?
3. If I deploy NAV in cluster, do I need to go for some additional licensing?
1. Does NAV support cluster deployment? (some posts says YES some say NO. A document available in PartnerSource talks about NAV 4.0 deployment in cluster)
1. That document is the only document MS has released. And one of my client is running it perfectly fine for several years.
2. If NAV support cluster deployment, does it auto fall back to the passive server?
2. Nav client looses connection, and the user needs to reconnect.
3. If I deploy NAV in cluster, do I need to go for some additional licensing?[/quote]
No you don't. You can run multiple databases as long as they are not your production environment, such as a test server/db or a passive sql server.
Ahmed Rashed Amini
Independent Consultant/Developer
A short word about the "auto fall back" behavior. (to be clear, I am talking about the behavior of SQL)
With Clustering, you have 2 SQL instances pointing to 1 common database. The failover process if much like turning off 1 server and turning the other on. Anything that was in memory, on the primary server, is lost. Committed transactions that have not been flushed to the data files (checkpointed) must be written to the disk be fore users can connect. This is the same process you will see if you yank the power on an active SQL Server and then turn it back on. Also, since memory is lost, so is anything else that SQL maintains there while running. A large database may see a temporary performance drop similar to rebooting a server.
With Mirroring (High Availability mode), you have 2 databases running on 2 different server. Transactions are committed to both database at the same time. Also, since the secondary server is already running, there is none of the "restart behavior" as with clustering. The secondary has the same information in memory as the primary.
Don't want to go off topic again, but I thought I would add a benefit of clustering. When installing updates / doing server maintenance you can take one server down and shift all the users to the other. That allows for zero downtime.
Don't want to go off topic again, but I thought I would add a benefit of clustering. When installing updates / doing server maintenance you can take one server down and shift all the users to the other. That allows for zero downtime.
This is not entirely true with clustering due to shared databases. It is much more true with mirroring as each SQL instance is completely independent with its own databases.
I was at a client a while ago that had a clustered SQL server, very much like the OP was asking about. I asked about back up and recovery processes and the company president told me that was not necessary because they have a Cluster which can not crash. This was on a Sunday, and no one was on the system, and I had just built a new database, so I knew I had a full backup. So I took him into the server room, and told him to turn off one of the servers.
The whole system went down, the cluster came back on line, but the Navision database was dead.
The problem with clusters is that people trust them. My preference is a managed disaster recovery involving people and thinking. Either Log Shipping if you can afford to lose 5-15 minutes of data, or mirrored servers if you can't these are manageable and people know what to expect.
But this is my experience, everyone should feel free to go with their own beliefs.
What I feel, HA design depends on required RTO/RPO, Environment, Application, Budget etc. It can never have a ONE single simple answer like - "Go for clustering" or "Do Log Shipping" ...
We more or less know how SQL cluster/Log shipping/Mirroring behaves or at least have enough documentation to learn but hardly anything is available on NAV (NST)
Recently we came across an opportunity of replacing entire IT stack of a large enterprise (service sector). The tentative deal value was about $12M. NAV was a tiny part worth of $400K. They would have around 20-30 NAV users working on Financials, Asset and AP. During the tendering and proposal discussion client asked for 99.999% availability and auto fall back (for planned/non-planned outages) for the entire IT stack. Realistically they do not need 99.999% availability for a non-business critical, back end application like ERP used by few users but the IT department, Tendering committee, Procurement planning all were in favour of having one single standard across the IT stack while writing the tender document.
It was a big hurdle for us to cross the compliance phase into the F2F discussions. During finalization and F2F discussion we agreed that we would keep on taking backup of the NAV SQL server (Log Shipping) to another small NAV SQL Server after every 60mins.
We channelized the HW/SW savings into providing them with a resource for dedicated ERP support/handholding for initial x months sitting in their HO. Now, the customer is happily doing with a possibility of losing ERP system and data of max 60 mins …but having one smart chap helping them all through out the day. This was a win-win solution for all.
The problem is to cross the initial hurdle and that’s why my post was to know about the behaviour/licensing of NAV in cluster (one of the not so realistic way to meet unrealistic HA demand)
Anyway, has anyone deployed NST and DB in Test Clustered environment with having 1 active and 1 passive server for both NST & DB?
We more or less know how SQL cluster/Log shipping/Mirroring behaves or at least have enough documentation to learn but hardly anything is available on NAV (NST)
After failover the NST would need to be restarted and pointed to the backup system. User would also need to restart.
...taking backup of the NAV SQL server (Log Shipping) to another small NAV SQL Server after every 60mins...
IF Log Shipping consider a shorter window (say 10 or 15 minutes). Mirroring (High Availability) would eliminate the potential data loss and extended downtime.
Yes...for that client it was identified as non-business critical application. (bad example.... say google... thr ERP/Accounting/Financial system may go out for 30mins but not the serach engine)
IF Log Shipping consider a shorter window (say 10 or 15 minutes). Mirroring (High Availability) would eliminate the potential data loss and extended downtime.
They are fine with a window of 30mins. ... as i said..i feel it always differs from client to client...application to application....
IF Log Shipping consider a shorter window (say 10 or 15 minutes). Mirroring (High Availability) would eliminate the potential data loss and extended downtime.
They are fine with a window of 30mins. ... as i said..i feel it always differs from client to client...application to application....
I agree that it varies from cleint to cleint. You need to determine a specific cleint's needs (as it seems you are doing) then select the proper technologies to meet them. Sometimes you may find that a combination of technologies is the solution.
With Log Shipping, keep in mind that will be the minimum downtime and data loss. If the backup system is much slower it may lag behind and have a few or more logs to restore before it will come up. The failover process is also not automated. Someone will need to be available to bring the backup online. This is a primary reason one of our clients chose mirroring over log shipping. If the server fails, during a weekend or night shift, there may not be someone around to handle the steps of bringing up the backup. With mirroring (high availability) this process is automated, and the users just need to restart NAV and connect to the secondary server.
With mirroring (high availability) this process is automated, and the users just need to restart NAV and connect to the secondary server.
Agree...with your mirroring solution. Have a question though... Say i have one NST box (A) and a SQL Box (B). This SQL Box(B) is mirrored to another SQL Box (C). My understanding is A would be configured to talk to B. SQL mirrioring would automaticaly handle communication between B and C. Hence if B is going down completely, C would automaticaly come up but, do i need to change any configuration in B?
With mirroring (high availability) this process is automated, and the users just need to restart NAV and connect to the secondary server.
Agree...with your mirroring solution. Have a question though... Say i have one NST box (A) and a SQL Box (B). This SQL Box(B) is mirrored to another SQL Box (C). My understanding is A would be configured to talk to B. SQL mirrioring would automaticaly handle communication between B and C. Hence if B is going down completely, C would automaticaly come up but, do i need to change any configuration in B?
Just to be clear you mirror a database, not the entie server. Any fumctions/processes external to the database, that are required, must be duplicated on the backup system. You would need another NST service (pointing at the mirror DB) that would need to be manually started. This does complicate the enviorment somewhat.
True...though when i did it in a test environment, i omitted Witness box...
...in continuation of this ... for high performance... does installing multiple NAV Server (Service Tire) pointing to a single DB enhances performance? (like we do install multiple AOS in case of AX) How do i do that?
I am sure..there are documents regarding this... it would be great if someone can point me to the relevant one....
The witness is required if you want auto failover.
True...what i was testing was a simple mirroring....
...in continuation of this ... for high performance... does installing multiple NAV Server (Service Tire) pointing to a single DB enhances performance? (like we do install multiple AOS in case of AX) How do i do that?
I am sure..there are documents regarding this... it would be great if someone can point me to the relevant one....
Comments
sorry that Kine and I took this thread off topic, but now that we are back on topic, can you answer my original question, "why do you want to cluster the SQL server?" (the question was directed at you).
The reason I ask this question, is that often when I see clients with clustered Navision SQL servers, and I ask them "why" the normal answer is "the customer read something on the internet". When designing high reliablity, you DO NOT start by looking at technology and seeing what you can get from it, you look at the cost of down time and the maximum affordable failure window, and then you look at your whole system and what are the points that will take longer to get up, and you then draw up a plan to implement. But don't start with technology.
Now the question most importatn that took so long to extract fom you, was the size of the failure window, which you now say is 30 minutes. Work from there.
Here my basic intention was to understand NAV’s behaviour in cluster deployment and corresponding licensing.
I am re-iterating the questions again –
1. Does NAV support cluster deployment? (some posts says YES some say NO. A document available in PartnerSource talks about NAV 4.0 deployment in cluster)
2. If NAV support cluster deployment, does it auto fall back to the passive server?
3. If I deploy NAV in cluster, do I need to go for some additional licensing?
No you don't. You can run multiple databases as long as they are not your production environment, such as a test server/db or a passive sql server.
Independent Consultant/Developer
blog: https://dynamicsuser.net/nav/b/ara3n
With Clustering, you have 2 SQL instances pointing to 1 common database. The failover process if much like turning off 1 server and turning the other on. Anything that was in memory, on the primary server, is lost. Committed transactions that have not been flushed to the data files (checkpointed) must be written to the disk be fore users can connect. This is the same process you will see if you yank the power on an active SQL Server and then turn it back on. Also, since memory is lost, so is anything else that SQL maintains there while running. A large database may see a temporary performance drop similar to rebooting a server.
With Mirroring (High Availability mode), you have 2 databases running on 2 different server. Transactions are committed to both database at the same time. Also, since the secondary server is already running, there is none of the "restart behavior" as with clustering. The secondary has the same information in memory as the primary.
This is not entirely true with clustering due to shared databases. It is much more true with mirroring as each SQL instance is completely independent with its own databases.
The whole system went down, the cluster came back on line, but the Navision database was dead.
The problem with clusters is that people trust them. My preference is a managed disaster recovery involving people and thinking. Either Log Shipping if you can afford to lose 5-15 minutes of data, or mirrored servers if you can't these are manageable and people know what to expect.
But this is my experience, everyone should feel free to go with their own beliefs.
We more or less know how SQL cluster/Log shipping/Mirroring behaves or at least have enough documentation to learn but hardly anything is available on NAV (NST)
Recently we came across an opportunity of replacing entire IT stack of a large enterprise (service sector). The tentative deal value was about $12M. NAV was a tiny part worth of $400K. They would have around 20-30 NAV users working on Financials, Asset and AP. During the tendering and proposal discussion client asked for 99.999% availability and auto fall back (for planned/non-planned outages) for the entire IT stack. Realistically they do not need 99.999% availability for a non-business critical, back end application like ERP used by few users but the IT department, Tendering committee, Procurement planning all were in favour of having one single standard across the IT stack while writing the tender document.
It was a big hurdle for us to cross the compliance phase into the F2F discussions. During finalization and F2F discussion we agreed that we would keep on taking backup of the NAV SQL server (Log Shipping) to another small NAV SQL Server after every 60mins.
We channelized the HW/SW savings into providing them with a resource for dedicated ERP support/handholding for initial x months sitting in their HO. Now, the customer is happily doing with a possibility of losing ERP system and data of max 60 mins …but having one smart chap helping them all through out the day. This was a win-win solution for all.
The problem is to cross the initial hurdle and that’s why my post was to know about the behaviour/licensing of NAV in cluster (one of the not so realistic way to meet unrealistic HA demand)
Anyway, has anyone deployed NST and DB in Test Clustered environment with having 1 active and 1 passive server for both NST & DB?
After failover the NST would need to be restarted and pointed to the backup system. User would also need to restart.
Accounting? Non-Business critical?
IF Log Shipping consider a shorter window (say 10 or 15 minutes). Mirroring (High Availability) would eliminate the potential data loss and extended downtime.
Yes...for that client it was identified as non-business critical application. (bad example.... say google... thr ERP/Accounting/Financial system may go out for 30mins but not the serach engine)
They are fine with a window of 30mins. ... as i said..i feel it always differs from client to client...application to application....
I agree that it varies from cleint to cleint. You need to determine a specific cleint's needs (as it seems you are doing) then select the proper technologies to meet them. Sometimes you may find that a combination of technologies is the solution.
With Log Shipping, keep in mind that will be the minimum downtime and data loss. If the backup system is much slower it may lag behind and have a few or more logs to restore before it will come up. The failover process is also not automated. Someone will need to be available to bring the backup online. This is a primary reason one of our clients chose mirroring over log shipping. If the server fails, during a weekend or night shift, there may not be someone around to handle the steps of bringing up the backup. With mirroring (high availability) this process is automated, and the users just need to restart NAV and connect to the secondary server.
Agree...with your mirroring solution. Have a question though... Say i have one NST box (A) and a SQL Box (B). This SQL Box(B) is mirrored to another SQL Box (C). My understanding is A would be configured to talk to B. SQL mirrioring would automaticaly handle communication between B and C. Hence if B is going down completely, C would automaticaly come up but, do i need to change any configuration in B?
Just to be clear you mirror a database, not the entie server. Any fumctions/processes external to the database, that are required, must be duplicated on the backup system. You would need another NST service (pointing at the mirror DB) that would need to be manually started. This does complicate the enviorment somewhat.
Mirroring (high availability) actually involves 3 boxes. Primary (B), secondary (C), and Witness (D).
Ok..got my answer...
True...though when i did it in a test environment, i omitted Witness box...
...in continuation of this ... for high performance... does installing multiple NAV Server (Service Tire) pointing to a single DB enhances performance? (like we do install multiple AOS in case of AX) How do i do that?
I am sure..there are documents regarding this... it would be great if someone can point me to the relevant one....
Then you were not testing (high availability) mode. The witness is required if you want auto failover.
Any thoughts?