1. 程式人生 > >xtrabackup恢復mysql後提示表不存在處理

xtrabackup恢復mysql後提示表不存在處理

一.基本資訊
生產環境mysql版本:mariadb 10.0.20   備份xtrabackup版本:xtrabackup 2.2.9 或 2.4.4 
測試恢復環境mysql版本:mariadb 10.0.20 恢復xtrabackup版本:xtrabackup 2.2.11 或 2.4.4
二.問題描述
  用xtrabckup將生產環境的備份在異機上恢復後,能正常啟動mysql,但在查看錶結構時,提示表不存在。
三.問題分析
  可以重現報借,如下是具體步驟:
1.將備份集從生產環境中copy到測試機,並更改owner許可權
drwxr-xr-x 13 root root      4096 Nov 18 09:36 xtrabackup_20161117010002
chown -R apps:apps xtrabackup_20161117010002
2.解壓備份集
innobackupex --decompress /apps/backup/xtrabackup_20161117010002
......................
161118 09:42:55  innobackupex: completed OK!
上面顯示OK,表示成功解壓
3.應用日誌準備備份集
innobackupex --apply-log /apps/backup/xtrabackup_20161117010002
....................
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 54808221346
161118 09:46:24  innobackupex: completed OK!
上面顯示OK,表示成功備份整合功應用日誌
4.將備份集還原到mysql對應資料目錄
innobackupex --defaults-file=/apps/dbdat/my3306.cnf  --copy-back /apps/backup/xtrabackup_20161117010002
................................................
innobackupex: Starting to copy InnoDB system tablespace
innobackupex: in '/apps/backup/xtrabackup_20161117010002'
innobackupex: back to original InnoDB data directory '/apps/dbdat/mariadb10_data3306'
innobackupex: Copying '/apps/backup/xtrabackup_20161117010002/ibdata1' to '/apps/dbdat/mariadb10_data3306/ibdata1'
innobackupex: Starting to copy InnoDB undo tablespaces
innobackupex: in '/apps/backup/xtrabackup_20161117010002'
innobackupex: back to '/apps/dbdat/mariadb10_data3306'
innobackupex: Starting to copy InnoDB log files
innobackupex: in '/apps/backup/xtrabackup_20161117010002'
innobackupex: back to original InnoDB log directory '/apps/dbdat/mariadb10_data3306'
innobackupex: Copying '/apps/backup/xtrabackup_20161117010002/ib_logfile2' to '/apps/dbdat/mariadb10_data3306/ib_logfile2'
innobackupex: Copying '/apps/backup/xtrabackup_20161117010002/ib_logfile0' to '/apps/dbdat/mariadb10_data3306/ib_logfile0'
innobackupex: Copying '/apps/backup/xtrabackup_20161117010002/ib_logfile1' to '/apps/dbdat/mariadb10_data3306/ib_logfile1'
innobackupex: Copying '/apps/backup/xtrabackup_20161117010002/ib_logfile3' to '/apps/dbdat/mariadb10_data3306/ib_logfile3'
innobackupex: Finished copying back files.
161118 09:51:30  innobackupex: completed OK!
上面顯示OK,表示成功copy備份集
5.啟動mysql
/apps/svr/mariadb10/bin/mysqld_safe --defaults-file=/apps/dbdat/my3306.cnf &
檢查是否有成功啟動:
a 檢查程序
[

[email protected] ~]$ ps -ef|grep mysql
apps     21281 21204  0 09:52 pts/0    00:00:00 /bin/sh /apps/svr/mariadb10/bin/mysqld_safe --defaults-file=/apps/dbdat/my3306.cnf
apps     21837 21281 11 09:52 pts/0    00:00:01 /apps/svr/mariadb10/bin/mysqld --defaults-file=/apps/dbdat/my3306.cnf --basedir=/apps/svr/mariadb10 --datadir=/apps/dbdat/mariadb10_data3306 --plugin-dir=/apps/svr/mariadb10/lib/plugin --log-error=/apps/logs/mysql/error3306.log --open-files-limit=8192 --pid-file=/apps/dbdat/mariadb10_data3306/mysql.pid --socket=/tmp/mysql3306.sock --port=3306
apps     21906 21204  0 09:53 pts/0    00:00:00 grep mysql
b.檢查埠
[
[email protected]
~]$ netstat -an|grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN     
unix  2      [ ACC ]     STREAM     LISTENING     15423289 /tmp/mysql3306.sock
c.檢查錯誤日誌
161118 09:52:48 mysqld_safe Starting mysqld daemon with databases from /apps/dbdat/mariadb10_data3306
161118  9:52:49 [Note] /apps/svr/mariadb10/bin/mysqld (mysqld 10.0.20-MariaDB-log) starting as process 21837 ...
2016-11-18 09:52:49 7f56e11d0760 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
161118  9:52:49 [Note] InnoDB: Using mutexes to ref count buffer pool pages
161118  9:52:49 [Note] InnoDB: The InnoDB memory heap is disabled
161118  9:52:49 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
161118  9:52:49 [Note] InnoDB: Memory barrier is not used
161118  9:52:49 [Note] InnoDB: Compressed tables use zlib 1.2.3
161118  9:52:49 [Note] InnoDB: Using Linux native AIO
161118  9:52:49 [Note] InnoDB: Using CPU crc32 instructions
161118  9:52:49 [Note] InnoDB: Initializing buffer pool, size = 21.0G
161118  9:52:50 [Note] InnoDB: Completed initialization of buffer pool
161118  9:52:50 [Note] InnoDB: Highest supported file format is Barracuda.
161118  9:52:51 [Note] InnoDB: 128 rollback segment(s) are active.
161118  9:52:51 [Note] InnoDB: Waiting for purge to start
161118  9:52:51 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.24-72.2 started; log sequence number 54808221346
161118  9:52:51 [Note] Plugin 'FEEDBACK' is disabled.
161118  9:52:51 [Note] Server socket created on IP: '0.0.0.0'.
161118  9:52:51 [Note] Event Scheduler: Loaded 0 events
161118  9:52:51 [Note] Event Scheduler: scheduler thread started with id 2
161118  9:52:51 [Note] /apps/svr/mariadb10/bin/mysqld: ready for connections.
Version: '10.0.20-MariaDB-log'  socket: '/tmp/mysql3306.sock'  port: 3306  MariaDB Server
6.登入mysql查詢表
/apps/svr/mariadb10/bin/mysql -uroot -p -S /tmp/mysql3306.sock
MariaDB [(none)]> use ie2
Database changed
MariaDB [ie2]> show tables;
MariaDB [ie2]> desc Dos
    -> ;
