SQL Server下利用vbscript 实现数据库月备份自动清理并发邮件提醒 ---Summary--- 这份文档其实主要是讲vbscript的文件处理和在vbscript 下如何发邮件。大至分为三个部分。 一.Sql Server 数据库备份 二.Sql Server 调用vbs对数据库备份文件夹进行扫描,清
SQL Server下利用vbscript 实现数据库月备份自动清理并发邮件提醒
---Summary---
这份文档其实主要是讲vbscript的文件处理和在vbscript 下如何发邮件。大至分为三个部分。
一.Sql Server 数据库备份
二.Sql Server 调用vbs对数据库备份文件夹进行扫描,清理以前旧的数据库备份,只保留当前月的数据库备份。
三.将清除的数据库备份文件以附件的形式通知数据库管理员。
---Detailes---
1. Sql Server 数据库备份,以Job 的方式来实现,数据库备份文件名以日期的格式命名。
Step Name: Bakup Training DB
Type: Transact-SQL Script(T-SQL)
Database: ASATTraining
Command:
declare @filename nvarchar(100)
set @filename='D:/TRSYS_DB_BAK/'+convert(char(10),getdate(),112)
print @filename
BACKUP DATABASE [ASATTraining] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'ASATTraining', NOSKIP , STATS = 10, NOFORMAT
2. Sql Server 调用vbs实现清理上个月的备份文件,写清理日志,发邮件。
1).数据库文件和清理日志文件夹
2).清理数据库日志的程序文件夹,下面就分别讲讲这个文件夹内每个文件的具体用途。
i)Email 里有一个Email_List.txt 的文件,它是记录邮件接受者的用件地址。
每行显示一个邮件地址,具体如下:
Email_List.txt
lilo.zhu@gmail.com
lilo.zhu@ymail.com
lilo.zhu@qq.com
ii)Log 内是清除数据库备文件时记录的日志文件,文件以系统日期.log 形式命名。
iii) Backup_Clear.bat 文件是供Sql Server 在job 是调用的。
Step Name: Run Clear Last Month Backup Database Data
Type: Operation System (CmdExec)
Run as: SQL Agent Service Account
Command: D:/TRSYS_DB_BAK_CLEAR/Backup_Clear.bat
Backup_Clear.bat
d:
cd d:/TRSYS_DB_BAK_CLEAR
Backup_Clear.vbs D:/TRSYS_DB_BAK
iv) Backup_Clear.vbs 是实现在清除非本月数据库备份文件,写清除日志,发送邮件的具体脚本程序,内容如下:
Backup_Clear.vbs
'------------------------------------------------------------
'DataBase Backup Data Clear
'Auto Clear Last Month Database Backup Data
'
'Create Date: 2009-09-29
'Author: Wei_Zhu
'Chage Log:
'Last Chage Date:
'-------------------------------------------------------------
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim ObjArgs
Set ObjArgs = Wscript.Arguments
set ws=createobject("wscript.shell")
If ObjArgs.Count > 0 then
'WSH.Echo "The Folder Name is: "& ObjArgs(0)
ShowFolderList(ObjArgs(0))
else
Wscript.Echo "Please Input The Full Folder Path..."
end if
Function ShowFolderList(ByVal lstg_folder_name)
Dim fso, f, f1, fc, s, folder
Dim l_count
l_count = 1
fso = CreateObject("Scripting.FileSystemObject")
folder = fso.getfolder(ws.currentdirectory)
f = fso.GetFolder(lstg_folder_name)
fc = f.files
For Each f1 In fc
Dim ldt, lf
ldt = int(mid(f1.name, 5, 2))
'msgbox Month(Now) &" || " & Month(ldt)
If Month(Now) > ldt Then
If right(lstg_folder_name, 1) "/" Then
lf=lstg_folder_name& "/" & f1.name
End If
DeleteFile(lf)
l_count = l_count + 1
End If
Next
If l_count > 0 Then
l_email_address = folder & "/Email/Email_List.txt"
SendEmail(l_email_address)
End If
End Function
Function DeleteFile(ByVal lstg_file_name)
Dim lstg_msg
fso = CreateObject("Scripting.FileSystemObject")
f = fso.GetFile(lstg_file_name)
f.Delete()
'msgbox(lstg_file_name & " delete file success !")
lstg_msg = Now & " Last Month Database Backup File: " & lstg_file_name & " Delete Success !"
WriteLog(lstg_msg)
End Function
Function WriteLog(ByVal lstg_log_msg)
Dim fso, f, LogFile, l_file_name, folder, l_email_address
dt=replace(date,"/","-")
fso = CreateObject("Scripting.FileSystemObject")
folder = fso.getfolder(ws.currentdirectory)
'---Check Log Folder Exists---
'If (Not fso.FolderExists(lstg_log_folder)) Then
' fso.CreateFolder(lstg_log_folder)
'End If
'if right(lstg_log_folder,1)"/" then
' lstg_log_folder=lstg_log_folder& "/"
'end if
l_file_name=folder& "/Log/" & dt & ".log"
'---Check Log File Exists---
If (fso.FileExists(l_file_name)) Then
f = fso.GetFile(l_file_name)
LogFile = f.OpenAsTextStream(ForAppending, TristateUseDefault)
LogFile.WriteLine(lstg_log_msg)
LogFile.Close()
Else
LogFile = fso.CreateTextFile(l_file_name, True)
LogFile.WriteLine(lstg_log_msg)
LogFile.Close()
End If
End Function
Function SendEmail(ByVal lstg_email_list)
dt=replace(date,"/","-")
Dim fso, Email_File, folder, str_mail_address, Attached_File
fso = CreateObject("Scripting.FileSystemObject")
'msgbox lstg_email_list
Email_File = fso.OpenTextFile(lstg_email_list, ForReading, False)
Do While Email_File.AtEndOfStream True
str_mail_address = str_mail_address & Email_File.ReadLine & ";"
Loop
Email_File.Close()
'msgbox str_mail_address
folder = fso.getfolder(ws.currentdirectory)
if fso.FileExists(folder& "/Log/" & dt & ".log") then
Attached_File=folder& "/Log/" & dt & ".log"
End If
'msgbox Attached_File
'---Send Emial---
NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
Set Email = CreateObject("CDO.Message")
Email.From = "lilo.zhu@ymail.com"
Email.To = str_mail_address
Email.Subject = "DataBase Bakup Data Clear Message"
Email.HTMLBody = "Hi DBA:
Clear Last Month Database Backup Data Complete,Please See Teh Attached File..."
if Attached_File "" then
Email.AddAttachment Attached_File
end if
With Email.Configuration.Fields
.Item(NameSpace&"sendusing") = 2
.Item(NameSpace&"smtpserver") = "smtp.mail.yahoo.com"
.Item(NameSpace&"smtpserverport") = 25
.Item(NameSpace&"smtpauthenticate") = 1
.Item(NameSpace&"sendusername") = "lilo.zhu@ymail.com"
.Item(NameSpace&"sendpassword") = "123456"
.Update
End With
Email.Send
End Function
---Remark---
1. vbs 中发邮件是使用CDO.Message 这个对象。
2. Sql Server 调用带参数的bat 批处理容易出问题,最好将参数都写在bat 文件内,Sql Server 只需调用这个bat 批处理文件就行了。

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

