91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

實現(xiàn)MySQL與elasticsearch數(shù)據(jù)同步的方法

OSC開源社區(qū) ? 來源:又拍云 ? 2023-03-17 13:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MySQL 自身簡單、高效、可靠,是又拍云內(nèi)部使用最廣泛的數(shù)據(jù)庫。但是當(dāng)數(shù)據(jù)量達到一定程度的時候,對整個 MySQL 的操作會變得非常遲緩。而公司內(nèi)部 robin/logs 表的數(shù)據(jù)量已經(jīng)達到 800w,后續(xù)又有全文檢索的需求。這個需求直接在 MySQL上實施是難以做到的。

原數(shù)據(jù)庫的同步問題

由于傳統(tǒng)的 mysql 數(shù)據(jù)庫并不擅長海量數(shù)據(jù)的檢索,當(dāng)數(shù)據(jù)量到達一定規(guī)模時(估算單表兩千萬左右),查詢和插入的耗時會明顯增加。同樣,當(dāng)需要對這些數(shù)據(jù)進行模糊查詢或是數(shù)據(jù)分析時,MySQL作為事務(wù)型關(guān)系數(shù)據(jù)庫很難提供良好的性能支持。使用適合的數(shù)據(jù)庫來實現(xiàn)模糊查詢是解決這個問題的關(guān)鍵。 但是,切換數(shù)據(jù)庫會迎來兩個問題,一是已有的服務(wù)對現(xiàn)在的 MySQL重度依賴,二是MySQL的事務(wù)能力和軟件生態(tài)仍然不可替代,直接遷移數(shù)據(jù)庫的成本過大。我們綜合考慮了下,決定同時使用多個數(shù)據(jù)庫的方案,不同的數(shù)據(jù)庫應(yīng)用于不同的使用場景。

而在支持模糊查詢功能的數(shù)據(jù)庫中,elasticsearch 自然是首選的查詢數(shù)據(jù)庫。這樣后續(xù)對業(yè)務(wù)需求的切換也會非常靈活。 那具體該如何實現(xiàn)呢?在又拍云以往的項目中,也有遇到相似的問題。之前采用的方法是在業(yè)務(wù)中編寫代碼,然后同步到 elasticsearch 中。具體是這樣實施的:每個系統(tǒng)編寫特定的代碼,修改 MySQL數(shù)據(jù)庫后,再將更新的數(shù)據(jù)直接推送到需要同步的數(shù)據(jù)庫中,或推送到隊列由消費程序來寫入到數(shù)據(jù)庫中。 但這個方案有一些明顯的缺點:

系統(tǒng)高耦合,侵入式代碼,使得業(yè)務(wù)邏輯復(fù)雜度增加

方案不通用,每一套同步都需要額外定制,不僅增加業(yè)務(wù)處理時間,還會提升軟件復(fù)復(fù)雜度

工作量和復(fù)雜度增加

在業(yè)務(wù)中編寫同步方案,雖然在項目早期比較方便,但隨著數(shù)據(jù)量和系統(tǒng)的發(fā)展壯大,往往最后會成為業(yè)務(wù)的大痛點。

解決思路及方案

調(diào)整架構(gòu)

既然以往的方案有明顯的缺點,那我們?nèi)绾蝸斫鉀Q它呢?優(yōu)秀的解決方案往往是 “通過架構(gòu)來解決問題“,那么能不能通過架構(gòu)的思想來解決問題呢? 答案是可以的。我們可以將程序偽裝成 “從數(shù)據(jù)庫”,主庫的增量變化會傳遞到從庫,那這個偽裝成 “從數(shù)據(jù)庫” 的程序就能實時獲取到數(shù)據(jù)變化,然后將增量的變化推送到消息隊列 MQ,后續(xù)消費者消耗 MQ 的數(shù)據(jù),然后經(jīng)過處理之后再推送到各自需要的數(shù)據(jù)庫。 這個架構(gòu)的核心是通過監(jiān)聽 MySQL 的 binlog 來同步增量數(shù)據(jù),通過基于 query 的查詢舊表來同步舊數(shù)據(jù),這就是本文要講的一種異構(gòu)數(shù)據(jù)庫同步的實踐。

