sql server 2005 的卸载和自动备份 说明

06-11

卸载:执行命令
c:/sqlserver2005/Setup.exe /qb REMOVE=ALL INSTANCENAME=<InstanceName>
其中,setup.exe是SQLEXPR_ADV.EXE解压缩之后的安装程序。

之所以这么做,是因为在控制面板卸载时不干净,sql的实例都还在。用这个方法最好。

自动备份:
原文:http://www.mssqltips.com/tip.asp?tip=1174
思路:
1:生成一个自动备份的sql脚本,一个名叫 sp_BackupDatabase 的存贮过程。

1sql server 2005 的卸载和自动备份 说明
USE [master]
2sql server 2005 的卸载和自动备份 说明
GO
3sql server 2005 的卸载和自动备份 说明
sql server 2005 的卸载和自动备份 说明
/**//****** Object: StoredProcedure [dbo].[sp_BackupDatabase] Script Date: 02/07/2007 11:40:47 ******/
4sql server 2005 的卸载和自动备份 说明
SET ANSI_NULLS ON
5sql server 2005 的卸载和自动备份 说明
GO
6sql server 2005 的卸载和自动备份 说明
SET QUOTED_IDENTIFIER ON
7sql server 2005 的卸载和自动备份 说明
GO
8sql server 2005 的卸载和自动备份 说明

9sql server 2005 的卸载和自动备份 说明

10sql server 2005 的卸载和自动备份 说明
-- =============================================
11sql server 2005 的卸载和自动备份 说明
-- Author: Edgewood Solutions
12sql server 2005 的卸载和自动备份 说明
-- Create date: 2007-02-07
13sql server 2005 的卸载和自动备份 说明
-- Description: Backup Database
14sql server 2005 的卸载和自动备份 说明
-- Parameter1: databaseName
15sql server 2005 的卸载和自动备份 说明
-- Parameter2: backupType F=full, D=differential, L=log
16sql server 2005 的卸载和自动备份 说明
-- =============================================
17sql server 2005 的卸载和自动备份 说明
CREATE PROCEDURE [dbo].[sp_BackupDatabase]
18sql server 2005 的卸载和自动备份 说明
@databaseName sysname, @backupType CHAR(1)
19sql server 2005 的卸载和自动备份 说明
AS
20sql server 2005 的卸载和自动备份 说明
BEGIN
21sql server 2005 的卸载和自动备份 说明
SET NOCOUNT ON;
22sql server 2005 的卸载和自动备份 说明

23sql server 2005 的卸载和自动备份 说明
DECLARE @sqlCommand NVARCHAR(1000)
24sql server 2005 的卸载和自动备份 说明
DECLARE @dateTime NVARCHAR(20)
25sql server 2005 的卸载和自动备份 说明

26sql server 2005 的卸载和自动备份 说明
SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
27sql server 2005 的卸载和自动备份 说明
REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
28sql server 2005 的卸载和自动备份 说明

29sql server 2005 的卸载和自动备份 说明
IF @backupType = 'F'
30sql server 2005 的卸载和自动备份 说明
SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
31sql server 2005 的卸载和自动备份 说明
' TO DISK = ''C:/Backup/' + @databaseName + '_Full_' + @dateTime + '.BAK'''
32sql server 2005 的卸载和自动备份 说明

33sql server 2005 的卸载和自动备份 说明
IF @backupType = 'D'
34sql server 2005 的卸载和自动备份 说明
SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
35sql server 2005 的卸载和自动备份 说明
' TO DISK = ''C:/Backup/' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
36sql server 2005 的卸载和自动备份 说明

37sql server 2005 的卸载和自动备份 说明
IF @backupType = 'L'
38sql server 2005 的卸载和自动备份 说明
SET @sqlCommand = 'BACKUP LOG ' + @databaseName +
39sql server 2005 的卸载和自动备份 说明
' TO DISK = ''C:/Backup/' + @databaseName + '_Log_' + @dateTime + '.TRN'''
40sql server 2005 的卸载和自动备份 说明

41sql server 2005 的卸载和自动备份 说明
EXECUTE sp_executesql @sqlCommand
42sql server 2005 的卸载和自动备份 说明
END

注意,要编译一下。

2:调用这个存储过程的一个sql脚本2。这个脚本可以被外部的程序调用,使用sqlcmd.exe来解释执行。

1sql server 2005 的卸载和自动备份 说明
sp_BackupDatabase 'master', 'F'
2sql server 2005 的卸载和自动备份 说明
GO
3sql server 2005 的卸载和自动备份 说明
sp_BackupDatabase 'model', 'F'
4sql server 2005 的卸载和自动备份 说明
GO
5sql server 2005 的卸载和自动备份 说明
sp_BackupDatabase 'msdb', 'F'
6sql server 2005 的卸载和自动备份 说明
GO
7sql server 2005 的卸载和自动备份 说明
QUIT

3:设置定时任务,每天执行上述脚本2.

sql server 2005 的卸载和自动备份 说明
sqlcmd -S serverName -E -i C:/Backup/脚本2.sql

上述语句是计划任务的“Run”里面的参数。