亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL使用工具Inception實現自動化運維

發布時間:2020-05-27 17:11:14 來源:網絡 閱讀:347 作者:三月 欄目:系統運維

下面一起來了解下MySQL使用工具Inception實現自動化運維,相信大家看完肯定會受益匪淺,文字在精不在多,希望MySQL使用工具Inception實現自動化運維這篇短內容是你想要的。

一、Inception 簡介

Inception 是集審核、執行、回滾于一體的一個自動化運維系統,它是根據MySQL 代碼修改過來的,用它可以很明確的,詳細的,準確的審核 MySQL 的SQL 語句,它的工作模式和 MySQL 完全相同,可以直接使用 MySQL 客戶端來連接,但不需要驗證權限,它相對應用程序(上層審核流程系統等)而言,是一個云服務器,在連接時需要指定云服務器地址及 Inception云服務器的端口即可,而它相對要審核或執行的語句所對應的線上 MySQL云服務器來說,是一個客戶端,它在內部需要實時的連接數據庫云服務器來獲取所需要的信息,或者直接在在線上執行相應的語句及獲取 binlog 等,Inception 就是一個中間性質的服務。下圖所示為 Inception 的架構。

MySQL使用工具Inception實現自動化運維

Inception 提供的功能很豐富,首先,它可以對提交的所有語句的語法分析,如果語法有問題,都會將相應的錯誤信息返回給審核者。 還提供語義分析,當一個表,庫,列等信息不正確或者不符合規范的時候報錯,或者使用了一個不存在的對象時報錯等等。 還提供了很多針對 SQL 規范性約束的功能,這些 DBA都是可以通過系統參數來配置的。 更高級的功能是,可以輔助 DBA 分析一條查詢語句的性能,如果沒有使用索引或者某些原因導致查詢很慢,都可以檢查。還提供 SQL 語句的執行功能,可執行的語句類型包括常用的 DML 及 DDL語句及 truncate table 等操作。 Inception 在執行 DML 時還提供生成回滾語句的功能,對應的操作記錄及回滾語句會被存儲在備份機器上面,備份機器通過配置 Inception 參數來指定。

項目地址:https://github.com/mysql-inception/inception
文檔地址:http://mysql-inception.github.io/inception-document/inception

二、Inception 安裝

以下安裝是 CentOS 系統,如果是 Ubuntu/Debian 請看官方文檔。

2.1 Git 下載源碼包
MySQL使用工具Inception實現自動化運維

2.2 安裝依賴包
MySQL使用工具Inception實現自動化運維

2.3 開始編譯安裝

首先就是編譯,在源碼根目錄下面有一個文件 inception_build.sh,執行命令 sh inception_build.sh,會輸出使用方法。 實際上只需要執行 inception_build.sh debug [Xcode] 即可,后面的平臺是可選的,如果不指定就是 linux 平臺,而如果要指定是 Xcode,就后面指定 Xcode,而 debug 是編譯的目錄,編譯之后,所有的生成文件都在這個目錄下面,包括可執行文件 Inception。可執行文件在debug/sql/Debug/ 目錄下面(不同平臺有可能不相同)。
MySQL使用工具Inception實現自動化運維

順便強調說一下,實際上編譯 Inception,和編譯 MySQL 源碼是一樣的,如果有不太了解的同學,可以先在網上看看關于 MySQL 源碼的編譯,我想遇到的問題都可以解決。

編譯完成之后,就是使用了,那么需要一個配置文件(inc.cnf):
MySQL使用工具Inception實現自動化運維

2.4 啟動 Inception 程序

啟動方式和 MySQL 是一樣的。
MySQL使用工具Inception實現自動化運維

注意:因為 Inception 支持 OSC 執行的功能,是通過調用 pt-online-schema-change 工具來做的,但如果 Inception 后臺啟動(&)的話,可能會導致 pt-online-schema-change 在執行完成之后,長時間不返回,進而導致 Inception卡死的問題,這個問題官方后面會解決,但現階段請盡量不要使用后臺啟動的方式,或者可以使用 nohup Inception & 的方式來啟動。
啟動如果不報錯的話,說明已經啟動成功了,實際上很難讓它報錯,因為非常輕量級。

