思極有容資料庫如何利用mysqldump匯入匯出集群資料?

時間 2021-06-02 02:21:05

1樓:王天

一、資料匯出

使用 mysqldump 工具進行SG-RDB資料庫的資料匯出,用法和 MySQL 是一樣的。但是需要注意, 如果匯出的資料需要包含檢視, 則需要新增–single-transaction, 請使用示例中出現的引數.

簡單示例如下:

備份單錶, 資料及表結構

shell> mysqldump [options] db_name [tbl_name …]

例如:備份testdb庫中t1表的資料以及表結構,匯出的sql檔案存放到/tmp目錄中

mysqldump -udbscale -pdbscale -h127.0.0.

1 -P3307 --skip-add-locks testdb t1 > /tmp/tes tdb_t1.sql

備份testdb庫中t1表,t2表的資料以及表結構,匯出的sql檔案存放到/tmp目錄中mysqldump -udbscale -pdbscale -h127.0.0.

1 -P3307 --skip-add-locks testdb t1 t2 > /tmp/ testdb_table.sql

備份單個庫, 因為單個庫中, 可能包含檢視, 則需要新增 --single-transaction

shell> mysqldump --databases [options] db_name --single-transaction …資料匯出例如:

備份testdb整個庫

mysqldump -udbscale -pdbscale -h127.0.0.1 -P3307 --skip-add-locks --single-transaction

–databases testdb > whole_database.sql

如果需要備份儲存過程(procedure)和函式(function), 則新增 --routines

mysqldump -udbscale -pdbscale -h127.0.0.1 -P3307 --skip-add-locks --single-transaction

–routines --databases testdb > whole_database.sql

備份整個MySQL例項的所有資料, 因為包含檢視, 所以需要新增–single-transaction

shell> mysqldump [options] --all-databases

例如:mysqldump -uroot -pmysql -h127.0.

0.1 -P3307 --skip-add-locks --single-transaction --al l-databases > all_databases.sql

二、資料匯入

對於使用 mysqldump 或者 mysqlpump 匯出的檔案,DBScale支援使用source命令或命令列檔案重定向的方式進行資料匯入,例如:

匯入備份庫的sql檔案

mysql -udbscale -p -h127.0.0.1 -P3307 < /tmp/testdb.sql

或者mysql -udbscale -p -h127.0.0.1 -P3307 source /tmp/testdb.sql

匯入備份庫中的表的sql檔案

mysql -udbscale -p -h127.0.0.1 -P3307 testdb < testdb_t1.sql

或者mysql -udbscale -p -h127.0.0.1 -P3307 testdb source /tmp/testdb_t1.sql

或者mysql -udbscale -p -h127.0.0.1 -P3307 use testdb

source /tmp/testdb_t1.sql

需要注意的是:

如果使用mysqldump命令從單機mysql庫匯出資料然後匯入dbscale,那麼需要在mysqldump命令新增引數"–sk ip-add-locks",否則可能無法匯入dbscale.

DBScale不支援同時執行多條SQL命令。使用mysql命令列客戶端mysql會自動將多條SQL拆分逐個執行。如果使用圖形工具,建議使用SQLYog.

如果dump.sql檔案中本身沒有建立並 use 到乙個schema的話,在執行資料匯入前請先登陸集群建立 schema 並在匯入的mysql命令中指定 schema.DBScale預設的schema是information_schema,所以如果沒有 use s chema 就執行操作的話,可能會報錯許可權不夠,而不是通常mysql 的 No database selected 報錯.

如果匯入過程中報錯"In multiple_mode, dbscale do not support set auto_increment value",

請先執行:

dbscale set global check_auto_increment_value = 0;

然後進行匯入;最後再執行:

dbscale set global check_auto_increment_value = 0;

如何避免資料庫不響應導致資料庫執行緒池和業務執行緒池全部掛起?

資料庫讀寫執行緒做超時,哪怕非同步了,堵住了沒有超時一樣會死。再用個守護執行緒去檢測這些排隊的情況,一旦超出閾值就報警吧。在一般業務併發處理中,能丟擲主業務就丟擲主業務,讓主業務能最大併發處理。當然如果在主業務中資料庫響應很慢,而且持續時間很長,那麼無論執行緒池中多少個執行緒 執行緒無線多也不是什麼...

資料庫操作優化如何入手?

ccxxiii 資料庫效能優化 系統CPU,記憶體,磁碟儲存,系統引數,以oracle為例,資料庫SGA,PGA,Process,cursor,session等引數設定優化。對於資料庫SQL優化,首先要規範sql寫法,索引建立,資料生命週期管理等。何以解憂,唯有讀書和實踐。總結幾點 1.善用expl...

資料庫的 Buffer Pool 如何提高並行度?

李晨曦 既然鎖的粒度太大了,最簡單的方法就是減小鎖的粒度就好了,你的實現是全域性鎖,這種肯定慢,執行緒數多的時候甚至比單執行緒還慢。改成範圍鎖或者槽鎖就能夠大幅度提公升效能了,hashtable的每個槽一把鎖,操作page id對映到同乙個槽的page時才會有衝突,否則是沒有鎖衝突的。極端情況下所有...