[原創]SSIS-WMI 資料讀取器任務:監控物理磁碟空間
背景:
隨著時間的推移,我們的DW會越來越大,也就意味著磁碟空間會越來越小,那如果哪一天留意不當,就會造成磁碟空間的不足而導致ETL失敗,最終影響我們的系統的資料正確性和使用,更嚴重的有可能導致物理磁碟損壞,所以對於物理磁碟空間的監控必不可少。
下面的方法就是利用SSIS中的WMI資料讀取器任務去每天查詢物理磁碟的空餘空間,當不足時發郵件以提示管理員。
步驟:
1、新建一個SSIS包,從工具欄上拖拉一個[WMI 資料讀取任務]到控制流,雙擊編輯元件屬性
新建變數
變數名 | 型別 | 用途 |
DiskUsageRet | string | 用於儲存結果集 |
Flag | int | 用於判斷磁碟空間的剩餘空間是否不滿足要求 |
在[WmiConnection]欄,新建個WMI連線管理器
在[服務和名稱空間]選項中,[伺服器名稱]輸入你要監視的伺服器的\\ + IP地址,名稱空間預設即可
P.S:如果[伺服器名稱]為本機地址,則必須使用windows身份驗證,如果使用使用者憑據,則有可能會出現如下圖錯誤,如果是遠端的伺服器地址,則需要使用相應的使用者名稱和密碼登入
配置完畢後點擊測試,看是否驗證通過
2、在在元件的屬性編輯介面,[WMI選項]中,設定[WqlQuerySource]為以下語句:
該語句是查詢對應磁碟的剩餘空間,剩餘空間單位是Bit,所以需要我們後面自行換算。當然Win32_LogicalDisk有很多其他的欄位,你可以輸入select * from Win32_LogicalDisk,並且在對應的OutputType設定[資料表],在OverwriteDestination設定[覆蓋目標],並將結果對映到變數中,最後用指令碼元件,檢視變數中的返回結果,你就可以大概知道其中的關鍵欄位有哪些,代表何種含義,以下是本人查詢結果,全部欄位:
所有欄位 | Access, Availability, BlockSize, Caption, Compressed, ConfigManagerErrorCode, ConfigManagerUserConfig, CreationClassName, Description, DeviceID, DriveType, ErrorCleared, ErrorDescription, ErrorMethodology, FileSystem, FreeSpace, InstallDate, LastErrorCode, MaximumComponentLength, MediaType, Name, NumberOfBlocks, PNPDeviceID, PowerManagementCapabilities, PowerManagementSupported, ProviderName, Purpose, QuotasDisabled, QuotasIncomplete, QuotasRebuilding, Size, Status, StatusInfo, SupportsDiskQuotas, SupportsFileBasedCompression, SystemCreationClassName, SystemName, VolumeDirty, VolumeName, VolumeSerialNumber |
每個欄位對應的值 | 0, , , C:, False, , , Win32_LogicalDisk, Local Fixed Disk, C:, 3, , , , NTFS, 13594468352, , , 255, 12, C:, , , , , , , True, False, False, 80533680128, , , True, True, Win32_ComputerSystem, JOHN-PC, False, OS, F636E868 |
關鍵屬性講解:
WmiConnection | 連線WMI伺服器物件,需要我們建立一個WMI連線 |
WqlQuerySourceType | 查詢語句存放型別(地方) |
WqlQuerySource | 查詢語句,根據存放型別的不同,這裡會有相應的變換,如果存放型別選擇檔案,這裡就需要選擇對應的語句檔案 |
OutputType | 查詢結果輸入形式。
資料表:一個完整的資料表結果集 屬性名稱和值:以一個屬性名稱和一個值一行的結果集形式返回,如:FreeSpace, 13587701760 屬性值:單純範圍查詢欄位的值集合 |
OverWriteDestination | 寫入目標的方式。
保留原始值:保留目標中的原始值 覆蓋目標:將結果覆蓋目標中的值 追加到目標:將結果值追加到目標 |
DestinationType | 目標型別。
變數:結果儲存到變數 檔案連線:將結果儲存到檔案 |
Destination | 目標物件
根據DestinationType不同,設定不同 |
3、將我們的查詢結果儲存到變數之後,我們就可以利用指令碼元件,判斷變數中的結果,以檢視磁碟查詢的空間是否滿足要求。
編輯指令碼,其中的main方法如下:
public void Main() {
double unit = 1024 * 1024 * 1024; //查詢的space是以b為單位的,必須將其換算成G,這裡判斷是否小於20G double diskspace = Convert.ToDouble(Dts.Variables["DiskUsageRet"].Value) / unit / 20; if (diskspace < 1) { Dts.Variables["Flag"].Value = 1; // MessageBox.Show("空間不足20G", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else {
Dts.Variables["Flag"].Value = 0; // MessageBox.Show("空間大於20G", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } //MessageBox.Show(Dts.Variables["DiskUsageRet"].Value.ToString()); Dts.TaskResult = (int)ScriptResults.Success; }
最後我們在寫一個傳送郵件的指令碼,對於結果傳送郵件即可
public void Main() { MailMessage mymail = new MailMessage("xxxx@126.com", "[email protected]", "伺服器C盤空間不足", "伺服器C盤空間不足,請檢查"); SmtpClient smtp = new SmtpClient("smtp.126.com"); smtp.Credentials = new NetworkCredential("xxxx@126.com", "密碼"); smtp.Send(mymail); Dts.TaskResult = (int)ScriptResults.Success; }
最終但我們的空間不滿足檢查要求的時候,我們就可以收到郵件提醒了
相關推薦
[原創]SSIS-WMI 資料讀取器任務:監控物理磁碟空間
背景: 隨著時間的推移,我們的DW會越來越大,也就意味著磁碟空間會越來越小,那如果哪一天留意不當,就會造成磁碟空間的不足而導致ETL失敗,最終影響我們的系統的資料正確性和使用,更嚴重的有可
raid資料恢復案例之:伺服器Raid5磁碟陣列資料恢復過程
伺服器資料恢復使用者:江西省某大學伺服器資料恢復故障描述:使用者使用的是曙光某型號16盤位光纖儲存櫃,底層儲存介質為16塊600GB 光纖磁碟,做成兩組RAID5磁碟陣列,每組raid中有7塊磁碟,另兩塊磁碟做成全域性熱備磁碟。第一組RAID磁碟陣列分有3個LUN,分別分配給
VBox:增加虛擬磁碟空間上限(虛擬系統為Linux)
執行以下命令指定vdi虛擬磁碟空間新上限(此步驟需要在使用vdi磁碟檔案的虛擬機器關閉狀態下執行,單位MB): C:\Program Files\Oracle\VirtualBox>vboxmanage modifyhd D:/vm/spark/spark.vdi --resize
索引的缺點(1):需要佔用磁碟空間
索引的其中一個缺點就是需要佔用磁碟空間。 這個缺點是其他 優點的基礎,因為任何一種機制,不可能只有優點,而沒有缺點,正因為建立索引,就是把排序後組織成B樹的資料,放到磁碟上,才有了索引,才有可能運用索引的各種優勢。 既然是索引,就一定會佔用空間,那麼這裡的主要問題就成了如何
圖片播放器(八):讀取資料夾中的圖片
採用連結串列的方式儲存圖片檔案的格式資訊,檔名和大小。 重要結構體: /* 圖片檔案型別 */ typedef enum image_type { IMAGE_TYPE_BMP, IMAGE_TYPE_JPG, IMAGE_TYPE_PNG,
圖片播放器(四):圖片資料提取和顯示
display############### fb.c
Cris 的 Python 資料分析筆記 05:Pandas 資料讀取,索引,切片,計算,列整合,過濾,最值
Pandas 資料讀取,索引,切片,計算,列整合,過濾,最值 文章目錄 Pandas 資料讀取,索引,切片,計算,列整合,過濾,最值 1. read_csv 函式 2. DataFrame 資料結構的常用
Quartz:擴茲初級實驗定時器--任務排程
pom.xml:依賴 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200
TensorFlow全新的資料讀取方式:Dataset API入門教程
Dataset API是TensorFlow 1.3版本中引入的一個新的模組,主要服務於資料讀取,構建輸入資料的pipeline。 此前,在TensorFlow中讀取資料一般有兩種方法: 使用placeholder讀記憶體中的資料 使用queue讀硬碟中的資料(關於這種
tensorflow 16:資料讀取(以cifar10_input.py為例)
資料讀取概述 TensorFlow程式讀取資料一共有3種方法: 供給資料(Feeding): 在TensorFlow程式執行的每一步, 讓Python程式碼來供給資料。 從檔案讀取資料: 在TensorFlow圖的起始, 讓一個輸入管線從檔案中讀取資料。 預載
【TensorFlow】TFRecord資料集的製作:讀取、顯示及程式碼詳解
在跑通了官網的mnist和cifar10資料之後,筆者嘗試著製作自己的資料集,並儲存,讀入,顯示。 TensorFlow可以支援cifar10的資料格式, 也提供了標準的TFRecord 格式。 tensorflow 讀取資料, 官網提供了以下三種方法: 1 Feeding: 在
SpringMVC總結之資料轉換器(例:時間引數轉換器)
1.前言 SpringMVC 通過反射機制對處理方法的簽名進行分析,並將請求資訊繫結到處理方法的引數中,在請求訊息到達處理方法期間,SpringMVC 還會完成資料轉換,資料格式化和資料檢驗等工作; 2.Converter轉換器 2.1 Spring在org.fra
【原創】大資料基礎之Spark(7)spark讀取檔案split過程(即RDD分割槽數量)
spark 2.1.1 spark初始化rdd的時候,需要讀取檔案,通常是hdfs檔案,在讀檔案的時候可以指定最小partition數量,這裡只是建議的數量,實際可能比這個要大(比如檔案特別多或者特別大時),也可能比這個要小(比如檔案只有一個而且很小時),如果沒有指定最小partition數量,初始化完成的
從資料庫讀取日期型資料的錯誤記錄:argument type mismatch
當我從資料庫查詢一條帶有日期型欄位的資料時,報了這個錯誤: java.lang.IllegalArgumentException: argument type mismatch 這是因為從資料庫取出來是date型別的值,而我卻用String型別的物件去接的,
TensorFlow基礎3:資料讀取的三種方式
‘在講述在TensorFlow上的資料讀取方式之前,有必要了解一下TensorFlow的系統架構,如下圖所示: TensorFlow的系統架構分為兩個部分: 前端系統:提供程式設計模型,負責構造計算圖; 後端系統:提供執行時環境,負責執行計算圖。
tensorflow爬坑行:資料讀取
tensorflow的資料讀取 tensorflow在讀取像imagenet這種大量影象資料,不能一次性load進記憶體時有幾個坑,Mark一記,以助後來者。關於多GPU和分散式,本文只討論資料並行方式,即每個GPU上面執行一個網路,稱為tower。
tensorflow學習筆記(五):TensorFlow變數共享和資料讀取
這一節我們提及了三個內容:變數共享、執行緒和佇列和資料讀取,這些都是TensorFlow官方指導中的內容。會在程式中經常遇到所以放在一起進行敘述。前面都是再利用已有的資料進行tensorflow的學習,這一節我們要學習怎麼從檔案中讀取我們需要的各類資料。
《深入理解Spark:核心思想與原始碼分析》——SparkContext的初始化(伯篇)——執行環境與元資料清理器
《深入理解Spark:核心思想與原始碼分析》一書第一章的內容請看連結《第1章 環境準備》 《深入理解Spark:核心思想與原始碼分析》一書第二章的內容請看連結《第2章 SPARK設計理念與基本架構》 由於本書的第3章內容較多,所以打算分別開闢四篇隨筆分別展現。本文展現第3章第一部分的內容: 第3章
tensorflow 1.0 學習:十圖詳解tensorflow資料讀取機制
本文轉自:https://zhuanlan.zhihu.com/p/27238630 在學習tensorflow的過程中,有很多小夥伴反映讀取資料這一塊很難理解。確實這一塊官方的教程比較簡略,網上也找不到什麼合適的學習材料。今天這篇文章就以圖片的形式,用最簡單的語言,為大家詳細解釋一下tensorflow的
【原創】zynq-7010下運用I2C匯流排完成對LSM303D感測器的資料讀取
介紹 這是本人第一次寫部落格,我的畢設在用FPGA去讀取LSM303D感測器的中的三軸的磁場強度資料,這也是我第一次用zynq-7010板子,第一次接觸Vivado,我用了將近兩個月的時間摸索,中間經歷了很多失敗的嘗試,還好最近有了突破,因為目前網上基本沒有關