Every time we talk about the high availability of SQL Server, many DBAs, especially SQL Server DBAs, feel a pain: Because we all think that SQL Server cannot or is difficult to implement SQL Server. There are also a lot of DBA friends with a head shot, giving the answer "isn't high availability the technology of Microsoft, such as Replication, Failover Clustering "...
1. Is SQL Server so powerless in high availability?
A: No. In fact, SQL Server is very powerful.
2. Why do many people complain that it is difficult to implement high availability in SQL Server?
Here are several aspects.
First, there are many projects (mostly in Europe and America) that involve massive data and many high-performance applications, followed by SQL Server, third-party database auxiliary software has not yet been used.
Next, let's talk about people's problems. People have this habit: when a problem occurs, the first reaction is to escape, then find a good reason or a scapegoat, and finally come up with it. Then, they start to blame the technology itself. This is a bit similar. When a cainiao uses a treasure knife, it is not expensive, but it is not good. Speaking of this, I think of the previous issue of CSDN password leakage. Many people scold Microsoft for its technical failure, which makes the companies that have used Microsoft technology to implement high security applications joke.
Again, the concept of partial generalization is adopted! Many people think that Replication is highly available, so they expect Replication to solve their problems. But they do not know that Replication is only an important component in high availability, not all. Speaking of this, I think of a few similar misunderstandings, "think JQuery Is ajax technology", but jquery is just a framework that can be used to implement ajax. Some people think that "architecture design is the use of the design mode and architecture mode". In fact, architecture design is a kind of thinking, and those models are just a small means, the architecture design is like a building. The patterns are at best some bricks, not all.
Similarly, Replication only implements a "brick" in high availability ".
Finally, the lack of technical skills makes it difficult for many people to solve problems. I also don't know who to find and where to find it.
3. Does high availability work with a software or product?
Here, many people think of Oracle RAC and some third-party products. Different products have different levels of encapsulation. Some products encapsulate a lot of things. You only need to use people to learn how to use the tools. However, when deploying and operating these products, we are actually building high availability according to the ideas of product designers, we only think this process is a "User Manual.
The SQL Server itself does not provide such a fully encapsulated product, but the important core technologies and components required in the high-availability design already exist. "nails, screws, all the materials are available. It depends on how you assemble them.
With the same cooking materials and tools, Brilliant chefs make delicious dishes, while average chefs only cook dishes.
4. Is high availability only a database technology?
To achieve high availability, not only the content above the database layer, but also the design and architecture capabilities. You need to know the software, hardware, operating system, network, database, and other technologies.
In addition, high availability is not a specific technology, but a concept. The implementation method is 10 million. Some people say that "high availability is read/write splitting" and "high availability is Server Load balancer", right? You can use your toes to answer these questions.
5. There are no omnipotent products and solutions. Everything is "depending on the situation"
Many people argue that "no shared disk (database)" is good and "Horizontal Split" is good. To put it bluntly, a separate discussion has no significance. Technology is not used in specific applications, nor brings economic value. Technology is nothing.
Products, technologies, and so on all have certain application scopes and limitations. Many community friends always like 10 thousand product features when discussing them. For example, some people say that "SQL Server 2012 AlwaysOn" can achieve high availability. But we do not know: technology is used by people. Products are just a part of our design. The final design is still human-oriented. As early as more than a decade ago, many companies used SQL 2000 for large-scale applications. At that time, SQL Server did not have so many functions and components.