1つのサーバに複数のサイトを作ろうとしています。
最初のインストールは問題なく完了し、2サイト目のインストールにおいて
DBを同じものとしたいためテーブル名の接頭語を別名にし
続けているとadodb_logsqlテーブル作成で以下のエラーが表示されました。
1050: Table 'adodb_logsql' already exists
とりあえずインストールは完了し両サイトとも動作してい(るように見え)ます。
DBを見ると、本テーブルは接頭語が付加されずにDBに1つしか生成されないようですが
複数のサイトを単一のDBで運用するのは問題があるのでしょうか?
OS:FreeBSD 5.4-RELEASE-p6
APACHE:1.3.37
MySQL:4.1.20
PHP:4.4.2
moodle:1.6.1
そういえば,前にも同じ様な議論があったな,と探してみたら,
ありました。
http://moodle.org/mod/forum/discuss.php?d=34767
# 自分が書き込んだことも忘れてました。
なお, adodb は,
http://adodb.sourceforge.net/
というようなものらしいので,Moodleの機能全般に関わるものだと
思います。
# そうでなくても,table名がアップグレード時に別の名前に変更されてしまう可能性も
# あると思うので,同じDBの中に複数のMoodleのインスタンスを詰め込むのは
# 避けたほうがよいと思います。
ありました。
http://moodle.org/mod/forum/discuss.php?d=34767
# 自分が書き込んだことも忘れてました。
なお, adodb は,
http://adodb.sourceforge.net/
というようなものらしいので,Moodleの機能全般に関わるものだと
思います。
# そうでなくても,table名がアップグレード時に別の名前に変更されてしまう可能性も
# あると思うので,同じDBの中に複数のMoodleのインスタンスを詰め込むのは
# 避けたほうがよいと思います。
そういえば私も書き込んだのを忘れていました。^^;
adodb_logsqlはどうせ使ってないようなので警告が出ても問題ないと思いますが,それでもわざわざ共通のデータベースを使うメリットはまったくないですよね。バックアップ・リストアするときも面倒ですし。
出てきたついでに,1.6の日本語化の現状:
http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%201.6
adodb_logsqlはどうせ使ってないようなので警告が出ても問題ないと思いますが,それでもわざわざ共通のデータベースを使うメリットはまったくないですよね。バックアップ・リストアするときも面倒ですし。
出てきたついでに,1.6の日本語化の現状:
http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%201.6
>
adodb_logsqlはどうせ使ってないようなので警告が出ても問題ないと思いますが,それでもわざわざ共通のデータベースを使うメリットはまったくないですよね。
現在、小テスト ( Quiz module ) の開発をされているOpen UniversityのTim Huntさんも、adodb_logsqlに関する投稿をされているようですね。
[ Using Moodle: Moodle HEAD is broken ]
http://moodle.org/mod/forum/discuss.php?d=52142
ひとつのDBに複数のMoodleを入れる必要がある場合、インストール前にadodb_logsqlを削除すれば良いようです。
現在、小テスト ( Quiz module ) の開発をされているOpen UniversityのTim Huntさんも、adodb_logsqlに関する投稿をされているようですね。
[ Using Moodle: Moodle HEAD is broken ]
http://moodle.org/mod/forum/discuss.php?d=52142
ひとつのDBに複数のMoodleを入れる必要がある場合、インストール前にadodb_logsqlを削除すれば良いようです。
井上と申します。
ADODBはPHPからデータベースへのアクセスを抽象化し、対応するデータベースの差異を気にしないでデータベースアクセスを実現するためのライブラリだと考えます。もし、データベースの種類が変わった場合にもデータベースへの接続設定を変更するだけで、Moodleのコードは変更しなくても済みます。そして、adodb_logsqlテーブルですがPHP(つまりMoodleのコード)からデータベース内のテーブルへのアクセスの記録が当該テーブルに記録されると考えます。
DBインスタンスをサイト毎にするかどうかですが、下表のようなメリット・デメリットがあると考えます。もし、DBインスタンスの作成に制限がないのであれば、サイト毎にインスタンスを作成する方が管理作業が明確に分離できて便利だと思います。ホスティングサービスによってはインスタンスが複数作成できないなどの制限があり、単一データベースで運用されている方もいらっしゃるようですが、ある程度の規模で運用する場合には、相応の応答性を確保するためには共用型のホスティングサービスではなく、専用サーバを借りるか、自前でサーバ運用をされるのがベターな選択だと思います。安ければいいというものでもないと思います。
弊社の環境でも複数サイトを運用していますが、それぞれインスタンスを作成し、個別にバックアップ作業をしています。
ADODBはPHPからデータベースへのアクセスを抽象化し、対応するデータベースの差異を気にしないでデータベースアクセスを実現するためのライブラリだと考えます。もし、データベースの種類が変わった場合にもデータベースへの接続設定を変更するだけで、Moodleのコードは変更しなくても済みます。そして、adodb_logsqlテーブルですがPHP(つまりMoodleのコード)からデータベース内のテーブルへのアクセスの記録が当該テーブルに記録されると考えます。
DBインスタンスをサイト毎にするかどうかですが、下表のようなメリット・デメリットがあると考えます。もし、DBインスタンスの作成に制限がないのであれば、サイト毎にインスタンスを作成する方が管理作業が明確に分離できて便利だと思います。ホスティングサービスによってはインスタンスが複数作成できないなどの制限があり、単一データベースで運用されている方もいらっしゃるようですが、ある程度の規模で運用する場合には、相応の応答性を確保するためには共用型のホスティングサービスではなく、専用サーバを借りるか、自前でサーバ運用をされるのがベターな選択だと思います。安ければいいというものでもないと思います。
弊社の環境でも複数サイトを運用していますが、それぞれインスタンスを作成し、個別にバックアップ作業をしています。
Pros(メリット) | Cons(デメリット) | |
サイト毎インスタンス | ・管理がサイト毎にできる ・DBインスタンスが壊れても被害が特定のインスタンスに抑えられる | インスタンスが複数できてしまい、サイト数分の管理作業が必要になる |
単一インスタンス | 管理作業が一括でできる | ・インスタンス内のテーブル数が大きくなり、サイト数が増えると管理が面倒になる。 ・インスタンスのファイルが壊れると全てのサイトのデータが失われる。 |