下图显示 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、MYSQL5、MYSQL64)或 CA AppLogic 组件上未运行的 mysql 数据库中迁移数据库。
要迁移数据库:
请注意下列各项:
重要信息! 为数据库创建用户时,请确认所创建的用户对他们连接时所在的主机没有任何限制。 例如:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
MYSQLR64 除了使用其基类 LUX64 所用的第三方开源软件包之外,还使用下列第三方/开源软件包。
|
软件 |
版本 |
已修改 |
许可 |
说明 |
|
aspell |
0.60.3-7.1 |
No |
LGPLv2.1 |
N/A |
|
aspell-en |
6.0-2.1 |
No |
LGPLv2.1 |
N/A |
|
cURL |
7.15.5-2 |
No |
MIT |
N/A |
|
device-mapper-event |
1.02.32-1 |
No |
GPLv2 |
N/A |
|
freetype |
1.02.32-1 |
No |
FTL |
N/A |
|
gmp |
4.1.4-10.el5 |
No |
LGPLV2.1 |
N/A |
|
libidn |
0.6.5-1.1 |
No |
LGPLv2.1 |
N/A |
|
libjpeg |
6b-37 |
No |
可分发 |
N/A |
|
libpng |
1.2.10-7.0.2 |
No |
zlib/libpng |
N/A |
|
lvm2 |
2.6.26-2.1.2.8 |
No |
GPLv2.0 |
N/A |
|
mysql |
5.0.77-3.el5 |
No |
GPL |
N/A |
|
mysql-server |
5.0.77-3.el5 |
No |
GPLv2 |
N/A |
|
perl-DBD-MySQL |
3.0007-2.el5 |
No |
Artistic |
N/A |
|
perl-DBI |
1.52-2.el5 |
No |
Artistic |
N/A |
|
php-cli |
5.1.6-23.el5 |
No |
PHPv3.01 |
N/A |
|
php-common |
5.1.6-23.el5 |
No |
PHPv3.01 |
N/A |
|
php-gd |
5.1.6-23.el5 |
No |
PHPv3.01 |
N/A |
|
php-mbstring |
5.1.6-23.el5 |
No |
PHPv3.01 |
N/A |
|
php-mysql |
5.1.6-23.el5 |
No |
PHPv3.01 |
N/A |
|
php-pdo |
5.1.6-23.el5 |
No |
PHPv3.01 |
N/A |
|
rsync |
2.6.8-3.1 |
No |
GPLv2 |
N/A |
|
samba-client |
3.0.28-1.el5_2.1 |
No |
GPLv2 |
N/A |
|
samba-common |
3.0.28-1.el5_2.1 |
No |
GPLv2 |
N/A |
|
sudo |
1.6.8p12-10 |
No |
ISC |
N/A |
|
lighttpd |
1.4.18-1.el5.rf |
No |
BSD |
N/A |
|
perl-IPC-Run |
0.84-1.el5.rf |
No |
Artistic |
N/A |
|
perl-Time-Duration |
1.06-1.el5.rf |
No |
Artistic |
N/A |
|
phpMyAdmin |
2.11.10-1 |
No |
GPLv2 |
N/A |
MYSQLR 组件在重新启动时冻结
从 MYSQLR 1.6.2 开始,您可以设置/更改根数据库帐户的密码。 但是,MSYQLR 组件有几个主机名不同的根帐户。 在设置/更改密码时,应始终使用 root@% 帐户。 root@% 帐户是连接到 MYSQLR in 终端的组件的帐户,将针对该帐户进行身份验证。 其他根帐户仅由本地用户使用,并且决不可为这些根帐户设置密码,因为这样做将导致 MYSQLR 组件无法启动。
注意:如果没有为 root@localhost 帐户设置密码,则这不是安全问题,因为此帐户只能由组件上的本地用户使用,并且有权访问组件的任何人都可以更改密码。
恢复在更改根数据库密码之后无法启动的 MYSQLR 组件
要恢复因更改数据库根密码而无法启动的组件,请执行以下步骤:
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
| 版权所有 © 2012 CA。 保留所有权利。 |
|