Selective Backups

  • Hello Everyone,

    At our company we have a SQL2000 database that is about 250GB in size that we like to refer to as a "Data Warehouse" (real data warehouse operators would laugh at us). Much of this data is copied every night by dropping, truncating or otherwise clearing a table and then recreating the table again from the source database.

    Again, I know - a terrible practice, I didn't build it and I am going to fix it.

    ANYWAYS, this duplicated data accounts for 60-70% of the data on the server. The rest of the data is unique, mission critical accumulation over time data.

    The question has been raised how we can save money by only backing up the critical data and not the duplicate data (which is backed up by the systems that generate it).

    Here is what we have looked into:

    1 - Splitting the database apart into two databases.

    We can't do this because there is 1000's of references to this database in reports, applications, Excel\VBA and Access crap, basically we aren't allowed to break any connection strings or client code.

    2 - Splitting the database into two files and only backing up a single file.

    It's just not what this feature was designed to do, all my experiments have failed to bring the database back to an operational state without backing up every file or leaving part of the database inoperable (even experiments on 2005\2008 doing WITH PARTIAL restores).

    I was wondering if there were any experienced DBA's out there who had additional ideas beyond these that could help us save disk space by only backing up critical tables.

    ALSO: I am considering proposing an upgrade to SQL2008 (and new hardware) and using the new database compression (page\row compression, backup compression, etc...) techniques offered there. Does anyone have an opinion on this?

  • You can also use 3rd party backup software like Quest LiteSpeed, Red Gate SQL Backup Pro or Idera SQL Safe backup which allow you to get a compression of about 70-85%, ie aprox a backup of 50GB.

    _______________________________________________________________________
    For better assistance in answering your questions, click here[/url]

  • Eric,

    Options are available to deal with the situation you described.

    If you just want to reduce the backup space need, 3rd party tool such as LiteSpeed, Richard mentioned, is great; if you want to do some fix internally, you can create filegroup(s) and move the "duplicate" tables into them, while keeping the mission critical tables in the other filegroup(s) that support the applications. After a full database backup, you can use filegroup backup to back up these critical tables only.

    The first method is simple and does not touch database internal. The second option requires work on database architecture and data manipulation, but it will make the database much better.

    Good luck.

  • I have tried this... splitting the database into two files making a full backup and then a partial backup. The problem that I get is that when I go to restore everything the database is left in a state of partial recovery.

    It is always expecting that there is another restore step coming to restore the file that you didn't make a backup of.

  • eric, there is a big difference between having a database in two files and having it in two file groups. Please see BOL if you do not understand the difference. You probably need to use file groups to get the functionality you need.

    Original author: https://github.com/SQL-FineBuild/Common/wiki/ 1-click install and best practice configuration of SQL Server 2019, 2017 2016, 2014, 2012, 2008 R2, 2008 and 2005.

    When I give food to the poor they call me a saint. When I ask why they are poor they call me a communist - Archbishop Hélder Câmara

  • What about splitting it into two databases and setting up either views or synonyms to reference the objects that were moved? That should make the change transparent to anything that references them if you use the same name.

  • and setting up either views or synonyms to reference the objects that were moved

    Hmmm, I might do this in select cases if I get users that absolutley can't change their connection strings for whatever reasons. Very good suggestion. Thankyou.

    Problem is it makes this thing more of a kludge than it already is. 😀

Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply