上一主题: MYSQLR、MYSQLR64-适合复制的 MySQL 数据库组件

下一主题: 具有主-主复制的 N 层应用(适合于负载均衡)


属性

属性名

类型

说明

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

时区

字符串

指定在组件中使用的时区。 如果此属性为空,则时区未经修改且保持原样。 此处提供支持的时区 列表。

重要信息!

高级属性(在复制方案中使用)

属性名

类型

说明

server_id

整数

服务器 ID。 可能值为 1 到 10。 此属性可在执行复制时指定服务器的 ID。 有助于确保您为属于复制一部分的所有服务器设置唯一 ID。 默认值:1

rpl_mode

字符串

复制模式。 可能值包括 none(无复制)、master、slave 和 master_and_slave(用于一个服务器同时作为主服务器和从服务器的多主复制方案)。 默认值:none

web_pwd

字符串

Web 界面的身份验证密码。 此属性是可选的。 如果设置了此属性,将启动组件的 http 服务器,并在 ui 终端和默认界面上都会公开 Web 界面,可通过 CA 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 AppLogic 编辑器中的“登录 (Web)”选项在其 ui 终端和默认界面中均可访问该界面。 使用 Web 界面需要 HTTP 身份验证。 将用户名保留为空并使用 web_pwd 的值作为密码。 该界面具有以下功能:

将主-从复制添加到 MYSQLR64 组件

CA AppLogic 使您可以在不丢失任何数据的情况下,将主-从复制添加到现有的 MYSQLR64 组件。

将主-从复制添加到 MYSQLR64 组件

  1. 在现有组件上将 rpl_mode 设置为 master
  2. 将新的 MYSQLR64 组件添加到具有空数据卷的应用。 将其 rout 终端连接到当前组件的 rin 终端。
  3. (可选)如果您将要在主-主复制中使用它,请将当前组件上排除的终端连接到新组件的 rin 终端。
  4. 重新启动应用。
  5. 登录到新组件的 Web 界面,并从“管理复制”选项卡选择“启动/修复复制”。 日志记录所用的时间取决于主服务器上的数据大小。 如果您使用 INSSLR 来访问 MYSQLR64,请帮助确保将超时属性设置为较大的值 (36000) 来避免超时。 确认在客户端的任何代理(最好根本不使用代理)中都没有超时。
  6. 在启动复制后,登录到两个 MYSQLR64 组件上的 Web 界面并验证复制状态。 在 5 分钟或更短的时间内,复制应在两个组件上运行。
将 MYSQLR64 组件添加到主-从复制

CA AppLogic 使您可以在不丢失任何数据的情况下,将新的 MYSQLR64 组件添加到现有的主-主复制。

将 MYSQLR64 组件添加到主-从复制

  1. 将新的 MYSQLR64 组件添加到具有空数据卷的应用。 以 dbN 为例,假定您已经具有 N-1 个 MYSQLR64 组件 (3 <= N <= 10),且每个组件的 rout 终端连接到循环设置中下一个组件的 rin 终端(db1 rout 连接到 db2 rin,依此类推)。
  2. 将 dbN 的 rpl_mode 设置为 master_and_slave。
  3. 将 dbN-1 组件的 rout 终端连接到 dbN 组件的 rin 终端。
  4. 将 dbN 组件的 rout 终端连接到 db1 组件的 rin 终端。
  5. 重新启动应用,以使更改生效。 在重新启动之后,复制直到过程结束时才会同步。 在执行该过程期间,写入一个组件的数据可能不会在所有其他组件上复制。
  6. 登录到 dbN 组件的 Web 界面,并从“管理复制”选项卡选择“启动/修复复制”。 日志记录所用的时间取决于主服务器上的数据大小。 如果您使用 INSSLR 来访问 MYSQLR64,请帮助确保超时属性设置为较大的值 (36000) 来避免超时。 此外,帮助确保在客户端的任何代理(最好根本不使用代理)中都没有超时。
  7. 在启动复制后,登录到 dbN-1 的 Web 界面,并选择“重置主日志位置”。 日志记录使应用读取 dbN-1,并从开头读取 dbN 的二进制日志。
  8. 登录到所有 MYSQLR64 组件的 Web 界面并验证复制状态,在 5 分钟或更短的时间内复制应在所有组件上运行。
在主-从配置中修复复制

CA AppLogic 使您可以在不丢失任何数据的情况下,在主-从设置中修复复制。

