2014-02-11 68 views
0

我有一個非常大的表在我的數據庫中,我想備份並複製到另一個從屬服務器。MYSQLDUMP CSV文件與選項--single-transaction

最好的一個,我認爲是該表中的數據導出爲CSV文件,然後導入這些到從服務器通過命令sqlimport(它運行比MySQL快)

所以我的問題是我如何能導出表的數據庫運行時數據爲csv文件? 是否可以在使用mysqldump時激活選項--single-transaction?

預先感謝您。

回答

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

0

在從屬主機上創建表。

從你從服務器上你的shell:

#nohup的mysqldump -h 「IP或主服務器的主機」 -uUser -p 「DB_NAME」 「表格名」 | mysql -user = user -password = password「name_of_your_database」&

如果您正在使用Master和Slave複製進行搜索。

1.-配置生產服務器作爲主

A)編輯/etc/mysql/my.cnf上的[mysqld]部分:

服務器ID = 1

binlog-格式=混合

日誌斌= MySQL的槽

DATADIR =的/ var/lib中/ MySQL的

的innodb_flush_log_at_trx_commit = 1

sync_binlog = 1

B)重新啓動服務器

C)CREATE USER複製人@ slavehost/IP:端口;

GRANT REPLICATION SLAVE ON TO replicant @ slavehost/ip:port IDENTIFIED BY'pass';

2.將Mysql數據庫備份到backupserver.create包含binlog 位置的備份文件。

#nohup的mysqldump的-uroot -p --skip鎖桌--single事務--flush-日誌--hex-團塊--master數據= 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.-Config中從屬服務器

編輯/etc/mysql/my.cnf

服務器-ID = 10

二進制日誌格式=混合

log_bin = MySQL的槽

中繼日誌= MySQL的中繼槽

數奴隸更新= 1

只讀= 1

5.-恢復備份到從服務器:

Otion 1:Commpress去轉儲文件的gzip dump_DBNAME .SQL和通過FTP傳輸或通過電子郵件發送。

然後從從服務器

#gunzip dump_DBNAME .sql.gz

RESTOR備份

#mysqldump的-hORIGINALHOST -uUserName -p < dump_DBNAME .SQL

選項2:直接進行備份從主服務器到從服務器

#nohup mysql -mysqldump -hslavehost -uUSERNAME -p dump_DBNAME .sql < dump_DBNAME .sql &

6.-Config中從屬服務器

編輯/etc/mysql/my.cnf

服務器-ID = 10

二進制日誌格式=混合

log_bin = mysql- bin

relay-log = mysql-relay-bin

log-slave-updates = 1

只讀= 1

開始從服務器

CHANGE MASTER TO MASTER_HOST = '主服務器IP',MASTER_USER = '複製人',MASTER_PASSWORD = '從服務器的密碼' ,MASTER_LOG_FILE ='值日誌文件',MASTER_LOG_POS ='值日誌pos';

10。 - 啓動並查看從站的狀態

START SLAVE;

SHOW SLAVE STATUS \ G變

在這一點上,我們有原始服務器的副本從服務器中