構建MySQL數據庫的步驟包括:1.創建數據庫和表,2.插入數據,3.進行查詢。首先,使用CREATEDATABASE和CREATETABLE語句創建數據庫和表,然後用INSERTINTO語句插入數據,最後用SELECT語句查詢數據。

MySQL適合初學者,因為它易用且功能強大。 1.MySQL是關係型數據庫,使用SQL進行CRUD操作。 2.安裝簡單,需配置root用戶密碼。 3.使用INSERT、UPDATE、DELETE、SELECT進行數據操作。 4.複雜查詢可使用ORDERBY、WHERE和JOIN。 5.調試需檢查語法,使用EXPLAIN分析查詢。 6.優化建議包括使用索引、選擇合適數據類型和良好編程習慣。

MySQL適合初學者,因為:1)易於安裝和配置,2)有豐富的學習資源,3)SQL語法直觀,4)工具支持強大。儘管如此,初學者需克服數據庫設計、查詢優化、安全管理和數據備份等挑戰。

是的,sqlisaprogramminglanguges pecialized fordatamanage.1)它具有焦點,focusingonwhattoachieveratherthanhow.2)sqlisessential forquerying forquerying,插入,更新,更新,和detletingdatainrelationalDatabases.3)

ACID屬性包括原子性、一致性、隔離性和持久性,是數據庫設計的基石。 1.原子性確保事務要么完全成功,要么完全失敗。 2.一致性保證數據庫在事務前後保持一致狀態。 3.隔離性確保事務之間互不干擾。 4.持久性確保事務提交後數據永久保存。

MySQL既是數據庫管理系統(DBMS),也與編程語言緊密相關。 1)作為DBMS,MySQL用於存儲、組織和檢索數據,優化索引可提高查詢性能。 2)通過SQL與編程語言結合,嵌入在如Python中,使用ORM工具如SQLAlchemy可簡化操作。 3)性能優化包括索引、查詢、緩存、分庫分錶和事務管理。

MySQL使用SQL命令管理數據。 1.基本命令包括SELECT、INSERT、UPDATE和DELETE。 2.高級用法涉及JOIN、子查詢和聚合函數。 3.常見錯誤有語法、邏輯和性能問題。 4.優化技巧包括使用索引、避免SELECT*和使用LIMIT。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能