如何從MySQL全庫備份的dump檔案中恢復某張表和表結構
例如全庫dump檔案為test.sql
從全庫備份test.sql中抽取出t_user_sign表的內容:
[root@linuxidc ~]# grep 'INSERT INTO `t_user_sign`' test.sql > /tmp/t_user_sign.sql
INSERT INTO `t_user_sign` VALUES ('913400007568317795','0','661401092936','20150101000000','60.166.38.226','2016-11-24 17:24:19','
0001221E7FF447FB96111C2510F5B80F','74-27-EA-4B-F5-A1',,...............................................................................................................
.........................................................................................................
從全庫備份中test.sql抽取出t_user_sign表的建表結構:
[root@linuxidc ~]# sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `t_user_sign`/!d;q' test.sql > /tmp/create.sql
[root@linuxidc ~]# cat /tmp/create.sql
DROP TABLE IF EXISTS `t_user_sign`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t_user_sign` (
`SH` varchar(25) DEFAULT NULL COMMENT '稅號',
`ZFJH` varchar(20) DEFAULT NULL COMMENT '主分機號',
`KPJH` varchar(20) DEFAULT NULL COMMENT '開票機號',
`FXSJ` varchar(26) DEFAULT NULL COMMENT '發行時間',
`IP` varchar(20) DEFAULT NULL COMMENT '客戶IP地址',
`ZCSJ` datetime DEFAULT NULL COMMENT '註冊時間',
`ID` varchar(32) NOT NULL COMMENT 'ID',
`MAC` varchar(32) DEFAULT NULL COMMENT 'MAC地址',
`DQMC` varchar(120) DEFAULT NULL COMMENT '地區名稱',
`DQBM` varchar(6) DEFAULT NULL COMMENT '地區編碼',
`OS` varchar(120) DEFAULT NULL COMMENT '作業系統',
`SBLX` varchar(120) DEFAULT NULL COMMENT '裝置型別',
`WLFWS` varchar(120) DEFAULT NULL COMMENT '網路服務商',
`LATITUDE` varchar(20) DEFAULT NULL COMMENT '維度',
`LONGITUDE` varchar(20) DEFAULT NULL COMMENT '經度',
`NAME` varchar(500) DEFAULT NULL COMMENT '企業名稱',
`VERSION` varchar(30) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
根據binlog時間點恢復:
[root@linuxidc ~]# mysqlbinlog --start-datetime="2017-1-16 19:00:00" --stop-datetime="2017-1-16 19:38:00" mysql-bin.000398 > /tmp/time.sql
從全庫備份test.sql中抽取出t_user_sign表的內容:
[root@linuxidc ~]# grep 'INSERT INTO `t_user_sign`' test.sql > /tmp/t_user_sign.sql
INSERT INTO `t_user_sign` VALUES ('913400007568317795','0','661401092936','20150101000000','60.166.38.226','2016-11-24 17:24:19','
0001221E7FF447FB96111C2510F5B80F','74-27-EA-4B-F5-A1',,...............................................................................................................
.........................................................................................................
從全庫備份中test.sql抽取出t_user_sign表的建表結構:
[root@linuxidc ~]# sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `t_user_sign`/!d;q' test.sql > /tmp/create.sql
[root@linuxidc ~]# cat /tmp/create.sql
DROP TABLE IF EXISTS `t_user_sign`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t_user_sign` (
`SH` varchar(25) DEFAULT NULL COMMENT '稅號',
`ZFJH` varchar(20) DEFAULT NULL COMMENT '主分機號',
`KPJH` varchar(20) DEFAULT NULL COMMENT '開票機號',
`FXSJ` varchar(26) DEFAULT NULL COMMENT '發行時間',
`IP` varchar(20) DEFAULT NULL COMMENT '客戶IP地址',
`ZCSJ` datetime DEFAULT NULL COMMENT '註冊時間',
`ID` varchar(32) NOT NULL COMMENT 'ID',
`MAC` varchar(32) DEFAULT NULL COMMENT 'MAC地址',
`DQMC` varchar(120) DEFAULT NULL COMMENT '地區名稱',
`DQBM` varchar(6) DEFAULT NULL COMMENT '地區編碼',
`OS` varchar(120) DEFAULT NULL COMMENT '作業系統',
`SBLX` varchar(120) DEFAULT NULL COMMENT '裝置型別',
`WLFWS` varchar(120) DEFAULT NULL COMMENT '網路服務商',
`LATITUDE` varchar(20) DEFAULT NULL COMMENT '維度',
`LONGITUDE` varchar(20) DEFAULT NULL COMMENT '經度',
`NAME` varchar(500) DEFAULT NULL COMMENT '企業名稱',
`VERSION` varchar(30) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
根據binlog時間點恢復:
[root@linuxidc ~]# mysqlbinlog --start-datetime="2017-1-16 19:00:00" --stop-datetime="2017-1-16 19:38:00" mysql-bin.000398 > /tmp/time.sql
[root@idb4 tmp]# more /tmp/time.sql
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#170116 19:37:02 server id 1 end_log_pos 120 CRC32 0x1cf0554e Start: binlog v 4, server v 5.6.27-log created 170116 19:37:02
BINLOG '
XrB8WA8BAAAAdAAAAHgAAAAAAAQANS42LjI3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAU5V
8Bw=
'/*!*/;
# at 120
#170116 19:37:02 server id 1 end_log_pos 215 CRC32 0x16c50c8a Query thread_id=238 exec_time=0 error_code=0
SET TIMESTAMP=1484566622/*!*/;
SET @@session.pseudo_thread_id=238/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#170116 19:37:02 server id 1 end_log_pos 120 CRC32 0x1cf0554e Start: binlog v 4, server v 5.6.27-log created 170116 19:37:02
BINLOG '
XrB8WA8BAAAAdAAAAHgAAAAAAAQANS42LjI3LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAU5V
8Bw=
'/*!*/;
# at 120
#170116 19:37:02 server id 1 end_log_pos 215 CRC32 0x16c50c8a Query thread_id=238 exec_time=0 error_code=0
SET TIMESTAMP=1484566622/*!*/;
SET @@session.pseudo_thread_id=238/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1075838976/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
.............................................................................................................................................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2132661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從MySQL全庫備份中恢復某個庫和某張表MySql
- 用sed從mysqldump全備檔案中取出某張表的表結構MySql
- 從全備份的SQL語句中恢復某張表 [原創]SQL
- 【Mysql】Mysql從frm檔案裡恢復表結構MySql
- mysqldump 備份單張表和恢復MySql
- 課時7-備份與恢復----從dump檔案中找出單個表的資訊
- 如何用Percona XtraBackup進行MySQL從庫的單表備份和恢復MySql
- mysql 從 frm 檔案恢復 table 表結構的3種方法MySql
- 【Mysql】恢復slave上某幾張表的方法MySql
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- MySQL備份和恢復資料表的方法MySql
- 如何從Active Backup for Business備份中恢復檔案
- 從全備中恢復單庫或單表,小心有坑!
- 獲取某張表的表結構
- windwos server 路由備份和恢復 路由表備份和恢復Server路由
- 表空間不完全恢復(全備--備份控制檔案--刪除表空間andy--日誌檔案)
- 不完全恢復(全備--備份控制檔案--新建表空間andy--日誌檔案)
- standby全庫rman備份檔案恢復到異機
- 【備份恢復】從備份恢復資料庫資料庫
- 控制檔案的備份和恢復
- 恢復MySQL InnoDB表結構的方法MySql
- mysqldump 備份匯出資料排除某張表或多張表MySql
- 【實驗】從RMAN備份中恢復spfile檔案
- 備份與恢復--從備份的歸檔日誌中恢復資料
- 從備份片中恢復某個指定得歸檔或者資料檔案
- mysql 恢復(one)資料庫及單張表MySql資料庫
- 備份與恢復--利用備份的控制檔案恢復
- MySQL innobackupex全量備份恢復MySql
- MySQL 5.6 xtrabackup 全量和增量的備份和恢復MySql
- pg_dump 備份,恢復資料庫資料庫
- 【MySQL】MySQL備份和恢復MySql
- mysql無備份恢復-獨立表空間MySql
- Mysql備份和恢復MySql
- undo表空間檔案丟失恢復(1)--有備份
- mysql之 Innobackupex(全備+增量)備份恢復MySql
- 資料庫(表)的邏輯備份與恢復資料庫
- MYSQL 匯出資料庫中某張表的部分數…MySql資料庫
- mysqldump如何只備份表結構MySql