SQL Server Log Shipping For Large Databases
Scenario: A couple of days back I was setting up a DR plan for one of our most mission critical DB servers which was hosting around 10 databases having size of 10, 23, 5, 7.4, 1.8, 6.2, 7.9, 5.53, 8.7 and 125 GB respectively. I decided to implement Log Shipping as a part of the DR strategy because the DR server (Secondary Server) was never going to be used for Reporting purposes, therefore Log Shipping was the best choice. Implementing Log Shipping for small databases is relatively straightforward as one can easily do it using the GUI but for large database, the GUI is not a good option as the database on the destination server will be always out of sync. So a question arises How do we accomplish this task?. In this article, I am going to explain you’ll the detailed steps which we followed to implement the log shipping for our large databases.
For demonstration purposes, let us assume that we have two instances named INTEL and INTELabc on SQL Server 2008 R2. We have a database named test on the instance named INTEL which is 125 GB in size. A log shipping copy of the same database will reside on the instance named INTELabc.
Create a folder named LogShippingLogs on the source and destination machine on the appropriate drive. In this case, we created the folder on the F drive of the machine. This drive was dedicated to hold the DB backups and therefore we decided to use this drive to hold the copy of the Transactional Logs. Ensure that the account under which SQL Server Agent services are running on the source and destination machines has full access to this folder on the source as well as the destination machines.
Connect to the SQL Server Management Studio on the instance named INTEL. Verify that the Recovery Model of the database named Test has been kept as FULL because in Simple Recovery Model, the transactional log backup of the database cannot be performed. In order to check the Recovery Model of the database, just Right Click on it, Select Properties and then Options as shown in the screen capture below.
As shown in the above screen capture, the Recovery model of the database is FULL which satisfies the eligibility criteria for the database to participate in Log Shipping.
Take the Full Backup of the database named test. This can either be done by using GUI or by using the T-SQL, I always prefer using T-SQL rather than the GUI. The T-SQL is as shown below:
BACKUP DATABASE test TO DISK=’ F:\LogShippingLogs\test.bak’
Since the size of the database is huge – around 125 GB it will take some time for it to be backed up. In this case it took approximately 1 hour 12 minutes for the backup be completed. Once the backup is completed, RAR the backup file. This is because transferring 125 GB file over the network to the secondary server will consume a lot of resources. When I RAR the backup file, the size of the backup file gets reduced to a mere 10 GB which when transferred over the n/w to the secondary server will not cause huge consumption of resources. Also, for huge files RAR is much faster than zip.