㈠ 資料庫相關職位
個人感覺資料庫架構師和數據倉庫工程師的能力要求要高些,對大型資料庫的應用要達到熟練或精通的水平,因此,待遇也相對來說好一些。資料庫開發工程師的層次相對低些,待遇也稍低。數據架構師,一般企業需要一兩個足以。
數據倉庫工程師在金融行業或者大型網站的就業機會會大些。
資料庫開發工程師的就業路子最寬。以下是一些個案,僅供參考。
一、資料庫架構師
任職要求:
1.項目開發經驗;
2.豐富的sql Server、DB2 、Oracle、Sybase大型資料庫研發設計經驗;
3.豐富的資料庫關系模型和物理模型建模經驗;
4.有資料庫性能優化經驗;
5.掌握數據倉庫的基本理論,有數據倉庫的實際開發經驗;二、數據倉庫工程師
職位描述:
1、對數據倉庫系統的架構設計,編寫專業的系統設計文檔;
2、配合項目經理進行項目需求分析、應用分解、各模塊的概要和詳細設計;
3、實施項目開發。
職位要求:
1、有1年以上的ETL、OLAP工具的實際開發經驗,有BO、MSTR、Insight、Hyperion Intelligence(Brio)等其中一種開發工具實踐經驗者優先;
2、熟練使用Oracle等資料庫,精通SQL、存儲過程,有Java和資料庫性能調優的經驗者優先;
3、深入理解數據倉庫、數據建模等概念,有商業智能相關系統實際建模經驗者優先;三、資料庫開發工程師
崗位職責:
1、資料庫設計與優化;
2、存儲過程設計與開發;
3、審核、指導開發工程師有關資料庫設計、數據存取方法;
4、協助工程部門實施資料庫部署;
5、為測試部門提供資料庫支持。
任職要求:
1、本科學歷,計算機相關專業
2、兩年以上工作經驗和資料庫設計/開發/管理經驗
3、熟悉計算機和資料庫等相關基礎知識
4、熟悉linux/unix、windows等相關技術
5、精通oracle等大型資料庫技術,熟練掌握資料庫開發技術,熟練使用sqlplus進行存儲過程開發,精確sql語言。
6、掌握系統數據存儲架構設計技能和數據備份管理技術
7、良好的溝通能力和執行能力;正直、務實、敬業、善於思考、良好的團隊合作精神
㈡ 金蝶K3可以在資料庫把審核的單據刪除或者反審核嗎可以的話SQL語句怎麼寫
不建議這么做,單據關聯了的話,單刪單據數據會有問題,你可以用sQL工具追蹤下單據頭跟體是哪個表的
㈢ 如何通過SQL語句設置資料庫登錄審核的狀態
剛好上次講三層架構.有現成的例子
以一個驗證登陸為例子
這里是界面層一般叫UIL
protected void Button1_Click(object sender, EventArgs e)
{
List<User> Users = BAL.GetUserInfo(txtUserName.Text,txtPassword.Text);
if(Users.Length > 0)
{
Response.Write("登陸成功");
}
else
{
Response.Write("登陸失敗");
}
}
以下是邏輯層代碼,業務邏輯層一般叫BLL
public static List<User> GetUserInfo(string user,string password)
{
string newPassword = GetMD5Hash(password); //這里對密碼進行加密處理,資料庫中存放的是經過MD5加密後的密,業務邏輯層一般都是處理復雜的邏輯.例如加密邏輯
List<User> Users = DAL.GetUserInfo(user,newPassword);
return Users;
}
以下是數據訪問層代碼,數據訪問層一般叫DAL
public static List<User> GetUserInfo(string user,string password)
{
List<User> Users = new List<User>();
string sql = "select * from User where Password = '"+password+"' and User = '"+user+"'"; //寫where子句的時候把Password放前面.因為Password經過加密,所以可以防止SQL注入攻擊
SqlDataAdapter da = new SqlDataAdapter(sql,"這里是資料庫連接字元串");
DataSet ds = new DataSet();
da.Fill(ds);
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
User user = new User(ds.Tables[0].Rows[i]["ID"].ToString(),ds.Tables[0].Rows[i]["User"].ToString(),ds.Tables[0].Rows[i]["Password"].ToString());
Users.Add(user);
}
return Users;
}
還會有一個Model層.叫做模板層.是數據表結構的印射.Model層是共用層,其他三層都要用到.
比如資料庫中有張表User,裡面有3個欄位ID,User,Password
那麼在模板層中應該有一個類,資料庫中User表的一行對應一個User對象,一張表對應User對象的集合.
public class User
{
string ID;
string User;
string Password;
//重載構造函數
User(string id,string user,string password)
{
this.ID=id;
this.User=user;
this.Password=password;
}
}
㈣ 去哪兒網 MySQL 語法審核工具 Inception 正式開源
mssql 的正式名字是 SQL Server MS公司出的。圖形操作界面好一些,性能還可以。在在mssql和oracle上不能互換.支持OLEDB連接.asp、mssaql只能for window mysql 就是mysql 下面是readme:免費軟體。性能也可以。速度快,用於小規模.命令行界面.(可
㈤ 如何開啟sqlserver2008資料庫審計功能
SQLSERVER2008新增的審核功能
在sqlserver2008新增了審核功能,可以對伺服器級別和資料庫級別的操作進行審核/審計,事實上,事件通知、更改跟蹤、變更數據捕獲(CDC)
都不是用來做審計的,只是某些人亂用這些功能,也正因為亂用這些功能導致踩坑
事件通知:性能跟蹤
更改跟蹤:用Sync Services來構建偶爾連接的系統
變更數據捕獲(CDC):數據倉庫的ETL 中的數據抽取(背後使用logreader)
而審核是SQLSERVER專門針對資料庫安全的進行的審核,記住,他是專門的!
我們看一下審核的使用方法
審核對象
步驟一:創建審核對象,審核對象是跟保存路徑關聯的,所以如果你需要把審核操作日誌保存到不同的路徑就需要創建不同的審核對象
我們把審核操作日誌保存在文件系統里,在創建之前我們還要在相關路徑先創建好保存的文件夾,我們在D盤先創建sqlaudits文件夾,然後執行下面語句
--創建審核對象之前需要切換到master資料庫
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(FILEPATH='D:\sqlaudits') --這里指定文件夾不能指定文件,生成文件都會保存在這個文件夾
GO
實際上,我們在創建審核對象的同時可以指定審核選項,下面是相關腳本
把日誌放在磁碟的好處是可以使用新增的TVF:sys.[fn_get_audit_file] 來過濾和排序審核數據,如果把審核數據保存在Windows 事件日誌里查詢起來非常麻煩
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(
FILEPATH='D:\sqlaudits',
MAXSIZE=4GB,
MAX_ROLLOVER_FILES=6)
WITH (
ON_FAILURE=CONTINUE,
QUEUE_DELAY=1000);
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
MAXSIZE:指明每個審核日誌文件的最大大小是4GB
MAX_ROLLOVER_FILES:指明滾動文件數目,類似於SQL ERRORLOG,達到多少個文件之後刪除前面的歷史文件,這里是6個文件
ON_FAILURE:指明當審核數據發生錯誤時的操作,這里是繼續進行審核,如果指定shutdown,那麼將會shutdown整個實例
queue_delay:指明審核數據寫入的延遲時間,這里是1秒,最小值也是1秒,如果指定0表示是實時寫入,當然性能也有一些影響
STATE:指明啟動審核功能,STATE這個選項不能跟其他選項共用,所以只能單獨一句
在修改審核選項的時候,需要先禁用審核,再開啟審核
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
ALTER SERVER AUDIT MyFileAudit WITH(QUEUE_DELAY =1000)
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
審核規范
在SQLSERVER審核裡面有審核規范的概念,一個審核對象只能綁定一個審核規范,而一個審核規范可以綁定到多個審核對象
我們來看一下腳本
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT MyAppAudit TO APPLICATION_LOG
GO
ALTER SERVER AUDIT MyAppAudit WITH(STATE =ON)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyAppAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
我們創建一個伺服器級別的審核規范CaptureLoginsToFile,然後再創建多一個審核對象MyAppAudit ,這個審核對象會把審核日誌保存到Windows事件日誌的應用程序日誌里
我們禁用審核規范CaptureLoginsToFile,修改審核規范CaptureLoginsToFile屬於審核對象MyAppAudit ,修改成功
而如果要把多個審核規范綁定到同一個審核對象則會報錯
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileA
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileB
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
--消息 33230,級別 16,狀態 1,第 86 行
--審核 'MyFileAudit' 的審核規范已經存在。
這里要說一下 :審核對象和審核規范的修改 ,無論是審核對象還是審核規范,在修改他們的相關參數之前,他必須要先禁用,後修改,再啟用
--禁用審核對象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
--禁用伺服器級審核規范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
--禁用資料庫級審核規范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=OFF)
GO
--相關修改選項操作
--啟用審核對象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
--啟用伺服器級審核規范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=ON)
GO
--啟用資料庫級審核規范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=ON)
GO
審核伺服器級別事件
審核服務級別事件,我們一般用得最多的就是審核登錄失敗的事件,下面的腳本就是審核登錄成功事件和登錄失敗事件
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
修改審核規范
--跟審核對象一樣,更改審核規范時必須將其禁用
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =OFF)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
ADD (login_change_password_gourp),
DROP (successful_login_group)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =ON)
GO
審核操作組
每個審核操作組對應一種操作,在SQLSERVER2008里一共有35個操作組,包括備份和還原操作,資料庫所有權的更改,從伺服器和資料庫角色中添加或刪除登錄用戶
添加審核操作組的只需在審核規范里使用ADD,下面語句添加了登錄用戶修改密碼操作的操作組
ADD (login_change_password_gourp)
這里說一下伺服器審核的內部實際上使用的是SQL2008新增的擴展事件裡面的其中一個package:SecAudit package,當然他內部也是使用擴展事件來收集伺服器信息
審核資料庫級別事件
資料庫審核規范存在於他們的資料庫中,不能審核tempdb中的資料庫操作
CREATE DATABASE AUDIT SPECIFICATION和ALTER DATABASE AUDIT SPECIFICATION
工作方式跟伺服器審核規范一樣
在SQLSERVER2008里一共有15個資料庫級別的操作組
7個資料庫級別的審核操作是:select ,insert,update,delete,execute,receive,references
相關腳本如下:
--創建審核對象
USE [master]
GO
CREATE SERVER AUDIT MyDBFileAudit TO FILE(FILEPATH='D:\sqldbaudits')
GO
ALTER SERVER AUDIT MyDBFileAudit WITH (STATE=ON)
GO
--創建資料庫級別審核規范
USE [sss]
GO
CREATE DATABASE AUDIT SPECIFICATION CaptureDBActionToEventLog
FOR SERVER AUDIT MyDBFileAudit
ADD (database_object_change_group),
ADD (SELECT ,INSERT,UPDATE,DELETE ON schema::dbo BY PUBLIC)
WITH (STATE =ON)
我們先在D盤創建sqldbaudits文件夾
第一個操作組對資料庫中所有對象的DDL語句create,alter,drop等進行記錄
第二個語句監視由任何public用戶(也就是所有用戶)對dbo架構的任何對象所做的DML操作
創建完畢之後可以在SSMS里看到相關的審核
㈥ zcms 後台用的什麼框架
澤元網站內容管理系統 (簡稱ZCMS) 是一套基於J2EE和 AJAX 技術的企業級網站內容管理軟體(CMS),集站點管理、內容創作、內容審核、基於模板的內容發布、內容採集、內容檢索、多媒體內容管理於一身。ZCMS 允許非專業人員創建內容、實現內容信息發布與共享。 基於Web瀏覽器的操作界面易於使用,讓使用者可以高效率地完成內容的創建、管理與發布。利用ZCMS 可以輕松創建企業內、外部WEB門戶,也可以建立以內容為核心的企業信息平台。
技術路線:J2EE+SOA+AJAX
操作系統:兼容全部主流服務操作系統,包括Windows Server、 Linux、AIX、HP-Unix、Solaris等
數 據 庫:兼容全部主流資料庫,包括Oracle、DB2、SQL Server、Mysql等,支持資料庫類型無縫切換
中 間 件:所有支持J2EE 1.3標準的中間件,包括Websphere、Weblogic、Tomcat等
有興趣的可以訪問澤元官方網站查看:
http://www.zving.com/
㈦ 幾種常用Web資料庫的比較
SWISSPROT的序列經過嚴格審核,注釋完善,但數量仍較
少。
PIR數據量較大,但包含未經驗證的序列,注釋也不完善。
TrEMBL和GenPept的數據量最大,且隨核酸序列資料庫的
更新而更新,但是由於TrEMBL和GenPept均是由核酸序列
經過計算機程序翻譯生成的,這兩個資料庫中的序列錯誤
率較大,並存在較多的冗餘序列。
UniProt中的序列具有較好的代表性,數據較完整。
㈧ 好用的出納軟體
順和達出納軟體最好用
㈨ SQL ManagementExpress和SQL企業版的區別
Microsoft 已重新設計了 SQL Server 2005 產品系列,有 Express、Workgroup、Standard 和 Enterprise 四種新版本,從而可以更好地滿足各個客戶領域的需求。與競爭性解決方案相比較,SQL Server 2005 作為一種低成本主流資料庫,將呈現前所未有的價值和功能。這四種新版本提供多種功能,具有高可用性和強大的伸縮性以及高級商業智能工具,旨在為組織中的用戶提供一種更安全、可靠和高效的數據管理平台。此外,通過減少應用程序停機時間、強大的可伸縮性及性能和嚴格的安全控制,SQL Server 2005 邁出了巨大的一步,為世界上要求最為苛刻的企業系統提供了強大的支持。因為 SQL Server 是 Windows Server System 的一部分,通過 Windows Server System 產品中實現的通用工程策略可增強管理性和集成性,從而降低總擁有成本,加快開發速度,為客戶提供更多額外收益。下表對各個版本進行了詳細說明。
說明: 下表中「注釋」欄提供了對特定功能的注釋。選中標記旁邊的數字用來指示顯示在頁面底部的腳注。SQL Server 2005 Developer Edition 和 Evaluation Edition 未在表中列出。這些版本的功能集與 Enterprise Edition 相同,只有許可證策略不同。
可伸縮性和性能
功能 Express Workgroup Standard Enterprise 注釋
CPU 數量
無限制
支持多內核理器
RAM
1 GB
3 GB
OS Max
OS Max
內存不能超過操作系統支持的最大值
64 位支持
Windows on Windows (WOW)
WOW
資料庫大小
4 GB
無限制
無限制
無限制
支持大型資料庫
並行索引操作
索引操作並行處理
索引視圖
所有版本皆支持索引視圖創建。只有 Enterprise Edition 支持按查詢處理器匹配索引視圖。
高可用性
功能 Express Workgroup Standard Enterprise 注釋
資料庫鏡像
高級的高可用性解決方案,包括快速故障轉移和自動客戶重定向
故障轉移群集
備份日誌傳送
數據備份和恢復解決方案
聯機系統更改
包括熱添加內存、專用管理連接和其他聯機操作
聯機索引
聯機還原
快速恢復
開始撤消操作時可用的資料庫
1 單 REDO 線程和安全設置始終開啟
2 僅支持兩個節點
管理性
功能 Express Workgroup Standard Enterprise 注釋
自動調諧
自動調諧資料庫以獲取最優性能
Express Manager
易於使用的管理工具
Management Studio
SQL Server 完全管理平台,包括 Business Intelligence (BI) Development Studio
資料庫優化顧問
自動建議加強您的資料庫體系結構以提高性能
服務性增強功能
動態管理視圖和報表增強功能
全文搜索
SQL 代理作業調度服務
1 可單獨下載
2 可單獨下載
3 可單獨下載
4 可單獨下載
安全性
功能 Express Workgroup Standard Enterprise 注釋
高級審核、身份驗證和授權功能
數據加密和密鑰管理
內置數據加密以獲取高級的數據安全性
最佳實踐分析器
掃描您的系統以確保遵循了推薦的最佳實踐
與 Microsoft Baseline Security Analyzer 的集成
掃描您的系統以檢查常見的安全漏洞
與 Microsoft Update 的集成
可編程性
功能 Express Workgroup Standard Enterprise 注釋
存儲過程、觸發器和視圖
T-SQL 增強功能
包括異常處理、遞歸查詢和新數據類型支持
公共語言運行時和 .NET 的集成
用戶定義類型
用您自己的自定義數據類型擴展伺服器
本機 XML
包括 XML 索引和全文 XML 搜索
XQuery
通知服務
允許構建高級訂閱和發布應用程序
Service Broker
1 僅訂閱方
集成和互操作性
功能 Express Workgroup Standard Enterprise 注釋
導入/導出
具有基本轉換的集成服務
提供圖形提取、轉換和載入 (ETL) 功能
集成服務高級轉換
包括數據挖掘、文本挖掘和數據清理
合並復制
事務性復制
Oracle 復制
使用 Oracle 資料庫作為發布者的事務性復制
Web Services(HTTP 端點)
支持本機 Web services、WSDL 和 Web 身份驗證
1 僅訂閱方
2 最多發布給 25 個訂閱方
3 僅訂閱方
4 最多發布給 5 個訂閱方
商業智能
功能 Express Workgroup Standard Enterprise 注釋
報表伺服器
報表生成器
最終用戶報表工具
報表數據源
Standard Edition 和 Enterprise Edition 支持所有數據源(OLAP 和關系數據)
向外擴展報表伺服器
數據驅動訂閱
無限點進
數據倉庫
星型查詢優化
SQL 分析功能
BI Development Studio
集成開發環境,用於生成和調試數據集成、OLAP、數據挖掘和報表解決方案
企業管理工具
與 SQL Management Studio、SQL Server 事件探查器、SQL Server 代理和備份/還原集成
本機支持 Web Services
(面向服務的體系結構)
允許訪問任意設備的數據
Analysis Services
強大的分析和數據挖掘功能
統一的維度模型
企業業務數據模型可以對大型數據集進行快速、互動式的即席特殊分析。生成更智能的報告,它們可充分利用中心業務邏輯和 KPI 以及充分利用 UDM 的性能
業務分析
MDX 腳本和 MDX 調試器、.Net 存儲過程、時間智能、KPI 框架
高級業務分析
帳戶智能、元數據翻譯、透視和半累加性度量值
主動緩存
提供自動緩存以獲取更強大的可伸縮性和性能
高級數據管理
已分區的多維數據集、並行處理、伺服器同步
完全寫回支持
維度和單元格寫回
數據挖掘
九種演算法包括決策樹和回歸樹、群集、邏輯和線性回歸、神經網路、Naive Bayes、關聯、順序分析和聚類分析和時序。生成更智能的報告,它們可充分利用中心業務邏輯和 KPI 以及充分利用 UDM 的性能
高級性能調諧功能
附加選項,用於調諧數據挖掘模式,以獲取更高的准確性、更好的性能和更強的可伸縮性。
SQL Server Integration Services 數據流集成
在操作數據管道中直接執行數據挖掘預測和培訓操作。
文本挖掘
將非結構化文本數據轉換為結構化數據,以通過報表、OLAP 或數據挖掘進行分析。
1 本地計算機,相同的 SQL Server 版本,僅關系數據
2 本地計算機,相同的 SQL Server 版本,僅關系數據
3 僅報表設計器
4 僅報表設計器
5 僅 Reporting Services
6 僅 Reporting Services
㈩ 如何自動化完成SQL審核
sql審核主要完成兩方面的目的.
1、避免性能太差的sql進入生產系統,導致整體性能降低
2、檢查開發設計的索引是否合理,是否需要添加索引
第一點是SQL審核最核心的地方,避免亂七八糟的sql影響線上性能,甚至導致線上系統崩潰.
第二點是屬於建模的范疇,要解決建模的最好辦法是DBA參與項目前期審核,由DBA建模,如果DBA人力資源不足,那麼就定期由DBA對開發人員進行培訓.然後發現建模太爛的就扣KPI.
現在很多公司都是人肉來完成SQL審核的,人肉審核對dba的要求較高,需要懂一些代碼,另外是費時費力,畢竟一般公司幾十個開發,對應一個DBA,而且DBA還要干很多其他的事情.
如何將DBA從人肉SQL審核中解放出來呢?
思路其實很簡單:
1、獲取程序要執行的SQL
2、對要執行的SQL做分析,可以加各種分析條件來判斷這個SQL是否可以自動審核通過,未通過審核的需要人工處理.
3、配合後期的慢查詢日誌分析系統完成長期的監控.
開源的解決方案主要有淘寶丹臣sqlautoreview系統.可以在github上搜索到.
但是這個系統主要是基於java sqlmapfile.xml解決自動創建索引的問題,對源數據有要求,並且是通過解析SQL結構來假設SQL的執行計劃,不是特別准確,並且不能夠很好的區分新sql還是老sql.
所以產生了一個新的方案:
1、為所有的執行過的sql產生一個figerprint
2、基於慢查詢提供的數據,加上explain 提供的數據來判斷這個sql的性能是否可接受,或者可優化.
3、自動審核通過性能可接受的部分,給DBA展示性能較差的sql,然後進行優化.
方案的優點在於:
基於用戶真正執行的SQL,並且可以觀察SQL執行頻率.
基於MySQL真正的執行計劃和執行結果,分析更准確.
每個SQL都有一個fingerprint,只需要增量處理新加的SQL,效率和性能提高.
基於Box anemometer二次開發,讓慢查詢和sql審核同平台,增加工具集成性,提高用戶體驗(DBA和開發人員)。
方案實施:
既然咱是DBA,肯定會有更DBA的思維方式.基於現有軟體二次開發完成,減少開發成本,整合管理平台.
基於Box anemometer.安裝Box anemometer
Box anemometer是一款B/S架構,圖形化的MySQL慢查詢分析工具.功能強大易用,設計簡單直接.anemometer是基於pt-query-digest的二次封裝得來.
核心處理流程:
mysql node–>計劃任務通過pt-query-digest收集慢查詢信息–>結果寫入到資料庫中–>anemometer按條件去展示慢查詢的結果,並且提供了圖形化和趨勢分布圖等功能.
所以anemometer已經幫我們完成了數據收集,包括每個sql的fingerprint信息,以及相關的信息,我們在測試環境,基於anemometer,將long_query_time設置為0,就可以收集到所以的SQL及相關信息.
在我們收集到所有SQL以後,我們就要來分析這個SQL是否可以自動審核通過.這里開始我們就要定製了.
定製內容如下:
一、
設置一個單獨的datasources,可以命名為audit_sql.
這個datasources裡面只放置開發環境或者測試環境的慢查詢(你要做sql審核基於哪個環境),將此環境的long_query_time設置為0,接收所有的sql查詢.
二、修改anemometer
ALTER TABLE `global_query_review` ADD audit_status VARCHAR(255) NOT
NULL DEFAULT 『refuse』 comment 『sql審計的狀態 refuse未通過 pass審核通過』;
修改PHP代碼.
在report模塊的where條件中增加一個Ait Status的選項框,可以過濾audit_status的狀態
在show_query模塊中增加一個Audit Status的選項框,可以人工設置audit_status的狀態
三、增加兩個額外的腳本,准實時的分析audit_status為refuse的sql,如果sql的滿足自動審核通過的條件,那麼就設置audit_status為pass,表示自動審核通過.
自動審核未通過的sql,由DBA人工在anemometer上檢索和處理.
這里就涉及到一個自動審核通過的演算法:
演算法分兩種.
第一種是准實時,也就是可以幾分鍾或者一個小時運行一次,主要是根據每個sql的執行效率判斷是否pass.
對應的腳本名字叫做:audit_sql.py
第二種是一天一次,弱化執行效率判斷,增加一天執行的頻率判斷.
對應的腳本名字叫做:audit_sql_day.py
各家根據自己的實際情況調整或者優化這兩個腳本.
至此,你已經可以讓99%以上的代碼自動審核通過了,審核不通過的代碼你可以讓開發自己來tracking也可以主動推給開發.
對於才搭建的環境,可能會有一些亂七八糟的sql,不過使用一段時間穩定以後,異常的sql指紋都有了,那麼每天產生的sql指紋就比較少了,而這部分SQL指紋也就是程序員編寫新的代碼產生的.