2008-01-01から1年間の記事一覧

オープンソースソフトを使ったシステム冗長化を考える

さて、今回は少し趣向を変えてオープンソースソフトウェア(OSS)を使ったシステムの冗長化について書いていこうと思う。WebやOLTP、DWHシステムなど色々なシステムがあり、構成要素はWebサーバ、APサーバ、DBサーバ、メールサーバ、ファイルサーバ、認証サー…

oerrでOracleエラーメッセージ確認

Oracleにはoerrというツールが付属しており、これを使うとOracleのエラーコード毎に、その意味が確認できる。Oracleのエラーは複合的な原因によるものが多いので必ずしもこれ一発で原因に辿り着ける可能性は低いが、ちょっとした確認には十分役に立つコマン…

SSLハンドシェイクの仕組み

前回(デジタル証明書の中身について)に引き続き、今回はSSLハンドシェイクについて書いていく。まず、SSLハンドシェイクのポイントは以下の2点。 1.クライアントはサーバ証明書によってサーバを認証する。 2.安全度の高い非対称鍵暗号方式を使っているが、そ…

デジタル証明書の中身について

さて、前回(SSLによる暗号化の仕組み)に引き続きSSLのお話。前回はデジタル証明書が「非対称鍵を使った高度な暗号化」、「証明者を持つ者の確実な認証」を実現するポイントとなることについて触れた。デジタル証明書には非対称鍵の片方である「公開鍵」と、…

SSLによる暗号化の仕組み

今回から、Webシステムにおけるコンテンツ配布で非常に重要な仕組みであるSSLについて、数回に分けて書いていこうと思う。 SSLって? さて、SSL(Secure Socket Layer)とは一言で言うとWebアクセスなどのTCP通信を暗号化する技術。ブラウザを使ったインターネ…

Linuxのファイル、ディレクトリの権限管理

さて、今回は基本に立ち返ってLinux(とUNIX)におけるファイルやディレクトリの権限管理について書きたいと思います(今更ですが・・・)。user、group、otherに対するrwxについてはもはや説明不要だと思うので、ポイントとしてはSUID、SGID、Stickyについて。さて…

MySQLでオートコミットを無効化する

MySQLのMLで質問が飛んできていたので、レスついでにblogにも書いておく。MySQLではInnoDBやNDB Clusterなどのストレージエンジンでトランザクションをサポートする。この際、Oracleなどに慣れた人からするとトランザクションのオートコミット(autocommit)で…

bashによるシェルスクリプトの小技(2)

前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはで…

bashによるシェルスクリプトの小技(1)

今回から何度かに分けてシェルスクリプト(主にbash)の小技を紹介する予定です。まずは第一弾として、変数の特殊な参照方法を紹介。 変数の特殊参照方法 変数の状態に応じて振る舞いを変える特殊な参照方法。変数に値が設定されていない場合に一時的に値を与…

Linuxサーバで通信速度を固定する

以前の記事(ネットワークのAuto-Negotiationについて)でネットワークやサーバ機器間の通信速度設定の重要性について触れたので、今回はそれに関連してLinuxサーバでduplexモードやautonegotiationを制御する方法を簡単に紹介。ethernetで強制的にduplexモー…

Javaのお勉強

Javaのお勉強をはじめるにあたり、教科書を選定。がむばります。超入門 Javaってなんだろう (DB Magazine SELECTION)作者: 井上樹出版社/メーカー: 翔泳社発売日: 2004/04/21メディア: 単行本この商品を含むブログ (2件) を見る

Tomcat文字化け対策

Tomcat5.Xでは、GETのvalue、FORMのactionにgetを使用した際に、文字化けが発生する。 この文字化けへの対策としては、server.xmlに以下のパラメータ値をセットする。 useBodyEncodingForURI="true"下記に設定例を示す(以下はHTTPポートへの設定)。 Tomcatの…

MySQL Clusterでディスクベーステーブル

前回(MySQL Clusterの導入)に引き続き、今回はMySQL Clusterでディスクベースでのテーブルを作成してみる(長らく記事をアップできずすいませんorz)。MySQL Clusterは元々オンメモリにテーブルとインデックスデータを格納するが、この場合は物理メモリサイズ…

Oracle Database 10.2.0.4以降のEnterprise Manager

Oracle 10g PSR10.2.0.4.0以降(11gも同様)では、OEM(Oracle Enterptise Manager)への通信プロトコルが、HTTPだけではなくHTTPSにも対応する。DBCA(Dabase Configuration Assistant)によるインスタンス作成時、終盤の処理でHTTPでのOEM接続用に鍵が生成され…

Linuxのファイルディスクリプタ最大値を変更

ファイルディスクリプタは、ファイルオープンなどで使われるポインタのようなもの(Windowsだとハンドルがこれに近い)。アプリケーションにて、ファイルクローズを行わず、ファイルオープン、等を続けると、Too many open files といったエラーが発生すること…

perrorでMySQLエラーメッセージ確認

