bitsCN.com
MySQL数据库逻辑和物理备份 逻辑备份 法1: 生成特定格式的纯文本 SELECT * INTO OUTFILE 'F:/data.txt' FIELDS TERMINATED BY ',' FROM g_user LOAD DATA INFILE 'F:/data.txt' INTO TABLE g_user FIELDS TERMINATED BY ',' IGNORE number LINES 如果你没有指定一个 FIELDS 子句,缺省的相同于如果你这样写: FIELDS TERMINATED BY '/t' ENCLOSED BY '' ESCAPED BY '//'如果你没有指定一个 LINES 子句,缺省的相同于如果你这样写: LINES TERMINATED BY '/n' 发2:生成Insert语句备份 利用工具mysqldump 物理备份 MyISAM 存储引擎 MyISAM 存储引擎的所有数据都存放在MySQL 配置中所设定的“datadir”目录下。实际上不管我们使用的是MyISAM 存储引擎还是其他任何存储引擎,每一个数据库都会在“datadir”目录下有一个文件夹(包括系统信息的数据库mysql 也是一样)。在各个数据库中每一个MyISAM 存储引擎表都会有三个文件存在,分别为记录表结构元数据的“.frm”文件,存储表数据的“.MYD”文件,以及存储索引数据的“.MYI”文件。由于MyISAM 属于非事务性存储引擎,所以他没有自己的日志文件。所以MyISAM 存储引擎的物理备份,除了备份MySQL 系统的共有物理文件之外,就只需要备份上面的三种文件即可。 Innodb 存储引擎Innodb 存储引擎属于事务性存储引擎,而且存放数据的位置也可能与MyISAM 存储引擎有所不同,这主要取决于我们对Innodb 的“”相关配置所决定。决定Innodb 存放数据位置的配置为“ innodb_data_home_dir ” 、“innodb_data_file_path ” 和“innodb_log_group_home_dir”这三个目录位置指定参数,以及另外一个决定Innodb 的表空间存储方式的参数“innodb_file_per_table”。前面三个参数指定了数据和日志文件的存放位置,最后一个参数决定Innodb 是以共享表空间存放数据还是以独享表空间方式存储数据。这几个参数的相关使用说明我们已经在第一篇的“MySQL 存储引擎介绍”中做了相应的解释,在MySQL 的官方手册中也有较为详细的说明,所以这里就不再累述了。
如果我们使用了共享表空间的存储方式, 那么Innodb 需要备份备份“innodb_data_home_dir”和“innodb_data_file_path”参数所设定的所有数据文件,“datadir”中相应数据库目录下的所有Innodb 存储引擎的“.frm”文件;而如果我们使用了独享表空间,那么我们除了备份上面共享表空间方式所需要备份的所有文件之外,我们还需要备份“datadir”中相应数据库目录下的所有“.idb”文件,该文件中存放的才是独享表空间方式下Innodb 存储引擎表的数据。 此外,除了上面所说的数据文件之外,Innodb 还有自己存放redo 信息和相关事务信息的日志文件在“innodb_log_group_home_dir”参数所设定的位置。所以要想Innodb 物理备份能够有效使用,我们还比需要备份“innodb_log_group_home_dir”参数所设定的位置的所有日志文件。 FLUSH TABLES WITH READ LOCK;物理备份,你懂得UNLOCK TABLES;备份策略重要的内容物理备份然后其他逻辑备份 作者 bengda bitsCN.com