xtrabackup恢复mysql后提示表不存在处理

    xiaoxiao2021-12-02  41

    一.基本信息 生产环境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 检查进程 [apps@m1234 ~]$ 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.检查端口 [apps@m1234 ~]$ 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 ---检查磁盘上的数据文件 [apps@m1234 mariadb10_data3306]$ cd ie2 [apps@m1234 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 [apps@m1234 ie2]$ cat db.opt default-character-set=utf8 default-collation=utf8_general_ci 将生产环境的备份的配置文件与测试恢复环境用diff比较一下: [apps@m1234 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。

    转载请注明原文地址: https://ju.6miu.com/read-679857.html

    最新回复(0)