利用innobackupex備份集恢復指定庫
1.源庫匯出表結構
mysqldump -uroot -p --no-data zabbix > info.sql
2.建立要恢復的庫、表
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> use zabbix;
mysql> source info.sql
3.檢視外來鍵約束
mysql> SELECT @@FOREIGN_KEY_CHECKS;
+----------------------+
| @@FOREIGN_KEY_CHECKS |
+----------------------+
| 1 |
+----------------------+
1 row in set (0.00 sec)
檢視要遷移的表是否有外來鍵約束:
mysql> select * from information_schema.TABLE_CONSTRAINTS where table_schema = 'zabbix' and constraint_type = 'FOREIGN KEY';
如果有的話,禁用外來鍵:
mysql> SET FOREIGN_KEY_CHECKS=0;
Query OK, 0 rows affected (0.00 sec)
4.庫中的表進行discard tablespace
mysql> select concat('alter table ',table_name,' discard tablespace;') from information_schema.tables where table_schema = 'zabbix';
mysql> alter table acknowledges discard tablespace;
Query OK, 0 rows affected (0.00 sec)
mysql> alter table actions discard tablespace;
Query OK, 0 rows affected (0.00 sec)
......
然後重新啟用外來鍵約束:
mysql> SET FOREIGN_KEY_CHECKS=1;
Query OK, 0 rows affected (0.00 sec)
5.將apply-log後的備份集中表的ibd檔案複製到資料目錄下並修改許可權:
cp *.ibd /opt/app/mysql/mysql5722/data/zabbix/
chown -R mysql.mysql /opt/app/mysql/mysql5722/data/zabbix/*
6.庫中的表進行import tablespace
mysql> select concat('alter table ',table_name,' import tablespace;') from information_schema.tables where table_schema = 'zabbix';
如果報錯:ERROR 1808 (HY000): Schema mismatch (Table has ROW_TYPE_DYNAMIC row format, .ibd file has ROW_TYPE_COMPACT row format.)
則修改表的row_format:
mysql> select concat('alter table ',table_name,' row_format=compact;') from information_schema.tables where table_schema = 'zabbix';
注意:修改表的row_format後,要重新進行第5步
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31544156/viewspace-2374677/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- innobackupex 部分表備份和恢復
- 備份與恢復:polardb資料庫備份與恢復資料庫
- innobackupex 備份MySQL資料庫MySql資料庫
- 詳解叢集級備份恢復:物理細粒度備份恢復
- 資料庫備份恢復資料庫
- Elasticsearch叢集的備份與恢復Elasticsearch
- RAC備份恢復之Voting備份與恢復
- 將RAC備份集恢復為單例項資料庫單例資料庫
- innobackupex遠端備份
- 異機使用完全備份恢復指定的PDB
- 02 . MongoDB複製集,分片集,備份與恢復MongoDB
- Mysql資料庫備份及恢復MySql資料庫
- 達夢資料庫備份恢復資料庫
- ORACLE DG從庫 Rman備份恢復Oracle
- postgresql備份與恢復資料庫SQL資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- mydumper備份恢復
- Mysql備份恢復MySql
- 備份和恢復
- innobackupex全備份流程圖流程圖
- 利用docker-compose恢復gitlab備份的資料DockerGitlab
- 資料庫備份與恢復技術資料庫
- Mongo 資料庫備份和恢復命令Go資料庫
- pg_dump 備份,恢復資料庫資料庫
- PostgreSql資料庫的備份和恢復SQL資料庫
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- 【Mongo】mongo分片加複製集的備份恢復Go
- DM7使用DMRAMN執行備份集恢復
- rman 增量備份恢復
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- MySQL 備份與恢復MySql
- KunlunDB備份和恢復
- RMAN備份恢復技巧
- redis 備份和恢復Redis
- Grafana 備份恢復教程Grafana