SQL Server定時作業的設定方法
如果在SQL Server 裡需要定時或者每隔一段時間執行某個儲存過程或3200字元以內的SQL語句時,
可以用管理->SQL Server代理->作業來實現。
1、管理->SQL Server代理->作業(按滑鼠右鍵)->新建作業->
2、新建作業屬性(常規)->名稱[自定義本次作業的名稱]->啟用的方框內是勾號->
分類處可選擇也可用預設的[未分類(本地)]->所有者預設為登入SQL Server使用者[也可選其它的登入]->
描述[填寫本次工作詳細描述內容];
[ 建立作業分類的步驟:
SQL Server代理->作業->右鍵選所有任務->新增、修改、刪除 ]
3、新建作業屬性(步驟)->新建->步驟名[自定義第一步驟名稱]->型別[Transact-SQL(TSQL)指令碼]->
資料庫[要操作的資料庫]->命令
[ 如果是簡單的SQL直接寫進去即可,也可用開啟按鈕輸入一個已寫好的*.sql檔案
如果要執行儲存過程,填
exec p_procedure_name v_parameter1,[ v_parameter2…v_parameterN]
]
->確定
(如果有多個步驟,可以再次呼叫下面的新建按鈕;也可以對已有的多個步驟插入、編輯、刪除);
4、建作業屬性(排程)->新建排程->名稱[自定義排程名稱]->啟用的方框內是勾號->排程->反覆出現->
更改[排程時間表]->確定
(如果只要儲存此作業,不要定時做可以把啟用的方框內是勾號去掉);
5、建作業屬性(通知)->用預設的通知方法就好[當作業失敗時,寫入Windows應用程式系統日誌] ->確定。
跟作業執行相關的一些SQL Server知識:
SQLSERVERAGENT服務必須正常執行,啟動它的NT登入使用者要跟啟動SQL Server資料庫的NT登入使用者一致。
點作業右鍵可以檢視作業執行的歷史記錄情況,也可以立即啟動作業和停止作業。
最近在看作業歷史記錄時,發現有的作業記錄的歷史記錄多,有的作業記錄的記錄的歷史記錄少.
如何能使某些作業按各自的需求,保留一段時間.比如保留一個月的歷史記錄.
看了SQL Server的線上幫助文件,裡面介紹說:
在管理->SQL Server代理->右鍵選屬性->作業系統->限制作業歷史記錄日誌的大小->
作業歷史記錄日誌的最大大小(行數) 預設為1000 如果某臺機器的作業數量很多,一定要提高它,例如為100000
每個作業歷史記錄日誌的最大行數 預設為100 如果作業每天執行兩次,需要保留一個月的日誌,可以設為60
它們之間有一個相互制約關係, 我們可以根據自己的需要來改.
如果SQL Server伺服器改過機器名, 管理是舊名稱時建立的job的時候可能會遇到
錯誤14274: 無法新增、更新或刪除從MSX伺服器上發起的作業(或其步驟或排程)
看了Microsoft的文件:http://support.microsoft.com/default.aspx?scid=kb;en-us;281642
說SQL Server 2000系統裡msdb..sysjobs 裡originating_server 欄位裡存的是原來的伺服器的名稱.
24X7在用的系統肯定不能按上面Microsoft的文件說的那樣把名字改回來又改過去。
於是想,msdb..sysjobs 能否update originating_server 欄位成現在在用的新伺服器名?
use msdb
select * from sysjobs
找到originating_server 欄位還是舊伺服器的job_id, 然後執行update語句:
update sysjobs set originating_server='new_server_name'
where job_id='B23BBEBE-A3C1-4874-A4AB-0E2B7CD01E14'
(所影響的行數為 1 行)
這樣就可以新增、更新或刪除那些曾經出error 14274 的作業了。
如果想把作業由一臺機器遷移到另一臺機器,可以先保留好建立作業的指令碼, 然後在另一臺機器上執行。
匯出所有作業的建立指令碼操作步驟:
管理->SQL Server代理->作業(滑鼠右鍵)->所有任務->生成SQL指令碼->儲存到作業系統下的某個sql檔案
匯出某一個作業的建立指令碼操作步驟:
管理->SQL Server代理->作業->選中待轉移的作業(滑鼠右鍵)->所有任務->生成SQL指令碼->儲存到OS下的某個sql檔案
然後在目的伺服器上執行剛才儲存下來的建立作業的sql指令碼。
( 如果建作業的使用者或者提醒的使用者不存在, 則會出錯;
我們需要在目的伺服器上建立相關的WINDOWS使用者或者SQL Server資料庫登入,
也可以修改建立作業的指令碼, 把目的伺服器上不存在的使用者替換成已經有的使用者。
如果生成日誌的物理檔案目錄不存在,也應該做相關的修改,例如d:\區轉f:\區等
字串的 @command 命令裡有分隔符號 go 也會出錯, 可以把它去掉)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-675754/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用SQL Server作業設定定時任務SQLServer
- SQL SERVER安全設定攻略SQLServer
- SQL SERVER設定恢復模式的策略SQLServer模式
- SQL Server的安全設定問題解答SQLServer
- 【筆記】oracle 定時作業筆記Oracle
- SQL Server Profiler 設定注意事項SQLServer
- 嵌入式作業5.1 定時器程式設計定時器程式設計
- 使用Quartz實現定時作業quartz
- SQL Server安全設定最佳實踐SQSQLServer
- SQL SERVER 資料庫所用埠設定SQLServer資料庫
- Linux作業系統定時備份檔案方法Linux作業系統
- SQL Server中text型別匯入oracle clob欄位時的設定SQLServer型別Oracle
- 定時開通路由器的WiFi設定方法路由器WiFi
- [轉]SQL Server 2000定時執行SQL語句SQLServer
- 重灌VMware作業系統時正確設定光碟的device node作業系統dev
- State Server 設定Server
- Ubuntu的NTP同步時鐘設定方法Ubuntu
- SQL Server 中的鎖定介紹SQLServer
- 巧妙設定 SQL Server獲得智慧程式碼提示SQLServer
- [Tools] PL/SQL Developer設定時間格式SQLDeveloper
- Ubuntu系統定時作業無效果的排錯Ubuntu
- Windows Server +FileZilla server的防火牆設定WindowsServer防火牆
- 小米9 SE定時開關機怎麼設定?小米9 SE定時開機關機設定方法教程
- 電腦定時關機怎麼設定?360安全衛士設定電腦定時關機的兩種方法步驟
- Jenkins定時設定Jenkins
- Linux:設定時間與同步的方法Linux
- win10如何設定定時關機 win10定時關機設定的方法Win10
- SQL *Plus設定login.sql登入設定SQL
- NFS Server設定(轉)NFSServer
- 360如何定時關機win10_win10簡單設定360定時關機的方法Win10
- PL/SQL 設定SQL
- Solidworks 板件製作斜接法時的設定Solid
- 設定sql plus 的autotraceSQL
- linux定時任務的設定Linux
- SQL Server 2005 Express混合模式登入設定SQLServerExpress模式
- 設定SQL Server 2005 Express混合模式登入SQLServerExpress模式
- SQL Server 2005裡設定自增欄位SQLServer
- 巧用SET選項設定SQL Server客戶端配置SQLServer客戶端