2008/02/16(土)PostgreSQL 8.3.0+ slony-I
2017/10/11 8:38
前評判どおり、更新系の速度が格段に向上しています。
pg_dump にて明示的なカラム付きで SQL 文出力した約107,000件のデータベースの復旧が約6時間(7.4系)→10分(8.3系) です。
更に、8.2から dbmirror がサポートされていなく、調査したら、「代わりに Slony-I を使いなさい」ということになっているので、仕方なくこれを使うことに。。
#この slony が一番填まりましたつーか。。
先ず、postgreSQL 8.3 は、スレッドセーフ対応になるよう構築する必要があります。
これは、 slony?Tを動作させるために必要。こんな感じ:
$ ./configure --with-perl --with-openssl --with-libxml --with-libxslt --enable-thread-safety
(xml サポート使わない場合は、--with-libxml と --with-libxslt は不要)
$ gmake
$ gmake check
# gmake install
8系になって、オプション設定などが少し変更になっています。
・ initdb は、--no-locale の代わりに --locale=C を指定
・ initdb で構築したディレクトリに生成される postgresql.confにて、
listen_addresses = 'localhost,稼動サーバのIPアドレス1,稼動サーバのIPアドレス2,....'
のように指定。複数のIPアドレスを持つサーバであれば、公開するIPアドレスをカンマで区切って指定。
・ initdb で構築したディレクトリに生成される pg_hba.conf にて、IPアドレスは、CIDR 形式でしか指定できない。
・ pg_ctl または postgres(postmaster) の起動オプションの -i は意味が無くなる。
・ syslog 機能はデフォルトで有効。実際に稼動させるための設定は、postgresql.conf 内で該当項目を設定。
・ アクセス権は USER の拡張概念である ROLE(ロール)という概念である(使う分には今までとさほど変わらない)
slony ?Tは、以下のような感じでよいでしょう。
$ ./configure --prefix=/usr/local/pgsql --with-perltools
$ gmake
# gmake install
slony-Iの設定は、以下が参考になります。
31 Slony-Iでデータベースをレプリケーション 〔マイコミジャーナル〕
32 Slony-Iのslonikコマンドラインユーティリティ 〔マイコミジャーナル〕
Slony-I HEAD_20050613 ドキュメント 〔日本 PostgreSQL ユーザ会〕
が、しかし、実運用時への適用は注意が必要。
・ サーバ設定に localhost は使わないほうがよい。IPアドレスの指定は可能。ホスト名指定の場合はフルのFQDNで。
・ パラメータ指定に 必ずカンマが要るところと、決してカンマをつけてはいけないところが随所にあるので、間違わないように例示をよく確認すること。← これに数時間填まったので。。orz
・ 指定クラスタ名に _(アンダーバー)を先頭につけたものが、該当データベースのスキーマとして新規追加される。
(造りとしては、上手いやり方だ。既存スキーマに全く影響与えないので)
これはマスター側にもスレーブ側にも追加される模様。設定ミスなどで削除するときは、SQL文の DROP SCHEMA が使える。
・ dbmirror 同様、非同期レプリケーションだが、その確認周期はすこぶる短い(2秒がデフォルト)。環境によっては、周期を長くする必要があるだろう。
一度動作し始めると、すんなりレプリケ-ションされます。dbmirror と違ってタイムラグが殆どありません。(この点は 8.3 だから、というのもあるかもしれない)
2008/02/04(月)FreeBSD 6.3R へ samba 3.0.28 をインストール
2017/10/11 8:57
どうも Windows系が絡むと、メンテナンスもややこしくなるので嫌なのだが、必要に迫られて仕方なく。。
1) 必須の パッチ版 libiconv をインストール
ここ から libiconv の最新版をダウンロード。
(最新版 は 1.12 の模様)
ここ から、パッチを手に入れる。
上記のサイトにも説明されているですが、
$ gzip -dc libiconv-1.12.tar.gz | tar xvf -
$ cd libiconv-1.12
$ gzip -dc ../libiconv-1.12-ja-1.patch.gz | patch -p1
として、パッチを当てて、
$ ./configure
$ make ; make check
$ su
# make install
として、インストール。あまりお勧めはしないが、上記工程全てをを root でやっても大丈夫です。
2) samba のインストール
Windows 系が絡むソフトウェア特有の文化があって、各種説明があまり的確にはなっていません。
正直、かなり填まりました。
# tar xvzf samba-3.0.28.tar.gz
# cd samba-3.0.28/source
# ./configure --with-syslog (syslog を有効にする)
--with-winbind (Windowsユーザと unix ユーザの統合ログイン可にする)
--with-acl-support (acl を有効にする)
--with-smbwrapper (smpsh を有効にする)
--with-automount (automount サポート)
--with-utmp (アクセス記録収集をサポート)
--disable-cups (cupsを無効:プリンタ共有しなければ使わない)
--with-libiconv=/usr/local
--with-configdir=/usr/local/etc (smb.conf を置きたいディレクトリ名)
--with-pam
(./configure の部分は、便宜上複数行に分けているが、実際は、半角スペースで区切って1行にして一気に入力)
# make
# make install
3) 動作環境の整備
・/etc/inetd.conf に以下の1行追加。
swat stream tcp nowait/400 root /usr/local/samba/sbin/swat swat
・このあと、inetd を再起動(inetd を使っていない場合は、有効にするとよい)
・/usr/local/etc/rc.d に、samba.sh などのファイル名で、以下のスクリプトを作成
#!/bin/sh
#
smbspool=/var/spool/samba
pidfiledir=/usr/local/samba/var/locks
smbd=/usr/local/samba/sbin/smbd
nmbd=/usr/local/samba/sbin/nmbd
winbindd=/usr/local/samba/sbin/winbindd
# start
if [ "x$1" = "x" -o "x$1" = "xstart" ]; then
if [ -f $smbd ]; then
if [ -d $smbspool ]; then
rm -f $smbspool/*
fi
echo -n ' Samba 3.0.28 '
$nmbd -D
$smbd -D
$winbindd
fi
# stop
elif [ "x$1" = "xstop" ]; then
kill `cat $pidfiledir/smbd.pid`
kill `cat $pidfiledir/nmbd.pid`
kill `cat $pidfiledir/winbindd.pid`
# restart
elif [ "x$1" = "xrestart" ]; then
$0 stop
$0 start
fi
(編集後は、実行権を付与するのを忘れずに)
4)動作環境の設定
いきなり smb.conf を作っても良いが、日本語ドキュメントが有償のものばかりで、敷居が若干高いので、GUI インタフェースの swat を使う。
http://(インストールしたサーバ):901/
で、認証を要求されるが、ここでは、wheel グループに所属するunix アカウントとそのパスワードにてログインすると、ログインできます。
備忘録的なヒント:
・SHARE 属性で、通常の WindowsXP にてファイル共有が可能になる
・Windows XP からの共有アクセスは、ユーザ、グループ共に nobody になる模様。
(なので適当な権限設定とセキュリティ対策を行うこと。)
・設定変更後は、上記スクリプトにて restart するのが確実
2008/01/19(土)FreeBSD 6.3R リリース
2017/10/11 8:59
http://www.jp.freebsd.org/www.FreeBSD.org/releases/6.3R/announce.html
同じ内容の電子メールが 14:23 に受信されていました。
日付は 1/18 ですが、日本時間では 1/19 です。
BIND が 9.3.4 になったとか、セキュリティメンテナンス期限は 2010/01/31 までとか、
IPv6 プロトコルスタックと数多くのパッケージ開発に功績残して、逝ってしまった 'itojun' こと「萩野純一郎」氏 のご冥福を祈ります、
のようなことが記述されています。
FreeBSD 5.3R 以上のバージョンで、6.3Rにアップデートできるとしています。
FreeBSD 7.0R リリースは「今のところ」来月の予定みたいです。
Apache も新バージョンリリース
Apache については、まだ公式アナウンスありませんが、
Apache 1.3.41, Apache 2.0.63, Apache 2.2.8
が、昨日、それぞれリリースされているようです。
2008/01/11(金)FreeBSD 6.3R/7.0R リリース情報
2017/10/11 8:59
FreeBSD 7.0R はアナウンス上は提供時期未定。
まぁ、使う側から見ると、7.0R のリリースは 6.3R の後でもいいのですが。。
2007/10/30(火)FreeBSD 7.0R/6.3R
2017/10/11 9:04
早ければ年内(12/17) にも FreeBSD 7.0 がリリース予定らしい。。
いつものことだが、予定どおりに行った試しは記憶にある限り全く無く、常に1ヶ月単位で遅れるのであるが、
そうだとしても遅くても 2008年春までには FreeBSD 7.0 がこの世に出る模様です。
また、未だアナウンスは無いようですが、FreeBSD 6.3R もリリースに向けて動き始めているようです。
こちらはリリース時期は今のところ判りませんが、7.0R の直後か、同時くらいかもしれません。
FreeBSD 6系は、6.3R か 次版 6.4R でメンテナンスは終了すると思われます。
2007/10/23(火)wu-ftpd のインストール
2017/10/11 9:06
のようなものが出るようにして欲しいという要望が・・・
正直、途方に暮れたんですが、どうやら、
IE6 にて anonymous FTP でログインを試みる → 失敗したらこのプロンプトが出る。
という仕組みらしい。
ところが FreeBSD 標準の ftpd だと、どうも IE6 が想定していないエラーが返るので、
このプロンプトが出ないらしい。。
FrreBSD 標準の ftpd では、
「anonymous ログインなんでできません」というエラーを返すので、ftpd の挙動としては全く正しいんだが、、、
IE6 が想定している ftpd の挙動は、anonymous ログインのリトライを要求するというもの。
やはり造りはちょっとアマチュア入ってるね、、 < IE6
解決には wu-ftpd が現実的。
ということで、 wu-ftpd をFreeBSD のパッケージからインストールして設定するが、、
ファイル一覧が表示できない
という現象に悩むこと数時間。
どうもパッケージのコンパイル済みバイナリファイルが、現状にあっていない模様・・・
proFTPD に変えても同じ結果。
ということで、wu-ftpd をソースコードからコンパイルです。
wu-ftpd は、ここで入手できます → http://www.wu-ftpd.org/
最新バージョンは 2.6.2 ですが、これが 2001年だったり、、セキュリティfix はパッチファイルという有様。
開発が停止しとる、、、
まずは、入手した wu-ftpd-2.6.2.tar.gz を gzip などで展開。同時にパッチも入手。
そして、作成されたディレクトリ に移動し、
./configure --prefix=/usr/local --enable-ls
とする。--enable-ls (chroot の場合の /bin/lsではなく、内部のlsコマンドを使う)が重要です。
(参考 http://unix-study.com/unix/sol8/install/wu-ftpd/idnex.html)
早速 make すると、エラーが出ます。
2つのファイルを手動で修正する必要あります。
1) src/proro.h
一番最後の行(295行目)
char *strcasestr(register char *s, register char *find);
↓
/* char *strcasestr(register char *s, register char *find); */
としてコメントアウト
2) src/ftpcmd.y
= {
となっている部分の = を削除。
= と { は、タブ文字で区切られています。
修正後 make を行い、
エラーが無くなったら make install
FreeBSD 6.2 の場合
/usr/local/sbin 配下に in.ftpd、ckconfig、ftprestart、ftpshut、privatepw
/usr/local/bin 配下に ftpcount、ftpwho
/etc 配下に ftpaccess、ftpconversions
はインストールされます。
ftpd は /usr/local/sbin/in.ftpd がその本体です。
あとはこの in.ftpd を inetd から in.ftpd -a -l として起動できるように設定して、インストール完了。
2007/10/14(日)FreeBSD 6.2 において、NVIDIA GeForce7050PV/nForce 630a なマザーボードへの対応
2017/10/11 9:07
ボードはこんな感じ。このサイズのものを採用するのは初めてだった りするが、、 ^^;
このマザーボードにて FreeBSD 6.2 を導入するのに実質まる2日かかってしまいました..orz
このマザーボードは、今年になってから発売されたものらしく、ハードウェアが新しいのです。
それ故、FreeBSD 6.2 をインストールして稼動させるには、致命的な問題が2つ。
インストールとOSの起動は難なくでき、普通に使えるのですが、 まず、「リブートが出来ない」 という現象に遭遇。
リブートの直前で、実質ハング状態になり、手動リセットしないとリブートしないのです。
これは通信回線経由で遠隔メンテナンスする時に致命的な問題になります。
色々調べると、提起の「NVIDIA GeForce7050PV/nForce 630a」マザーボード対応は、今年の7月か8月頃に安定版が提供された模様。FreeBSD 6.2-RELEASE では対応してなく、最新版の FreeBSD 6.2-STABLE にするといけそうなことが判りました。
早速、FreeBSD 6.2-STABLE へOSを更新してみる。。
起動成功。上手くリブートかかる。。見事に上手く行きました。
あと、もうひとつ。オンボードのLANが認識されません。FreeBSD でサポートされているLAN カードを装着することで一応回避される問題ですが、説明が面倒です。自分が使うわけでないので。。
これも、今年7月ころに 6.2-STABLE で対応したようなので、早速導入します。
手順は以下の通り:
0) device nve を無効にして、カーネル再構築。
1)FreeBSD Device Driver for NVIDIA nForce Network Adapter なるサイトから、nfe-20070918.tar.gz をダウンロード
2)他のパッチも必要に応じて入手。大抵の場合は他のパッチは必要無いと思われます。
3)ダウンロードしたパッチを tar で展開。
4) cd nfe-20070918
5) make
6) mv if-nfe.ko /boot/modules
7) cd /boot/modules
8) chown root:wheel if-nfe.ko
9) chmod 555 if-nfe.ko
10) cd /boot
11) vi loader.conf
として、if_nfe_load="YES" の1行追加
この一連の作業は、root アカウントで行います。
こうすることで、再リブート後、問題なくマザーボード AN-M2HD が使用できるようになります。
2007/07/15(日)PHP4 のサポートは年内まで
2017/10/11 9:09
PHP4のサポート終了は2007年12月31日 〔shashdot Japan〕
ついに告知がなされてしまいました。
2008年8月8日以降、PHP4 は完全に捨てられる運命にあります。(今のところ)
最近需要が増えだした著名な CMS ソフトウェアの多くは、PHP 4 対応で、PHP5 は対応していないものが多く、
システム運用としては最も懸念する事項であり、悩みの大きな種です。
というのも、PHP3 と PHP4 の時は互換性があったが、PHP4 と PHP5 は互換性が無いからです。
次期バージョン PHP6 も既に PHP5 と互換性が無い造りになると聞いています。
こういう問題が出ることはPHP3 から PHP4 に変わっていくときに、比較的安易に予測出来たことなので、
自分が直接手を出せる新規ものの請負業務は、さっさと PHP から Perl に変えたのでさして影響は殆ど無い
のですが、開発作業が別の人になっているものが幾つかあって、それらは1つ1つの案件毎に対応を考えない
といけません。
こうして、収益が全く無いけれど、重要且つ大きな作業が時々あるのが、システム運用です。
2007/02/16(金)混沌気味で判りにくい MySQL
2017/10/11 9:26
日本では今ひとつですが、欧米圏ではユーザシェアの6割とも7割とも言われている代物です。
当サイトの管理人は、MySQL は積極的に避けています。PostgreSQL が使えない組み合わせの時に止むを得ず採用するという姿勢です。
ライセンスだけでも何回か変わっているようだし、訳が判かりません。
例えば、知らずにライセンス条項違反をしでかして問題が発生したとしても、この業界では全てシステム屋へ責任転嫁されるのがオチです。
だから、この状況では 最初から積極的には使わない という自己保身を図るしかないわけです。
最初はGPLのみだったはず。
それが、事業で使う(インストール代行とかも含む)場合は、ライセンスを有料で買ってね、という話しになり、
さらに、改造しなければ GPL(無償)でいいけれど、そうでない場合で、ソースコード公開したくない/出来ない場合はライセンスを有料で買ってね、という話しになったり(この時点で解釈が複数あるようなので、政治的な安全策とるしかない)、
挙句の果てに、昨夜初めて知ったんですが、昨年の10月には、「エンタープライズ(商用版)」と「コミュニティ(無償版?)」に分けるから、商用レベルのサポート欲しければ、ライセンスを有料で買ってね、という話しになったりで、金をケチるクライアントを抱えるシステム屋にとっては、ライセンス条項の度重なる変更はほんとに泣かせもの。
ライセンスを有償で買って貰ったほうがトラブルが少なくて余計な対応が減るのかな、と多くのシステム屋は考えるけれど、費用をケチられると、それが全く出来ないからです。
更に機能面ですが、正直、「何でこれが多くのユーザがいる優れものなんだべか?」という感じです。
先ず速度は、 PostgreSQL 8.x > MySQL 5.0 。
国際化対応も PostgreSQL 8.x > MySQL 5.0。何で euc-jp は MySQL ではujis となるんだろか??
# MySQLより PostgreSQL が遅いというのは、当時は機能的に充実してた故の代償で、今となっては無意味な固定観念だとおもう。。。
確かに欧米のような1バイト文字圏だと、しっくり来る作りという気はします。
現在の MySQL は一応国際化対応ですが、PostgreSQL の方が扱いに柔軟性がある感じなのです。
相変わらず、日本語のドキュメント量も PostgreSQL > MySQL です。
整ってきたとはいい、英語が大の苦手な当サイト管理人のような者にとっては、この面でもまだとっつきにくさがあります。
取り急ぎ、とあるサイトで使うので、MySQL固有の技術を習得するためにもインストール&テスト運用しています。
今日の未明にテスト運用まで出来ました
2007/01/29(月)FreeBSD 6.2R アップグレードの注意点 ― DNS
2017/10/11 9:29
現在3分の1のサーバについてアップグレード完了しています。
FreeBSD 6.2R は BIND 9.3.3 がベースシステムとして組み込まれています。
5台稼動させている内外の DNS で、うち3台の作業を終えましたが、致命的な被害になるかもと思われる点が1つ・・・
/var/named/etc/namedb/named.conf は上書きされるらしい.....
このファイルが上書きされると、アップグレード前の DNS設定が事実上クリーンアップされてしまいます。
FreeBSD 6.0R → 6.1R の時はこのようなことは無かったように記憶しているので、要注意というところでしょうか。
設定ファイル自体は、 BIND 9.3.2 で使用していたものがそのまま使えます。
当方ではこれに気づかず、プライマリDNSの設定内容復旧に2時間ほどかかりましたorz