一:目標任務: 使用SQL Server 2008自帶的維護計劃自動備份資料庫,並且自動刪除超過設定期限的歷史備份文件:
1. 每天0點自動備份指定資料庫 testDB,備份文件放在E:\autoBack文件夾下
2. 備份文件保留1周,每天備份完資料庫後自動刪除超過1周的備份文件
二:前提條件
1. 已經安裝SQL Server Integration Services 服務
2. 已經安裝SQL Server 代理 (MSSQLSERVER) 服務
如果未安裝SQL Server Integration Services 服務,依然可以創建維護計劃,但是不會生效
三: 創建維護計劃(使用維護計劃向導)
1. 選擇對象資源管理器下的「管理」,點擊右鍵,選擇「維護計劃向導」
2. 選擇「下一步」進入「選擇計劃屬性」界面, 我們這里修改計劃名稱為 testMaintenancePlan
因為我們現在有兩個任務,一個是備份資料庫testDB,一個是刪除歷史備份文件。所以選擇「整個計劃統籌安排或無計劃」
3. 點擊「更改」按鈕,進入時間計劃設置界面
我們這里需要每天重復執行,頻率是每天0點鍾執行,從當天開始執行
4. 點擊「確定」後,返回計劃屬性界面
5. 選擇「下一步」,進入選擇維護任務界面
我們這里有兩個任務,備份資料庫和刪除超期的歷史備份文件,所以勾選「備份資料庫(完整)」和「『清除維護』任務」兩個任務
6. 選擇「下一步」, 進入設置維護任務順序的界面
這里的順序是先備份資料庫, 再執行「清除維護」任務,刪除歷史備份
7. 選擇「下一步」,進入備份資料庫任務的設置界面
選擇指定的特定資料庫testDB:
指定備份文件存放的目錄為E:\autoBack
備份文件擴展名為bak(默認),bak字母前面不要加點( . )
8. 選擇「下一步」進入「定義清除維護任務」界面
我們需要刪除文件夾(E:\autoBack)下面的以bak為擴展名的資料庫備份文件,文件保留時間為1周, 這里需要注意的是,
文件擴展名填「bak」而不要填「.bak」,擴展名前不要加點,否則不會刪除
9. 選擇「下一步」設置報告文件路徑
10. 選擇「下一步」完成
11. 刷新「管理」 下的「維護計劃」文件夾, 可以看到創建的維護計劃
12. 雙擊新建的維護計劃或點擊右鍵選擇「修改」,可以看到維護計劃的內容,並修改,修改後點擊保存即可
13. 最後重啟SQL Server 代理 服務即可
⑵ 資料庫要怎麼維護
資料庫日常維護(參考)
資料庫日常維護工作是系統管理員的重要職責。其內容主要包括以下幾個部分:
一、備份系統數據
SYBASE 系統的備份與恢復機制保證了在系統失敗時重新獲取數據的可能性。SQL Server 提供了兩種不同類型的恢復機制:一類是系統自動完成的恢復,這種措施在每次系統啟動時都自動進行,保證了在系統癱瘓前完成的事務都寫到資料庫設備上,而未完成的事務都被回退;另一類是人工完成的恢復,這是通過 DUMP 和 LOAD 命令來執行人工備份和恢復工作。因此定期備份事務日誌和資料庫是一項十分重要的日常維護工作。
1、備份資料庫
每一個資料庫都應在創建之後卸出,從而提供一個裝入基點。在此之後按排定的時間周期表卸出。比如每周五卸出資料庫。對一般資料庫系統卸出資料庫周期建議為每周一次。
除了按計劃周期卸出資料庫之外,還需在每次運行沒有日誌的操作後卸出資料庫。例如:
·每次強制地運行了 DUMP TRAN WITH NO_LOG (因為資料庫的磁碟空溢出);
·每次用 sp_dboption 允許 select into/bulk 做快速拷貝,或用 SELECT INTO 命令創建一個永久性的表,或使用了 WRITETEXT 命令。
卸出資料庫的命令為:
DUMP DATABASE database_name
TO mp_device
database_name 是要卸出的資料庫名稱,mp_device 是卸出設備的名稱。用系統過程 sp_helpdevice 可以獲得設備的信息。
下面一條命令用來卸出資料庫 my_db :
DUMP DATABASE my_db
TO db_bk_dev
2、備份事務日誌
如果事務日誌與資料庫放在同一個設備上,則事務日誌不應與資料庫分開備份。master 資料庫和小於 4M 的用戶資料庫就是這種情況。一般資料庫系統的資料庫和日誌分別放在不同的設備上,因此,可以用 DUMP TRAN 命令單獨備份日誌。
備份事務日誌的周期直接影響數據的恢復程度,因此建議每天備份。
備份事務日誌的命令格式為:
DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
其中 database_name 是要備份事務的資料庫名稱,mp_device 是備份設備名稱,僅當包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句時,才可以備份到設備。
注意:如果總是用 DUMP DATEBASE (備份資料庫及其日誌),而不用 DUMP TRAN ,事務日誌將不會刷新,而變得非常龐大。
對於 master 資料庫和小型資料庫每次運行 DUMP DATEBASE 之後應當運行 DUMP TRANsaction 命令刷新日誌 。
下面一條命令備份資料庫 db160 的事務日誌到備份設備上:
DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY
3、備份資料庫及其日誌間的相互作用
在至少卸出一次資料庫前,卸出事務日誌是毫無意義的。下圖顯示了備份資料庫及其日誌間的關系
如果在星期二下午5:01出現非硬體故障,需要做的所有工作是裝入磁帶5(參見下一節:數據恢復),由於磁帶5是下午5:00剛備份的,因此只有備份和裝入之間的一分鍾內的數據損失。
但是,如果在星期二下午4:49失效會怎麼樣呢?在這種情況下,要裝入磁帶1(在星期五下午5:00的卸出)。然後,依次裝入磁帶2,3以及4。這樣,系統將恢復到星期二上午10:00點的狀態,星期二的大部分工作丟失了。此例顯示了經常卸出事務的重要性。
二、萬一系統失敗時恢復資料庫系統
如果用戶資料庫存儲的設備失效,從而資料庫被破壞或不可存取,通過裝入最新的資料庫備份以及後來的事務日誌備份可以恢復資料庫。假設當前的事務日誌存在於一個並沒有毀壞的設備上,帶著 WITH NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出它。
要恢復資料庫按如下步驟去做:
1、如果日誌存在於一個分離的設備上,用帶著 NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出被毀壞的或者不可存取的用戶資料庫事務日誌。
2、用下面的查詢檢查設備分配已毀壞資料庫的設備使用情況。必須為同一目的賦同樣的空間塊。
下面的查詢顯示了分配給資料庫 mydb 設備使用和尺寸情況:
SELECT segmap,size FROM sysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = 「mydb」)
3、檢查查詢的輸出。在 segmap 列的 『3』代表數據分配,『4』代表日誌分配。size 列代表 2K 數據塊的數目。注意此信息的次序、使用和尺寸部分。例如,輸出為:
segmapSize
--------------------
310240//實際尺寸為:20M
35120//實際尺寸為:10M
45120//實際尺寸為:10M
31024//實際尺寸為:2M
42048//實際尺寸為:4M
4、用 DROP DATABASE 命令刪除毀壞設備上的資料庫。如果系統報錯,用DBCC DBREPAIR 命令的 DROPDB 選項。
5、刪除資料庫後,用 sp_dropdevice 刪除毀壞了的設備。
6、用 DISK INIT 初始化新的資料庫設備。
7、重建資料庫。用 CREATE DATABASE 命令從老的 sysusages 表拷貝所有的行,並包含第一邏輯設備。
對上例,命令為:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
8、用 ALTER DATABASE 命令重建其餘入口。在此例中,在datadev1上分配更多的空間,命令為:
ALTER DATABASE mydb ON datadev1=2[page]
9、用 LOAD DATABASE 重新裝入資料庫,然後用 LOAD TRAN 裝入前面卸出的日誌。
LOAD DATABASE 命令語法是:
LOAD DATABASE database_name
FROM mp_device
LOAD TRANsaction 命令的語法是:
LOAD TRANsaction database_name
FROM mp_device
卸出資料庫和事務日誌的預設許可權歸資料庫所有者,且可以傳遞給其他用戶;裝載資料庫和事務的許可權也歸資料庫所有者,但不能傳遞。
二、產生用戶信息表,並為信息表授權;
系統維護人員的另一個日常事務是為用戶創建新的信息表,並為之授權。創建表以及為表授權的方法已經在講過,在此只將有關命令語法寫出來。
·創建表的命令為:
CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……
)
go
ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go
·刪除表的命令格式為:
DROP TABLE table_name
go
·為表授權的命令格式為:
GRANT
ON table_name TO user_name
go
·收回許可權的命令格式為
REVOKE
ON table_name FROM user_name
go
三、監視系統運行狀況,及時處理系統錯誤;
系統管理員的另一項日常工作是監視系統運行情況。主要有以下幾個方面:
1、監視當前用戶以及進程的信息
使用系統過程:sp_who
說明:該命令顯示當前系統所有注冊用戶及進程信息,如下表是某系統的信息。
---------------------------------------------------------------
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
SLEEP
從左向右依次顯示:進程號、當前狀態、注冊用戶名、主機名、佔用塊數、資料庫名以及當前命令。
如果監視時發現進程總數接近最大連接數(用系統過程:sp_configure 「user conn」 查看)時,應下掉不活動或無關進程,以保證系統正常運做;另外亦可監視非法用戶或用戶使用不屬於自己使用范圍的資料庫等情況。
2、監視目標佔用空間情況
使用系統過程:sp_spaceused
說明:該過程顯示行數、數據頁數以及當前資料庫中由某個目標或所有目標所佔用的空間。如下表是某資料庫日誌表的信息:
NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail
日常要監視的主要目標有:用戶資料庫、資料庫日誌表(syslogs)以及計費原始數據表等。如果發現佔用空間過大,對日誌表要進行轉儲;對其他目標則應擴充空間或清楚垃圾數據。
3、監視 SQL Server 統計數字
使用系統過程:sp_monitor
說明:sp_monitor 顯示SQL Server 的歷史統計數字,下表是某系統的統計數字:
Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)
上表依次給出該系統本次運行統計的上一次時間、本次時間、間隔秒數、CPU佔用、IO佔用、收發包情況、系統讀入寫出情況等信息
四、保證系統數據安全,周期更改用戶口令;
為保證系統數據的安全,系統管理員必須依據系統的實際情況,執行一系列的安全保障措施。其中,周期性的更改用戶口令是比較常用且十分有效的措施。
更改用戶口令是通過調用系統過程sp_password 來實現的。Sp_password 的語法為:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登錄口令(老口令),new_password是新口令,loginame是登錄名稱。
在網路搜索:資料庫日常維護(參考)
相 關 文 章
Sybase存儲過程的建立和使用
SYBASE dbcc
電信企業參與競爭的利器-數據倉庫和數據挖掘
SCOUNIX下磁帶機的安裝與備份
StoredProcere(存儲過程)編寫經驗和優化措施
細說SYBASE資料庫日誌
常見資料庫系統之比較 - SYBASE 和 SQL SERVER
SYBASE ASE FOR LINUX安裝及perl連接SYBASE
Sybase資料庫應用(一)
安裝Sybase ASE
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!
vaela
⑶ SQL 資料庫索引如何維護
第一步:查看是否需要維護,查看掃描密度/Scan Density是否為100%
declare @table_id int
set @table_id=object_id('表名')
dbcc showcontig(@table_id)
第二步:重構表索引
dbcc dbreindex('表名',pk_索引名,100)
重做第一步,如發現掃描密度/Scan Density還是小於100%則重構表的所有索引
dbcc dbreindex('表名','',100)
⑷ 如何維護SQL Server 2005 CE資料庫(非編程)
維護資料庫時涉及對資料庫進行收縮、壓縮和修復操作通過使用
SQL
Server
Management
Studio
同對框內執行所有些任務
Management
Studio
打開對象資源管理器
In對象資源管理器單擊連接選擇SQL
Server
Compact
Edition
連接伺服器對框選擇要收縮
SQL
Server
2005
Compact
Edition
(SQL
Server
Compact
Edition)
資料庫單擊連接
對象資源管理器右鍵單擊所添加
SQL
Server
Compact
Edition
資料庫選擇屬性
資料庫屬性對框打開從左側窗格選擇收縮和修復
單擊通過刪除空閑頁收縮資料庫單擊確定
Management
Studio
打開對象資源管理器
對象資源管理器單擊連接選擇SQL
Server
Compact
Edition
連接伺服器對框選擇要壓縮
SQL
Server
Compact
Edition
資料庫單擊連接
對象資源管理器右鍵單擊所添加
SQL
Server
Compact
Edition
資料庫選擇屬性
資料庫屬性對框打開選擇執行完全資料庫壓縮
文件選項下您選擇壓縮之替換現有資料庫或使用新文件名創建新資料庫通過選擇覆蓋現有資料庫文件復選框您修改現有資料庫名稱與位置進行替換
Management
Studio
打開對象資源管理器
對象資源管理器單擊連接選擇SQL
Server
Compact
Edition
連接伺服器對框選擇要修復
SQL
Server
Compact
Edition
資料庫單擊連接
對象資源管理器右鍵單擊所添加
SQL
Server
Compact
Edition
資料庫選擇屬性
資料庫屬性對框打開選擇修復物理損壞資料庫
選恢復已損壞行復選框恢復已損壞行
文件選項下您選擇修復之替換現有資料庫或使用新文件名創建新資料庫通過選擇覆蓋現有資料庫文件復選框您修改現有資料庫名稱與位置進行替換
⑸ 怎麼維護資料庫 防止核心存儲過程被篡改
解決方法:可以在表中加一個MD5的欄位,這個欄位的值是表中幾個主要欄位+隨機數組合起來通過MD5加密的方式加密後的字元串,獲取數據時校驗MD5的值是否一致,如果不一致則表示數據被非法篡改了,反之則數據正常。同時修改數據的時候需要更新MD5的值。