[dba-SQLServer] Backing up

dmcafee at pacbell.net dmcafee at pacbell.net
Thu Jul 21 14:34:57 CDT 2005


I wrote a VB.NET app that copies it over between servers:

    Public Shared Sub MoveBackUp()
        Dim path As String = "\\server1\c$\Program Files\Microsoft SQL
Server\MSSQL\BACKUP\MachinesLive.Bak"
        Dim path2 As String = "\\server2\c$\Program Files\Microsoft SQL
Server\MSSQL\BACKUP\MachinesLive.Bak"
        If File.Exists(path) Then
            If File.Exists(path2) Then
                ' Ensure that the target file does not exist, since this is
disallowed.
                File.Delete(path2)
            End If
            ' Copy the file.
            File.Copy(path, path2, True)
        Else
            MsgBox(path + " does not exist.", , "Cannot copy file!")
        End If
    End Sub


I created a job on the live server that backs up a db:

BACKUP DATABASE [MACHINES] TO  DISK = N'C:\Program Files\Microsoft SQL
Server\MSSQL\BACKUP\MachinesLive.Bak' WITH  INIT ,  NOUNLOAD ,  NAME =
N'MACHINES backup',  NOSKIP ,  STATS = 10,  NOFORMAT

then a few minutes later a service on my computer runs the VB.Net app which
copies the file from the live server to the dev server

A few minutes after that I runa job on the dev server which restores the db:

(I first clear the users:)
DECLARE @dbname as VARCHAR(50)
SET @dbname = 'MACHINES'

DECLARE @strSQL varchar(255)
PRINT 'Killing Users'
PRINT '-----------------'

CREATE table #tmpUsers(
						spid int,
						eid int,
						status varchar(30),
						loginname varchar(50),
						hostname varchar(50),
						blk int,
						dbname varchar(50),
						cmd varchar(30))

INSERT INTO #tmpUsers EXEC SP_WHO

DECLARE LoginCursor CURSOR
READ_ONLY
FOR SELECT spid, dbname FROM #tmpUsers WHERE dbname = @dbname

DECLARE @spid varchar(10)
DECLARE @dbname2 varchar(40)
OPEN LoginCursor

FETCH NEXT FROM LoginCursor INTO @spid, @dbname2
WHILE (@@fetch_status <> -1)
BEGIN
	IF (@@fetch_status <> -2)
	BEGIN
		PRINT 'Killing ' + @spid
		SET @strSQL = 'KILL ' + @spid
		EXEC (@strSQL)
	END
FETCH NEXT FROM LoginCursor INTO  @spid, @dbname2
END

CLOSE LoginCursor
DEALLOCATE LoginCursor
DROP table #tmpUsers
GO


then I restore:
RESTORE DATABASE Machines
   FROM DISK =  'c:\Program Files\Microsoft SQL
Server\MSSQL\BACKUP\MachinesLive.Bak'


If you simply wanted to store or back up the db, you could always zip up the
file and copy that somewhere.

HTH
David McAfee


-----Original Message-----
From: dba-sqlserver-bounces at databaseadvisors.com
[mailto:dba-sqlserver-bounces at databaseadvisors.com]On Behalf Of Jim
Lawrence
Sent: Thursday, July 21, 2005 12:01 PM
To: dba-sqlserver at databaseadvisors.com
Subject: [dba-SQLServer] Backing up


Hi All:

This is a simple question I am asking.

For years when backing up MS SQL databases I have either relied on an
external automated server based backup system or backed up to a local tape
drive.

For the first time I was hoping to use the MS SQL backup system to backup to
a special large capacity drive on the network. When attempting to select the
appropriate backup device from the EM backup options there is only shown
'local' shares? How do I make a backup from the MS SQL that will backup to a
remote drive? (..and subsequently restoring.)

Am I missing something obvious?

TIA
Jim

_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com




More information about the dba-SQLServer mailing list