* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download StrategiesForWorkingWithTexasSizedDatabases
Open Database Connectivity wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Ingres (database) wikipedia , lookup
Concurrency control wikipedia , lookup
Relational model wikipedia , lookup
Clusterpoint wikipedia , lookup
Database model wikipedia , lookup
Strategies for Working with Texas-sized Databases Robert L Davis Database Engineer www.sqlsoldier.com @SQLSoldier PASS Security Virtual Chapter • http://security.sqlpass.org • Volunteers needed Robert L Davis • Microsoft Certified Master • Data Platform MVP Database Engineer • BlueMountain Capital Management • 15+ years working with SQL Server @SQLSoldier • www.sqlsoldier.com What is a Texas-sized Database? What is the smallest database that qualifies as a VLDB? 5 TB (35%, 7 Votes) 1 TB (25%, 5 Votes) 500 GB (20%, 4 Votes) 100 GB (15%, 3 Votes) 750 GB (5%, 1 Votes) 250 GB (0%, 0 Votes) 50 GB (0%, 0 Votes) Total Voters: 20 What is a Texas-sized Database? What is the largest db you have worked with? 1 TB to 5 TB (25%, 3 Votes) Less than 100 GB (17%, 2 Votes) 100 GB to 500 GB (17%, 2 Votes) 500 GB to 1 TB (17%, 2 Votes) 5 TB to 10 TB (8%, 1 Votes) 20 TB to 50 TB (8%, 1 Votes) More than 50 TB (8%, 1 Votes) 10 TB to 20 TB (0%, 0 Votes) Total Voters: 12 What is a Texas-sized Database? What are your biggest challenges with working with VLDBs? (choose up to 3) Index maintenance (79%, 11 Votes) Backups (57%, 8 Votes) Integrity checks (50%, 7 Votes) Archiving/purging data (36%, 5 Votes) Disk/disk space management (29%, 4 Votes) Partitioning management (21%, 3 Votes) Inefficient queries (14%, 2 Votes) Disk performance (7%, 1 Votes) Total Voters: 14 Index Maintenance  Very large tables have very large indexes  Be selective  Reorganize vs. Rebuild  Index maintenance at partition level  Yay for online partition index maintenance!  Don’t check fragmentation levels  Check on different day  Design with index maintenance in mind  No LOB, XML, or spatial columns in tables that will get large  Combine partitioned views with partitioned tables  Minion Reindex: http://minionware.net/reindex/ Index Maintenance  Partitioned views with partitioned tables Backups: What’s Difficult  Everything takes longer  Back up time  Copy time  Restore time  Uses too much disk space  Uses too many resources  Network throughput  SAN throughput Backups: Speeding up  Multiple dedicated drives  1 backup thread per drive/mount point  1 file per drive/mount point  Differential/Partial backup  Read-only filegroups/Read-write filegroups  Per file or filegroup  Tune backup options  MaxTransferSize  BufferCount  http://sirsql.net/content/2012/12/13/20121212automated-backup-tuning/  Fast drives  Crank up the SAN throughput  Maximize Queue Depth  Increase the SAN paths  BONUS: works for restores too Integrity Checks  Takes a very long time  Restore backup to another server and run there  Run with PHYSICAL_ONLY option  Break it up into smaller parts over multiple nights  Per filegroup  Per table  See Paul Randal’s post: http://www.sqlskills.com/BLOGS/PAUL/post/CHECKDB-FromEvery-Angle-Consistency-Checking-Options-for-a-VLDB.aspx Archiving / Purging Data  Takes a long time  Causes excessive blocking (lock escalation)  Deleted space difficult to recover  Partitioning addresses all of this  Switch partitions out  Drop table/remove filegroup Archiving / Purging Data  No partitioning?  Delete in small batches  Ensure that log backups or Checkpoints are running between batches  Use targeted deletes  Identify the PK columns to be deleted  No good solution for reclaiming space  Try running DBCC SHRINKFILE with TRUNCATEONLY  If you must shrink, plan to rebuild indexes Replication/High Availability  Log shipping and database mirroring require initializing with a full backup  Replication requires that the data get to the subscriber  Initialize from backup  Log shipping is the gateway  Set up log shipping  Convert to replication or mirroring Reversing Log Shipping            Disable all backup jobs that may hit the database Disable the log shipping jobs Run each step of the log shipping jobs in order Drop log shipping Manually backup the primary database log using WITH NORECOVERY Puts the primary database into a recovering state Restore log backup on secondary using WITH RECOVERY Brings the secondary database online Take log backup of new primary database Restore log backup on new secondary database using WITH NORECOVERY Reconfigure log shipping Strategies for Working with Texas-sized Databases Convert Log Shipping to Replication               Configure replication publication Disable all backup jobs that may hit the database Disable the log shipping jobs Run each step of the log shipping jobs in order Drop log shipping secondary Change publication to allow initialization from backup Back up the log of the publisher Restore the log backup using WITH RECOVERY to recover the secondary Create subscription on publisher @backupdevicename = path/name of log backup created above @sync_type = initialize with backup Create subscription on subscriber Re-enable any backup jobs Drop log shipping primary if desired Before: 2 TB – Log shipped to 2 servers After: Reverse log shipping and convert 1 server to replication RESOURCES VLDB Series for SQL University: http://www.sqlsoldier.com/wp/sqlserver/sqluvldbwe ekintrotovldbs MinionIndex: http://minionware.net/reindex/ Automated Backup Tuning: http://sirsql.net/content/2012/12/13/20121212auto mated-backup-tuning/ Strategies for Working with Texas-sized Databases Thanks! Thank you for coming!  My blog: www.sqlsoldier.com  Twitter: twitter.com/SQLSoldier
 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
                                             
                                             
                                            ![[#MODULES-4428] Backup script try to backup sys database when](http://s1.studyres.com/store/data/005823897_1-f86b001551ca5e83ed406bca77a48421-150x150.png) 
                                             
                                             
                                             
                                             
                                             
                                            