2011年5月27日 星期五

[SQL Server] 建立 SQL Server Express 的定期自動備份

[SQL Server] 建立 SQL Server Express 的定期自動備份

SQL Server Express 版本中, 沒有自動備份的功能可使用. 
一般備份就分成兩種方式:

1.            透過 Management Studio Express 進行手動備份.

2.            自行撰寫 T-SQL Script, 或是寫程式去呼叫 T-SQL 的備份指令, 進行資料庫備份.

以下使用第二種方式, 並利用 Windows 的排程作業, 達到定期備份資料庫的作業. 
需求:

·                     每日定期備份 LYTDB LYTDB00 這兩個資料庫.

·                     將資料庫的備份檔放在 D:\Database_Backup\ 目錄內.

設計步驟如下:

1.            建立一個 T-SQL 的備份 sql (例如: backup.sql), 並將該檔案放在 C:\ .

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

USE master

GO

DECLARE @backupTime VARCHAR(20)

DECLARE @sqlCommand NVARCHAR(1000)

--設定檔名的執行時間.例如以下的@backupTime將會是200904221156(yyyyMMddHHmm)

--此值可以視需求進行調整,如果是每小時備份,就只要2009042211(yyyyMMddHH)

SELECT @backupTime=(CONVERT(VARCHAR(8), GETDATE(), 112)

         +REPLACE(CONVERT(VARCHAR(5), GETDATE(), 114), ':', ''))

--設定LYTDB資料庫的備份命令

--可視需要修改備份檔存放的位置

SET @sqlCommand = 'BACKUP DATABASE LYTDB TO DISK=''D:\Database_Backup\LYTDB_'

                  + @backupTime+'.bak'''

EXECUTE sp_executesql @sqlCommand 

--設定LYTDB00資料庫的備份命令

--可視需要修改備份檔存放的位置

SET @sqlCommand = 'BACKUP DATABASE LYTDB00 TO DISK=''D:\Database_Backup\LYTDB00_'

                  + @backupTime+'.bak'''

EXECUTE sp_executesql @sqlCommand 

GO

2.            撰寫一個執行上一步 backup.sql 檔的 bat (例如: backup_database.bat), 並放在與 backup.sql 相同的目錄中. 
內容只有一行: 
sqlcmd -S . -i c:\backup.sql 
sqlcmd
相關參考如下: http://msdn.microsoft.com/zh-tw/library/ms170572.aspx

3.            Windows 中建立一個排程作業:

                              i.[開始] -> [所有程式] -> [附屬應用程式] -> [系統工具] -> [排定的工作].

                             ii.Double Click [新增排定的工作] , 按下 [下一步].

                            iii.按下 [瀏覽], 會出現選取程式的畫面 -> 選取 c:\ backup_database.bat 按下 [開啟], 最後按下 [下一步] 進行下一個步驟.

                            iv.選取 [每日] -> 按下 [下一步].

                             v.開始時間選擇 [下午 12:30] -> 執行方式選 [每天] -> 開始日期維持預設或另外設定 -> 按下 [下一步].

                            vi.輸入執行此程式的帳號 ( administrator 帳號) -> 按下 [下一步].

                           vii.勾選 [按下[完成]後開啟這項工作的進階內容] -> 按下 [完成].

                          viii.在進階頁面中檢視各項設定是否無誤, 記得 [工作] 頁籤中的 [登入後才執行]要取消勾選, [啟用] 的選項要勾選.

                            ix.如果一天內要備份多次 (例如多一個上午1點的備份), 可在 [排程] 頁籤中, 勾選 [顯示多項排程] -> 在上方按下 [新增] -> 設定工作排程為 [每天], 開始時間為 [上午01:00] -> 按下 [套用].

                             x.另外, [設定] 頁籤中, 記得取消勾選 [x小時後停止排定的工作] -> 按下 [確定]. (若有特殊需求, 此項可跳過, 並維持勾選)

最後會在排定的工作中看到一個新增的工作項目, 可在該項目上按滑鼠右鍵, 選執行. 
執行後會在 D:\Database_Backup\ 產生 LYTDB_yyyyMMddHHmm.bak LYTDB00_yyyyMMddHHmm.bak 兩個備份檔. 
(yyyyMMddHHmm
表示年月日時分, 例如: 200904221156)

透過上述的排程作業, 定時呼叫 backup_database.bat 這個批次作業, 並執行 backup.sql 中的備份作業, 就可達到定期備份的目的.

 

2011年5月16日 星期一

查詢所有可以VPN的users

微軟匯入匯出的工具

http://support.microsoft.com/kb/555636/zh-tw

http://phorum.study-area.org/index.php?topic=53469.0

http://blog.xuite.net/air.weid/computer/12818693

 

使用 ldifde指令來修改大量的使用者帳號屬性資料
如帳號為michael,該帳號內容有一個顯示名稱的屬性欄位為"麥克",要修改為"sa01_麥克"

modify.ldf
編輯內容為
-------------------------------------------
dn: CN=michael,OU=sale,DC=domain,DC=local
changetype: modify
replace: displayname
displayname: sa01_
麥克
-
-------------------------------------------
使用ldifde指令匯入
ldifde -i -f modify.ldf

要注意編碼是 ANSI ?還是 UTF-8? (中文要用UTF-8)

 

如果要用內建的工具查詢,可以用下面的方式