
|
概览 |
|
|
目录 |
系统 |
|
类别 |
数据库组件 |
|
用户卷 |
yes |
|
最小 内存 |
160 MB |
|
操作系统 |
Linux |
|
问题/注释 |
|
MYSQLR64 是基于 MySQL 数据库引擎的数据库组件 (http://www.mysql.org)。 它提供一种简便方法将数据库添加到任何应用。 这些组件还可用于复杂的 MYSQL 复制方案。 这些组件基于 MYSQL5 (CentOS 5.5/MySQL 5),并且还可处理数据库复制。
通过数据库复制,可以将数据从一个 MySQL 数据库服务器(称为主服务器)复制到一个或多个 MySQL 数据库服务器(称为从服务器)。 可以针对主服务器-从服务器复制、主服务器-主服务器复制以及涉及两个以上主服务器的复制设置 MYSQLR64 组件。
通过 Web 界面完成复制设置、管理和监控。 通过 Web 界面可以方便地开始复制,并且给主服务器造成的停机时间几乎为零。 出现问题时,还可以使用 Web 界面修复复制。 可以使用 Web 界面从早期数据库组件(例如 MYSQL 和 MYSQL5)复制数据库。 MYSQLR64 还提供了一种简便的方法用于管理和浏览您的数据库(基于 phpMyAdmin)。
在许多情况下,复制功能非常有用:
使用默认配置时,MYSQLR64 的功能与某个带有管理 Web 界面的 MYSQL5 组件完全相同。 要将 MYSQLR64 用于复制方案,至少需要提供两个使用适当配置的 MYSQLR64 组件(请参见典型用法)。
MYSQLR64 在应用定义的卷(可在每个 MYSQLR64 实例上配置)上存储数据库。 MYSQLR64 在空卷上启动时,将自动创建一个空数据库。
|
名称 |
最新版本 |
操作系统 |
!MySQL |
说明 |
|
MYSQLR |
2.0.3-1 |
CentOS 5.5 |
5.5.8 |
|
|
MYSQLR64 |
2.0.3-1 |
CentOS 5.5 (64 bit) |
5.5.8 |
|
重要信息! 使用复制时,不应混合使用 32 位和 64 位 MYSQLR 组件,因为数据库文件是按原样从主服务器复制到从服务器的。 此外,32 位版本的组件中的数据卷不应与 64 位版本的相同组件一起使用(反之亦然)。 要在 32 位和 64 位 MYSQLR 版本之间迁移数据库,请根据此处所述,在一台主机上转储数据库,然后在另一台主机上导入这些数据库。
资源
|
资源 |
最小值 |
最大值 |
默认值 |
|
CPU |
0.10 |
16 |
0.40 |
|
内存 |
128 MB |
32G |
512 MB |
|
带宽 |
1 Mbps |
2 Gbps |
250 Mbps |
终端
|
名称 |
目录 |
协议 |
说明 |
|
in |
in |
MYSQL |
接收 MySQL 数据库请求。 |
|
rin |
in |
Any |
将该组件用作主组件的从 MYSQLR64 组件连接到此终端。 |
|
ui |
in |
HTTP |
提供对 MYSQLR64 的 Web 界面的访问。 |
|
log |
out |
CIFS |
连接到用于存储错误日志的 NAS 组件。 如果未使用该终端,则可将其保持未连接状态。 |
|
rout |
out |
Any |
连接到主 MYSQLR64 服务器。 此终端可能一直保持未连接,仅应在复制方案中使用。 |
|
mon |
out |
CCE |
发送性能和资源使用统计信息。 此终端可保持未连接状态。 |
默认接口已启用。 它用于诊断和故障排除(通过 SSH)。 此组件的未来版本可能会禁用 SSH 访问。
重要信息! rin 和 rout 终端用于 SSH (tcp 22) 和 MYSQL (tcp 3306) 数据。 在将网关/VPN 用于连接这些终端时,防火墙应配置为允许两个端口。
用户卷
|
卷 |
说明 |
|
data |
用于数据库数据存储的卷。 该卷是强制性卷。 |
|
binlogs |
在复制模式(设置为 master 或 slave)下运行时用于二进制日志的卷。 此卷不是强制性卷,但如果在复制中使用该组件(将 rpl_mode 设置为除 none 之外的值)且不提供 binlogs 卷,该组件将无法启动。 |
数据卷可以选择在其顶级目录中包含一个 my.cnf 文件,该文件中包括 MYSQL 配置选项。 有关更多详细信息,请参阅自定义配置一节。 该功能在 MYSQLR64 1.6.1 或更高版本中可用。
重要信息!
要迁移旧组件(MYSQL、MYSQL5、MYSQL64)的数据库,从物理服务器的数据库或 MYSQLR(如果从 32 位迁移到组件的 64 位版本)的数据库迁移,有关其他组件的过程,请参阅“从其他组件迁移数据库”。
属性
|
属性名 |
类型 |
说明 |
|
auto_create |
整数 |
当数据库不存在时是否创建它。 可能值为 1 和 0,1 表示创建数据库,0 表示阻止自动创建(以避免在卷损坏时意外覆盖)。 如果设置为 0,且数据卷上不存在数据库,则组件在维护模式下启动(组件将正确启动,但不启动 MySQL 后台进程,以便用户可以检查问题)。 默认是 1。 |
|
error_log_filename |
字符串 |
错误日志文件相对于日志文件系统的名称(例如:/mysql_logs/my.log)。 路径中的目录是自动创建的。 如果为空,则将错误日志写入数据卷 (/mnt/data/error.log)。 默认值:(空)。 |
|
error_log_level |
字符串 |
错误日志记录级别。 可能值为 error 和 warn,error 表示只记录错误,warn 表示同时记录警告和错误。 此属性不区分大小写。 默认值:error |
|
时区 |
字符串 |
指定在组件中使用的时区。 如果此属性为空,则时区未经修改且保持原样。 此处提供可支持时区的列表。 默认值:空 |
自 MYSQLR64 1.6.8 起,已删除 use_old_passwords 属性。 如果需要启用 old_passwords,请按如下所述创建自定义配置。
如果指定了 error_log_filename 但未连接 log 终端或者无法挂接文件系统,MYSQLR 组件将无法启动。
高级属性
|
属性名 |
类型 |
说明 |
|
server_id |
整数 |
服务器 ID。 可能值为 1 到 10。 此属性可在执行复制时指定服务器的 ID。 有助于确保您为属于复制一部分的所有服务器设置唯一 ID。 默认值:1 |
|
rpl_mode |
字符串 |
复制模式。 可能值包括 none(无复制)、master、slave 和 master_and_slave(用于一个服务器同时作为主服务器和从服务器的多主复制方案)。 默认值:none |
|
web_pwd |
字符串 |
Web 界面的身份验证密码。 此属性是可选的。 如果设置了此属性,将启动组件的 http 服务器,并在 ui 终端和默认界面上都会公开 Web 界面,可通过 CA 3Tera AppLogic 编辑器中的“登录 (Web)”选项来访问它。 默认值:(空)。 |
自定义配置
该功能在 MYSQLR64 1.6.1 或更高版本中可用。
MYSQLR64 允许使用自定义 MYSQL 配置文件,该文件可以提供其他配置选项或覆盖在 /etc/my.cnf 中指定的现有配置。
要使用自定义配置,请创建名为 my.cnf 的文件并将其放在数据卷的顶级目录中。 文件的格式应遵循 MYSQL 文档中所述的 MYSQL 选项文件语法。
例如:在使用 InnoDB 时可以使用以下内容调整 MYSQLR64 以提高性能 (为 MyISAM 优化了默认的 MYSQLR64 配置)。 该示例以使用 512M 内存(MYSQLR64 的默认设置)为基础。
[mysqld] # Shrink down MyISAM buffers key_buffer = 512K myisam_sort_buffer_size = 512K # Make InnoDB the default storage engine (optional) default-storage-engine = INNODB # Set InnoDB buffer size innodb_buffer_pool_size=350M innodb_log_file_size=128M innodb_log_buffer_size=4M innodb_thread_concurrency=8 # If you do not have too many tables use this option, so you will not have uncontrolled innodb main tablespace growth which you can’t reclaim. innodb_file_per_table=1
重要信息! 在复制模式下使用时,只要您修复/启动复制,MYSQLR64 就会同步数据卷中的 my.cnf 文件,因此从服务器将与主服务器具有相同配置。
Web 界面
MYSQLR64 提供了一个 Web 界面,通过 CA 3Tera AppLogic 编辑器中的“登录 (Web)”选项在其 ui 终端和默认界面中均可访问该界面。 使用 Web 界面需要 HTTP 身份验证。 将用户名保留为空并使用 web_pwd 的值作为密码。 该界面具有以下功能:
使用 PhPMyAdmin 浏览并编辑数据库
复制设置和维护
将主-从复制添加到 MYSQLR64 组件
CA 3Tera AppLogic 使您可以在不丢失任何数据的情况下,将主-从复制添加到现有的 MYSQLR64 组件。
将主-从复制添加到 MYSQLR64 组件
在启动复制后,登录到两个 MYSQLR64 组件上的 Web 界面并验证复制状态。 在 5 分钟或更短的时间内,复制应在两个组件上运行。
将 MYSQLR64 组件添加到主-从复制
CA 3Tera AppLogic 使您可以在不丢失任何数据的情况下,将新的 MYSQLR64 组件添加到现有的主-主复制。
将 MYSQLR64 组件添加到主-从复制
登录到所有 MYSQLR64 组件的 Web 界面并验证复制状态,在 5 分钟或更短的时间内复制应在所有组件上运行。
在主-从配置中修复复制
CA 3Tera AppLogic 使您可以在不丢失任何数据的情况下,在主-从设置中修复复制。
在主-从配置中修复复制
在启动复制后,登录到从 MYSQLR64 组件的 Web 界面,然后验证复制状态,复制应在 5 分钟或更短的时间内运行。
在主-主配置中修复复制
CA 3Tera AppLogic 使您可以在不丢失任何数据的情况下,在主-主设置中修复复制。
登录到报告复制失败的组件的 Web 界面,然后选择“启动/修复复制”。 日志记录所用的时间取决于主服务器上的数据库大小。 在操作过程中,组件上的 mysql 服务会停止。 主组件上未产生停机时间。 直到修复结束,数据库才会在所有主组件之间同步。 在修复期间,可能无法在其他所有 MYSQLR64 组件上复制数据库更新。
此组件上的所有数据将从主组件初始化。 如果当前组件上的数据库有任何更新,由于复制中断,因此这些更新将丢失。 在此类情况下,请手工解决冲突。
在主-主配置中修复复制
登录到所有 MYSQLR64 组件的 Web 界面,然后查看复制状态。 在 5 分钟或更短的时间内,复制应在所有组件上运行。
有一个 cron 作业可监控 MYSQLR64 组件之间的复制。 如果启用了复制,cron 作业将每两分钟运行一次,并在以下情况下向网格显示板发送警报:
在此类情况下,用户应手工解决该问题。
在复制失败的情况下,可以按照上节所述使用 Web 界面进行修复。
有一个 cron 作业可监控 MYSQLR64 组件之间的复制。 如果启用了复制,cron 作业将每两分钟运行一次,并在以下情况下向网格显示板发送警报:
在此类情况下,用户应手工解决该问题。
在复制失败的情况下,可以按照上节所述使用 Web 界面进行修复。
MYSQLR64 组件通过 mon 终端报告以下自定义计数器。
以下计数器属于 MySql 计数器组:
|
计数器名称 |
说明 |
|
Aborted Clients |
服务器中止的客户端数 |
|
Aborted Connections |
服务器中止的连接数 |
|
Bytes Received |
接收的字节数 |
|
Bytes Sent |
发送的字节数 |
|
Total Connections |
连接数 |
|
Questions |
问题总数 |
|
Slow Queries |
慢查询数 |
|
Threads Created |
已创建的线程数 |
|
Threads Connected |
已连接的线程数 |
|
Threads Running |
正在运行的线程数 |
|
Max Used Connections |
使用的最大连接数 |
|
Open Files |
打开的文件数 |
|
Admin Commands |
admin 命令数 |
|
Alter Table Commands |
alter table 命令数 |
|
Analyze Commands |
analyze 命令数 |
|
Change DB Commands |
change DB 命令数 |
|
Change Master Commands |
change master 命令数 |
|
Check Commands |
check 命令数 |
|
Commit Commands |
commit 命令数 |
|
Create DB Commands |
create DB 命令数 |
|
Create Function Commands |
create function 命令数 |
|
Create Index Commands |
create index 命令数 |
|
Create Table Commands |
create table 命令数 |
|
Delete Commands |
delete 命令数 |
|
Drop DB Commands |
drop DB 命令数 |
|
Drop Function Commands |
drop function 命令数 |
|
Drop Index Commands |
drop index 命令数 |
|
Drop Table Commands |
drop table 命令数 |
|
Flush Commands |
flush 命令数 |
|
Grant Commands |
grant 命令数 |
|
Insert Commands |
insert 命令数 |
|
Insert Select Commands |
insert select 命令数 |
|
Kill Commands |
kill 命令数 |
|
Load Commands |
load 命令数 |
|
Lock Tables Commands |
lock tables 命令数 |
|
Optimize Commands |
optimize 命令数 |
|
Purge Commands |
purge 命令数 |
|
Rename Table Commands |
rename table 命令数 |
|
Repair Commands |
repair 命令数 |
|
Replace Commands |
replace 命令数 |
|
Replace Select Commands |
replace select 命令数 |
|
Reset Commands |
reset 命令数 |
|
Revoke Commands |
revoke 命令数 |
|
Rollback Commands |
rollback 命令数 |
|
Select Commands |
select 命令数 |
|
Set Option Commands |
set option 命令数 |
|
Truncate Commands |
truncate 命令数 |
|
Unlock Tables Commands |
unlock tables 命令数 |
|
Update Commands |
update 命令数 |
当组件无法启动时,网格控制器的组件日志文件或系统日志中可能会出现下列消息:
|
错误消息 |
说明 |
|
无法设置时区! |
无法设置时区属性配置的组件时区。 |
|
组件正在 [$rpl_mode] 复制模式下运行,但缺少 binlogs 卷 |
组件配置为在 master、slave 或 master_and_slave 模式下运行,但是未指定 binlogs 卷。 |
|
组件正在 [$rpl_mode] 复制模式下运行,但未连接“rout”终端 |
组件配置为在 slave 或 master_and_slave 模式下运行,但未连接 rout 终端。 |
|
已连接“rout”终端,但 [rpl_mode] 属性设置为“none”。 通过 [rpl_mode] 属性配置复制,或将“rout”终端断开连接 |
已连接 rout 终端,但 [rpl_mode] 属性设置为 none。 通过 [rpl_mode] 属性配置复制,或将“rout”终端断开连接。 |
|
由于设置了 error_log_filename 但未连接 log 终端,无法启动 mysql! |
配置了 error_log_filename 属性但未连接 log 终端。 |
|
无法通过 log 终端挂接共享! |
组件配置为在 log 终端上写入日志,但它无法在 log 终端上挂接共享。 |
|
通过 log 终端的共享不可写! |
log 终端上的共享不可写。 |
|
无法在 log 终端上创建 logdir [$logdir]! |
无法在 log 终端上创建 logdir [$logdir]! |
|
logdir [$logdir] 不可写! |
log 终端上的 logdir [$logdir] 不可写! |
|
日志文件 [$error_log] 不可写! |
log 终端上的日志文件 [$error_log] 不可写! |
|
无法创建数据库! |
组件启动时没有数据库,并且无法安装 mysql 数据库。 |
|
无法设置复制! |
组件无法配置复制。 |
|
无法启动 mysql! |
无法启动 MySQL 后台进程。 |
|
mysql 数据库中的权限不足! |
“root”@“%”的权限不足,或者在复制模式下使用时“replication_user”@“%”没有足够权限来运行 MySQL 复制。 |
|
Web 界面无法启动! |
Web 界面无法启动! |
|
数据卷大小至少应为 100 MB |
数据卷应大于 100 MB。 请参阅有关卷要求的说明。 |
此外,在组件运行时,网格显示板上可能会显示以下错误:
|
错误消息 |
说明 |
|
数据卷上可用运行空间不足,请检查! |
数据卷上的可用空间低于 20%。 |
|
主服务器复制未运行,请检查! |
主服务器复制未运行。 |
|
从服务器的复制落后于主服务器的时间太长,请检查! |
从服务器的复制落后于主服务器的时间太长。 |
|
binlogs 卷可用运行空间不足,请检查! |
binlogs 卷上的可用空间低于 20%。 |
简单的双层应用(无复制)
下图显示 MYSQLR64 组件在双层 Web 应用中的典型用法:

正在使用的组件:
客户端请求到达用户网关。 网关会将请求转发到 Web 服务器,后者处理请求。 当 Web 上的脚本(例如:Perl 或 PHP)需要访问永久数据时,它们会通过 Web 服务器的 out 终端使用 db 组件。 db 组件配置为在由 logs 公开的共享的根目录内存储其日志文件。
使用浏览器,管理员可连接到 admin 网关来查看 mysql 或 Web 服务器日志文件。 admin 网关将请求转发给日志 NAS 组件。
示例属性配置(未列出的属性应保留为默认值):
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
注意:还必须在 db 组件以及 logs、content 和 mon 组件上配置数据卷。 要创建可在此处使用的应用卷,请参阅《网格用户指南》。
可扩展的双层应用(无复制)
下图显示 MYSQLR64 组件在双层 Web 应用中的典型用法,其中数据库用于在负载均衡的多个 Web 服务器之间共享状态和数据。 此外,此示例有一个单独的用于维护的输入,管理员通过该输入可以登录并访问用于维护的数据库;此示例还有一个可供管理员登录并查看 mysql 错误日志的输入。

正在使用的组件:
客户端请求到达用户网关。 该网关将请求转发给 web_lb 负载均衡器,后者将请求定向到 Web 服务器 web1 和 web2 中的一个。 Web 服务器访问 db 数据库。
db 数据库以及 web1 和 web2 服务器通过 log 终端将其日志文件写入 logs 组件。 此外,管理员还可以通过 maint 网关登录到 logs 组件并查看日志文件。
此外,管理员还可以通过 admin 服务器的 maint 网关在 SSH 上登录(需要设置公钥-私钥)。 从 admin 服务器中,管理员可以访问 db 数据库中的统计信息或更改数据库架构。 例如:admin 服务器可以通过 gway 网关访问 Internet,以下载库或数据库架构的较新版本。
示例属性配置(未列出的属性应保留为默认值):
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
注意:
maint、admin、gway、mon 以及 log 组件不是运行双层应用所必需的。 如果存在,admin 服务器可能具有用于数据库清理、发送电子邮件等的 cron 作业。
具有主-从复制的 N 层应用(适合于备份)
下图显示 MYSQL 组件在将数据库复制到从服务器的 Web 应用中的典型用法。 从服务器可用于创建数据的一致备份,而不停止主服务器,因此引起的应用停机时间为零。

正在使用的组件:
客户端请求到达用户网关。 该网关将请求转发给 web_lb 负载均衡器,后者将请求定向到 Web 服务器 web1 和 web2 中的一个。 Web 服务器访问主数据库。
从组件连接到主组件并复制其数据。 为了执行 SQL 数据或大型分析的一致备份,可以随时停止从组件,而不会影响主组件和其余应用的性能。
通过端口 8080 和 8081 上的 admin 网关可以对主组件和从组件进行 Web 访问。
master、slave、web1 和 web2 组件配置为在由 logs 公开的共享的根目录内存储其日志文件。 此外,管理员还可以通过 admin 网关查看日志文件。
示例属性配置(未列出的属性应保留为默认值):
主组件
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
master-db.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
1 |
主服务器(不一定是 1,应与从服务器上的 server_id 不同) |
|
rpl_mode |
master |
写入二进制日志,以进行复制 |
从组件
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
slave-db.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
2 |
从服务器(不一定是 2,应与主服务器上的 server_id 不同) |
|
rpl_mode |
slave |
连接到主服务器 |
注意:
admin、mon 以及 log 组件不是复制操作所必需的。
具有主-主复制的 N 层应用(适合于负载均衡)
下图显示 MYSQLR64 组件在 Web 应用中的典型用法,其中在主-主复制方案中将数据库复制到两个服务器。 在此用例中,应用在负载均衡操作期间使用 WEB 和 MYSQLR64 服务器。 此外,在其中一个 WEB/MYSQLR64 实例失败的情况下,其他 WEB/MYSQLR64 实例可用于防止应用停机。

正在使用的组件:
客户端请求到达用户网关。 该网关将请求转发给 web_lb 负载均衡器,后者将请求定向到 Web 服务器 web1 和 web2 中的一个。 web1 使用 db1 数据库组件,web2 使用 db2 数据库组件。 连接 db1 和 db2,以复制 Web 服务器对数据库进行的更新。 每个 MYSQLR64 组件都将偏移(与其 server_id 相等)用于其 auto_increment 列,以防出现重复条目。
通过端口 8080 和 8081 上的 admin 网关,可以对 db1 和 db2 进行 Web 访问。
db1、db2、web1 和 web2 组件配置为在由 logs 公开的共享的根目录内存储其日志文件。 此外,管理员还可以通过 admin 网关查看日志文件。
示例属性配置(未列出的属性应保留为默认值):
db1
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db1.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
1 |
主服务器(不一定是 1,应与从服务器上的 server_id 不同) |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
db2
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db2.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
2 |
主服务器(不一定是 1,应与从服务器上的 server_id 不同) |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
注意:
admin、mon 以及 log 组件不是复制操作所必需的。
具有多节点主-主复制的 N 层应用(适合于负载均衡)
下图显示 MYSQLR64 组件在 Web 应用中的典型用法,其中在主-主复制方案中将数据库复制到四个服务器。 在此用例中,应用在负载均衡操作期间会使用所有的 WEB 和 MYSQLR64 服务器。 此外,在其中一个 WEB/MYSQLR64 实例失败的情况下,其他 WEB/MYSQLR64 实例可用于防止应用停机(MYSQLR64 不处理故障)。

正在使用的组件:
客户端请求到达用户网关。 网关会将请求转发到 web_lb 负载均衡器,后者将请求定向到 Web 服务器(web1、web2、web3 和 web4)中的一个。 每个 Web 服务器都使用自己的数据库组件。 所有数据库组件都以循环方式连接,以复制 Web 服务器对数据库进行的更新。 例如:将对 db1 的更新复制到 db2、db3 和 db4。 每个 MYSQLR64 组件都将偏移(与其 server_id 相等)用于其 auto_increment 列,以防出现重复条目。
通过端口 8080、8081、8082 和 8083 上的 admin 网关,可以对 db1、db2、db3、db4 进行 Web 访问。
db1、db2、web1 和 web2 组件配置为在由 logs 公开的共享的根目录内存储其日志文件。 此外,管理员还可以通过 admin 网关查看日志文件。
示例属性配置(未列出的属性应保留为默认值):
db1
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db1.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
1 |
主服务器 1 |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
db2
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db2.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
2 |
主服务器 2 |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
db3 组件
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db3.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
3 |
主服务器 3 |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
db4
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db4.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
4 |
主服务器 4 |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
注意:
admin、mon 以及 log 组件不是复制操作所必需的。
在不同工具上运行的 N 层应用(适合于负载均衡和故障切换)
下图显示 MYSQLR64 组件在运行于多个工具中的 Web 应用中的典型用法。 使用此设置时,可以有两个或多个相同的应用在不同工具中运行,同时将数据库复制到主-主设置中的所有应用。 这在以下两种情况下很有用:
主应用

从应用

正在使用的组件:
客户端请求到达用户网关。 该网关将请求转发给 web_lb 负载均衡器,后者将请求定向到 Web 服务器 web1 和 web2 中的一个。 Web 服务器访问主数据库。 主组件连接到远程(从)应用以复制数据库,仅有的差别是从服务器的 server_id 以及网络设置。 远程应用通过 vpn 网关连接到主组件,该网关配置为仅允许来自远程应用的 vpn 网关的连接。 两个应用中的主组件和从组件在主-主设置中运行,这样它们始终具有相同的数据。
示例属性配置(未列出的属性应保留为默认值):
通过端口 8080 上的 admin 网关可以对主组件和从组件进行 Web 访问。
主组件
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
master-db.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
1 |
主服务器(不一定是 1,应与从服务器上的 server_id 不同) |
|
rpl_mode |
master |
写入二进制日志,以进行复制 |
主 vpn
|
属性名 |
值 |
说明 |
|
mode |
server |
作为服务器运行。 |
|
通道 |
证书 |
使用 SSL 证书。 |
|
tcp_ports |
3306,22 |
允许使用 MYSQLR64 需要的端口。 |
|
ip_addr |
master_vpn_ip |
主应用中的 VPN 的 IP 地址。 |
|
remote_host |
slave_vpn_ip |
从应用中的 VPN 的 IP 地址。 |
从组件
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
slave-db.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
2 |
从服务器(不一定是 2,应与主服务器上的 server_id 不同) |
|
rpl_mode |
slave |
连接到主服务器 |
从 vpn
|
属性名 |
值 |
说明 |
|
mode |
client |
作为客户端运行。 |
|
通道 |
证书 |
使用 SSL 证书。 |
|
auth_path |
"client1" |
SSL 证书文件的路径。 |
|
ip_addr |
slave_vpn_ip |
从应用中的 VPN 的 IP 地址。 |
|
remote_host |
master_vpn_ip |
主应用中的 VPN 的 IP 地址。 |
远程应用是精确副本,仅有的差别是 user、admin 和 vpn 组件的网络设置、vpn 组件与 master=/=slave 之间的连接以及 master=/=slave 组件的 server_id(它应该是唯一的)。
如果需要从 MYSQLR 迁移到 MYSQLR64(或执行相反的迁移),不能只在 64 位组件上使用 32 位组件中的卷(反之亦然),因为这可能会导致数据损坏。 实现此目的的建议方法是是在旧组件上转储数据库,将转储的文件传输到新组件,然后将数据库导入新组件。 下面是执行此操作的过程:
数据库现已传输,组件已准备就绪。
请注意下列各项:
重要信息! 为数据库创建用户时,请确认所创建的用户对他们连接时所在的主机没有任何限制。 例如:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
http://dev.mysql.com/doc/refman/5.0/en/index.html-MySQL 5.0 文档
MYSQLR64 除了使用其基类 LUX64 所用的第三方开源软件包之外,还使用下列第三方/开源软件包。
|
软件 |
版本 |
已修改 |
许可 |
说明 |
|
aspell |
0.60.3-7.1 |
否 |
LGPLv2.1 |
N/A |
|
aspell-en |
6.0-2.1 |
否 |
LGPLv2.1 |
N/A |
|
cURL |
7.15.5-2 |
否 |
MIT |
N/A |
|
device-mapper-event |
1.02.32-1 |
否 |
GPLv2 |
N/A |
|
freetype |
1.02.32-1 |
否 |
FTL |
N/A |
|
gmp |
4.1.4-10.el5 |
否 |
LGPLV2.1 |
N/A |
|
libidn |
0.6.5-1.1 |
否 |
LGPLv2.1 |
N/A |
|
libjpeg |
6b-37 |
否 |
可分发 |
N/A |
|
libpng |
1.2.10-7.0.2 |
否 |
zlib/libpng |
N/A |
|
lvm2 |
2.6.26-2.1.2.8 |
否 |
GPLv2.0 |
N/A |
|
mysql |
5.0.77-3.el5 |
否 |
GPL |
N/A |
|
mysql-server |
5.0.77-3.el5 |
否 |
GPLv2 |
N/A |
|
perl-DBD-MySQL |
3.0007-2.el5 |
否 |
Artistic |
N/A |
|
perl-DBI |
1.52-2.el5 |
否 |
Artistic |
N/A |
|
php-cli |
5.1.6-23.el5 |
否 |
PHPv3.01 |
N/A |
|
php-common |
5.1.6-23.el5 |
否 |
PHPv3.01 |
N/A |
|
php-gd |
5.1.6-23.el5 |
否 |
PHPv3.01 |
N/A |
|
php-mbstring |
5.1.6-23.el5 |
否 |
PHPv3.01 |
N/A |
|
php-mysql |
5.1.6-23.el5 |
否 |
PHPv3.01 |
N/A |
|
php-pdo |
5.1.6-23.el5 |
否 |
PHPv3.01 |
N/A |
|
rsync |
2.6.8-3.1 |
否 |
GPLv2 |
N/A |
|
samba-client |
3.0.28-1.el5_2.1 |
否 |
GPLv2 |
N/A |
|
samba-common |
3.0.28-1.el5_2.1 |
否 |
GPLv2 |
N/A |
|
sudo |
1.6.8p12-10 |
否 |
ISC |
N/A |
|
lighttpd |
1.4.18-1.el5.rf |
否 |
BSD |
N/A |
|
perl-IPC-Run |
0.84-1.el5.rf |
否 |
Artistic |
N/A |
|
perl-Time-Duration |
1.06-1.el5.rf |
否 |
Artistic |
N/A |
|
phpMyAdmin |
2.11.10-1 |
否 |
GPLv2 |
N/A |
从 MYSQLR 1.6.2 开始,您可以设置/更改根数据库帐户的密码。 但是,MSYQLR 组件有几个主机名不同的根帐户。 在设置/更改密码时,应始终使用 root@% 帐户。 root@% 帐户是连接到 MYSQLR in 终端的组件的帐户,将针对该帐户进行身份验证。 其他根帐户仅由本地用户使用,并且决不可为这些根帐户设置密码,因为这样做将导致 MYSQLR 组件无法启动。
注意:如果没有为 root@localhost 帐户设置密码,则这不是安全问题,因为此帐户只能由组件上的本地用户使用,并且有权访问组件的任何人都可以更改密码。
要恢复因更改数据库根密码而无法启动的组件,请执行以下步骤:
comp start main.MYSQLR --debug
app start --debug
在启动组件几秒钟之后,您应该能够登录到该组件。 不必等待组件超时。
mysql -p -e "update mysql.user set Password='' where User='root'"
mysqladmin -p flush-privileges
mysql -e 'update mysql.user set password=PASSWORD("NEWPASSWORD") where User="root" and Host="%"'
mysqladmin flush-privileges
重新启动组件以验证它是否已启动,以及用户 root 的“in”终端上的 mysql 连接是否需要密码。
| 版权所有 © 2011 CA。 保留所有权利。 | 就该主题发送电子邮件至 CA Technologies |