ERROR 1146 (42S02): Table 'ie2.Dos' doesn't exist
MariaDB [ie2]> desc `MetaData`;
ERROR 1146 (42S02): Table 'ie2.metadata' doesn't exist
---檢查磁碟上的資料檔案
[
[email protected]
mariadb10_data3306]$ cd ie2
[[email protected] ie2]$ ls -ltr
total 12988
-rw-rw-r-- 1 apps apps   131072 Nov 18 09:51 Dos.ibd
-rw-rw-r-- 1 apps apps     9921 Nov 18 09:51 Dos.frm
-rw-rw-r-- 1 apps apps       61 Nov 18 09:51 db.opt
[[email protected] ie2]$ cat db.opt
default-character-set=utf8
default-collation=utf8_general_ci
將生產環境的備份的配置檔案與測試恢復環境用diff比較一下:
[[email protected] dbdat]$ diff mariadb10_3306.cnf my3306.cnf
2,3c2,3
< mysqld=/apps/svr/mariadb10/bin/mysqld_safe
< mysqladmin=/apps/svr/mariadb10/bin/mysqladmin
---
> mysqld=/apps/svr/mariadb101/bin/mysqld_safe
> mysqladmin=/apps/svr/mariadb101/bin/mysqladmin
5c5
< log=/apps/logs/mysql/multi.log
---
> log=/apps/logs/mysql/multi3306.log
33c33
< server-id=621133306 
---
> server-id=313306 
107c107
< lower_case_table_names=0 
---
> lower_case_table_names=1 
212c212
< read_only=0
---
> read_only 
218c218
< #slave_exec_mode= 
---
> #c_mode= 
221,231c221
< slave_parallel_threads=0 # for mariadb10 

< #server-id = 14
< #log-bin = slave-bin.log

