网络营销电子商务研究中心  
How to buy the best prescription safety glasses in Canada? Let's study!
Go Back   网络营销电子商务研究中心 > 网站建设 > ZenCart
User Name
Password
 
FAQ Members List Calendar Cheap Glasses

Reply
 
Thread Tools Display Modes
  #1   IP: 49.87.2.24
Old 2016-05-14, 09:30 PM
Jaroso Jaroso is offline
初级会员
 
Join Date: 2010-06-24
Posts: 2
Jaroso 现在声名狼藉
Default MySQL 数据库镜像(复制) / 实时备份Zen Cart数据库

通过实现MySQL数据库镜像(复制),可以远程实时备份MySQL数据库。这样如果主机出现故障,或者主机帐号被封,都能迅速切换zencart网店到新的服务器上。

数据库镜像,需要两台服务器(或者用两台VPS主机)。一台为主服务器,另一台为从服务器,所有主服务器上数据库的变化,都实时镜像到从服务器上。

1. 在主服务器上,创建用于数据库镜像的数据库用户,从服务器用这个帐号连接主服务器。
该数据库用户可以是任何数据库用户,只要有REPLICATION SLAVE权限,由于该用户名、密码将明文保存在master.info文件中,因此建议创建、使用单独的镜像用户。

创建一个镜像用户 repl 的命令:

mysql> GRANT REPLICATION SLAVE ON *.*
-> TO 'repl'@'localhost' IDENTIFIED BY 'slavepass';

2. 设置主服务器

首先,主服务器必须打开二进制日志的功能。每台参与镜像的服务器都必须有一个唯一的标识符。该标识符为 1-231 之间的一个任意整数,只要各服务器的标识符不重复。

要设置二进制日志和服务器标识符,必须停止MySQL服务器,然后在 my.cnf 或者 my.ini 配置文件中加入下面的定义:

[mysqld]
log-bin=mysql-bin
server-id=1
3. 设置从服务器

从服务器只需要设置服务器标识符。停止MySQL服务器,然后在 my.cnf 或者 my.ini 配置文件中加入下面的定义:

[mysqld]
server-id=2

如果设置多台从服务器,每台服务器都需要有唯一的标识符。从服务器不需要打开二进制功能,除非你想把从服务器作为另一台镜像服务器的主服务器。
4. 获取主服务器的信息

要设置镜像,必须查找主服务器的二进制日志的当前记录点。在从服务器启动镜像功能时需要该数据。

操作步骤分A、B两步:

A. 锁定主数据库

mysql> FLUSH TABLES WITH READ LOCK;
锁定数据库后,不要退出客户端(命令行),否者数据库解锁。

B. 查找二进制日志的当前记录点

mysql > SHOW MASTER STATUS;

+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+

上面File栏下显示日志文件名,Position栏下显示当前记录点,记下这两个数据。

5. 使用mysqldump导出zencart网店的数据库初始数据

首先要将主服务器上的现有数据传到从服务器上。在第4步的客户端仍然锁定数据库的情况下,新开一个session连接到主服务器,然后执行:

shell> mysqldump database_name1 --lock-all-tables > dbdump_database_name1.db

其中,database_name1是需要镜像的zencart网店的数据库名。如果有多个zencart网店的数据库需要镜像,重复mysqldump导出。
然后将导出的 dbdump_database_name1.db 传送到从服务器上。

现在,可以在第4步的客户端,解锁数据库:

mysql> UNLOCK TABLES;
6. 启动从服务器的实时数据库镜像

在从服务器上恢复第5步导出的主服务器的zencart网店的初始数据

A. 起动从服务器数据库,带参数 --skip-slave-start:

shell> /etc /init.d/mysqld stop
shell> /etc /init.d/mysqld start --skip-slave-start
B. 导入初始数据:

shell> mysql < dbdump_database_name1.db

C. 设置从服务器的参数:

Code:
        mysql> CHANGE MASTER TO
             ->     MASTER_HOST='master_host_name',
             ->     MASTER_USER='replication_user_name',
             ->     MASTER_PASSWORD='replication_password',
             ->     MASTER_LOG_FILE='recorded_log_file_name',
             ->     MASTER_LOG_POS=recorded_log_position;
D. 开启镜像功能:

mysql> START SLAVE;

注意:如果主服务器有防火墙,需要开通MySQL的端口3306,该端口只要对从服务器的IP开放就可以了。
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
MySQL毫秒值和日期的指定格式的相互转换 Kaitlin MySQL 0 2015-04-18 11:01 PM
mysql 帮助文档使用 Haddam MySQL 0 2014-11-26 06:43 PM
如何导入导出MySQL数据库 topvip 建站交流 0 2006-10-10 07:43 AM
mysql安装与简单使用 sunshine 服务器环境搭建 0 2006-01-11 07:29 PM
winxp下安装全新的apache,php(5.0),mysql(5.0)... topvip 服务器环境搭建 0 2006-01-08 10:28 PM

Prescription-glasses.com offers prescription glasses online at discount prices.
All times are GMT +8. The time now is 07:26 AM.


Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.