我有一个具有以下结构的数据库:
mysql> show tables;
+--------------------+
| Tables_in_my_PROD |
+--------------------+
| table_A |
| Table_B |
| table_C |
| view_A |
| table_D |
| table_E |
| ... |
+--------------------+
我使用脚本制作整个数据库的gzip转储文件,然后将该文件上传到Amazon S3。创建转储文件的python代码如下:
dump_cmd = ['mysqldump ' +
'--user={mysql_user} '.format(mysql_user=cfg.DB_USER) +
'--password={db_pw} '.format(db_pw=cfg.DB_PW) +
'--host={db_host} '.format(db_host=cfg.DB_HOST) +
'{db_name} '.format(db_name=cfg.DB_NAME) +
'| ' +
'gzip ' +
'> ' +
'{filepath}'.format(filepath=self.filename)]
dc = subprocess.Popen(dump_cmd, shell=True)
dc.wait()
这会创建zip文件。接下来,我使用python的boto库将其上传到Amazon S3。
当我从该zip文件恢复数据库时,我只恢复了表A,B和C.表D和E无处可寻。
表D和E位于视图
之后该视图是否存在导致问题的问题?我不知道表是否被转储到文件中,因为我不知道如何查看该文件(table_B有800万行,任何检查文件的尝试都会崩溃所有内容)
我正在使用Mariadb版
+-------------------------+------------------+
| Variable_name | Value |
+-------------------------+------------------+
| innodb_version | 5.6.23-72.1 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 10.0.19-MariaDB |
| version_comment | MariaDB Server |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
| version_malloc_library | bundled jemalloc |
+-------------------------+------------------+