In many mission-critical environments, it's imperative that the application be available at all times24 hours a day, seven days a week. SQL Server helps availability by providing online backup, online maintenance, automatic recovery, and the ability to install SQL Server on a cluster for failover support.
SQL Server's dynamic online backup allows databases to be backed up while users are actively querying and updating in the database. The SQL Server Agent service provides a built-in scheduling engine that enables backups to occur automatically, without involving the administrator. You can also accomplish other maintenance tasks , such as diagnostics, design changes (for example, adding a column to a table), and integrity changes without having to shut down SQL Server or restrict user access.
Only a few systemwide configuration modifications, such as changing the maximum number of user connections, require that SQL Server be restarted. Although reconfiguration doesn't commonly occur in a well-planned and well-deployed production system, it can typically be completed with less than a minute of system downtime if it's necessary.
In the event of a system failure, such as a power outage , SQL Server ensures rapid database recovery when services are restored. By using the transaction logs associated with each database, SQL Server quickly recovers each database upon startup, rolling back transactions that hadn't completed yet and rolling forward transactions that had committed but weren't written to disk yet. In addition, you can set the SQL Server Agent service to continually monitor the state of SQL Server. If an error occurs that causes SQL Server to stop unexpectedly, the SQL Server Agent service will detect this and can automatically restart SQL Server with minimal interruption.
In cooperation with shared-disk cluster hardware, SQL Server Enterprise Edition provides failover support when installing SQL Server on a node that's part of a Microsoft Cluster Server (MSCS) cluster. The applications communicating with SQL Server don't need to know that the server they're connecting to is actually a virtual server, which can be running on either member of a cluster. If the server on which SQL Server is running fails, the second server in the cluster immediately takes ownership of the disks that hold the SQL Server data and takes over its workload. The second server in the cluster doesn't need to be inactive while the first server is workingit can be running SQL Server while it's performing other activities.