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

溫馨提示×

溫馨提示×

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

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

運維平臺的建設思考-元數據管理(三)

發布時間:2020-08-16 20:15:26 來源:ITPUB博客 閱讀:370 作者:jeanron100 欄目:MySQL數據庫
繼第一篇,第二篇介紹了關于元數據的一些想法,最近做了一些改進。
對于一部分的元數據抽取大體有下面的兩種方式。假設數據源已經做了很大的努力,終于統一起來了。我們現在要通過ssh的方式從源端抽取出數據來。
一種方式就是直接通過ssh的方式發送對應的查詢腳本,然后可以得到一個完整的列表,二次加工即可。
運維平臺的建設思考-元數據管理(三)
另外一種方式是直接在每臺服務器上都部署一個類似agent的載體,每個服務器端都會獨立的運行這些腳本內容,然后通過ssh的方式返回即可。
當然下面的圖有一些夸張,實際上沒有這么多的數據源,只是說明了這種方式。
運維平臺的建設思考-元數據管理(三)
從個人的角度而言,如果喜歡偷懶類似一勞永逸的方式,我還是喜歡第一種方式,通過ssh發送腳本,然后返回服務端的運行結果。這種方式不需要特別的配置,比較輕巧快捷,當然這種場景的前提是腳本內容不大,調用次數不頻繁。
假設調用的腳本為seal.sql,嘗試使用下面的方式來調用。語句這么簡答,我都有一種勝利在握的感覺了。
cat seal.sql | ssh 10.12.xxxx  'mysql '
但是奇怪的是,沒有任何的輸出。
反復嘗試,在數據庫端反復運行了腳本,內容都沒有任何的問題。
所以感覺是不是這種方式會有一些特殊字符的影響或者是語句的注釋干擾等等。
然后在得不到任何反饋的情況下,先嘗試使用本地的方式來運行,遠程調用腳本的形式,這種方式奇怪的是也依舊沒有任何結果。
嘗試了很多種方式,看起來是運行了,但是沒有結果輸出
# ssh 10.127.33.7 ' cat  /home/dba/Monitor_Hardware/seal.sql|mysql  '
Logging to file '/home/mysql/query.log'
# ssh 10.127.33.7  'mysql < /home/dba/Monitor_Hardware/seal.sql'
Logging to file '/home/mysql/query.log'
# ssh 10.127.33.7  'mysql < /home/dba/Monitor_Hardware/seal.sql > /tmp/a.log'
# ssh 10.127.33.7  "mysql < /home/dba/Monitor_Hardware/seal.sql > /tmp/a.log"
# ssh 10.127.33.7  "/usr/bin/mysql < /home/dba/Monitor_Hardware/seal.sql > /tmp/a.log"
# ssh 10.127.33.7  "/usr/bin/mysql < /home/dba/Monitor_Hardware/seal.sql > /tmp/a.log" # ssh 10.127.33.7 "mysql seal 'select user from mysql.user'"
Logging to file '/home/mysql/query.log'
調用了一個sql語句來驗證,發現還是有結果輸出的。
# ssh 10.127.33.7 "mysql seal -e 'select user from mysql.user'"
Logging to file '/home/mysql/query.log'
xxxxuser
sys_pm
mysqlmon
..
那么問題在哪里呢?
在反復查看腳本之后,唯一可以假定的就是里面有一個字段值是中文了。
sql語句類似  select xxxxx  join xxxxx  where  device.server_responser in ('楊建榮');
按照這種情況來看,還是來看看是不是中文的影響。
可以使用這種方式來簡單驗證,傳入變量LANG
cat seal.sql | ssh 10.127.33.7 'export LANG=en_US.utf-8;mysql -vv'
還是原來的腳本,加入-vv的選項,這種方式的輸出結果為:
Empty set
Bye
看來就是語句運行了,但是因為字符集的不兼容,導致沒有查詢到任何結果。
這個問題的一個原因就是因為sql語句中的字段值為中文,可以嘗試通過其它的code值來代替。
另外一個就是需要考慮字符集的情況,當然明確了這點。這個問題客戶端為GBK,數據庫端為UTF8,所以還是需要考慮這種差異,最后還是使用發送腳本的方式來運行,使用下面的方式來改進即可。
cat seal.sql |iconv -f GBK -t UTF8 | ssh 10.127.33.7 'export LANG=en_US.utf-8;mysql ' |iconv -f UTF8 -t GBK

向AI問一下細節

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

AI

阿图什市| 杭州市| 吴江市| 古田县| 英超| 寻乌县| 阿城市| 石阡县| 濉溪县| 苍溪县| 霍州市| 湘乡市| 镇康县| 微博| 吉林省| 肃宁县| 金寨县| 蚌埠市| 崇仁县| 阿城市| 涿鹿县| 普洱| 太白县| 定日县| 平度市| 肥西县| 大城县| 惠东县| 启东市| 安顺市| 永嘉县| 砚山县| 扶余县| 新巴尔虎右旗| 手游| 聊城市| 都江堰市| 色达县| 沧州市| 东山县| 乐业县|