Inception 搭建
Inception安裝
Inception是集稽核、執行、回滾於一體的一個自動化運維繫統,它是根據MySQL程式碼修改過來的,用它可以很明確的,詳細的,準確的稽核MySQL的SQL語句,它的工作模式和MySQL完全相同,可以直接使用MySQL客戶端來連線,但不需要驗證許可權,它相對應用程式(上層稽核流程系統等)而言,是一個伺服器,在連線時需要指定伺服器地址及Inception伺服器的埠即可,而它相對要稽核或執行的語句所對應的線上MySQL伺服器來說,是一個客戶端,它在內部需要實時的連線資料庫伺服器來獲取所需要的資訊,或者直接在線上上執行相應的語句及獲取binlog等,Inception就是一箇中間性質的服務。
依賴包安裝
yum install gcc gcc-c++ cmake bison openssl-devel ncurses-devel git
下載原始碼包
git clone (已經閉源,但是網上還能找到閉源之前的包)
編譯安裝Inception
mkdir -p /usr/local/inception
mkdir -p /inception/{data,logs}
unzip master.zip -d /inception
cd /inception/inception-master
cmake -DWITH_DEBUG=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/inception -DMYSQL_DATADIR=/inception/data -DWITH_SSL=yes -DCMAKE_BUILD_TYPE=RELEASE -DWITH_ZLIB=bundled -DMY_MAINTAINER_CXX_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Wno-unused-parameter -Woverloaded-virtual" -DMY_MAINTAINER_C_WARNINGS="-Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Wdeclaration-after-statement"
CMake Error: The source "/inception/inception-master/CMakeLists.txt" does not match the source "/opt/inception-master/CMakeLists.txt" used to generate cache
rm -rf CMakeLists.txt再執行
make && make install
建立inception配置檔案
--編輯引數檔案
vim /etc/inc.cnf
[inception]
general_log=1 #這個引數就是原生的MySQL的引數,用來記錄在Inception服務上執行過哪些語句,用來定位一些問題等
general_log_file=/usr/local/inception/data/inception.log #設定general log寫入的檔案路徑
port=6669 #Inception的服務埠
socket=/usr/local/inception/data/inc.socket #Inception的套接字檔案存放位置
character-set-server=utf8 #mysql原生引數
#Inception 稽核規則
inception_check_autoincrement_datatype=1 #當建表時自增列的型別不為int或者bigint時報錯
inception_check_autoincrement_init_value=1 #當建表時自增列的值指定的不為1,則報錯
inception_check_autoincrement_name=1 #建表時,如果指定的自增列的名字不為ID,則報錯,說明是有意義的,給提示
inception_check_column_comment=1 #建表時,列沒有註釋時報錯
inception_check_column_default_value=0 #檢查在建表、修改列、新增列時,新的列屬性是不是要有預設值
inception_check_dml_limit=1 #在DML語句中使用了LIMIT時,是不是要報錯
inception_check_dml_orderby=1 #在DML語句中使用了Order By時,是不是要報錯
inception_check_dml_where=1 #在DML語句中沒有WHERE條件時,是不是要報錯
inception_check_identifier=1 #開啟與關閉Inception對SQL語句中各種名字的檢查,如果設定為ON,則如果發現名字中存在除數字、字母、下劃線之外的字元時,會報Identifier "invalidname" is invalid, valid options: [a-z,A-Z,0-9,_].
inception_check_index_prefix=1 #是不是要檢查索引名字字首為"idx_",檢查唯一索引字首是不是"uniq_"
inception_check_insert_field=1 #是不是要檢查插入語句中的列連結串列的存在性
inception_check_primary_key=1 #建表時,如果沒有主鍵,則報錯
inception_check_table_comment=0 #建表時,表沒有註釋時報錯
inception_check_timestamp_default=0 #建表時,如果沒有為timestamp型別指定預設值,則報錯
inception_enable_autoincrement_unsigned=1 #自增列是不是要為無符號型
inception_enable_blob_type=0 #檢查是不是支援BLOB欄位,包括建表、修改列、新增列操作 預設開啟
inception_enable_column_charset=0 #允許列自己設定字符集
inception_enable_enum_set_bit=0 #是不是支援enum,set,bit資料型別
inception_enable_foreign_key=0 #是不是支援外來鍵
inception_enable_identifer_keyword=0 #檢查在SQL語句中,是不是有識別符號被寫成MySQL的關鍵字,預設值為報警。
inception_enable_not_innodb=0 #建表指定的儲存引擎不為Innodb,不報錯
inception_enable_nullable=0 #建立或者新增列時如果列為NULL,不報錯
inception_enable_orderby_rand=0 #order by rand時是不是報錯
inception_enable_partition_table=0 #是不是支援分割槽表
inception_enable_select_star=0 #Select*時是不是要報錯
inception_enable_sql_statistic=1 #設定是不是支援統計Inception執行過的語句中,各種語句分別佔多大比例,如果開啟這個引數,則每次執行的情況都會在備份資料庫例項中的inception庫的statistic表中以一錄儲存這次操作的統計情況,每次操作對應一條記錄,這條記錄中含有的資訊是各種型別的語句執行次數情況。
inception_max_char_length=16 #當char型別的長度大於這個值時,就提示將其轉換為VARCHAR
inception_max_key_parts=5 #一個索引中,列的最大個數,超過這個數目則報錯
inception_max_keys=16 #一個表中,最大的索引數目,超過這個數則報錯
inception_max_update_rows=10000 #在一個修改語句中,預計影響的最大行數,超過這個數就報錯
inception_merge_alter_table=1 #在多個改同一個表的語句出現是,報錯,提示合成一個
#inception 支援 OSC 引數
inception_osc_bin_dir=/user/bin #用於指定pt-online-schema-change指令碼的位置,不可修改,在配置檔案中設定
inception_osc_check_interval=5 #對應OSC引數--check-interval,意義是Sleep time between checks for --max-lag.
inception_osc_chunk_size=1000 #對應OSC引數--chunk-size
inception_osc_chunk_size_limit=4 #對應OSC引數--chunk-size-limit
inception_osc_chunk_time=0.1 #對應OSC引數--chunk-time
inception_osc_critical_thread_connected=1000 #對應引數--critical-load中的thread_connected部分
inception_osc_critical_thread_running=80 #對應引數--critical-load中的thread_running部分
inception_osc_drop_new_table=1 #對應引數--[no]drop-new-table
inception_osc_drop_old_table=1 #對應引數--[no]drop-old-table
inception_osc_max_lag=3 #對應引數--max-lag
inception_osc_max_thread_connected=1000 #對應引數--max-load中的thread_connected部分
inception_osc_max_thread_running=80 #對應引數--max-load中的thread_running部分
inception_osc_min_table_size=0 # 這個引數實際上是一個OSC的開關,如果設定為0,則全部ALTER語句都走OSC,如果設定為非0,則當這個表佔用空間大小大於這個值時才使用OSC方式。單位為M,這個表大小的計算方式是透過語句:"select (DATA_LENGTH + INDEX_LENGTH)/1024/1024 from information_schema.tables where table_schema = 'dbname' and table_name = 'tablename'"來實現的
inception_osc_on=0 #一個全域性的OSC開關,預設是開啟的,如果想要關閉則設定為OFF,這樣就會直接修改
inception_osc_print_none=1 #用來設定在Inception返回結果集中,對於原來OSC在執行過程的標準輸出資訊是不是要列印到結果集對應的錯誤資訊列中,如果設定為1,就不列印,如果設定為0,就列印。而如果出現錯誤了,則都會列印
inception_osc_print_sql=1 #對應引數--print
#備份伺服器資訊,注意改成你的機器.用於回滾。
inception_remote_system_password=P@ssw0rd
inception_remote_system_user=incep_rw
inception_remote_backup_port=3306
inception_remote_backup_host=10.10.3.70
inception_support_charset=utf8 #表示在建表或者建庫時支援的字符集,如果需要多個,則用逗號分隔,影響的範圍是建表、設定會話字符集、修改表字符集屬性等
啟動Inception程式
cd /usr/local/inception/bin
./Inception --defaults-file=/etc/inc.cnf &
[1] 11179
[root@b28-11-92 bin]# 2019-06-21 15:00:31 0 [Note] Welcome to use Inception2.1.50
2019-06-21 15:00:31 11179 [Note] Server hostname (bind-address): '*'; port: 6669
2019-06-21 15:00:31 11179 [Note] IPv6 is available.
2019-06-21 15:00:31 11179 [Note] - '::' resolves to '::';
2019-06-21 15:00:31 11179 [Note] Server socket created on IP: '::'.
檢視Inception程式
ps -ef | grep Inception
root 11179 30011 0 15:00 pts/1 00:00:00 ./Inception --defaults-file=/etc/inc.cnf
測試
mysql -uroot -h127.0.0.1 -P6669
連線成功後執行 inception get variables;
輸出了所有的變數,表示已經啟動成功了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-2648370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Yearning + Inception SQL稽核平臺搭建SQL
- Inception網路
- 從Inception v1到Inception-ResNet,一文概覽Inception家族的「奮鬥史」
- 影像分類丨Inception家族進化史「GoogleNet、Inception、Xception」Go
- GAN量化評估方法——IS(Inception Score)和FID(Frechet Inception Distance score)
- Inception SQL稽核註解SQL
- MySQL Inception安裝使用MySql
- [譯] TensorFlow 教程 – 07 Inception 模型模型
- docker Yearning+Inception SQL稽核平臺DockerSQL
- mysql稽核平臺yearning及inception安裝MySql
- 介紹一個 MySQL 自動化運維利器 - InceptionMySql運維
- Inception Effect for Mac(盜夢空間鏡面效果fcpx外掛)Mac
- 使用滴滴雲彈性推理服務部署 Inception-v3 模型模型
- Python深度學習入門之mnist-inception(Tensorflow2.0實現)Python深度學習
- 基於AlexNet和Inception模型思想的TFCNet模型設計與實現模型
- 大話CNN經典模型:GoogLeNet(從Inception v1到v4的演進)CNN模型Go
- 一文讀懂物體分類AI演算法:LeNet-5 AlexNet VGG Inception ResNet MobileNetAI演算法
- 原始碼分析——遷移學習Inception V3網路重訓練實現圖片分類原始碼遷移學習
- 使用TensorFlow slim資料夾當中的inception_resnet_v2網路訓練自己的分類資料集
- 【環境搭建】RocketMQ叢集搭建MQ
- MySQL叢集搭建(1)-主備搭建MySql
- MVVM框架的搭建(二)——專案搭建MVVM框架
- Harbor 搭建
- Sentry 搭建
- 搭建HadoopHadoop
- elk 搭建
- MYSQL搭建MySql
- ELK搭建
- 搭建genieacs
- RustDesk 搭建Rust
- Gitlab搭建Gitlab
- OJ搭建
- 從零搭建一個IdentityServer——專案搭建IDEServer
- Windows下搭建ESP-IDF環境搭建Windows
- 【Azkaban搭建】---Azkaban 3.25.0搭建細則 超實用
- 精讀《視覺化搭建思考 - 富文字搭建》視覺化
- docker 搭建 MySQLDockerMySql
- OpenVpn的搭建