MySQLではperrorというツールが付属しており、これを使ってMySQLが出力するエラーコードの意味を確認することができる。Oracleではこれに似たツールとして「oerr」というものがあるので、これについては後日ブログにアップしておこうと思う(⇒参考:oerrでOra…

dboraスクリプトでOracleの自動起動停止

Oracleって、そういえばHAクラスタやRACやらクラスタウェアの制御下でしかサービス起動停止の制御したことなかったなぁ・・・というわけでいまさらな感も多々ありつつdboraスクリプトで自動起動停止するやり方を試したときのことを書いてみる。通常、クラスタ構…

MySQL Clusterの導入

久しぶりのblog更新。以外にWeb上の記事が少ないこともあって、今回はMySQL Clusterについて触れたいと思う。一通りの機能を解説するのには時間がかかりそうなので、数回に分ける予定。今回はまずは基本的な特徴の紹介と構築手順について。今後は最近機能拡…

RPMコマンドでARCHを表示する

皆さんも64bit OSを使用していて、確認したいパッケージが64bitか32bitなのかわかりづらくて困ったこと、ありますよね?(もしかして私だけ?) と、言う訳で以下のコマンドで当該パッケージのアーキテクチャ(ARCH)までを確認することができます。「rpm -qi」…

zabbixの導入

自宅サーバの監視用にcactiやzabbixなどのキャッチアップを目的に、今回はまずはzabbixの環境構築をやってみる。環境はいろいろ試してみたいところだが、ひとまずRHEL AS4にzabbix 1.4.2を載せて動かしてみることにした(zabbixの最新バージョンは1.6なのだ…

ApacheのIfDefineディレクティブを使う

今回はApacheのIfDefineディレクティブ(セクションコンテナ)について説明していく。 IfDefineディレクティブとは? マニュアル(Apache 2.2 コア機能)の説明は以下の通り。個人的な捉え方としては、httpd.confなどApacheの設定ファイル内でif文を定義するよう…

プロセスが使用しているファイルを調べる

fuserコマンドで、あるファイルを使用しているプロセスを表示させる。実行例は以下。 # /sbin/fuser /var/log/* /var/log/acpid: 2880 /var/log/boot.log: 2708 /var/log/cron: 2708 /var/log/maillog: 2708 /var/log/messages: 2708 /var/log/pound.log: 27…

VMWare ServerのARP応答がおかしい

先日勉強用に組んでいる自宅の仮想環境(VMWare Server 1.0.7)上のゲストのネットワーク動作がおかしくなっていて、直すのにハマってしまった。宅内システムの構成は以下の通り。ルータとLB、Web/Apサーバ、DBサーバがそれぞれ冗長化されている(rt3、lb3はテ…

RHEL4/CentOS4で複数Bonding

RedHat Enterprise Linux ES/AS 4で複数のbondingを構成しようとした際に、想定した動作と違う場合があったので設定方法について調べてみた。すると、HPのWebサイトでこんな情報を発見した。結論から言えば、RHELのUpdate2以前か以降かで設定書式が異なると…

Windows Updateでエラー。ダウンロードできるのにインストールできない件

XP SP3をインストールしたあと、Windows のUpdateをMicrosoft Update更新プログラムでインストールしようとすると、『コンピュータの問題が原因で、更新プログラムをダウンロードまたはインストールできません』のメッセージ。困った。ダウンロード処理は成…

携帯キャリアのIPアドレス帯域情報

www

携帯キャリアの各社が一般公開している技術情報(へのリンク)。備忘録としてメモ作ろうiモードコンテンツ:iモードセンタの各種情報 | サービス・機能 | NTTドコモ - iモードセンタのIPアドレス帯域 KDDI au: 技術情報 > IPアドレス帯域 Y!(ソフトバンク): - …

emobileでインターネットゲートウェイ

家のインターネット回線プロバイダ変更に伴い、インターネットに繋げない子となってしまったので、emobileで家の複数PCをインターネットに繋げることにした。今回はその時の話。 概要 PCカードタイプなどのE・Mobile端末でインターネットにつながったWindows…

Excel表をはてなダイアリー用に変換

はてなダイアリーの枠組み書式では、色分けやセルの結合などの柔軟性がいまひとつ。デフォルト書式だと以下のようになるが、Pukiwikiの表ほど扱いやすくない。 |*名前|*色|*個数| |りんご|赤|1| |みかん|だいだい|2|HTMLのtableとして書けばいいのだが、手で…

ファイルのタイムスタンプを秒単位で扱う方法

トラブルシュートの中で、秒単位で事象の前後関係を洗う必要があったため、Linuxでファイルを秒単位のタイムスタンプで扱う方法を調べてみた。lsコマンドの他、touchコマンドを使うパターン、findとxargsの組み合わせなどがありそう。 lsコマンドの「--full-…

ApahceのServerLimitディレクティブ

これまでprefork MPMで使っていたApacheを、負荷増加のためworker化することにした。(MPMについては以前のブログ)で紹介した。そんなわけでhttpd.confのMPMに関する設定値を再検討することになったわけだが、ServerLimitのディレクティブのMPMにより違いをう…