实现基于SQLServer存储账号的MDaemon群集
欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入 ?本章概述 MDaemon Server(以下简称 MDaemon) 的冗余方案有多种选择,本章将以微软公司出品的 SQL Server 2005 简体中文企业版(以下简称 SQL2005)作为 MDaemon 账户存储数据库,在微软群集(MS
欢迎进入Windows社区论坛,与300万技术人员互动交流 >>进入
?本章概述
MDaemon Server(以下简称 MDaemon) 的冗余方案有多种选择,本章将以微软公司出品的 SQL Server 2005 简体中文企业版(以下简称 SQL2005)作为 MDaemon 账户存储数据库,在微软群集(MSCS)上部署 SQL2005 虚拟服务器群集,从而实现 MDaemon 的故障自动转移,达到用户所要求的高可用性。
因为本章重点放在 MDaemon 群集的实现上,所以关于 MSCS 和 SQL2005 群集的部署请参考:
1.Windows Server 2003 群集的创建和配置
http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/clustering/confclus.mspx
本次实验所使用的 MDaemon 版本是 v7.23 英文版,建议大家不论测试还是实际生产环境最好都使用英文版以避免不必要的错误故障,如果情况允许最好操作系统也选择英文版,因为在实际情况中发现英文版的 MDaemon 与中文系统存在兼容性会导致菜单显示不完整。
?测试环境
宿主:
硬件配置:PIV2.4G / 1.5G-DDR400 / 80G-7200pm / 8139C-NIC
操作系统:Windows XP Pro With SP2 ENU
虚拟平台:VMware GSX 3.2.1
NodeA:
硬件配置:PIV2.4G / 512M / 10G+0.5G(Qdisk)+4G(Sdisk) / vlance-NIC+vmxnet-NIC
操作系统:Windows Server 2003 EE With SP1 CHS
网络信息:vlance-NIC:10M 全速半双工 / Heartbeat / IP192.168.236.250
vmxnet-NIC:1000M 全速全双工 / Public / IP192.168.199.250
承载信息:DC+DNS+IIS+SQL2005+MSCS
NodeB:
硬件配置:PIV2.4G / 512M / 10G+0.5G(Qdisk)+4G(Sdisk) / vlance-NIC+vmxnet-NIC
操作系统:Windows Server 2003 EE With SP1 CHS
网络信息:vlance-NIC:10M 全速半双工 / Heartbeat / IP192.168.236.251
vmxnet-NIC:1000M 全速全双工 / Public / IP192.168.199.251
承载信息:DC+DNS+IIS+SQL2005+MSCS
MSCS:
MSCS:IP192.168.199.200 / HostName:CLUSTER
SQL2005 VirtualHost:IP192.168.199.201 /HostName:SQL2005
?理论概念 & 最终目标
使用 SQL2005 作为 MDaemon 账户存储数据库并基于群集模式,以保障 MDaemon 任何一个节点服务器出现故障后仍然能够提供域和帐户的验证及管理。
使用资源磁盘(以下简称Sdisk)来存储 MDaemon 的用户数据,以保障 MDaemon 任何一个节点服务器出现故障后,用户在通过验证后登录到 MDaemon 上取得的邮件与数据一致。
最后通过 MSCS 的故障自动转移,实现 MDaemon 的冗余。
为此,在 SQL2005 中创建一个用来保存 MDaemon 域和帐户信息的数据库,命名为 MDaemonUsers。然后将 MDaemon 账户存储方式配置为 ODBC 方式,并创建与 SQL2005 中 MDaemonUsers 数据库的连接,导入账户数据库查询。修改 MDaemon 默认账户模板的存储路径,在群集管理器中将 MDaemon 配置为群集中的一个“通用服务”资源。
?实施部署
首先在获得活动资源的节点服务器上安装 MDaemon ,请记录下安装时管理员的名称和密码,完成 MDaemon 的安装后,强烈建议重新启动一次系统,确保 MDaemon 服务正常运转。之后进行以下的操作:
1、打开数据库管理器,创建一个新的数据库,名称为:MDaemonUsers。
2、打开服务管理器,找到 MDaemon 服务,将启动类型改为“手动”。
3、因为 MDaemon 当前只绑定在 192.168.199.251 上,群集 IP 不在绑定范围,会导致实际中出现访问故障。为此,打开 MDaemon 管理器并点击导航栏上的“Setup”,选择“Primary domain...”。
4、进入“Primary Domain”后,在“Domain”页下将“Primary domain IP”改为“127.0.1.1”,确定后退出。
5、为了让 MDaemon 的用户数据都保存在 Sdisk 下,需要修改默认新用户配置。为此,点击导航栏上的“Accounts”,选择“New account defaults...”。
6、在“Account Defaults”页下,将“Mail directory”改为“S:\MDaemon Users\$DOMAIN$\$MAILBOX$\”,根据需要再配置其他项,完成后确定退出。
7、因为在 MDaemon 安装时创建了一个管理员,为了保证每个节点中 MDaemon 管理员的一致性,则需要将管理员的数据也迁移到 Sdisk 中。为此,点击导航栏上的“Accounts”,选择“Account manager...”。
8、选中账号“Admin”,进入“Account Editor”并切换到“Mailbox”页下,将“Message directory”改为“S:\MDaemon USERS\maytide.net\admin\”,完成后确定并退出。
9、现在进行 MDaemon 账户存储方式的修改,将其改为 ODBC 中的 SQL Server 存储方式。为此,点击导航栏上的“Accounts”,选择“Account database...”。
10、进入“Account Database Options”后,将“Account database”页下的选择改为“Store account data in a ODBC accessible store”,并点击“Configure”开始配置。
11、进入配置页面后,点击“New DSN”,开始创建数据源。
12、在“选择数据源”配置中,切换到“机器数据源”,并选择“新建”。
13、在“创建新数据源”配置中,选择数据源类型为“系统数据源(只用于当前机器)”,并点击“下一步”。
14、选择“SQL Server”作为数据源的驱动程序,并点击“下一步”。
15、至此,就完成了以 SQL Server 为连接类型的系统数据源的创建,点击“完成”。
16、此时系统自动弹出连接 SQL Server 的 ODBC 数据源创建向导,根据提示填写信息。为了方便管理,我将此 ODBC 数据源命名为“MDaemonUsers”,注意服务器这项应当选择主机名为“SQL2005”的服务器,因为“SQL2005”是本次实验中的 SQL2005群集虚拟主机。
17、验证与连接配置中,我是按照默认配置的。
18、将默认的数据库改为 SQL2005 中名为“MDaemonUsers”的数据库,因为此数据库将用来保存 MDaemon 的域和用户信息。
19、其他选项为默认,并点击“完成”。
20、弹出完成后的提示,这里可以选择“测试数据源”来进行连接测试。
21、至此就在本节点服务器上建立了一个以 SQL Server 连接,名为“MDaemonUsers”的 ODBC 机器数据源。
22、完成 ODBC 的配置后,回到 MDaemon 的“ODBC Selector Wizard”下,可以看到“MDaemonUsers”已经在数据源列表中,选中它后点击“下一步”。
23、因为 ODBC 中的“MDaemonUsers”数据源所对应的 SQL2005 下的数据库“MDaemonUsers”中没有 MDaemon 所需要的表,所以我们运行 MDaemon 自带的脚本来创建它。为此,点击“Run a script to created the necessary tables...”。
24、向导将自动定位到 SQL scritps 所在的位置,此处有多个脚本选择,因为我们使用的是 SQL Server ,所以选择名为“AccountsDB-SQLServer.sql”的脚本文件,并选择“打开”。
25、此时会弹出“Tables created successfully!”的提示,如果失败请重新检查之前的步骤确保数据源创建成功。
26、回到“ODBC Selector Wizard”界面,我们会看到成功创建的两个表“domains”、“userlist”,点击“完成”。
27、MDaemon 开始转换数据,并给出提示。
好了,可以休息一下了。因为到这里就完成了 MDaemon 以 SQL Server 为账户存储方式的建立。感觉是不是够累得,其实真的操作的时候是非常简单的要不了多长时间,基本上一路选择下来是非常的顺利。不过说真的我是够累得,写到这里已经是17:42分了,下班时间过去12分钟了,决定继续写完。
基本上工作已经完成了一大半了,下面请关闭这台节点,切换到其他节点进行 MDaemon 的安装后配置,关于第二台节点上 MDaemon 的安装配置就不再重复了。
不过需要提醒注意的是:第二台节点上 MDaemon 安装时的管理员名称及密码都应该与第一台上的相同,在完成安装的最后有一个选项“Start MDaemon”,最好不要勾选,因为下来我们需要手工配置这台节点上的 MDaemon 使用数据库存储账户。
为此,打开系统管理工具程序组中的“数据源(ODBC)”参考第一个节点的数据源安装步骤为第二个节点创建与之前相同的数据源。之后,用文字编辑器打开 MDaemon 所在安装下 App 目录中的“MDaemon.ini”文件,加入以下配置:
代码
[Advanced]
UserDllType=ODBC
[USER_ODBC]
DSN=MDaemonUsers
User=
Password=
注:DSN 是配置 MDaemon 使用服务器 ODBC 中哪个数据库源,User 和 Password 是指定数据源的访问账号和密码,同样如果 mdaemon.ini 配置文件中没有 [USER_ODBC] 配置字段则添加。
将本节点上的 MDaemon 服务也改为“手动”方式(参考2)。运行 MDaemon ,修改默认的绑定IP(参考3~4),修改默认账号路径与第一个节点相同(参考5~6)。进入账号管理你能看到此节点上的管理员数据所在位置是在 Sdisk 上,因为第一次启动 MDaemon 前,已经手工为其配置了数据库存储账户信息,所以当第一次启动后 MDaemon 是直接从数据库中获取账户的信息。现在可以测试一下邮局是否工作正常!访问 http://IP_Address:3000 登录 WorldClient 操作测试。
28、完成以上步骤及测试后, MDaemon 的冗余部署的准备工作算是完成了,为了实现故障自动转移,还需要将 MDaemon 配置到 MSCS 中,在开始配置之前强烈建议关闭 MDaemon 服务避免不必要的错误,因为当配置完 MDaemon 后,其监视及控制权已经转交给了 MSCS 。接下来开始为 MDaemon 配置群集,为此在当前节点上打开“群集管理器”,在 SQL Server 所在的群集组“组0”中新建一个“资源”。
29、在“新建资源”中填写相关信息,这里我为资源命名为“MDaemon Server”,因为 MDaemon 本身并不支持群集,而它的群集实现纯粹是靠 DIY 出来的,所以为了能够使 MDaemon 被 MSCS 所支持,在“资源类型”中选择“通用服务”,完成后点击“下一步”。
30、在“可能的所有者”中将“可用节点”中的服务器添加到“可能的所有者中”,完成后点击“下一步”。
31、在“依存”关系中,请将 MDaemon 群集依赖的资源添加到“资源依存”中,完成后点击“下一步”。
32、在“一般服务参数”中,“服务名”为“MDaemon”;“启动参数”为“C:\MDaemon\APP\MDAEMON.EXE”,完成后点击“下一步”。
33、完成资源添加后,“MDaemon Server”便出现在“组0”中,将其联机后,系统会自动启动 MDaemon。
至此,便实现了基于 SQL Server 存储账号的 MDaemon 群集,下来我们可以创建一个邮件账号进行 webmail 方式的登录来检测 MDaemon 与 SQL Server 群集连接是否正常。
?结尾
MDaemon 的群集创建结束了,下来我们可以开启第一台节点进行灾难模拟,以检验此次部署实施的 MDaemon 冗余方案的效果。经过测试,当一台节点停止后,另一台节点迅速接管群集资源,并启动 MDaemon 服务。小注:当只剩下一台节点时,通过 MDaemon 自身来停止服务是无效的,经过测试关闭 MDaemon 服务后,系统会自动再次开启 MDaemon 服务,如果在此环境下作 MDaemon 的停机维护,需要通过群集管理器将 MDaemon Server 脱机。
关于 MDaemon 的群集打算做成一个系列,而这个系列的名字就以需求为根本,名为《MDaemon Server 冗余方案系列》,在今后还将推出多种 MDaemon 的冗余方式供大家参考选择。不过,个人认为此次群集的实施方式所达到的冗余,可能只有在大环境中才能得到真正的应用。如果能够脱离微软群集(MSCS)来实现 MDaemon 的冗余就会有很大的应用市场。
欢迎大家与我共同探讨关于 MDaemon 的冗余实现技术,同时希望大家能参与到讨论中。
作者:gOxiA

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











SQL Server データベースに既に存在する同じ名前のオブジェクトについては、次の手順を実行する必要があります。 オブジェクトの種類 (テーブル、ビュー、ストアド プロシージャ) を確認します。 IF NOT EXISTS を使用すると、オブジェクトが空の場合に作成をスキップできます。オブジェクトにデータがある場合は、別の名前を使用するか、構造を変更してください。既存のオブジェクトを削除するには、DROP を使用します (注意してください。バックアップを推奨します)。スキーマの変更をチェックして、削除または名前変更されたオブジェクトへの参照がないことを確認します。

インポート手順は次のとおりです。 MDF ファイルを SQL Server のデータ ディレクトリ (通常は C:\Program Files\Microsoft SQL Server\MSSQL\DATA) にコピーします。 SQL Server Management Studio (SSMS) でデータベースを開き、[アタッチ] を選択します。 「追加」ボタンをクリックして、MDF ファイルを選択します。データベース名を確認し、「OK」ボタンをクリックします。

SQL Server サービスの開始に失敗した場合の解決手順は次のとおりです。 エラー ログを確認して、根本原因を特定します。サービス アカウントにサービスを開始する権限があることを確認してください。依存関係サービスが実行されているかどうかを確認します。ウイルス対策ソフトウェアを無効にします。 SQL Server のインストールを修復します。修復が機能しない場合は、SQL Server を再インストールします。

SQL Server のポート番号を表示するには: SSMS を開いてサーバーに接続します。オブジェクト エクスプローラーでサーバー名を見つけ、右クリックして [プロパティ] を選択します。 「接続」タブで、「TCP ポート」フィールドを表示します。

SQL Server データベースを誤って削除した場合は、次の手順を実行して回復できます: データベース アクティビティの停止、ログ ファイルのバックアップ、データベース ログの確認、回復オプション: バックアップからの復元、トランザクション ログからの復元、DBCC CHECKDB の使用、3 番目の使用パーティーツール。データ損失を防ぐために、データベースを定期的にバックアップし、トランザクション ログを有効にしてください。

Huawei 携帯電話にデュアル WeChat ログインを実装するにはどうすればよいですか?ソーシャルメディアの台頭により、WeChatは人々の日常生活に欠かせないコミュニケーションツールの1つになりました。ただし、多くの人は、同じ携帯電話で同時に複数の WeChat アカウントにログインするという問題に遭遇する可能性があります。 Huawei 社の携帯電話ユーザーにとって、WeChat の二重ログインを実現することは難しくありませんが、この記事では Huawei 社の携帯電話で WeChat の二重ログインを実現する方法を紹介します。まず第一に、ファーウェイの携帯電話に付属するEMUIシステムは、デュアルアプリケーションを開くという非常に便利な機能を提供します。アプリケーションのデュアルオープン機能により、ユーザーは同時に

SQL Server データベース ファイルは、通常、次のデフォルトの場所に保存されます。 Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data データベース ファイルの場所は、データベース ファイル パスを変更することでカスタマイズできます。設定。

SQL Server のインストールが失敗した場合は、次の手順に従ってクリーンアップできます。 SQL Server をアンインストールする レジストリ キーを削除する ファイルとフォルダーを削除する コンピューターを再起動する
