時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)
以下的文章主要是教會(huì)大家如何正確對(duì)SQL Server數(shù)據(jù)庫(kù)定時(shí)操作進(jìn)行操作,在實(shí)際操作中如果在SQL Server數(shù)據(jù)庫(kù)中需要定時(shí)或是每隔一段時(shí)間,來(lái)執(zhí)行某個(gè)存儲(chǔ)過(guò)程或3200字符以內(nèi)的SQL語(yǔ)句時(shí)。
可以用管理->SQL Server代理->作業(yè)來(lái)實(shí)現(xiàn)。
1、管理->SQL Server數(shù)據(jù)庫(kù)代理->作業(yè)(按鼠標(biāo)右鍵)->新建作業(yè)->
2、新建作業(yè)屬性(常規(guī))->名稱[自定義本次作業(yè)的名稱]->啟用的方框內(nèi)是勾號(hào)->
分類處可選擇也可用默認(rèn)的[未分類(本地)]->所有者默認(rèn)為登錄SQL Server用戶[也可選其它的登錄](méi)->
描述[填寫本次工作詳細(xì)描述內(nèi)容];
[ 創(chuàng)建作業(yè)分類的步驟:
SQL Server數(shù)據(jù)庫(kù)代理->作業(yè)->右鍵選所有任務(wù)->添加、修改、刪除 ]
3、新建作業(yè)屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->類型[Transact-SQL(TSQL)腳本]->
數(shù)據(jù)庫(kù)[要操作的數(shù)據(jù)庫(kù)]->命令
[ 如果是簡(jiǎn)單的SQL直接寫進(jìn)去即可,也可用打開(kāi)按鈕輸入一個(gè)已寫好的*.sql文件
如果要執(zhí)行存儲(chǔ)過(guò)程,填
- exec?p_procedure_name?v_parameter1,[?v_parameter2…v_parameterN]? ?
- ]?
->確定
(如果有多個(gè)步驟,可以再次調(diào)用下面的新建按鈕;也可以對(duì)已有的多個(gè)步驟插入、編輯、刪除);
4、建作業(yè)屬性(調(diào)度)->新建調(diào)度->名稱[自定義調(diào)度名稱]->啟用的方框內(nèi)是勾號(hào)->調(diào)度->反復(fù)出現(xiàn)->
更改[調(diào)度時(shí)間表]->確定
(如果只要保存此作業(yè),不要定時(shí)做可以把啟用的方框內(nèi)是勾號(hào)去掉);
5、建作業(yè)屬性(通知)->用默認(rèn)的通知方法就好[當(dāng)作業(yè)失敗時(shí),寫入Windows應(yīng)用程序系統(tǒng)日志] ->確定。
跟作業(yè)執(zhí)行相關(guān)的一些SQL Server數(shù)據(jù)庫(kù)知識(shí):
SQLSERVERAGENT服務(wù)必須正常運(yùn)行,啟動(dòng)它的NT登錄用戶要跟啟動(dòng)SQL Server數(shù)據(jù)庫(kù)的NT登錄用戶一致。
點(diǎn)作業(yè)右鍵可以查看作業(yè)執(zhí)行的歷史記錄情況,也可以立即啟動(dòng)作業(yè)和停止作業(yè)。
最近在看作業(yè)歷史記錄時(shí),發(fā)現(xiàn)有的作業(yè)記錄的歷史記錄多,有的作業(yè)記錄的記錄的歷史記錄少.
如何能使某些作業(yè)按各自的需求,保留一段時(shí)間.比如保留一個(gè)月的歷史記錄.
看了SQL Server的在線幫助文檔,里面介紹說(shuō):
在管理->SQL Server數(shù)據(jù)庫(kù)代理->右鍵選屬性->作業(yè)系統(tǒng)->限制作業(yè)歷史記錄日志的大小->
作業(yè)歷史記錄日志的最大大小(行數(shù)) 默認(rèn)為1000 如果某臺(tái)機(jī)器的作業(yè)數(shù)量很多,一定要提高它,例如為100000
每個(gè)作業(yè)歷史記錄日志的最大行數(shù) 默認(rèn)為100 如果作業(yè)每天執(zhí)行兩次,需要保留一個(gè)月的日志,可以設(shè)為60
它們之間有一個(gè)相互制約關(guān)系, 我們可以根據(jù)自己的需要來(lái)改.
如果SQL Server服務(wù)器改過(guò)機(jī)器名, 管理是舊名稱時(shí)建立的job的時(shí)候可能會(huì)遇到錯(cuò)誤14274: 無(wú)法添加、更新或刪除從MSX服務(wù)器上發(fā)起的作業(yè)(或其步驟或調(diào)度)
看了Microsoft的文檔:http://support.microsoft.com/default.aspx?scid=kb;en-us;281642
說(shuō)SQL Server 2000系統(tǒng)里msdb..sysjobs 里originating_server 字段里存的是原來(lái)的服務(wù)器的名稱.
24X7在用的系統(tǒng)肯定不能按上面Microsoft的文檔說(shuō)的那樣把名字改回來(lái)又改過(guò)去。
于是想,msdb..sysjobs 能否update originating_server 字段成現(xiàn)在在用的新服務(wù)器名?
- use?msdb ?
- select?*?from?sysjobs ?
找到originating_server 字段還是舊服務(wù)器的job_id, 然后執(zhí)行update語(yǔ)句:
- update?sysjobs?set?originating_server='new_server_name'?
- where?job_id='B23BBEBE-A3C1-4874-A4AB-0E2B7CD01E14'??
(所影響的行數(shù)為 1 行)
這樣就可以添加、更新或刪除那些曾經(jīng)出error 14274 的作業(yè)了。
如果想把作業(yè)由一臺(tái)機(jī)器遷移到另一臺(tái)機(jī)器,可以先保留好創(chuàng)建作業(yè)的腳本, 然后在另一臺(tái)機(jī)器上運(yùn)行。
導(dǎo)出所有作業(yè)的創(chuàng)建腳本操作步驟:
管理->SQL Server數(shù)據(jù)庫(kù)代理->作業(yè)(鼠標(biāo)右鍵)->所有任務(wù)->生成SQL腳本->保存到操作系統(tǒng)下的某個(gè)sql文件導(dǎo)出某一個(gè)作業(yè)的創(chuàng)建腳本操作步驟:
管理->SQL Server代理->作業(yè)->選中待轉(zhuǎn)移的作業(yè)(鼠標(biāo)右鍵)->所有任務(wù)->生成SQL腳本->保存到OS下的某個(gè)sql文件然后在目的服務(wù)器上運(yùn)行剛才保存下來(lái)的創(chuàng)建作業(yè)的sql腳本。
( 如果建作業(yè)的用戶或者提醒的用戶不存在, 則會(huì)出錯(cuò);
我們需要在目的服務(wù)器上建立相關(guān)的WINDOWS用戶或者SQL Server數(shù)據(jù)庫(kù)登錄,
也可以修改創(chuàng)建作業(yè)的腳本, 把目的服務(wù)器上不存在的用戶替換成已經(jīng)有的用戶。
如果生成日志的物理文件目錄不存在,也應(yīng)該做相關(guān)的修改,例如d:區(qū)轉(zhuǎn)f:區(qū)等
字符串的 @command 命令里有分隔符號(hào) go 也會(huì)出錯(cuò), 可以把它去掉)
關(guān)鍵詞標(biāo)簽:SQL Server,數(shù)據(jù)庫(kù)
相關(guān)閱讀
熱門文章 淺談JSP JDBC來(lái)連接SQL Server 2005的方法 SqlServer2005對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行分區(qū)具體步驟 sql server系統(tǒng)表?yè)p壞的解決方法 MS-SQL2005服務(wù)器登錄名、角色、數(shù)據(jù)庫(kù)用戶、角色、架構(gòu)的關(guān)系
人氣排行 配置和注冊(cè)O(shè)DBC數(shù)據(jù)源-odbc數(shù)據(jù)源配置教程 如何遠(yuǎn)程備份(還原)SQL2000數(shù)據(jù)庫(kù) SQL2000數(shù)據(jù)庫(kù)遠(yuǎn)程導(dǎo)入(導(dǎo)出)數(shù)據(jù) SQL2000和SQL2005數(shù)據(jù)庫(kù)服務(wù)端口查看或修改 修改Sql Server唯一約束教程 SQL Server 2005降級(jí)到2000的正確操作步驟 sql server系統(tǒng)表?yè)p壞的解決方法 淺談JSP JDBC來(lái)連接SQL Server 2005的方法