標籤:通過本地的sql manage sutudio管理windows azure上的sql server
通過SQL Manage sutudio管理windows azure上的SQL Server
說到windows azure上的SQL建立,我們在上一篇文章上有介紹了,那今天主要介紹什麼呢,我們發現在windows azure上建立的sql資料庫下沒有SQL Server代理選項功能。我相信大家都用過SQL Server代理相關的功能,具體功能就不用多說了。拿我來說,因為我們有個服務的資料是寫入到SQL Server上的,我們在本地通過計劃人物實現對資料保留60天,然後通過web方式查詢,這樣就比較方便了,比較效率高了,如果資料庫下的資料越多,搜尋的越慢,所以我堅持使用sql server的計劃維護任務。另外,我將多個服務的log寫入到了sql下,每天幾乎能寫幾十萬條,但是對其中的部分內容感興趣,想把一些關鍵字的內容從資料庫下刪除,這樣我也只能結束SQL 代理下的計劃任務了。我當時想,那如果windows azure上沒有圖形介面,那應該有命令了吧!最後通過瞭解,windows azure上不支援sql agent job的功能,聽完後,心一下涼了一大半截,那有什麼好的辦法麼,通過跟windows azure上的人員瞭解,有另外的一種方法可以實現對windows azure上的SQL 做計劃任務維護,不管怎麼樣,只要有辦法就行啊,今天呢,我就這給大家分享一下,通過本地的manage studio來建立計劃來遠程維護windows azure上的SQL資料。
官網介紹,windows azure上的資料庫不支援代理。
http://msdn.microsoft.com/library/azure/ee336245.aspx#sqlagent
我們今天操作,需要通過SQL語句來遠端管理windows azure上的SQL資料,那是什麼語句呢,格式又是什麼呢?我們再次簡單說一下哈。
我們藉助的是:sqlcmd語句。
sqlcmd -U xxxxx -P xxxxxx -S xxxxx -d HolTestDB -Q "sql語句“
-U : SQL Database的使用者名稱
-P : 密碼
-d: 資料庫名稱
-Q: sql語句
舉例:我試圖通過sqlcmd去刪除我的SQL Database中,HolTestDB資料庫下,名為People表中,ID大於13的資料。那麼這個命令為:
sqlcmd -U xxxxx -P xxxxxx -S xxxxx -d HolTestDB -Q "delete from People where ID > 13"
-S : 伺服器DNS名稱。您可以通過管理入口網站找到,如
其實大家主要記住以下格式就可以了:我們在後面將兩個實列
sqlcmd -U 使用者名稱 -P 密碼 -S 伺服器名稱 -d 資料庫名稱 -Q "sql語句"
環境介紹:
SQL伺服器:wrllkpz6kb.database.chinacloudapi.cn
資料庫:Domino
表: logs
登入名稱:wenlong
密碼:Password8
今天主要介紹兩條主要的名:
刪除資料庫中指定欄位下的指定資料;
需要注意的是SQL語句中%(百分比符號)的應用,要刪除範圍內的資料,都需要添加%百分比符號來應用,但是資料和%之間不能有空格,在語句中,空格也算一個空格,
1.delete from Domino where sevent like ‘SMTP Server:%‘
2.sqlcmd -U wenlong -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q " delete from Domino where sevent like ‘SMTP Server:%‘"
刪除資料庫中除了60天以外的資料:
1.delete from [Domino].[dbo].logs where dateadd(month,6,log_date) < getdate();
2.sqlcmd -U wenlong -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q " delete from [Domino].[dbo].logs where dateadd(month,6,log_date) < getdate();
"
1.我們需要在在本地開啟SQL Manage studio,然後展開SQL Server代理,新增作業
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708559bHly.png" height="280" />
作業名稱根據自己的環境可編寫。確認
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708560v5M1.png" height="331" />
2. 選擇步驟:名稱隨意,類型--作業系統(如果通過本地的manage studio遠端管理windows azure的SQL必需選擇類型—作業系統。),然後在命令輸入框,輸入需要執行的命令。
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708560hj1m.png" height="356" />
為了方便測試,我將sql語句暫時更改為select * from logs,然後在控制台進行查看,命令是否生效。
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_14067085606py5.png" height="341" />
操作前,我先通過manage studio執行看看我資料庫下的表的資料
Select * from logs
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708560fsst.png" height="263" />
為了判斷我的命令是否生效,我先將代碼複製,然後在命令列執行一下試試結果。
sqlcmd -U [email protected] -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q "select * from logs"
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708560HNkr.png" height="524" />
如果出現以上介面的話,那說明,遠程命令是執行成功的。我們在自己的環境可,可將需要執行的語句替換即可。
然後我們可以將該命令寫入到了SQL語言中了。
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708560ttGX.png" height="316" />
儲存後,我們右擊建立的作業----作業開始步驟,開始測試
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708563cTBH.png" height="301" />
經過測試,作業可以正常運行。
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708564qHCM.png" height="369" />
既然是作業呢,我們需要設定一個定時計劃,編輯作業,然後—計劃,根據自己的時間可以進行設定。儲存
650) this.width=650;" title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;padding-top:0px;padding-left:0px;margin:0px;border-left:0px;padding-right:0px;" border="0" alt="image" src="http://img1.51cto.com/attachment/201407/30/451336_1406708564CbuU.png" height="361" />
如果需要建立多個程式,我們可以在步驟下建立多個步驟,或者在第一個sql語句中,以分號分開多條SQL語句也行。雙引號下可以輸入多條語句,以分號(;)分開即可。
sqlcmd -U wenlong -P Password8 -S wrllkpz6kb.database.chinacloudapi.cn -d Domino -Q "select * from logs;select * from other tablse "
本文出自 “高文龍” 部落格,謝絕轉載!