Microsoft SQL Server Architecture Tom Hamilton – America’s Channel Database CSE
Common SQL Server Versions Product Overview SQL Server 2008 SQL Server 2012
SQL Server Components Databases Database Files and File Groups Transaction Logs Backup and Recovery Microsoft Clusters Protocols Disaster Recovery
SQL Server Databases System databases User databases Master Model MSDB Resource Tempdb User databases
SQL Server Files Binaries Datafiles (.mdf, .ndf) Transaction log files (.ldf) Backup files and snapshot files File groups
SQL Server 2005 New Feature: Data Partitioning Using File Groups Resources: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sql2k5partition.asp http://www.microsoft.com/sql/bi/ProjectREAL/default.mspx http://msdn.microsoft.com/en-us/library/ms190787
SQL Server Transaction Log When the end of the logical log reaches the end of the physical log file, the new log records wrap around to the start of the physical log file.
SQL Server Recovery Model Architectures Three Models: Simple: Truncate occurs on checkpoint (default in SQL2000) No “roll-forward” capability Data loss acceptable Bulk Logged: All operations are logged except bulk operations (BCP, BULK, etc) (DSS environments) Roll forward capability Some data loss acceptable Full: All ops are logged (Default for SQL Server 2005) Full roll forward/back Least amount of data loss possible
SQL Server Recovery Model Architectures Description Work Loss Exposure Recover to point in time? Simple No log backups Changes since the most recent backup are unprotected Can recover only to the end of a backup Full Requires log backups Normally none Can recover to a specific point in time Bulk logged If the log is damaged or bulk-logged operations occurred since the most recent log backup, changes since the last backup must be redone Point in time is not supported
SQL Server 2005 New Feature: DB Snapshots – Copy on write Key Points from SQL Books Online (BOL) Intended for reporting to a point in time at mirror site or locally Performance is reduced due to increased I/O on the source database resulting from a copy-on-write operation to the snapshot every time a page is updated. Snapshots of the model, master, and temp databases are prohibited. Specifications of the database snapshot files cannot be changed. Files cannot be dropped from a snapshot. Can’t backup or restore snapshots. Can’t attach or detach snapshots. Can’t clone a snapshot. Before reverting a database, consider the following:
Microsoft Cluster Server Implementation Considerations Hardware Software Network
Protocols FCP iSCSI SCSI/NFS? SMB
SQL Server 2005 New Feature: DB Mirroring Database Failover Very fast failover – less than 3 seconds Automatic or manual failover Works with dissimilar hardware and storage Sync and async modes supported More info: http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx This is a great solution but will not be released until a later service pack. Key points: First, explain principal and mirror and witness Relationships can be bidirectional Customer view:
Microsoft SQL Server Mirror Vs. SnapMirror
Microsoft SQL Server Mirror Vs. SnapMirror Data transfers Licenses Server-server vs. controller-controller Reversible sync Failover Database only vs. everything Go for win-win
New in SQL Server 2012 Availability Groups SMB http://msdn.microsoft.com/en-us/library/cc645581.aspx SMB http://msdn.microsoft.com/en-us/library/hh759341.asp
SQL Server Replication Transactional Replication Merge Replication Snapshot replication Replication is a set of technologies for copying and distributing data and database objects from one database to another and then synchronizing between databases to maintain consistency. Using replication, you can distribute data to different locations and to remote or mobile users over local and wide area networks, dial-up connections, wireless connections, and the Internet. Transactional replication is typically used in server-to-server scenarios that require high throughput, including: improving scalability and availability; data warehousing and reporting; integrating data from multiple sites; integrating heterogeneous data; and offloading batch processing. Merge replication is primarily designed for mobile applications or distributed server applications that have possible data conflicts. Common scenarios include: exchanging data with mobile users; consumer point of sale (POS) applications; and integration of data from multiple sites. Snapshot replication is used to provide the initial data set for transactional and merge replication; it can also be used when complete refreshes of data are appropriate. With these three types of replication, SQL Server provides a powerful and flexible system for synchronizing data across your enterprise.