1. 如何恢復sql Sever 代理裡面的作業
直接用查詢分析器運行導出的SQL腳本
2. 高分求一段sql語句,怎麼用sql語句建立作業
代碼比較復雜,示例參見底部。
通常的方案:
1、用SSMS創建
2、自編代碼(HELP語法) -- 由於比較復雜,非常容易錯--反正我自己是不會這么乾的:(
DECLARE@jobIdBINARY(16)
EXEC@ReturnCode=msdb.dbo.sp_add_job@job_name=N'MobDSS@歷史數據清理(每周1次)',
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N'無描述。',
@category_name=N'[Uncategorized(Local)]',
@owner_login_name=N'sa',@job_id=@jobIdOUTPUT
IF(@@ERROR<>0OR@ReturnCode<>0)GOTOQuitWithRollback
/******Object:Step******/
EXEC@ReturnCode=msdb.dbo.sp_add_jobstep@job_id=@jobId,@step_name=N'step1',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0,@subsystem=N'TSQL',
@command=N'EXEC[TOOL].[job_DataClear]',
@database_name=N'MobDSS',
@flags=0
IF(@@ERROR<>0OR@ReturnCode<>0)GOTOQuitWithRollback
EXEC@ReturnCode=msdb.dbo.sp_update_job@job_id=@jobId,@start_step_id=1
IF(@@ERROR<>0OR@ReturnCode<>0)GOTOQuitWithRollback
EXEC@ReturnCode=msdb.dbo.sp_add_jobschele@job_id=@jobId,@name=N'每周1次',
@enabled=1,
@freq_type=8,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20120420,
@active_end_date=99991231,
@active_start_time=4000,
@active_end_time=235959,
@schele_uid=N'155f2013-8e54-429c-ad4f-edf84157ea09'
IF(@@ERROR<>0OR@ReturnCode<>0)GOTOQuitWithRollback
EXEC@ReturnCode=msdb.dbo.sp_add_jobserver@job_id=@jobId,@server_name=N'(local)'
IF(@@ERROR<>0OR@ReturnCode<>0)GOTOQuitWithRollback
COMMITTRANSACTION
GOTOEndSave
QuitWithRollback:
IF(@@TRANCOUNT>0)ROLLBACKTRANSACTION
EndSave:
GO
3. SqlServer2005 如何創建作業
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = 'SQL_EmailOne1', --作業的名稱
@enabled = 1, --指示添加的作業的狀態(默認值為 1(啟用))
@description = 'Testing', --作業的說明
@owner_login_name = 'sa', --擁有作業的登錄名
@notify_level_eventlog = 2, --0 從不 1 成功後 2(默認值)失敗後 3 始終
@notify_level_email = 2, --默認值為 0,指示從不發送
@notify_level_netsend = 2, --默認值為 0,指示從不發送
@notify_level_page = 2, --默認值為 0,指示從不發送
@category_id=3, --作業的類別ID
@delete_level = 0 ; --默認值為0,不刪除,用於指示何時刪除作業
GO
USE msdb ;
GO
EXEC sp_add_jobstep
@job_name = 'SQL_EmailOne1', --步驟的作業的名稱
@step_name = 'SQL_Emailone2', --步驟的名稱
@server='svr2',--伺服器名稱
@database_name='testdb',--資料庫名
@subsystem = 'TSQL', --Transact-SQL 語句\製表符 --CHAR(9) 換行符 CHAR(10) 回車 CHAR(13)
@command ='use orbitx declare @cnt int select @cnt=count( *) from sqlemail if @cnt>3 begin use msdb EXEC sp_send_dbmail @profile_name = ''two'',@recipients = ''[email protected]'',@subject = ''郵件測試xdd'',@body = ''郵件測試成功xdd!'' end',
@retry_attempts = 2,--該步驟失敗時的重試次數
@retry_interval = 0.05 ; --兩次重試之間的間隔時間(分鍾)
GO
USE msdb ;
GO
EXEC sp_add_schele
@schele_name = 'SQL_Emailone2' ,--計劃的名稱
@freq_type = 4 , --指示作業執行時間的值 1為一次,4為每天(1,8,16,32等參考幫助文檔)值為2的次方
@freq_interval = 1,--作業執行的天數 說明同上
@freq_subday_type=0x4,
@freq_subday_interval=1,
@active_start_time = 010000 ;--數據類型為 int,默認值為 000000,指示 24 小時制的上午 12:00:00,並且必須使用 HHMMSS 的格式輸入
GO
EXEC sp_attach_schele
@job_name = 'SQL_EmailOne1', --計劃的作業的名稱
@schele_name = 'SQL_Emailone2' ; --作業設置的計劃的名稱
GO
USE msdb ;
GO
EXEC dbo.sp_add_jobserver
@job_name = 'SQL_EmailOne1', --作業的名稱
@server_name = 'svr' ; --該作業的目標伺服器的名稱
GO
4. 怎樣重建SQL2005中的master
遇到損壞或者錯誤的master資料庫是最難解決情況之一。Master資料庫包含了SQL Server需要的關鍵信息。如果master資料庫出錯,那麼SQL Server就不能啟動。要在這種情況下還原master資料庫,可以按照下面這些步驟來從災難中恢復過來: 1. 使用\Program Files\Microsoft SQL Server\80\Tools\Binn目錄下的rebuidm.exe文件重建master資料庫。重建master資料庫可以使你的資料庫文件完整無缺。經常把數據和日誌文件備份到一個單獨的目錄是個不錯的主意。 2. 使用-m參數啟動SQL Server,這樣可以以單用戶模式重新啟動SQL Server。 3. 從最近一次已知最好的備份來還原master資料庫。 4. 核實master資料庫是不是已經成功還原:確認所有資料庫都已恢復正常運行。從最近一次已知最好的備份來還原msdb資料庫。 5. 以普通模式停止和啟動SQL Server。 6. 向生產用戶開放資料庫。 如果這樣做沒有效,那麼重建master資料庫然後附加這個資料庫。這也是DBA的任務之一,當然你並不希望經常這樣做。如果master資料庫出現問題,那麼伺服器上所有的資料庫都會出現問題。 總的來說,恢復時要完成的第一個步驟就是安裝一個新的master資料庫,使伺服器至少能夠啟動。在此基礎上,就可以還原真正的master資料庫了。雙擊了rebuildm.exe之後,將啟動rebuild master實用程序,它需要三個參數: ① 要恢復的伺服器名稱。 ② Master資料庫在原來的安裝程序中的位置,如果SQL Server的版本為SP2,這個位置應當是安裝CD的x86\data目錄(在更早的版本中,由於存在程序錯誤,有可能需要將這個data目錄拷貝到硬碟驅動器或者網路驅動器上)。 ③ 伺服器的排序規則。 這個重建過程將會重新創建全部四個系統資料庫以及Northwind和Pubs,接著對伺服器進行配置。整個重建過程大約需要數分鍾,如果以前使用service pack對伺服器進行了升級,將有可能花費更長時間。 恢復過程的第二個步驟是使用伺服器管理或者企業管理器來啟動伺服器。 依賴於你的安全性配置,企業管理器很有可能沒有連接到伺服器的許可權。重建master資料庫將會丟掉除了sa以外的所有用戶登錄,並把sa的空口令重置為空。如果要調整企業管理器的連接配置,以便作為sa以空口令連接到伺服器,可以編輯SQL Server的注冊屬性。不要擔心sa的空口令,因為我們很快就會恢復真正的master資料庫。一旦伺服器再次運行,你就會發現所有的用戶資料庫都不見了,因為重建的master資料庫沒有包含有關這些用戶資料庫的信息。恢復過程的第三個步驟就是將伺服器置於單用戶模式,以便還原master資料庫。在企業管理器中,要完成以下步驟: ① 選擇伺服器。 ② 使用右鍵單擊它,並從彈出的快捷方式菜單中選擇「屬性」菜單項,打開「伺服器屬性」對話框。 ③ 單擊「啟動參數」按鈕。 ④在「參數」文本框中輸入-m,然後按下「添加」按鈕。 ⑤ 按下「確定」按鈕關閉「啟動參數」對話框,然後關閉「伺服器屬性」對話框。 ⑥ 關閉企業管理器。 警告:在SQL Server實例處於單用戶模式時,不要使用企業管理器。這樣做有可能會鎖定該實例,使它進入不能接受其他連接的狀態。 ⑦ 使用SQL Server伺服器管理器停止並重新啟動SQL Server實例。 恢復損壞的master資料庫的第四個步驟才是進行真正的還原。因為SQL Server現在處於單用戶模式,所以必須使用查詢分析器來完成這一步驟。如果試圖在企業管理器中還原master資料庫,將會產生嚴重的問題。在查詢分析器中進行還原時,需要執行下面的命令: RESTORE DATABASE master FROM DISK=』systembackup』 WITH FILE=1 執行結果如下: The master database has been successfully restored. Shutting down SQL Server. SQL Server is terminating this process. 關閉查詢分析器,並使用SQL Server的服務管理器重新啟動SQL Server實例。 還原master資料庫的最後一步是把在第三個步驟加入的-m啟動參數去掉,將SQL Server實例重新置於多用戶狀態。要修改這個啟動參數,可以使用企業管理器的「伺服器屬性」對話框。 關閉企業管理器,使用SQL Server的服務管理器停止並重新啟動SQL Server實例。
5. 如何重建 master 資料庫虛擬 SQL Server 實例上
如何重建上虛擬的主資料庫 (群集) SQL Server 2000年伺服器
要重建主SQL Server 2000年資料庫,請執行以下步驟:
請確保您在其中執行 Rebuildm.exe 的節點受控制 SQL Server 資源。
通過使用 SQL Server 服務管理器,使 SQL Server 虛擬伺服器離線。
請確保原始共享安裝文件或 SQL Server 安裝光碟可用。
如果您使用 SQL Server 安裝 CD,所有文件從 CD 都復制到本地硬碟上。將它們復制到硬碟後,請從文件中刪除只讀屬性。有關詳細信息,請參閱以下文章 Microsoft 知識庫中相應的文章:
273572錯誤: Rebuildm.exe 實用程序停止響應時源目錄是在 CD 上
執行 Rebuildm.exe 和點到它:
原始共享的安裝文件。
-或者-
從 CD 復制到本地硬碟的文件。
選擇Windows 排序規則中,或SQL 排序規則。
Rebuildm.exe 程序完成後,請驗證您可以使資源聯機和它們成功地www.hbbz08.com 故障轉移。
執行sp_helpsort存儲過程來驗證排序規則。
注意: 前面的步驟不包括重建用戶資料庫所需的步驟。如果您有最新的備份master資料庫,您可以在此時恢復。如果沒有,則必須還原或附加用戶資料庫。
您必須連接並還原的主動節點上的命令提示符下啟動 SQL Server。
6. 如何修復sql資料庫master
在網上搜索了一下,發現了一篇介紹比較詳細的,而且也確實解決了這一問題(我在VM上測試過可以),特將其全文轉貼如下:
關於系統資料庫的恢復總結如下:
在SQL Server資料庫中,系統信息存儲在系統資料庫中,主要的系統資料庫包括:
master-從整體上控制用戶資料庫和SQL Server操作,在創建了任何用戶定義的對象後,都要備份它
model-為新資料庫提供模版和原型
msdb-包含了有關作業、報警及操作員等信息
如果包含系統資料庫的介質變了,那麼必須重建系統資料庫,如果你仍然可以啟動SQL Server服務,則可以通過RESTORE語句從系統資料庫的備份中恢復資料庫。
如果master壞了,不能啟動系統,可以按照下面步驟進行恢復
1.重建系統資料庫 運行c:/mssql7/binn/rebuildm.exe,按照提示進行即可,
過程中需要系統資料庫樣本的路徑,可在安裝光碟中找到;
2 重建系統資料庫後,啟動SQL Server服務,用系統資料庫的備份恢復資料庫
就行了通常恢復順序為master->msdb->model
在恢復master的備份時要注意:必須在單用戶(single user)模式下進行
a.進入單用戶模式的方法:
1.在命令行模式下輸入sqlservr -c -f -m或者輸入sqlservr -m
其中:-c 可以縮短啟動時間,SQL Server 不作為Windows NT的服務啟動
-f 用最小配置啟動SQL Server
-m 單用戶模式啟動SQL Server
2.可以在控制面板-服務-MSSQLServer的啟動參數中輸入-c -f -m或者輸入-m,點擊開始
3.進行master資料庫的恢復
a.直接進入查詢分析器,有個提示不要理會它
輸入恢復語句進行資料庫恢復:
RESTORE DATABASE master from disk='c:/具體的備份文件名'
b.或者用這個,在命令提示符下輸入,注意大小寫
使用"windows身份驗證"的,輸入:isql /E
使用"sql server和windows身份驗證"的,輸入:isql /U"用戶名" /P"密碼"
然後在出現的提示符下輸入(注意1>,2>是提示符):
7. 高分求一段sql語句,怎麼用sql語句建立作業
Oracle下: 1.新增一個批處理文件:如a.bat 2.新增一個SQL腳本文件:如a.sql 3.a.bat中輸入:sqlplus 用戶名/密碼 @C:\a.sql(假設a.sql在c:盤根目錄下) 4.然後運行這個批處理,就可以執行這個sql腳本了.
8. 如何重建SQL索引 要具體的命令
USE TableName
DECLARE @TableName varchar(255)
DECLARE TableCursor CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
DBCC DBREINDEX(@TableName,' ',90)
FETCH NEXT FROM TableCursor INTO @TableName
END
CLOSE TableCursor
DEALLOCATE TableCursor
9. 如何備份和還原 SQL 代理作業
使用腳本備份作業
打開 SQL Server Management Studio。
展開 「SQL Server 代理」,然後展開 「作業」。
右鍵單擊你想要創建的備份腳本,然後選擇的作業 作為腳本作業。
選擇 創建到 或 拖放到, ,然後選擇 新查詢編輯器窗口, ,文件, ,或 剪貼板 若要為腳本選擇一個目標。 通常情況下,目標是為此文件 .sql 擴展。
為你要編寫腳本的每個作業重復步驟 3 以後的過程。 請參考與 BizTalk Server 相關的作業列表,以確定你需要為哪些作業編寫腳本。
至少,你應備份 備份 BizTalk Server (BizTalkMgmtDb) 作業後配置。
從腳本還原作業
打開 SQL Server Management Studio。
上 文件 菜單上, 打開 包含已編寫腳本的作業的文件。
執行該腳本以創建作業。
10. 現有一個實時數據 SQL資料庫, 我想重建一個新庫 ,裡面只保存當前3天的數據,該怎麼操作
crete tabel table_name_new as select * from table_name
where YYYYMMDD between to_date(YYYYMMDD,'YYYYMMDD') and to_date(YYYYMMDD,'YYYYMMDD')