< #replicate_wild_do_table = ie2.%
---
> #slave_parallel_threads=4 # for mariadb10 
234c224
< slave_compressed_protocol=0 #for RBR
---
> #slave_compressed_protocol #for RBR
255c245
< expire_logs_days=3 
---
> expire_logs_days=7
313c303
< innodb_buffer_pool_size=24G  #for mariadb 
---
> innodb_buffer_pool_size=21G  #for mariadb 
328d317
< innodb_io_capacity_max=2400
335d323
< innodb_lru_scan_depth=1024
340c328
< innodb_file_per_table 
---
> innodb_file_per_table=1 
384c372
< innodb_thread_concurrency=32       #at least equal cpu nums 
---
> innodb_thread_concurrency=8       #at least equal cpu nums 
408c396
< key_buffer_size=2048M 
---
> key_buffer_size=1024M 
437c425
< myisam_max_sort_file_size=10G 
---
> myisam_max_sort_file_size=5G 
472c460
< #federated
---
> federated
492d479
< max_allowed_packet = 2G # add by alading on 20151110
499,500c486,487
< key_buffer = 512M
< sort_buffer_size = 512M
---
> key_buffer = 256M
> sort_buffer_size = 256M
511a499
>
上面配置比較,在於下面引數不同:
< lower_case_table_names=0 
> lower_case_table_names=1 
大小寫問題,改成 0 去試一下。
四.問題解決
 將配置檔案修改lower_case_table_names=0 ,並重啟mysql例項。
然後登入mysql檢視,不再報錯。
lower_case_table_names=1時,會將表名轉換成小寫來查詢和儲存。如果希望在資料庫裡面建立表的時候保留大小寫字元狀態,則應該把這個引數置0: lower_case_table_names=0。

相關推薦

xtrabackup恢復mysql提示存在處理

一.基本資訊 生產環境mysql版本:mariadb 10.0.20   備份xtrabackup版本:xtrabackup 2.2.9 或 2.4.4  測試恢復環境mysql版本:mariadb 10.0.20 恢復xtrabackup版本:xtrabackup 2.2

安裝完MySQL輸入"net start mysql"提示"'net'是內部或外部命令,也是可執行的程式或批處理檔案"的響應辦法

