“DBAs will use PowerShell to automate and scale the complex operations of a SQL Server, starting with its most fundamental: database backups, thanks to an open-source initiative,” said Joey D’Antoni on 05/13/2020.
The toolbox of SQL Server usually consists of Microsoft’s SQL Server management software, such as Azure Data Studio and SQL Server Management Studio, and also Windows Performance Monitor (perfmon) and a set of selected Scripts in T-SQL which assists in analyzing a database or server’s performance. Upgrade your skills with the Sql server dba training course to build your professional career in Database Administration. You will master the concepts like SQL server DBA, SQL clustering, query designing, performance tuning, etc. which helps you to gain expertise in SQL Server.
Despite the fact that PowerShell is widely used to communicate with Windows and Azure, the complexities of the system management objects (SMO) that exist underneath the native SQL Server PowerShell (SQLPS) cmdlets restrict interactions with SQL Server.
The SQL Server Management Objects (SMO) is a .NET objects collection that can be used to program SQL Server. In the earlier days using PowerShell against SQL Server in the SQLPS module, there was a lack of required programming skills for most sysadmins and DBAs. There were a few people in MVP with a data platform group who really knew PowerShell and utilized it for several jobs, but the inherent difficulty put most people off.
The capabilities of PowerShell for scaling and automating complex tasks, and also the usability problems of native solutions, a community of enterprising DBAs headed by Chrissy LeMaire in Rob Sewell and Belgium in the United Kingdom recognized them, who set out to build dbatools, a project that is open source.
LeMaire started developing dbatools in the year 2014 mostly as a project to migrate her instances of SharePoint SQL Server. As a result, in 2016, the project began receiving community donations, and in 2019, it released version 1.0. There are currently over 550 commands and 160 developers in the project.
What does it do now that we’ve had a brief history?
Rather than developers, dbatools is a platform for the end-users or DBAs in this scenario. There are many sections of the commands, beginning with the most fundamental operations performed by a DBA: backing up their databases. It just takes one line of code to back up everything on a database server:
This command would back up everything of the instance’s databases to \\backups\sql1 with each database’s subfolders created if required. Other tools with similar features are available. Backup orders, on the other hand, have the unique capability of restoring all of those databases with a single line of code.
Can you have any extra transaction log and differential backups? That isn’t an issue because the command “restore-dbadatabase” will search each backup file’s folder and headers to create a script on restore that can be run based on service, and this also gives you the choice of only printing the statements of T-SQL you’ll need to manually run the restore operation.
Aside from restore and backup, the command “test-dbalast backup“ allows you to test your most recent backup. The restore method should be tested on a daily basis, but it isn’t performed almost as much as it should be. This command performs the checking automatically and the backup is restored to a remote server. It checks the new database that has been restored for continuity in addition to the restore, ensuring the backup’s complete validity.
Though dbatools contains a lot of SQL Server’s surface area, migration and server setup are two areas where this truly excels. Configuring mirroring or shipping transaction logs is a significant endeavor when it comes to databases on the target server being restored, but migrating user databases has never been so easy. Dbatools includes commands to configure log shipping and database mirroring automatically, necessitating a minimum manual intervention from DBA based on the strength of the backup and restore mechanism that has been specified.
Moving SQL Server Agent log-ins and jobs from one of the servers to another is another problem when performing server migrations. I’ve done this before with integration services of SQL Server, and this was a clumsy, ugly operation at best. You may migrate each part of the settings of a server and the metadata with dbatools in a granular manner. For instance, if you would like to move your jobs of SQL Server Agent not, but, the notifications, you have the level of control.
When doing a server conversion, you usually would like to bring it over at once. You can copy all into the SQL Server Agent, including alerts, operators, jobs, and notifications, using the Copy-DBAAgentServer command. The same is true with logging in. For example, if the master database was destroyed a few months ago when the staff was at a customer’s site fixing a production server, and you are lacking a backup. Using the copy-dbalogin command, you are able to easily copy all log-ins from the development folder.
There are some advantages of automating the routine processes. It relieves you of time-consuming, repetitive jobs. It also improves the consistency of the workspace so you’re less prone to experience complications due to misconfigurations. And when you go, you’ll have an integrated system to review them (dbachecks is a side project with dbatools worth looking into) and quickly address configuration problems.
Although when you don’t build a big pipeline of automation, having a basic backup and restore process, and also the ability to migrate users from one of the servers to the another, would be advantageous even with the tiniest SQL Server business.
You were now aware of how DBA tools are utilized for SQL Server by applying the commands to take the backup for the database server and restoring the databases. You also came to know about the terms of server migration that can be performed using dba tools and other related issues while configuring the setup.