我的数据库中有一个非常大的表,我想备份并复制到另一个从服务器。
我认为最好的方法是将该表的数据导出到csv文件,并通过命令sqlimport将其导入从服务器(它比mysql运行得快)
所以我的问题是如何在数据库运行时将表的数据导出到csv文件? 是否可以在使用mysqldump时激活选项--single-transaction?
提前谢谢。
答案 0 :(得分:0)
以下是我如何转储表并导出到csv:
的示例select * from product where datecreated between '2013-08-01' and '2013-11-11' order by datecreated desc INTO OUTFILE '/tmp/xmas2.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';
然后导航到您的tmp目录并打开csv。
Volterony
答案 1 :(得分:0)
在从属主机上创建表。
从奴隶服务器上的shell:
#nohup mysqldump -h“主服务器的IP或主机”-uuser -p“DB_NAME”“TABLE_NAME”| mysql -user = user -password = password“name_of_your_database”&
如果您正在使用Master和Slave复制进行捕获。
1.-将生产服务器配置为主服务器
A)在[mysqld]部分编辑/etc/mysql/my.cnf:
服务器ID = 1
binlog-format = mixed
登录斌= MySQL的槽
DATADIR =的/ var / lib中/ MySQL的
的innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
B)重启服务器
C)CREATE USER replicant @ slavehost / ip:port;
授予复制权限。复制@ slavehost / ip:端口IDENTIFIED BY'pass';
2.-将Mysql数据库备份到backupserver中。用binlog创建备份文件 位置。
#nohup mysqldump -uroot -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data = 2 -A> dump_DBNAME .sql
3.-保存MASTER_LOG_FILE和MASTER_LOG_POS
#head dump_DBNAME .sql | grep“MASTER_LOG_FILE”> MASTER_LOG_FILE_DBNAME .sql
#head dump_DBNAME .sql | grep“MASTER_LOG_POS”> MASTER_LOG_POS_DBNAME .sql
4.配置从属服务器
编辑/etc/mysql/my.cnf
server-id = 10
binlog-format = mixed
log_bin = mysql-bin
relay-log = mysql-relay-bin
log-slave-updates = 1
只读= 1
5.-将备份恢复到从属服务器:
Otion 1:压缩de dump文件gzip dump_DBNAME .sql并使用FTP传输或作为电子邮件发送。
然后从从属服务器恢复备份
#gunzip dump_DBNAME .sql.gz
#mysqldump -hORIGINALHOST -uUSERNAME -p< dump_DBNAME .sql
选项2:直接从主服务器备份到从服务器
#nohup mysql -mysqldump -hslavehost -uUSERNAME -p dump_DBNAME .sql< dump_DBNAME .sql&
6.配置从属服务器
编辑/etc/mysql/my.cnf
server-id = 10
binlog-format = mixed
log_bin = mysql-bin
relay-log = mysql-relay-bin
log-slave-updates = 1
只读= 1
启动从属服务器
CHANGE MASTER TO MASTER_HOST ='master-server-ip',MASTER_USER ='replicant',MASTER_PASSWORD ='slave-server-password',MASTER_LOG_FILE ='value log file',MASTER_LOG_POS ='value log pos';
10.-启动并查看从属状态
START SLAVE;
显示失败状态\ G
此时我们在Slave Server中有一份原始服务器