在Windows平臺下,需要將mysql路徑新增到環境變數中: 1.右鍵點選“我的電腦”-“屬性”-“高階”-“環境變數”-“系統 變數”-雙擊“Path”-將mysql的路徑“D:\wamp\bin\mysql\mysql5.0.51b\bin\  (這裡假設您的MYSQ

Mysql 下載與安裝問題二:安裝完MySQL輸入"net start mysql"提示"'net'是內部或外部命令...

宣告:本文只針對我所安裝的MySQL 5.7.18(64位)版本所遇到的問題。 問題:  安裝完MySQL後輸入"net start mysql"後提示"'net'不是內部或外部命令... 解決方法

二級考試MySQL數據庫怎麽用?mysql拷貝數據庫庫文件,復制還原顯示存在怎麽辦

adb 輸入 顯示 怎麽辦 config 錯誤提示 當我 不同的 虛擬 問題環境,最近準備mysql考試,用的 **教育的題庫,做操作題的時候發現把題庫給的數據庫文件復制data目錄,能顯示表,但是不能操作表 1 查看mysql存放數據庫文件的目錄

mysql 查詢表出錯 提示存在

select AlarmType,RefreshTime from CLD_AlarmSetting where 1=1  ExecuteData Table 'cldcustdata.CLD_AlarmSetting' doesn't exist select AlarmType,RefreshTime f

mysql 提示存在的解決方法error: 1146: Table doesn't exist

直接拷貝資料庫導致提示表不存在的解決方法 電腦重灌系統後把原來的mysql data複製進去後大部分表是可以訪問的,但是有幾個表提示表不存在: error: 1146: Table 'a_content' doesn't exist這種情況就是要把原來mysql安裝目錄data裡的 ibdata1 也要拷

mysql 提示存在的解決方法error: 1146: Table doesn't exist

電腦重灌系統後把原來的mysql data複製進去後大部分表是可以訪問的,但是有幾個表提示表不存在: error: 114

Linux上檢查MySQL數據儲引擎類型三板斧

linuxMySQl主要使用兩種存儲引擎:MyISAM 和 Innodb。MyISAM是非事務的,因此擁有讀取更快,然而InnoDB完全支持細顆粒度的事務鎖定(比如:commit/rollback)。當你創建一張新的MySQL表時,你要選擇它的類型(也就是存儲引擎)。如果沒有選擇,你就會使用與預設置的默認引擎

傳真機傳真外地撥號提示號碼正確問題

b- 內部使用 發送 -1 真機 信號 如果 tex 程控交換機     撥打電話或者發傳真需要號碼前加9(或其他數字)的,一般是單位內部使用了小型程控交換機。這樣平常內部通話就可以直接撥號,通過小型程控交換機連接,不需要經過外線,也就不產生電話費。當需要對外撥打電話或發傳

阿裏雲安裝mysql查看到初始密碼的解決辦法

leg log strong auth The 建議 大寫 cat 設置 在阿裏雲安裝mysql後用grep ‘A temporary password‘ /var/log/mysqld.log命令查看MySQL初始密碼,毛線都沒有看到,然後直接到/var/log/mysq

docker升級提示賬戶被允許使用docker的情況:You are not allowed to use Docker. You must be in the...

設定使用者組許可權 即可: 第一步: powershell輸入如下指令: C:\WINDOWS\system32\compmgmt.msc 選擇docker-users,然後雙擊: 然後選擇新增按鈕: 選擇高階: 然後立即查詢,再搜尋結果中,選中自己的登陸

安裝mysql提示到dll檔案的一些個人經驗和問題

1.在W10下安裝mysql-installer-community-8.0.x.msi時安裝到initializing Database時提示找不到LIBEAY32.DLL和ssleay32.dll導致安裝失敗。嘗試了網上的一些方法,沒有解決。 2.又從官網下載了一個mysql-5.7.2

本地專案部署到伺服器 啟動 報錯 資料原因 解決

由於linux上mysql是區分大小寫的,所以導致本地存在的表,提示不存在   解決: 設定mysql 配置檔案 ,禁止區分大小寫   1.切換到root使用者,進入 /etc/mysql/mysql.conf.d目錄  2.開啟mysqld.cnf檔案,在【my

使用innobackupex、xtrabackup恢復Mysql資料庫

安裝xtrabackup的資料庫 # yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-3.noarc

使用xtrabackup恢復mysql資料庫

1,prepare xtrabackup [–defaults-file=#] --prepare [OPTIONS] 使用說明: –defaults-file= 指定my.cnf檔案 –prepare 說明將要進行資料庫恢復 –target-dir 備份資料所在路徑 2,copy-ba

python pip 安裝包提示到的問題的解決

pip很方便使用起來 今天剛用,但是遇到了安裝後import的時候提示找不到的問題 首先造成這種問題有可能是這個原因: 你用python2.6安裝的pip, 後來升級了python到2.7或者3.x pip的安裝還是預設裝到python2.6的site package裡面去

Oracle閃回恢復誤刪除的儲過程、包、函數...

數據庫 函數 use 分鐘 ack ... 根據 ora interval 在日常的數據庫開發過程匯總難免會出現一些誤刪除的動作, 對於一些誤刪的操作我們可以通過oracle提供的閃回機制恢復誤刪數據, 從而避免出現較大的生產事故. 下面是本人平時工作中積累的一些常用

MYSQL查詢A在B中的記錄

A表的NAME欄位和B表的NAME欄位相同,查詢  A表中NAME項不在B表中的NAME項的記錄。 select name from A where name not in (select name from B) 或者 select A.NAME from A l

mysql中多關聯查詢

       大家在使用mysql查詢時正常是直接一個表的查詢,要不然也就是多表的關聯查詢,使用到了左聯結(left join)、右聯結(right join)、內聯結(inner join)、外聯結(outer join)。這種都是兩個表之間有一定關聯,也就是我們常常說的

《JavaScript高階程式設計》,removeChild(),節點在於document中

最近看到《JavaScript高階程式設計》,第10章介紹replaceChild(),裡面有一句話 在使用 replaceChild()插入一個節點時,該節點的所有關係指標都會從被它替換的節點複製過來。儘管從技術上講,被替換的節點仍然還在文件中,但它在