在主-从配置中修复复制

  1. 登录到从组件的 Web 界面,然后选择“启动/修复复制”。 日志记录所用的时间取决于主服务器上的数据大小。 在操作过程中,从组件上的 mysql 服务会停止。 主组件上未产生停机时间。 此操作相当于将新组件添加到现有的 MYSQLR64 组件。 如果您使用 INSSLR 来访问 MYSQLR64,请验证超时属性是否设置为较大的值 (36000) 来避免超时。 此外,请确认客户端的任何代理(最好根本不使用代理)中都没有超时。
  2. 在启动复制后,登录到从 MYSQLR64 组件的 Web 界面,然后验证复制状态,复制应在 5 分钟或更短的时间内运行。
在主-主配置中修复复制

CA AppLogic 使您可以在不丢失任何数据的情况下,在主-主设置中修复复制。

登录到报告复制失败的组件的 Web 界面,然后选择“启动/修复复制”。 日志记录所用的时间取决于主服务器上的数据库大小。 在操作过程中,组件上的 mysql 服务会停止。 主组件上未产生停机时间。 直到修复结束,数据库才会在所有主组件之间同步。 在修复期间,可能无法在其他所有 MYSQLR64 组件上复制数据库更新。

此组件上的所有数据将从主组件初始化。 如果当前组件上的数据库有任何更新,由于复制中断,因此这些更新将丢失。 在此类情况下,请手工解决冲突。

在主-主配置中修复复制

  1. 登录到已将其 rout 终端连接到运行修复复制的组件的组件的 Web 界面。 选择“重置主日志位置”。 设置主日志可使应用从开头读取固定组件的二进制日志。 如果您使用 INSSLR 来访问 MYSQLR64,请验证超时属性是否设置为较大的值 (36000) 来避免超时。 此外,请确认客户端的任何代理(最好根本不使用代理)中都没有超时。
  2. 登录到所有 MYSQLR64 组件的 Web 界面,然后查看复制状态。 在 5 分钟或更短的时间内,复制应在所有组件上运行。
复制监控

有一个 cron 作业可监控 MYSQLR64 组件之间的复制。 如果启用了复制,cron 作业将每两分钟运行一次,并在以下情况下向网格显示板发送警报:

在此类情况下,用户应手工解决该问题。

在复制失败的情况下,可以按照上节所述使用 Web 界面进行修复。

自定义计数器

MYSQLR64 组件通过 mon 终端报告以下自定义计数器。

以下计数器属于 MySql 计数器组:

计数器名称

说明

Aborted Clients

服务器中止的客户端数

中止连接数

服务器中止的连接数

接收的字节数

接收的字节数

发送的字节数

发送的字节数

Total Connections

连接数

Questions

问题总数

慢查询

慢查询数

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

错误日志记录级别

注意:

具有主-从复制的 N 层应用(适合于备份)

下图显示 MYSQL 组件在将数据库复制到从服务器的 Web 应用中的典型用法。 从服务器可用于创建数据的一致备份,而不停止主服务器,因此引起的应用停机时间为零。

包含主服务器-从服务器复制的 N 层应用(适用于执行备份)

正在使用的组件:

客户端请求到达用户网关。 该网关将请求转发给 web_lb 负载均衡器,后者将请求定向到 Web 服务器 web1 和 web2 中的一个。 Web 服务器访问主数据库。

从组件连接到主组件并复制其数据。 为了执行 SQL 数据或大型分析的一致备份,可以随时停止从组件,而不会影响主组件和其余应用的性能。

通过端口 8080 和 8081 上的 admin 网关可以对主组件和从组件进行 Web 访问。

master、slave、web1 和 web2 组件配置为在由 logs 公开的共享的根目录内存储其日志文件。 此外,管理员还可以通过 admin 网关查看日志文件。

示例属性配置(未列出的属性应保留为默认值):

master

属性名

说明

auto_create

1

如果卷为空,则创建数据库。

error_log_filename

master-db.error

要在日志数据卷上存储的错误日志文件的名称。

error_log_level

error

错误日志记录级别

server_id

1

主服务器(不一定是 1,应与从服务器上的 server_id 不同)

rpl_mode

master

写入二进制日志,以进行复制

slave

属性名

说明

auto_create

1

如果卷为空,则创建数据库。

error_log_filename

slave-db.error

要在日志数据卷上存储的错误日志文件的名称。

error_log_level

error

错误日志记录级别

server_id

2

从服务器(不一定是 2,应与主服务器上的 server_id 不同)

rpl_mode

slave

连接到主服务器

注意: