iT邦幫忙

0

Mysql資料庫匯入資料有少

我有2台主機A與B,環境如下

A:
CentOS 6.9 32bit
Apache 2.2.15
Mysql 5.1.73
PHP 5.3.3

B:
Centos 7 64Bit
Apache 2.4.6
Mysql 5.7.25
PHP 5.4.16

我想把A主機上的其中一個data的資料庫匯出至B主機
但是當我匯入完B主機後發現資料庫的大小和筆數會不一樣
不過資料表和結構是沒問題的,唯獨資料筆數比原先要少
匯出及匯入時也未出現錯誤的訊息
想請問各位前輩有遇過這問題嗎

目前已試過匯入的方式
BigDump
mysqldump指令
MySQL GUI Tools

看更多先前的討論...收起先前的討論...
harrytsai iT邦新手 1 級 ‧ 2019-04-10 16:29:05 檢舉
匯出的時候,還有資料在寫入嗎
kasim0629 iT邦新手 5 級 ‧ 2019-04-10 16:33:32 檢舉
已確認匯出時並無寫入的動作
納貝 iT邦新手 1 級 ‧ 2019-04-10 16:57:37 檢舉
我強調一下問題的癥結點,請問你從"A開始匯出"直到"B資料庫完成匯入" 然後計算兩邊數據量的"這段時間內",A庫完全沒有任何連線或動過table對嗎?
沒有連線的意思是沒有任何外部連線、請求、連contab job的排程也沒有
納貝 iT邦新手 1 級 ‧ 2019-04-10 17:08:31 檢舉
照理說不論用指令還是GUI做backup restore,都不會出現少掉資料表筆數的問題,因為這是Mysql的核心功能啊。我覺你也應該直接排除是指令或是工具的問題,轉往其他方面找問題。只能說在某個地方有人在偷偷改你的table的可能性比較大,你找找是哪些table,然後看看前後多/少了哪幾筆數據,應該可以推測出是什麼東西在作祟。
kasim0629 iT邦新手 5 級 ‧ 2019-04-10 17:30:01 檢舉
我也覺得應該不是匯入的問題,但就不曉得為什麼會有差異,至於偷改的可能性目前覺得是不高,我也曾利用過凌晨時段,基本上不會任何完全連線的可能機會去做備份後,再匯入做比對,但一樣就是會有差異。雖然是有曾經懷疑過會不會跟版本有關係,但好像沒有人對版本有疑問
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
小魚
iT邦大師 1 級 ‧ 2019-04-10 16:27:57

怎麼看出有少的?
還有你匯入的方法是什麼?

kasim0629 iT邦新手 5 級 ‧ 2019-04-10 16:35:26 檢舉

從phpmyadmin看資料庫大小明顯有差異,且某些資料表筆數差異很大
匯入的方法如文章所說有試過用指令及軟體匯入,仍會有差異

小魚 iT邦大師 1 級 ‧ 2019-04-11 09:05:22 檢舉

我問你判斷的方法是什麼,
請回答具體一點.

0
混水摸魚
iT邦研究生 2 級 ‧ 2019-04-10 16:32:42

你備份的時候是用冷備份嗎?也就是停掉整個mysql才不會有資料上的異動。

kasim0629 iT邦新手 5 級 ‧ 2019-04-10 16:36:26 檢舉

我不是用冷備份,因為我試著停掉整個mysql後就無法備份了

納貝 iT邦新手 1 級 ‧ 2019-04-10 16:59:30 檢舉

kasim0629我想他是想問你有沒有試過拷貝A庫data files的方式去覆蓋B資料庫的data files

kasim0629 iT邦新手 5 級 ‧ 2019-04-10 17:23:38 檢舉

skateboard929原來如此,是我搞錯了,這方法倒是還沒試過,我再找時間試看看

0
hsiang11
iT邦好手 1 級 ‧ 2019-04-10 17:58:32

A跟B資料庫版本有極大差異
我有試過舊版本備份還原到新版本 也覺得資料有丟
但是沒出任何錯誤
主管去查B資料庫的筆數是差距不大的
後來我覺得是版本的關係 排序的方式不同了 所以看不到新的資料

這可以參考看看 mysql的查詢指令要熟才可以

我要發表回答

立即登入回答