改進數(shù)據(jù)庫

經(jīng)過深度的調(diào)研,成功得到了一套異構(gòu)數(shù)據(jù)庫同步方案,并且成功將公司生產(chǎn)環(huán)境下的 robin/logs 的表同步到了 elasticsearch 上。 首先對 MySQL 開啟 binlog,但是由于 maxwell 需要的 binlog_format=row 原本的生產(chǎn)環(huán)境的數(shù)據(jù)庫不宜修改。這里請教了海楊前輩,他提供了”從庫聯(lián)級“的思路,在從庫中監(jiān)聽 binlog 繞過了操作生產(chǎn)環(huán)境重啟主庫的操作,大大降低了系統(tǒng)風(fēng)險。 后續(xù)操作比較順利,啟動 maxwell 監(jiān)聽從庫變化,然后將增量變化推送到 kafka ,最后配置 logstash 消費 kafka中的數(shù)據(jù)變化事件信息,將結(jié)果推送到 elasticsearch。配置 logstash需要結(jié)合表結(jié)構(gòu),這是整套方案實施的重點。 這套方案使用到了kafka、maxwell、logstash、elasticsearch。其中 elasticsearch 與 kafka已經(jīng)在生產(chǎn)環(huán)境中有部署,所以無需單獨部署維護。而 logstash 與 maxwell 只需要修改配置文件和啟動命令即可快速上線。整套方案的意義不僅在于成本低,而且可以大規(guī)模使用,公司內(nèi)有 MySQL 同步到其它數(shù)據(jù)庫的需求時,都可以上任。

成果展示前后對比

- 使用該方案同步和業(yè)務(wù)實現(xiàn)同步的對比

052d642c-c47a-11ed-bfe3-dac502259ad0.png

- 寫入到 elasticsearch 性能對比 (8核4G內(nèi)存)

項目 logstash 業(yè)務(wù)同步
寫入速度 1500 條/s 200 條/s

經(jīng)過對比測試,800w 數(shù)據(jù)量全量同步,使用 logstash 寫到 elasticsearch,實際需要大概 3 小時,而舊方案的寫入時間需要 2.5 天。

方案實施細節(jié)

接下來,我們來看看具體是如何實現(xiàn)的。 本方案無需編寫額外代碼,非侵入式的,實現(xiàn) MySQL數(shù)據(jù)與 elasticsearch 數(shù)據(jù)庫的同步。

0549731a-c47a-11ed-bfe3-dac502259ad0.png

下列是本次方案需要使用所有的組件:

MySQL

Kafka

Maxwell(監(jiān)聽 binlog)

Logstash(將數(shù)據(jù)同步給 elasticsearch)

Elasticsearch

1. MySQL配置

本次使用 MySQL 5.5 作示范,其他版本的配置可能稍許不同需要

首先我們需要增加一個數(shù)據(jù)庫只讀的用戶,如果已有的可以跳過。

-- 創(chuàng)建一個 用戶名為 maxwell 密碼為 xxxxxx 的用戶
CREATE USER 'maxwell'@'%' IDENTIFIED BY 'XXXXXX';
GRANT ALL ON maxwell.* TO 'maxwell'@'localhost';
GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';

開啟數(shù)據(jù)庫的 `binlog`,修改 `mysql` 配置文件,注意 `maxwell` 需要的 `binlog` 格式必須是`row`。

# /etc/mysql/my.cnf


[mysqld]
# maxwell 需要的 binlog 格式必須是 row
binlog_format=row


# 指定 server_id 此配置關(guān)系到主從同步需要按情況設(shè)置,
# 由于此mysql沒有開啟主從同步,這邊默認設(shè)置為 1
server_id=1


# logbin 輸出的文件名, 按需配置
log-bin=master
重啟 MySQL 并查看配置是否生效:
sudo systemctl restart mysqld
select @@log_bin;
-- 正確結(jié)果是 1
select @@binlog_format;
-- 正確結(jié)果是 ROW
如果要監(jiān)聽的數(shù)據(jù)庫開啟了主從同步,并且不是主數(shù)據(jù)庫,需要再從數(shù)據(jù)庫開啟 binlog 聯(lián)級同步。
# /etc/my.cnf


log_slave_updates = 1

需要被同步到 elasticsearch 的表結(jié)構(gòu)。
-- robin.logs
show create table robin.logs;


-- 表結(jié)構(gòu)
CREATE TABLE `logs` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `content` text NOT NULL,
  `user_id` int(11) NOT NULL,
  `status` enum('SUCCESS','FAILED','PROCESSING') NOT NULL,
  `type` varchar(20) DEFAULT '',
  `meta` text,
  `created_at` bigint(15) NOT NULL,
  `idx_host` varchar(255) DEFAULT '',
  `idx_domain_id` int(11) unsigned DEFAULT NULL,
  `idx_record_value` varchar(255) DEFAULT '',
  `idx_record_opt` enum('DELETE','ENABLED','DISABLED') DEFAULT NULL,
  `idx_orig_record_value` varchar(255) DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `created_at` (`created_at`)
) ENGINE=InnoDB AUTO_INCREMENT=8170697 DEFAULT CHARSET=utf8

2.Maxwell 配置

本次使用 maxwell-1.39.2 作示范, 確保機器中包含 java 環(huán)境, 推薦 openjdk11

下載 maxwell 程序

wget https://github.com/zendesk/maxwell/releases/download/v1.39.2/maxwell-1.39.2.tar.gz
tar zxvf maxwell-1.39.2.tar.gz **&&**  cd maxwell-1.39.2
maxwell 使用了兩個數(shù)據(jù)庫:

一個是需要被監(jiān)聽binlog的數(shù)據(jù)庫(只需要讀權(quán)限)

另一個是記錄maxwell服務(wù)狀態(tài)的數(shù)據(jù)庫,當(dāng)前這兩個數(shù)據(jù)庫可以是同一個

重要參數(shù)說明:

host 需要監(jiān)聽binlog的數(shù)據(jù)庫地址

port 需要監(jiān)聽binlog的數(shù)據(jù)庫端口

user 需要監(jiān)聽binlog的數(shù)據(jù)庫用戶名

password 需要監(jiān)聽binlog的密碼

replication_host 記錄maxwell服務(wù)的數(shù)據(jù)庫地址

replication_port 記錄maxwell服務(wù)的數(shù)據(jù)庫端口

replication_user 記錄maxwell服務(wù)的數(shù)據(jù)庫用戶名

filter 用于監(jiān)聽binlog數(shù)據(jù)時過濾不需要的數(shù)據(jù)庫數(shù)據(jù)或指定需要的數(shù)據(jù)庫

producer 將監(jiān)聽到的增量變化數(shù)據(jù)提交給的消費者 (如 stdout、kafka)

kafka.bootstrap.servers kafka 服務(wù)地址

kafka_version kafka 版本

kafka_topic 推送到kafka的主題

啟動 maxwell

注意,如果 kafka 配置了禁止自動創(chuàng)建主題,需要先自行在 kafka 上創(chuàng)建主題,kafka_version 需要根據(jù)情況指定, 此次使用了兩張不同的庫

./bin/maxwell 
        --host=mysql-maxwell.mysql.svc.cluster.fud3 
        --port=3306 
        --user=root 
        --password=password 
        --replication_host=192.168.5.38 
        --replication_port=3306 
        --replication_user=cloner 
        --replication_password=password
        --filter='exclude: *.*, include: robin.logs' 
        --producer=kafka 
        --kafka.bootstrap.servers=192.168.30.10:9092 
        --kafka_topic=maxwell-robinlogs --kafka_version=0.9.0.1

3. 安裝 Logstash

Logstash 包中已經(jīng)包含了 openjdk,無需額外安裝。

wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.0-linux-x86_64.tar.gz
tar zxvf logstash-8.5.0-linux-x86_64.tar.gz
刪除不需要的配置文件。
rm config/logstash.yml
修改logstash配置文件,此處語法參考官方文檔(https://www.elastic.co/guide/en/logstash/current/input-plugins.html)。
# config/logstash-sample.conf


input {
 kafka {
    bootstrap_servers => "192.168.30.10:9092"
    group_id => "main"
    topics => ["maxwell-robinlogs"]
 }
}


filter {
  json {
    source => "message"
  }


  # 將maxwell的事件類型轉(zhuǎn)化為es的事件類型
  # 如增加 -> index 修改-> update
  translate {
    source => "[type]"
    target => "[action]"
    dictionary => {
      "insert" => "index"
      "bootstrap-insert" => "index"
      "update" => "update"
      "delete" => "delete"
    }
    fallback => "unknown"
  }


  # 過濾無效的數(shù)據(jù)
  if ([action] == "unknown") {
    drop {}
  }


  # 處理數(shù)據(jù)格式
  if [data][idx_host] {
    mutate {
      add_field => { "idx_host" => "%{[data][idx_host]}" }
    }
  } else {
    mutate {
      add_field => { "idx_host" => "" }
    }
  }


  if [data][idx_domain_id] {
    mutate {
      add_field => { "idx_domain_id" => "%{[data][idx_domain_id]}" }
    }
  } else {
    mutate {
      add_field => { "idx_domain_id" => "" }
    }
  }


  if [data][idx_record_value] {
    mutate {
      add_field => { "idx_record_value" => "%{[data][idx_record_value]}" }
    }
  } else {
    mutate {
      add_field => { "idx_record_value" => "" }
    }
  }
  
   if [data][idx_record_opt] {
    mutate {
      add_field => { "idx_record_opt" => "%{[data][idx_record_opt]}" }
    }
  } else {
    mutate {
      add_field => { "idx_record_opt" => "" }
    }
  }
 
  if [data][idx_orig_record_value] {
    mutate {
      add_field => { "idx_orig_record_value" => "%{[data][idx_orig_record_value]}" }
    }
  } else {
    mutate {
      add_field => { "idx_orig_record_value" => "" }
    }
  }
 
  if [data][type] {
    mutate {
      replace => { "type" => "%{[data][type]}" }
    }
  } else {
    mutate {
      replace => { "type" => "" }
    }
  }
 
  mutate {
    add_field => {
      "id" => "%{[data][id]}"
      "content" => "%{[data][content]}"
      "user_id" => "%{[data][user_id]}"
      "status" => "%{[data][status]}"
      "meta" => "%{[data][meta]}"
      "created_at" => "%{[data][created_at]}"
    }
    remove_field => ["data"]
  }


  mutate {
    convert => {
      "id" => "integer"
      "user_id" => "integer"
      "idx_domain_id" => "integer"
      "created_at" => "integer"
    }
  }


  # 只提煉需要的字段
  mutate {
    remove_field => [
      "message",
      "original",
      "@version",
      "@timestamp",
      "event",
      "database",
      "table",
      "ts",
      "xid",
      "commit",
      "tags"
    ]
   }
}


output {
  # 結(jié)果寫到es
  elasticsearch {
    hosts => ["http://es-zico2.service.upyun:9500"]
    index => "robin_logs"
    action => "%{action}"
    document_id => "%{id}"
    document_type => "robin_logs"
  }


  # 結(jié)果打印到標(biāo)準(zhǔn)輸出
  stdout {
    codec => rubydebug
  }
}
執(zhí)行程序:
# 測試配置文件*
bin/logstash -f config/logstash-sample.conf --config.test_and_exit


# 啟動*
bin/logstash -f config/logstash-sample.conf --config.reload.automatic

4. 全量同步

完成啟動后,后續(xù)的增量數(shù)據(jù) maxwell 會自動推送給 logstash 最終推送到 elasticsearch ,而之前的舊數(shù)據(jù)可以通過 maxwell 的 bootstrap 來同步,往下面表中插入一條任務(wù),那么 maxwell 會自動將所有符合條件的 where_clause 的數(shù)據(jù)推送更新。

INSERT INTO maxwell.bootstrap 
        ( database_name, table_name, where_clause, client_id ) 
values 
        ( 'robin', 'logs', 'id > 1', 'maxwell' );
后續(xù)可以在 elasticsearch 檢測數(shù)據(jù)是否同步完成,可以先查看數(shù)量是否一致,然后抽樣對比詳細數(shù)據(jù)。
# 檢測 elasticsearch  中的數(shù)據(jù)量
GET robin_logs/robin_logs/_count

?





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3926

    瀏覽量

    66205
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    860

    瀏覽量

    27923
  • Maxwell
    +關(guān)注

    關(guān)注

    4

    文章

    36

    瀏覽量

    13152

原文標(biāo)題:如何高效實現(xiàn)MySQL與elasticsearch的數(shù)據(jù)同步

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    MySQL數(shù)據(jù)備份與恢復(fù)策略

    數(shù)據(jù)是企業(yè)的核心資產(chǎn),MySQL作為主流的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)的安全性和可靠性至關(guān)重要。本文將深入探討MySQL
    的頭像 發(fā)表于 07-14 11:11 ?118次閱讀

    企業(yè)級MySQL數(shù)據(jù)庫管理指南

    在當(dāng)今數(shù)字化時代,MySQL作為全球最受歡迎的開源關(guān)系型數(shù)據(jù)庫,承載著企業(yè)核心業(yè)務(wù)數(shù)據(jù)的存儲與處理。作為數(shù)據(jù)庫管理員(DBA),掌握MySQL
    的頭像 發(fā)表于 07-09 09:50 ?122次閱讀

    MYSQL集群高可用和數(shù)據(jù)監(jiān)控平臺實現(xiàn)方案

    該項目共分為2個子項目,由MYSQL集群高可用和數(shù)據(jù)監(jiān)控平臺兩部分組成。
    的頭像 發(fā)表于 05-28 10:10 ?561次閱讀
    <b class='flag-5'>MYSQL</b>集群高可用和<b class='flag-5'>數(shù)據(jù)</b>監(jiān)控平臺<b class='flag-5'>實現(xiàn)</b>方案

    MySQL數(shù)據(jù)庫是什么

    MySQL數(shù)據(jù)庫是一種 開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS) ,由瑞典MySQL AB公司開發(fā),后被Oracle公司收購。它通過結(jié)構(gòu)化查詢語言(SQL)進行
    的頭像 發(fā)表于 05-23 09:18 ?439次閱讀

    單節(jié)點Elasticsearch+Filebeat+Kibana安裝指南

    單節(jié)點Elasticsearch+Filebeat+Kibana安裝指南
    的頭像 發(fā)表于 05-21 11:06 ?360次閱讀
    單節(jié)點<b class='flag-5'>Elasticsearch</b>+Filebeat+Kibana安裝指南

    利用dockerfile搭建mysql主從集群和redis集群

    ==MySQL主從同步(Replication)是一種實現(xiàn)數(shù)據(jù)冗余和高可用性的技術(shù),通過將主數(shù)據(jù)庫(Master)的變更操作
    的頭像 發(fā)表于 05-14 11:38 ?396次閱讀
    利用dockerfile搭建<b class='flag-5'>mysql</b>主從集群和redis集群

    數(shù)據(jù)采集到MYSQL和SQLSERVER數(shù)據(jù)庫可以實現(xiàn)哪些功能

    將工業(yè)設(shè)備數(shù)據(jù)采集到MySQL和SQLServer數(shù)據(jù)庫后,可實現(xiàn)生產(chǎn)管理、設(shè)備運維、決策支持等多維度功能。對此,數(shù)之能提供多種工業(yè)設(shè)備數(shù)據(jù)
    的頭像 發(fā)表于 05-07 15:32 ?181次閱讀

    使用插件將Excel連接到MySQL/MariaDB

    ,可以快速地將數(shù)據(jù)MySQL 或 MariaDB 加載到 Excel,立即從數(shù)據(jù)庫刷新 Excel 工作簿中的數(shù)據(jù),編輯這些數(shù)據(jù),并將它
    的頭像 發(fā)表于 01-20 12:38 ?614次閱讀
    使用插件將Excel連接到<b class='flag-5'>MySQL</b>/MariaDB

    適用于MySQL和MariaDB的Python連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)

    和 MariaDB 數(shù)據(jù)庫服務(wù)器以及托管數(shù)據(jù)庫服務(wù),以對存儲的數(shù)據(jù)執(zhí)行創(chuàng)建、讀取、更新和刪除操作。該解決方案完全實現(xiàn)了 Python DB API 2.0 規(guī)范,并作為 Window
    的頭像 發(fā)表于 01-17 12:18 ?491次閱讀
    適用于<b class='flag-5'>MySQL</b>和MariaDB的Python連接器:可靠的<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>連接器和<b class='flag-5'>數(shù)據(jù)</b>庫

    如何在Linux環(huán)境下高效安裝部署和配置Elasticsearch

    /CentOS-7-x86_64-DVD-2009.iso elasticsearch-7.10.0-linux-x86_64.tar.gz https://www.elastic.co/cn/downloads/past-releases
    的頭像 發(fā)表于 01-16 11:49 ?1028次閱讀

    MySQL數(shù)據(jù)庫的安裝

    MySQL數(shù)據(jù)庫的安裝 【一】各種數(shù)據(jù)庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】
    的頭像 發(fā)表于 01-14 11:25 ?562次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>庫的安裝

    在華為云上通過 Docker 容器部署 Elasticsearch 并進行性能評測

    運行 Elasticsearch 查詢評測 ? 5.2 查看評測結(jié)果 ? 5.3 調(diào)整并發(fā)請求和請求數(shù) ? 6. 總結(jié) ? 前言 隨著數(shù)據(jù)量的
    的頭像 發(fā)表于 01-13 13:36 ?485次閱讀
    在華為云上通過 Docker 容器部署 <b class='flag-5'>Elasticsearch</b> 并進行性能評測

    構(gòu)建數(shù)據(jù)庫解決方案,基于華為云 Flexus X 實例容器化 MySQL 主從同步架構(gòu)

    前言**** 華為云 Flexus X 實例,融合柔性算力與智能調(diào)度,為數(shù)據(jù)庫解決方案帶來全新突破。采用容器化 MySQL 主從同步架構(gòu),實現(xiàn)數(shù)據(jù)
    的頭像 發(fā)表于 01-07 17:22 ?603次閱讀
    構(gòu)建<b class='flag-5'>數(shù)據(jù)</b>庫解決方案,基于華為云 Flexus X 實例容器化 <b class='flag-5'>MySQL</b> 主從<b class='flag-5'>同步</b>架構(gòu)

    數(shù)據(jù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、
    的頭像 發(fā)表于 12-16 11:05 ?606次閱讀
    <b class='flag-5'>數(shù)據(jù)</b>庫<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)</b>庫表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    Elasticsearch 再次開源

    Elasticsearch 和 Kibana 又可以被稱為開源了。很難表達這句話讓我有多高興。我激動得簡直要跳起來了。我們 Elastic 的所有人都是如此。開源是我的 DNA。這也是Elastic的DNA。能夠再次將 Elasticsearch 稱為開源,我感到非常高興
    的頭像 發(fā)表于 11-13 12:14 ?451次閱讀
    <b class='flag-5'>Elasticsearch</b> 再次開源
    主站蜘蛛池模板: 欧美性猛 | 免费国内精品久久久久影院 | 日本三级视频在线 | 四虎影院最新 | 五月天久久婷婷 | 天天操夜夜操 | 毛片不卡一区二区三区 | 日本黄页网 | 日日夜夜天天干干 | 97久久天天综合色天天综合色hd | 图片区网友自拍另类图区 | 天堂网站www天堂资源在线 | 性欧美视频在线观看 | 色偷偷91久久综合噜噜噜 | 在线欧美视频免费观看国产 | 日本免费人成黄页网观看视频 | 男女全黄做爰视频 | 天天干天天爱天天射 | 日日夜夜操天天干 | 国产chinesetube | 精品香港经典三级在线看 | 国产又色又爽又黄的网站在线一级 | 天天射天天干天天 | 欧美最猛黑人xxxxwww | 女的扒开尿口让男人桶 | 色777777女人色| 亚洲欧美综合一区 | 看全色黄大色大片免费久久怂 | 久久99精品久久久久久久不卡 | 午夜视频免费在线播放 | 天天干天天日天天射天天操毛片 | videsgratis欧美另类 | 免费免播放器在线视频观看 | a亚洲 | 草久视频在线观看 | 亚洲天堂.com| 一本久草 | 丁香久久婷婷 | 美女性色| 91福利网站| 七月丁香八月婷婷综合激情 |