読者です 読者をやめる 読者になる 読者になる

"Diary" インターネットさんへの恩返し

いつもソースコードコピペばかりなので,みなさまへ少しばかりの恩返しを

1つのOSに複数のSAPを乗っける方法(MCOD/マルチインスタンス)



スポンサーリンク

HANAの登場でこの記事で書く内容も、すぐに古き良きNetweaver時代の技術ネタとなることを理解しつつ記す。

SAPアプリケーションでは、基本的に1OS上に、DB/APをのせるセントラル構成が基本。

それを1OS上に複数のSAPを乗っけちゃおうという話。

今では開発環境やデモ環境ですら、仮想化の恩恵を受けて、デモ用にOSから環境を用意することが多いと思います。

とは言え、PC上にvirtualboxとかで仮想OSを入れて、1つのWindows Serverに複数のSAPを作っることもしばしば。

そのやり方として主に2つあるのでご紹介。

まずSAPとDBとの関係について抑える

SAPは他の一般的なDB/AP構成のシステムのアーキテクチャと同じで、OracleSQL Server等のDBソフトを使って、DBインスタンス(サービス:メモリ領域+プロセス)を作り、その上にユーザデータベースとなるスキーマを乗っけます。

そしてSAPアプリケーションサーバがそれらの上にのり、1つのシステムを構成します。


f:id:azumami:20151207231957p:plain

2つの構築方法

上に書いたアーキテクチャを前提に、1つのOS上に複数のSAPシステムを作る手段として2つあります。

MCOD

1つ目は、MCOD(Multiple Components in One Database)という形で1つのDBインスタンスの上に2つ以上のスキーマを作ります。そしてそれぞれのスキーマに対応するSAPアプリケーションサーバを構成します。


f:id:azumami:20151207231931p:plain

この構成のメリットとして、DBインスタンスが1つとなるため、必要なメモリ領域が1つ分のDBインスタンス用のみで済み、メモリリソースが次で紹介するマルチインスタンス構成に比べ少なくて済みます。

デメリットとして、MCOD方式の場合、1つのDBインスタンスを共有するためDBプロセスの取り合いが発生し、パフォーマンスに難ありとなります。

同時にヘビーな使い方をしないのであればコレで十分でしょう。

ただ、このMCOD構成は厄介ですので、デモ用途以外の利用はオススメできません。厄介な例でいうと、

  • 標準DBツールスキーマの操作が出来ない
  • DBファイルが1つになるため、DBファイルレベルでコピーなどができない
  • スキーマ毎にバックアップができない
  • UnicodeとNonUnicodeが共存できない
  • システムコピーとかDB移行がめんどくさい


参考

388866 - Multiple Components on One Database - Installation

DBマルチインスタンス

2つ目は、DBインスタンスを各システム毎に用意するマルチインスタンス構成です。


f:id:azumami:20151207231947p:plain

こちらの場合、システム毎に、SAPアプリケーションサーバ+DBスキーマ+DBインスタンスが独立します。

そのため、相互に影響を及ぼしにくいというメリットがありますが、DBインスタンスのメモリが2つ分必要になるので、必要な物理メモリはその分増えます。

SQL Serverを例に取ると、通常1つ目のDBインスタンスはdefault Instanceとして実装されます。そのため2つ目のインスタンスをNamed Instanceとして実装することになります。

MCODも、マルチも同じですが、移送ディレクトリが共通になってしまうのでご注意下さい。

特に、

もし、新しく追加するシステム側でDummy Syatemで移送ルートを組んだりすると、DOMAIN.CFGが上書きされ、移送ルートが消えてしまいます。


参考

SAP Notes
SAP Note 21960 - Several instances/systems on one UNIX computer
1794178 Network issues suspected on SQL Server systems
1593183 SQL ServerTCP/IP ネットワークパラメータ
551915 DB リストアまたは DB コピー後に R/3 が起動しない
492966 APO 3.0 liveCache 管理/監視 (LC10)
455238 MSSQL_* environment variables, profile parameters
208632 MSSQLTCP/IP ネットワークプロトコル
28667 Microsoft SQL Server 固有プロファイルパラメータ
1914385 SQL Server Alias use results in a connection, but w/errors
Note 28392 - Two R/3 Systems on one Windows NT Server