phone icon nav Call Us 888-690-3282    Follow Us
phone icon nav Call Us 888-690-3282    Follow Us

Backup and Recovery Strategies for SQL Server Database Administrators (DBAs)

Introduction

Effective backup and recovery strategies are essential skills for maintaining data integrity, minimizing downtime, and ensuring business continuity. As a Microsoft SQL Server DBA, understanding best practices for backups and recovery is crucial. In this whitepaper, we will explore SQL Server backup types, recovery models, and disaster recovery planning. 

Table of Contents

Understanding Backup and Recovery

  • Define backup and recovery.
  • Discuss the impact of data loss and downtime.

SQL Server Backup Types

  • Full backups: Capture the entire database.
  • Differential backups: Capture changes since the last full backup.
  • Transaction log backups: Capture transaction log changes.

Recovery Models

  • Simple recovery model: Minimal logging, no point-in-time recovery.
  • Full recovery model: Full logging, point-in-time recovery.
  • Bulk-logged recovery model: Minimized logging for bulk operations.

Best Practices for Backup and Recovery

  • Regular full backups: Ensure complete data protection.
  • Frequent differential backups: Reduce restore time.
  • Frequent transaction log backups: Enable point-in-time recovery.

Point-in-Time Recovery

  • Restore to a specific time using transaction log backups.
  • Use STOPAT or STOPBEFOREMARK options.

Disaster Recovery Planning

  • Define recovery time objective (RTO) and recovery point objective (RPO).
  • Set up standby servers or secondary replicas.
  • Test disaster recovery scenarios regularly.

Understanding Backup and Recovery

Importance of Backup and Recovery

  • Data loss can lead to financial losses and reputation damage.
  • Downtime affects business operations and customer satisfaction.

SQL Server Backup Types

Full Backups

  • Capture the entire database.
  • Performed regularly (e.g., daily).
  • Suitable for disaster recovery.

Differential Backups

  • Capture changes since the last full backup.
  • Faster restore than full backups.
  • Used in conjunction with full backups.

Transaction Log Backups

  • Capture transaction log changes.
  • Enable point-in-time recovery.
  • Frequent log backups for critical databases.

Recovery Models

Simple Recovery Model

  • Minimal logging.
  • No point-in-time recovery.
  • Suitable for non-critical databases.

Full Recovery Model

  • Full logging.
  • Point-in-time recovery.
  • Regular transaction log backups.

Bulk-Logged Recovery Model

  • Minimized logging for bulk operations (e.g., index rebuilds).
  • Limited point-in-time recovery.

Best Practices for Backup and Recovery

Regular Full Backups

  • Ensure complete data protection.
  • Schedule full backups during off-peak hours.

Frequent Differential Backups

  • Reduce restore time compared to full backups.
  • Perform after significant data changes.

Frequent Transaction Log Backups

  • Enable point-in-time recovery.
  • Set up a regular log backup schedule.

Point-in-Time Recovery

Restoring to a Specific Time

  • Use transaction log backups to restore to a specific point.
  • Use STOPAT or STOPBEFOREMARK options.

Disaster Recovery Planning

Define RTO and RPO

  • Recovery Time Objective (RTO): Maximum acceptable downtime.
  • Recovery Point Objective (RPO): Maximum acceptable data loss.

Standby Servers and Secondary Replicas

  • Set up standby servers for failover.
  • Use Always On Availability Groups for high availability.

Regular Testing

  • Test disaster recovery scenarios.
  • Document procedures and contact information.

Conclusion

SQL Server backup and recovery strategies are critical for maintaining data availability and meeting business requirements. As a DBA, stay informed about new features, monitor backups, and collaborate with system administrators to ensure effective disaster recovery.

Backup and recovery are just a small fraction of the tasks every database administrator should know.

Background

A large automotive plant operator has been using a custom application framework to build an application integral to their operations. Originally built using JDK8 and JBoss4 against an Oracle database, the application received periodic updates, with the last major update in 2020/2021. In 2024, the client and Performance One Data Solutions, a division of Ross Group Inc., embarked on a joint effort to upgrade the technology stack to enhance performance, security, and maintainability.

Objectives

The primary goals of the project were:

  1. Upgrade the Custom Application Framework from JDK8 to JDK21.
  2. Upgrade the jQuery integration to release 3.7.1.
  3. Upgrade the application to run on Wildfly 30 from Wildfly 11.
  4. Migrate the database backend from Oracle 12 to Microsoft SQL Server 2020.

Challenges and Solutions

Framework and Database Migration:

  • Challenge: The application framework was vetted against Microsoft SQL Server but was not deployed in a major application.
  • Solution: Performance One refactored the framework to conform to Java 9+ standards and regression-tested it against Microsoft SQL Server 2020.

Application Refactoring:

  • Challenge: Refactoring the client application to compile and run using the new tech stack.
  • Solution: Performance One took a copy of the client application and refactored it to compile and launch using JDK21, Wildfly 30, and Microsoft SQL Server.

Data Migration:

  • Challenge: Migrating data from Oracle to Microsoft SQL Server.
  • Solution: Performance One provided migrated data and created installation scripts to upgrade the client’s Microsoft SQL Server.

Report Conversion:

  • Challenge: Converting BIRT and Crystal reports against Microsoft SQL Server.
  • Solution: Performance One converted the reports and ensured they worked with Microsoft SQL Server.

Project Timeline

Initial Milestones:

    1. Complete Framework upgrade to JDK21/Wildfly 30.
    2. Provide migrated data from Oracle to Microsoft SQL Server.
    3. Regression test the application framework against Microsoft SQL Server 2020.
    4. Refactor the client’s application to compile and launch using the new tech stack.
    5. Create installation data script for Microsoft SQL Server compliance.
    6. Regression test the application installation processes.
    7. Make recommendations for unused application features.
    8. Validate and upgrade application code.

Additional Tasks

  • Database Procedures Conversion: Performance One converted the client’s database procedures, functions, and views to Microsoft SQL Server.
  • Report Migrations: Ongoing conversion of BIRT and Crystal report development.
  • Application Enhancements: Upgrading client’s application screens for jQuery 3.7.1, file attachment uploads, and integration with scanner devices using web sockets.
  • Server Maintenance: Wildfly server maintenance, release builds, and deployment handling, with a transition plan for client resources post-go-live.

Conclusion

Performance One Data Solutions partnered with the client to upgrade the technology stack, ensuring improved performance and maintainability. The collaboration between Performance One and the client team demonstrated effective problem-solving and adaptability, setting a strong foundation for future upgrades and enhancements.

Contact-Us

Let's Talk

Use our expertise to propel your business to the next level.