啟動成功之后,可以簡單試一下看,通過 MySQL 客戶端
MySQL使用工具Inception實現自動化運維

登錄上去之后,再執行一個命令:
MySQL使用工具Inception實現自動化運維

輸出了所有的變量,恭喜你,已經啟動成功了,都說了非常簡單。

三、Inception 使用

Inception 實際上是一個服務程序,那么它應該有自己的一套友好的使用方式,必須要具備簡單、高效、易用等特性。那么為了讓 Inception 具有這些特點,在設計之初,就規定了它的使用方式,如下所述。
通過 Inception 對語句進行審核時,必須要告訴 Inception 這些語句對應的數據庫地址、數據庫端口以及 Inception 連接數據庫時使用的用戶名、密碼等信息,而不能簡單的只是執行一條 sql 語句,所以必須要通過某種方式將這些信息傳達給 Inception。而我們選擇的方式是,為了不影響語句的意義,將這些必要信息都以注釋的方式放在語句最前面,也就是說所有這些信息都是被 /**/括起來的,每一個參數都是通過分號來分隔,類似的方式為:
MySQL使用工具Inception實現自動化運維

當然支持的參數不止是這幾個,后面還會介紹一些其它的參數。 Inception 要做的是一個語句塊的審核,需要引入一個規則,將要執行的語句包圍起來, Inception 規定,在語句的最開始位置,要加上 inception_magic_start; 語句,在執行語句塊的最后加上 inception_magic_commit; 語句,這 2 個語句在 Inception 中都是合法的、具有標記性質的可被正確解析的 SQL 語句。被包圍起來的所有需要審核或者執行的語句都必須要在每條之后加上分號,其實就是批量執行 SQL 語句。(包括 use database 語句之后也要加分號,這點與 MySQL 客戶端不同),不然存在語法錯誤。

在具體執行時,在沒有解析到 inception_magic_start 之前如果發現要執行其它的語句,則直接報錯,因為規則中 inception_magic_start 是強制的。而如果在執行的語句塊最后沒有出現 inception_magic_commit,則直接報錯,不會做任何操作。 在前面注釋部分,需要指定一些操作的選項,包括線上用戶名、密碼、數據庫地址、檢查/執行等。下面是一個簡單的例子:
MySQL使用工具Inception實現自動化運維

那么上面這一段就是一批正常可以執行的 SQL 語句,目前執行只支持通過C/C++ 接口、Python 接口來對 Inception 訪問,這一段必須是一次性的通過執行接口提交給 Inception,那么在處理完成之后,Inception 會返回一個結果集,來告訴我們這些語句中存在什么錯誤,或者是完全正常等等。

請不要將下面的 SQL 語句塊,放到 MySQL 客戶端中執行,因為這是一個自動化運維工具,如果使用交互式的命令行來使用的話沒有意義,只能是通過寫程序來訪問 Inception云服務器。

而可以通過 MySQL 客戶端來執行的,只有是 Inception 命令,請參考<<inception 命令集語句>>一節。

下面是一段執行上面語句的 Python 程序的例子:
MySQL使用工具Inception實現自動化運維

執行這段程序之后,返回的結果如下:

MySQL使用工具Inception實現自動化運維

四、關于 Inception_web

網上目前傳的最多的是 Inception_web,是對 Inception 的 web 封裝的界面,可以通過 web 界面來實現相關功能,用 Python 2.7 寫的,基于 flask 框架,功能比較簡單,無法滿足企業級使用,后面的需求需要自己開發

源碼地址:https://github.com/dbalihui/inception_web

看完MySQL使用工具Inception實現自動化運維這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达州市| 遂川县| 河北省| 新田县| 汉阴县| 新化县| 姜堰市| 丰县| 碌曲县| 罗定市| 罗源县| 澄城县| 福州市| 楚雄市| 娄烦县| 江永县| 合作市| 永靖县| 禄劝| 鲜城| 连南| 甘泉县| 曲水县| 博白县| 眉山市| 旺苍县| 饶河县| 容城县| 根河市| 华池县| 安乡县| 连云港市| 安泽县| 河西区| 增城市| 新兴县| 崇礼县| 揭东县| 浑源县| 曲靖市| 双鸭山市|