locked
from where sql server databases are backing up. RRS feed

  • Question

  • express addition has not sql server agent then from where sql server databases are backing up.

    The databases belongs to sharepoint applicatipn.


    Thanks

    Wednesday, June 5, 2013 10:36 AM

Answers

  • Hello,

    You can do manual backup using SSMS or a simple T-SQL command, you can use Windows Scheduler + SqlCmd utility to execute schedule T-SQL batches for backups etc; so a SQL Server Agent is not neccessarily required to backup databases.


    Olaf Helper

    Blog Xing

    • Proposed as answer by Andrew Bainbridge Wednesday, June 5, 2013 11:37 AM
    • Marked as answer by Fanny Liu Tuesday, June 11, 2013 1:24 AM
    Wednesday, June 5, 2013 10:45 AM
  • Sharepoint also has its own backup options within the Admin console.  Have a look there first to see if there are backups scheduled, and if not have a look in the Windows task scheduler to see if they're being performed from there.
    • Proposed as answer by Olaf HelperMVP Wednesday, June 5, 2013 3:27 PM
    • Marked as answer by Fanny Liu Tuesday, June 11, 2013 1:24 AM
    Wednesday, June 5, 2013 12:41 PM
  • express addition has not sql server agent then from where sql server databases are backing up.

    The databases belongs to sharepoint applicatipn.


    Thanks

    You can use this script frm Microsoft to create a backup procedure and then execute the proc through Windows Task Scheduler

                    
    CREATE PROCEDURE [dbo].[BackupDatabases]                
    (                
     @BackupDir varchar(400),                
     @DatabaseName sysname = null,                
     @BackupType int = 0 -- 0=Full, 1=Differential, 2=Log                
    )                
    AS                
                     
    -- -- Begin Test Code                
    -- DECLARE @BackupDir varchar(400)                
    -- SET @BackupDir = 'C:\Program Files\Microsoft SQL Server\MSSQL10.BOE140\MSSQL\Backup'                
    -- -- End Test Code                
                     
    -- Create worker table                
    DECLARE @DBNames TABLE                
    (                
     RowID int IDENTITY PRIMARY KEY,                
     DBName varchar(500)                
    )                
                     
    -- Grab the Database Names from master DB                
    INSERT INTO @DBNames (DBName)                
    SELECT Name FROM master.sys.databases                
    WHERE name = @DatabaseName                
       OR @DatabaseName IS NULL                
    ORDER BY Name                
                     
    -- The below databases are not valid to backup                
    IF @BackupType = 0                
    BEGIN                
     DELETE @DBNames WHERE DBName IN ('tempdb', 'NorthWind', 'pubs')                
    END                
    ELSE IF @BackupType = 1                
    BEGIN                
     DELETE @DBNames WHERE DBName IN ('tempdb', 'NorthWind', 'pubs', 'master')                
    END                
    ELSE IF @BackupType = 2                
    BEGIN                
     DELETE @DBNames WHERE DBName IN ('tempdb', 'NorthWind', 'pubs', 'master', 'msdb', 'model')                
    END                
                     
    IF (@BackupType < 0 OR @BackupType > 2)                
     OR NOT EXISTS (SELECT 1 FROM @DBNames)                
    BEGIN                
     RETURN;                
    END                
                     
                     
    -- Declare Session Variables                
    DECLARE @Now datetime                
    DECLARE @TodayStr varchar(20)                
    DECLARE @BackupName varchar(120)                
    DECLARE @BackupFile varchar(120)                
    DECLARE @DBName varchar(300)                
    DECLARE @LogFileName varchar(300)                
    DECLARE @SQL varchar(2000)                
    DECLARE @Loopvar int                
                     
    -- Begin looping over Databases in the Work Table                
    SELECT @Loopvar = min(rowID)                
    FROM @DBNames                
                     
    WHILE @Loopvar IS NOT NULL                
    BEGIN                
                     
    -- Database Names have to have [dbname] format since some names have a - or _ in the name                
    SET @DBName = '['+(SELECT DBName FROM @DBNames WHERE RowID = @LoopVar)+']'                
                     
    --  Set the current date and time                
    SET @Now = getdate()                
                     
    -- Create backup file date and time in DOS format yyyy_hhmmss                
    Set @TodayStr = CONVERT(varchar(8), GETDATE(), 112)       
    +case when       
    len (cast (DATEPART (HH,GETDATE()) as varchar(2)) ) < 2      
    then '0'+cast (DATEPART (HH,GETDATE()) as varchar(2))      
    else cast (DATEPART (HH,GETDATE()) as varchar(2))      
    end+      
    case when       
    len (cast (DATEPART (MINUTE,GETDATE()) as varchar(2)) ) < 2      
    then '0'+cast (DATEPART (MINUTE,GETDATE()) as varchar(2))      
    else cast (DATEPART (MINUTE,GETDATE()) as varchar(2))      
    end+      
    case when       
    len (cast (DATEPART (SECOND,GETDATE()) as varchar(2)) ) < 2      
    then '0'+cast (DATEPART (SECOND,GETDATE()) as varchar(2))      
    else cast (DATEPART (SECOND,GETDATE()) as varchar(2))      
    end                
                     
    -- Create a variable holding the total path\filename.ext for the log backup                
    Set @BackupFile = @BackupDir+REPLACE(REPLACE(@DBName, '[',''), ']','')+'-'+ @TodayStr + '.BAK'                
                     
    -- Provide the backup a SQL name and name in media                
    Set @BackupName = REPLACE(REPLACE(@DBName, '[',''), ']','')+' full backup for ' + @TodayStr                
                     
    -- Generate the Dynamic SQL script variable to be executed                
    IF @BackupType = 0                
    BEGIN                
     SET @SQL = 'BACKUP DATABASE ' + @DBName + ' TO DISK = ''' + @BackupFile + ''' WITH INIT, NAME = ''' +@BackupName+''', NOSKIP, NOFORMAT'                
    END                
    ELSE IF @BackupType = 1                
    BEGIN                
     SET @SQL = 'BACKUP DATABASE ' + @DBName + ' TO DISK = ''' + @BackupFile + ''' WITH DIFFERENTIAL, INIT, NAME = ''' +@BackupName+''', NOSKIP, NOFORMAT'                
    END                
    ELSE IF @BackupType = 2                
    BEGIN                
     SET @SQL = 'BACKUP LOG ' + @DBName + ' TO DISK = ''' + @BackupFile + ''' WITH INIT, NAME = ''' +@BackupName+''' , NOSKIP, NOFORMAT'                
    END                
                     
    -- Execute the SQL Command                 
    EXEC(@SQL)                
                     
    -- Goto the Next Database                
    SELECT @Loopvar = min(rowID)                
    FROM @DBNames                
    WHERE RowID > @LoopVar                
    END 

    Script for batch file to be executed by Windows Task Scheduler

    SQLCMD -S SQLINSTANCE -Q "EXEC BackupDatabases @BackupDir='C:\Backups\', @BackupType=0"

    • Marked as answer by Fanny Liu Tuesday, June 11, 2013 1:25 AM
    Thursday, June 6, 2013 11:09 AM

All replies

  • Hello,

    You can do manual backup using SSMS or a simple T-SQL command, you can use Windows Scheduler + SqlCmd utility to execute schedule T-SQL batches for backups etc; so a SQL Server Agent is not neccessarily required to backup databases.


    Olaf Helper

    Blog Xing

    • Proposed as answer by Andrew Bainbridge Wednesday, June 5, 2013 11:37 AM
    • Marked as answer by Fanny Liu Tuesday, June 11, 2013 1:24 AM
    Wednesday, June 5, 2013 10:45 AM
  • Sharepoint also has its own backup options within the Admin console.  Have a look there first to see if there are backups scheduled, and if not have a look in the Windows task scheduler to see if they're being performed from there.
    • Proposed as answer by Olaf HelperMVP Wednesday, June 5, 2013 3:27 PM
    • Marked as answer by Fanny Liu Tuesday, June 11, 2013 1:24 AM
    Wednesday, June 5, 2013 12:41 PM
  • In sharepoint where?can u please specify...


    Thanks

    Thursday, June 6, 2013 9:39 AM
  • On the machine sharepoint is installed, there will be an admin console under the sharepoint folder.  Run that, and within the console there are options for backing it up.
    Thursday, June 6, 2013 9:56 AM
  • express addition has not sql server agent then from where sql server databases are backing up.

    The databases belongs to sharepoint applicatipn.


    Thanks

    You can use this script frm Microsoft to create a backup procedure and then execute the proc through Windows Task Scheduler

                    
    CREATE PROCEDURE [dbo].[BackupDatabases]                
    (                
     @BackupDir varchar(400),                
     @DatabaseName sysname = null,                
     @BackupType int = 0 -- 0=Full, 1=Differential, 2=Log                
    )                
    AS                
                     
    -- -- Begin Test Code                
    -- DECLARE @BackupDir varchar(400)                
    -- SET @BackupDir = 'C:\Program Files\Microsoft SQL Server\MSSQL10.BOE140\MSSQL\Backup'                
    -- -- End Test Code                
                     
    -- Create worker table                
    DECLARE @DBNames TABLE                
    (                
     RowID int IDENTITY PRIMARY KEY,                
     DBName varchar(500)                
    )                
                     
    -- Grab the Database Names from master DB                
    INSERT INTO @DBNames (DBName)                
    SELECT Name FROM master.sys.databases                
    WHERE name = @DatabaseName                
       OR @DatabaseName IS NULL                
    ORDER BY Name                
                     
    -- The below databases are not valid to backup                
    IF @BackupType = 0                
    BEGIN                
     DELETE @DBNames WHERE DBName IN ('tempdb', 'NorthWind', 'pubs')                
    END                
    ELSE IF @BackupType = 1                
    BEGIN                
     DELETE @DBNames WHERE DBName IN ('tempdb', 'NorthWind', 'pubs', 'master')                
    END                
    ELSE IF @BackupType = 2                
    BEGIN                
     DELETE @DBNames WHERE DBName IN ('tempdb', 'NorthWind', 'pubs', 'master', 'msdb', 'model')                
    END                
                     
    IF (@BackupType < 0 OR @BackupType > 2)                
     OR NOT EXISTS (SELECT 1 FROM @DBNames)                
    BEGIN                
     RETURN;                
    END                
                     
                     
    -- Declare Session Variables                
    DECLARE @Now datetime                
    DECLARE @TodayStr varchar(20)                
    DECLARE @BackupName varchar(120)                
    DECLARE @BackupFile varchar(120)                
    DECLARE @DBName varchar(300)                
    DECLARE @LogFileName varchar(300)                
    DECLARE @SQL varchar(2000)                
    DECLARE @Loopvar int                
                     
    -- Begin looping over Databases in the Work Table                
    SELECT @Loopvar = min(rowID)                
    FROM @DBNames                
                     
    WHILE @Loopvar IS NOT NULL                
    BEGIN                
                     
    -- Database Names have to have [dbname] format since some names have a - or _ in the name                
    SET @DBName = '['+(SELECT DBName FROM @DBNames WHERE RowID = @LoopVar)+']'                
                     
    --  Set the current date and time                
    SET @Now = getdate()                
                     
    -- Create backup file date and time in DOS format yyyy_hhmmss                
    Set @TodayStr = CONVERT(varchar(8), GETDATE(), 112)       
    +case when       
    len (cast (DATEPART (HH,GETDATE()) as varchar(2)) ) < 2      
    then '0'+cast (DATEPART (HH,GETDATE()) as varchar(2))      
    else cast (DATEPART (HH,GETDATE()) as varchar(2))      
    end+      
    case when       
    len (cast (DATEPART (MINUTE,GETDATE()) as varchar(2)) ) < 2      
    then '0'+cast (DATEPART (MINUTE,GETDATE()) as varchar(2))      
    else cast (DATEPART (MINUTE,GETDATE()) as varchar(2))      
    end+      
    case when       
    len (cast (DATEPART (SECOND,GETDATE()) as varchar(2)) ) < 2      
    then '0'+cast (DATEPART (SECOND,GETDATE()) as varchar(2))      
    else cast (DATEPART (SECOND,GETDATE()) as varchar(2))      
    end                
                     
    -- Create a variable holding the total path\filename.ext for the log backup                
    Set @BackupFile = @BackupDir+REPLACE(REPLACE(@DBName, '[',''), ']','')+'-'+ @TodayStr + '.BAK'                
                     
    -- Provide the backup a SQL name and name in media                
    Set @BackupName = REPLACE(REPLACE(@DBName, '[',''), ']','')+' full backup for ' + @TodayStr                
                     
    -- Generate the Dynamic SQL script variable to be executed                
    IF @BackupType = 0                
    BEGIN                
     SET @SQL = 'BACKUP DATABASE ' + @DBName + ' TO DISK = ''' + @BackupFile + ''' WITH INIT, NAME = ''' +@BackupName+''', NOSKIP, NOFORMAT'                
    END                
    ELSE IF @BackupType = 1                
    BEGIN                
     SET @SQL = 'BACKUP DATABASE ' + @DBName + ' TO DISK = ''' + @BackupFile + ''' WITH DIFFERENTIAL, INIT, NAME = ''' +@BackupName+''', NOSKIP, NOFORMAT'                
    END                
    ELSE IF @BackupType = 2                
    BEGIN                
     SET @SQL = 'BACKUP LOG ' + @DBName + ' TO DISK = ''' + @BackupFile + ''' WITH INIT, NAME = ''' +@BackupName+''' , NOSKIP, NOFORMAT'                
    END                
                     
    -- Execute the SQL Command                 
    EXEC(@SQL)                
                     
    -- Goto the Next Database                
    SELECT @Loopvar = min(rowID)                
    FROM @DBNames                
    WHERE RowID > @LoopVar                
    END 

    Script for batch file to be executed by Windows Task Scheduler

    SQLCMD -S SQLINSTANCE -Q "EXEC BackupDatabases @BackupDir='C:\Backups\', @BackupType=0"

    • Marked as answer by Fanny Liu Tuesday, June 11, 2013 1:25 AM
    Thursday, June 6, 2013 11:09 AM
  • express addition has not sql server agent then from where sql server databases are backing up.

    The databases belongs to sharepoint applicatipn.


    Thanks

    Use this to see where the recent full backups have gone

    select database_name, type,backup_size,backup_finish_date,physical_device_name
    from 
    (select database_name, type,backup_size,backup_finish_date,physical_device_name,
    rownumber = row_number()over (partition by database_name order by backup_finish_date desc )
    from msdb.dbo.backupset bs
    inner join msdb.dbo.backupmediafamily bmf
    on bs.media_set_id = bmf.media_set_id
    where type = 'D') backups
    where rownumber = 1
    

    Thursday, June 6, 2013 11:09 AM