Pilots go through training in machines designed to resemble the cockpit of an aircraft with mechanisms that move the entire structure in imitation of an aircraft’s motion. These machines are known as flight simulators. Just like pilots have flight simulators, SQL Server Database Administrators (SQL DBAs) can build their test network environments to simulate the production environment for SQL Server High Availability and Disaster (HADR) testing purposes.
In the not-so-distant past, building a test network for SQL Server HADR testing comes with a hefty price tag along with physical servers and extra space for the server rack. With the advent of virtualization in the early 2000s, the computing world changed for good. Nowadays, you can download all the required evaluation software for free and building the test network on your desktop or laptop.
In this blog series, I will build a test network consists of a Windows Server 2019 Domain Controller and three Windows Server 2019 Servers with SQL Server 2019 installed for HADR testing – a virtual lab. The series topics covered will include:
- Virtualization concepts
- Virtual network for the virtual lab
- Software and hardware requirements
- Installing Oracle VM VirtualBox
- Creating the Domain Controller (DC) VM
- Creating the SQL Server VMs
- Configuring the SQL Server VMs
- Testing the virtual lab
Today I’ll start with virtualization concepts but look for the remaining topics to be published weekly over the course of the next several weeks. Let’s get started!
Virtualization in computing is the process of using a hypervisor software installed on a host computer that enables you to create and run virtual machines (VMs) and computer networks. The hypervisor is responsible for abstracting resources to hide the underlying hardware, create and manage virtual machines, and schedule resources. The underlying hardware include CPU, memory, disk, and Network Interface Card (NIC). For example, Figure 2-1: Virtualization Concepts shows 4 VMs also known as guests created on a computer also known as host. Each of the VMs share the underlying hardware make available by the host through the hypervisor.
Figure 2-1: Virtualization Concepts
The concept of virtualization is applied universally for different goals. Servers and networking and testing environments usually are the two most common ones. Our goal in this chapter is building a virtual lab running on a Windows Server 2019 Domain for SQL Server 2019 HADR testing. You can visualize the virtual lab as shown in Figure 2-2: Virtual Lab. The host computer is your desktop or laptop. VM01, VM02, VM03, and VM04 are the VMs in the virtual network of the virtual lab and they are all installed and configured inside your host computer.
Figure 2-2: Virtual Lab
Just like SQL Server Administration are the core responsibilities of SQL DBAs, Windows Administration activities are best handled by Windows Administrators. While you will play the role as a Windows Administrator in building the virtual lab, the core knowledge and competency of Windows Administration is beyond the scope of this blog series. We will go over some of the key terms on a high-level overview and you can further review and research them as needed.
Supporting SQL Server is a team support. In addition to playing well with your fellow SQL Server DBAs, you will also need to get along with the Windows team, Network team, Development team, Storage team, Management team, etc. You can’t be the Jack of all Trades.
In the next blog, we will cover “virtual network for the virtual lab.” Please stay tuned.
Subscribe to Our Blog
Never miss a post! Stay up to date with the latest database, application and analytics tips and news. Delivered in a handy bi-weekly update straight to your inbox. You can unsubscribe at any time.
Most people will encounter this error when their application tries to connect to an Oracle database service, but it can also be raised by one database instance trying to connect to another database service via a database link.
Imagine over 100 logins on the source server, you need to migrate them to the destination server. Wouldn’t it be awesome if we could automate the process?