Friday, August 17, 2018

How long did t take to load One point five Billion rows using ETL data flow ?

1.5 + Billion rows was Loaded to a table using ETL data flow. It took about 15 hrs 9 mins and 59 seconds.

Both data source and Destination are tables



2000 rows / batch
Table load - fast load

A few warning 

[SSIS.Pipeline] Information: The buffer manager detected that the system was low on virtual memory, but was unable to swap out any buffers. 5 buffers were considered and 5 were locked. Either not enough memory is available to the pipeline because not enough is installed, other processes are using it, or too many buffers are locked.


[SSIS.Pipeline] Warning: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available.  To resolve, run this package as an administrator, or on the system's console.

Thursday, August 16, 2018

Rolling Cluster upgrade to Windows 2012R2 to Windows 2016 - (SQL Server availability group is a workload)

The cluster has two nodes and the workload is SQL server availability group.

Step 1
  1. Drain role on one of the nodes
  2. Evict the node from a cluster
  3. Upgrade OS to Windows 2016
  4. After upgrading successfully, add the node back to the cluster

SQL Listener

During the node 1 upgrade, SQL listener is online and application has no down time.

ClusterFunctionalLevel Verificaton

Open PowerShell , Run 

PS C:\WINDOWS\system32> get-cluster | select clusterfunctionallevel

ClusterFunctionalLevel
----------------------
                     8

you will get ClusterFunctionalLevel 8 ( which is a mixed mode clustering )

Step 2

  1. Drain role on the second node
  2. Evict the node from a cluster
  3. Upgrade the node OS to Windows 2016
  4. After upgrading successfully, add the node back to the cluster


Step 3

  1. Run validate cluster
  2. Check ClusterFunctionalLevel again

Open PowerShell , Run 

PS C:\WINDOWS\system32> get-cluster | select clusterfunctionallevel

ClusterFunctionalLevel
----------------------
                     8

you will get ClusterFunctionalLevel 8 ( which is a mixed mode clustering )

Final Step


PS C:\WINDOWS\system32> Update-ClusterFunctionalLevel

NOTE: after you run this command, you cannot rollback.

if it runs successfully, you will get 


PS C:\WINDOWS\system32> get-cluster | select clusterfunctionallevel


ClusterFunctionalLevel
----------------------
                     9

Summary

  1. Windows Server 2016 makes upgrading clusters easy with rolling upgrades
  2. Control when your cluster upgrade is complete with the Cluster Functional Level
  3. Add and manage your Windows Server 2016 cluster from the up-level (2016) nodes

How to add a Database to AlwaysOn Availability Group with four different options

To add a database to an existing AlwaysOn availability group, MS has given us four options to choose from Automatic seeding Full database an...