0. 目标端必须有同名表,没有则建一个空表;
####################################
1、 源端文件准备
源端:
flush tables t for
export;
复制
t.ibd, t.cfg到目标端。
###############################
flush tables tt7 for
export;
cp tt7*
../ops
2、 目标端<存在同样的表则>丢弃原来的数据文件
目标端:
alter table tt7 discard
tablespace;
3、 目标端加载新的数据文件 t.ibd
alter table tt7 import tablespace;
4、源端释放锁
源端:
unlock tables;
SELECT * FROM
ops2.tt7
;
SELECT * FROM
ops.tt7
;
import tablespace报错:
mysql> alter table tt7 import
tablespace;
ERROR 1812 (HY000): Tablespace is missing for table
ops.tt7.
确认再相应的目录存在两个文件
确认属主和权限
#####################################################
处理过程
[root@qaserver120 ops]# ll
total 80
drwxr-xr-x 2 root root
36 Dec 2
21:42 000
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
[root@qaserver120 ops]#
[root@qaserver120 ops]#
[root@qaserver120 ops]#
[root@qaserver120 ops]# cp 000
[root@qaserver120 ops]# ll
total 196
drwxr-xr-x 2 root root
36 Dec 2
21:42 000
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
-rw-r----- 1 root root
627 Dec 2
21:45 tt7.cfg
-rw-r----- 1 root root
114688 Dec 2 21:45 tt7.ibd
[root@qaserver120 ops]# pwd
/data/mysql/ops
[root@qaserver120 ops]# ll
total 196
drwxr-xr-x 2 root root
36 Dec 2
21:42 000
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
-rw-r----- 1 root root
627 Dec 2
21:45 tt7.cfg
-rw-r----- 1 root root
114688 Dec 2 21:45 tt7.ibd
[root@qaserver120 ops]# chown mysql.mysql tt7*
[root@qaserver120 ops]#
[root@qaserver120 ops]#
[root@qaserver120 ops]#
[root@qaserver120 ops]#
[root@qaserver120 ops]# ll
total 196
drwxr-xr-x 2 root root
36 Dec 2
21:42 000
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
-rw-r----- 1 mysql mysql
627 Dec 2 21:45 tt7.cfg
-rw-r----- 1 mysql mysql 114688 Dec 2 21:46
tt7.ibd
[root@qaserver120 ops]#
#####################################################
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
| tt7
|
+---------------+
2 rows in set (0.00 sec)
mysql> select * from tt7;
ERROR 1814 (HY000): Tablespace has been discarded for table
'tt7'
mysql>
mysql>
mysql> alter table tt7 import
tablespace;
ERROR 1812 (HY000): Tablespace is missing for table
ops.tt7.
mysql>
mysql>
mysql>
mysql> alter table tt7 import tablespace;
Query OK, 0 rows affected (0.08 sec)
mysql>
mysql>
mysql> select * from tt7;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql>
###############################################
################################################
mysql> mysql> show tables;
+----------------+
| Tables_in_ops2 |
+----------------+
| tt2
|
| tt3
|
| tt7
|
+----------------+
3 rows in set (0.00 sec)
mysql>
mysql>
mysql>
mysql>
mysql> use ops
Database changed
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
+---------------+
1 row in set (0.00 sec)
mysql>
mysql> use ops2;
Database changed
mysql> select * from tt7;
+--------+------+
| x |
y |
+--------+------+
| BBBBBB | NULL |
+--------+------+
1 row in set (0.00 sec)
mysql>
mysql>
mysql> insert into tt7 select * from tt3;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0
Warnings: 0
mysql> insert into tt7 select * from tt3;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0
Warnings: 0
mysql> select * from tt7;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql>
mysql>
mysql>
mysql>
mysql>
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
mysql>
mysql>
mysql>
mysql>
mysql>
mysql> exit
Bye
[root@qaserver120 pkg]# cd /data/mysql/ops2
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:36
tt7.ibd
[root@qaserver120 ops2]#
[root@qaserver120 ops2]#
[root@qaserver120 ops2]#
[root@qaserver120 ops2]# mysql -u'root'
-p'fgxkB9;Zq40^MFQUi$PJ'
-A
mysql: [Warning] Using a password on the command line
interface can be insecure.
Welcome to the MySQL monitor. Commands end
with ; or \g.
Your MySQL connection id is 56
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All
rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or
its
affiliates. Other names may be trademarks of their
respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current
input statement.
mysql>
mysql>
mysql>
mysql>
mysql> use ops2
Database changed
mysql>
mysql> flush tables tt7
for export;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+----------------+
| Tables_in_ops2 |
+----------------+
| tt2
|
| tt3
|
| tt7
|
+----------------+
3 rows in set (0.01 sec)
mysql> exit
Bye
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:36
tt7.ibd
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:36
tt7.ibd
[root@qaserver120 ops2]# pwd
/data/mysql/ops2
[root@qaserver120 ops2]# cd cd
/data/mysql
-bash: cd: cd: No such file or directory
[root@qaserver120 ops2]# cd
/data/mysql/ops2
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:17
tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec 2 21:36
tt7.ibd
[root@qaserver120 ops2]# ll -al
total 244
drwxr-x--- 2 mysql mysql
51 Dec 2
21:38 .
drwxr-xr-x 12 mysql mysql
4096 Dec 2 21:17 ..
-rw-r----- 1 mysql mysql 114688
Dec 2 21:17 tt2.ibd
-rw-r----- 1 mysql mysql 114688
Dec 2 21:17 tt3.ibd
-rw-r----- 1 mysql mysql 114688
Dec 2 21:36 tt7.ibd
[root@qaserver120 ops2]# pwd
/data/mysql/ops2
[root@qaserver120 ops2]# mysql -u'root'
-p'fgxkB9;Zq40^MFQUi$PJ'
-A
mysql: [Warning] Using a password on the command line
interface can be insecure.
Welcome to the MySQL monitor. Commands end
with ; or \g.
Your MySQL connection id is 57
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All
rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or
its
affiliates. Other names may be trademarks of their
respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current
input statement.
mysql> use ops2
Database changed
mysql> show tables;
+----------------+
| Tables_in_ops2 |
+----------------+
| tt2
|
| tt3
|
| tt7
|
+----------------+
3 rows in set (0.00 sec)
mysql> select * from tt7;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql> flush tables tt7
for export;
Query OK, 0 rows affected (0.00 sec)
mysql> use ops
Database changed
mysql> ll
-> ;
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for
the right syntax to use near 'll' at line 1
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
+---------------+
1 row in set (0.00 sec)
mysql>
mysql>
mysql> alter table tt7 import
tablespace;
ERROR 1100 (HY000): Table 'tt7' was not locked with LOCK
TABLES
mysql>
mysql>
mysql> use ops2
Database changed
mysql> show tables;
+----------------+
| Tables_in_ops2 |
+----------------+
| tt2
|
| tt3
|
| tt7
|
+----------------+
3 rows in set (0.00 sec)
mysql> select * from tt7;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> show create table tt7;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table
|
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tt7 | CREATE TABLE `tt7`
(
`x` varchar(200) CHARACTER SET utf8mb4
COLLATE utf8mb4_0900_as_cs DEFAULT NULL,
`y` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_0900_as_cs |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> use ops
Database changed
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
+---------------+
1 row in set (0.01 sec)
mysql> CREATE TABLE `tt7` (
->
`x` varchar(200) CHARACTER SET utf8mb4 COLLATE
utf8mb4_0900_as_cs DEFAULT NULL,
->
`y` int(11) DEFAULT NULL
-> ) ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_as_cs ;
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql>
mysql>
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
| tt7
|
+---------------+
2 rows in set (0.00 sec)
mysql> select * from tt7;
Empty set (0.00 sec)
mysql>
mysql> alter table tt7 discard
tablesapce;
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for
the right syntax to use near 'tablesapce' at line 1
mysql> alter table tt7 discard
tablespace;
Query OK, 0 rows affected (0.03 sec)
mysql>
mysql>
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
| tt7
|
+---------------+
2 rows in set (0.00 sec)
mysql> select * from tt7;
ERROR 1814 (HY000): Tablespace has been discarded for table
'tt7'
mysql>
mysql>
mysql>
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
| tt7
|
+---------------+
2 rows in set (0.00 sec)
mysql> select * from tt7;
ERROR 1814 (HY000): Tablespace has been discarded for table
'tt7'
mysql>
mysql>
mysql> alter table tt7 import
tablespace;
ERROR 1812 (HY000): Tablespace is missing for table
`ops`.`tt7`.
mysql>
mysql>
mysql>
mysql> alter table tt7 import tablespace;
Query OK, 0 rows affected (0.08 sec)
mysql>
mysql>
mysql> select * from tt7;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql> SELECT * FROM
ops2.tt7
;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql> SELECT * FROM
ops.tt7
;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql>
mysql>
mysql>
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql> use ops
Database changed
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| tt2
|
| tt7
|
+---------------+
2 rows in set (0.00 sec)
mysql>
mysql>
mysql>
mysql> use ops2;
Database changed
mysql>
mysql>
mysql> show tables;
+----------------+
| Tables_in_ops2 |
+----------------+
| tt2
|
| tt3
|
| tt7
|
+----------------+
3 rows in set (0.01 sec)
mysql>
mysql> select * from tt7;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
mysql>
mysql> use ops;
Database changed
mysql>
mysql>
mysql> select * from tt7;
+--------------+------+
| x
|
y |
+--------------+------+
| BBBBBB
| NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
| AAAAAA
| NULL |
| BBBBBB
| NULL |
| 555555555555 | NULL |
+--------------+------+
7 rows in set (0.00 sec)
Image may be NSFW.
Clik here to view.
