Claudio Silva has started a series on backing up your SQL Server instance configuration. Part 1 walks us through the basic process:
If you have never used this command, you can test for a single instance by running the following:
Export-DbaInstance -SqlInstance "devInstance" -Path "D:\temp"
This will create all scripts in the
D:\temp
folder. A folder named “devInstance-{date}” will be created.
In this folder, you will find 1 file per ‘object type’. The file names are in the form of “#-.sql” where the # is a number that represents the iterator on the order that the internal calls of the underlying functions happen.
Be sure to read the sections around passwords!
Part 2 introduces parallelism into the mix:
There are a couple of options, like the native PowerShell cmdlets
Start-Job
/Stop-Job
a.k.a background jobs, Runspaces jobs and Thread jobs but I will just mention two of them. One is a nice addition to the most recent version of PowerShell (v7) and the other using a PowerShell module.In case you don’t know, with PowerShell v7 it’s possible to use a new option
-Parallel
withForEach-Object
. Check PowerShell’s team blog post PowerShell ForEach-Object Parallel Feature.However, because I don’t have (yet :-)) PS7, I will keep leveraging on PoshRSJob module, which uses runspaces, created by Boe Prox (T | B).
There’s a lot of meat in that second part, so check it out.