Home

おれ最前線ねっと

[PostgreSQL]PostgreSQLチューニング方法まとめサイト[Ubuntu]

昨日、Ubuntu9.04PostgreSQL8.3をチューニングしてみました。
すでにチューニング方法を詳細に載せていてくれるサイトがいくつか有るので、今回はそのサイトの紹介です。

ここまで細かく載せていてくれると、私なんかが言えることはございません。
まま使わせてもらってチューニングしました。

あ、一つだけ。
ubuntuで/proc/sys/kernel/shmmaxへ値を上書きしても再起動時に元の値へ戻ってしまっていました。
ということで↓のように。

# sudo vi /etc/sysctl.conf
##ファイル末尾へ
kernel.shmmax = 設定値

ファイル保存後、

# sysctl -p

としましょう。

[チャリンコ]Kuota Kharma カルマっていうロードバイクをポチッちゃったwktk

この円高のおかげで、ついついポチッちゃいました。Kuota Kharma カルマ
国内で買うと30万のチャリンコが海外から買うと17万なんだもん。
初めてのロードバイクだから10万円台の安いアルミのアンカー買おうと思ってたけど、同じ値段でフルカーボンのカルマが買えるとなるとねぇ。

身長:176? 177? cm
股下:80cm
で、↓の仕様にしました。

  • Kharma Carbon
  • M 53,5 cm c/t
  • Shimano 105 compact
  • Wheels Fulcrum Racing 7 black
  • 170 Crankset
  • Sprockets Shimano 105 12/25
  • Handlebar Ritchey Comp OS 42cm
  • Stem Ritchey Comp OS 110mm
  • Saddle Fizik Arione Titan

というわけで届くまで約2週間くらいですかねwktk

あ、多分もうSCOTT SUB30 Classic乗らなくなるからヤフオクにでも出そう。全然乗ってないけどクロスバイク卒業www

[Ubuntu]Ubuntu8.10へObjective-C環境をインストールしてみた。[Objective-C]

1週間くらい前からObjective-Cを触り始めて見ました。Cすら一度も触ったことないから分からんことだらけですけど・・・
で、前は初代Macbookを持っていたんですけどThinkpadX61へ乗り換えと同時に手放してしまったので
X61上のUbuntu8.10でObjective-Cを学習しときます。
学習用に「詳解Objective-C2.0」という本を用意しました。この本を終えたら新しくMacbookを購入し直そうと思います。
iPhoneだって持ってないんですけどね・・・・

とりあえずいつも通り、Ubuntu8.10へのObjective-C環境のインストール方法をまとめておきます。

  1. いろいろとインストール。こんだけ入れると取り合えずObjective-Cの環境は整います。
    sudo apt-get install build-essential gobjc gobjc-multilib libgnustep-base-dev gnustep gnustep-devel gnustep-dl2 doxygen
  2. ↑だけインストールするだけだとNSObjectが使えないので↓も行う。(Objective-C2.0本を進めていると、どうしてもNSObjectが必要だったので・・・つかNSObjectが使えないとretain、releaseとかが無い!)
    ・Foundationフレームワークを使えるようにパスが通るディレクトリへリンクを張る為に↓を作成。

    #!/bin/sh
     
    frompath=/usr/include/GNUstep
    topath=/usr/lib/gcc/i486-linux-gnu/4.3/include
     
    for i in "AppKit" "Cocoa" "Cynthiune" "DBKit" "EOAccess" "EOControl" "EOInterface" "EOModeler" "FSNode" "Foundation" "Frameworks" "GNUMail" "GNUstepBase" "GNUstepGUI" "GormCore" "GormObjCHeaderParser" "GormPrefs" "HighlighterKit" "Inspector" "InterfaceBuilder" "Operation" "PostgreSQLEOAdaptor" "ProjectCenter" "Renaissance" "TalkSoupBundles" "WizardKit" "gnustep"
    do
    	ln -s $frompath/$i $topath
    done

    リンク張っているのは/usr/include/GNUstep以下にある全てをリンクしてるだけです。勉強始めたばっかなんで各ファイルにどんな機能、役割があんのかは全くもって不明ですwww
    で、作成したスクリプトファイルを実行。

    sudo sh /保存したスクリプトのパス/link_libobjc.sh

以上でUbuntu8.10へのObjective-C環境構築はおわりです。
これで「詳解Objective-C2.0」に載ってるソースそのままで動くと思います。(どっかで躓いたらまた記事修正しときます。)
最後に、Ubuntu8.10上でソースをコンパイルする時なんですが

gcc ソースファイル名 -o コンパイル後ファイル名 -lobjc -lgnustep-base

としてください。
あと、分からんというか面倒くさいというか、mainソースファイルから自前で作成したヘッダファイル(.hファイル)を読み込んでコンパイルするとき

gcc ソースファイル名 -o コンパイル後ファイル名 -lobc -lgnustep-base -include ヘッダファイル名1 -include ヘッダファイル名2

みたいにしないとコンパイル出来んのですが、複数のヘッダファイルを読み込むとき、「-include ヘッダファイル名」を何度も書くのは面倒くさいですな・・・なんか良い方法あるんですかねぇ?

2009/02/17 追記
Tomuteさんコメントありがとうございます。助かりました。
詳解Objective-C2.0を読み進めていると、Tomuteさんのブログにも書いてるようにコンパイル時に

 error: cannot find interface declaration for ‘NXConstantString

とエラー返してくるので、コンパイルオプションに”-fconstant-string-class=NSConstantString”を追加しないとダメみたいです。またTomuteさんに教えてもらった-Iオプションも追加。

gcc ソースファイル名1 ソースファイル名2 ソースファイル名3 -o コンパイル後ファイル名 -lobjc -lgnustep-base -I/指定ディレクトリ -fconstant-string-class=NSConstantString

こんな風にするみたいです。

< 参考にしたサイト: Tomute’s Notes [Linux] Ubuntu LinuxでObjective-C>

[CakePHP]CakePHP1.2のfind時にDBカラムを型変換して検索条件にする方法。

$cond["to_char(Hoge.date, 'YYYYMMDD') LIKE '%20081222%' and \"Hoge\".\"id\""] = $hoge["Hoge"]["id"];

こんな感じで。
私、PostgreSQLしか使わんのでMySQLはよく分からんけど、
どっちもDB関数使いたければ検索条件のカラム名の前に突っ込んだらイイんじゃないかと。

[CakePHP]CakePHP1.2の日付選択リストの月表記を英語から数字へ変更する方法。[FormHelper]

< ?php
$form->options['month'] = array_combine(range(1, 12), range(1, 12));
?>
< ?php echo $form->year("Hoge.date", date("Y")-1, date("Y")); ?>< ?php echo $form->month("Hoge.date"); ?>< ?php echo $form->day("Hoge.date"); ?>


floatingdays - CakePHP 1.2 のFormHelperで日付選択リストを作る

echo $form->datetime('cal', 'YMD', 'NONE', null, array('monthNames' => false));

っていう方法もそういえば有りましたねぇ。ということでメモメモ。

[Ubuntu]Ubuntu8.10でRailsをアップデートしたよ。[Rails]

Rails2.1.0をインストールしていたけど、新しいRails2.2.2をインストールするよ。

  1. rubygemsのバージョンをアップデートする。
    % sudo gem install rubygems-update
    % sudo gem update rubygems-update
    
  2. Railsをインストールする。
    % sudo gem update rails

    MySQLのドライバーがねーよ!とか言われた人はMysqlのドライバーもインストールする。↓

    %sudo apt-get install libmysqlclient15-dev
    %sudo gem install mysql
    

    他にもインストールしたいのあれば参考に→[Ubuntu]Ubuntu8.10へRailsをインストールしたよ。[Rails]

  3. 既存のアプリケーションが利用しているRailsのバージョンを上げる。
    % cd /var/www/rails/app  ## Railsアプリケーションまで移動する。移動先は自分の環境に合わせて
    % vi config/environment.rb
    RAILS_GEM_VERSION = '2.1.0'
    ↓ ## 使いたいRailsのバージョンへ修正。
    RAILS_GEM_VERSION = '2.2.2'
    % rake rails:update
    

以上でRailsのバージョンが上がったよと。

[Ubuntu]ThinkpadX61へUbuntu8.10をインストールしたら日本語入力出来なかった。[ThinkpadX61]

昨日、重い腰を起こして家のThinkpadX61Ubuntu8.10をインストールしました。
[Ubuntu]Ubuntu8.10をインストールしてみたよ。で、インストール設定メモ。[Linux]を、そのままに色々とインストールし初期設定を終えました。

で、テキストエディタで日本語入力をしようと[Ctrl]+[Space]を押してscimを起動しようとしても起動しない。連打しても起動しない。
キーボード設定、SCIM入力メソッド設定と無限ループのように設定しなおし続けても・・・沈黙。

ということで、Google先生の出番です。見つかったのは以下のページ↓。
Ubuntu 8.04 Hardy Heronで日本語入力
ここに載ってることをそのままやったら日本語入力出来るようになりました。
一応メモっとく。

  • Synaptic Package Managerを起動
  • SCIM“でパッケージを検索
    scim-anthy
    scim-bridge-agent
    scim-bridge-agent-gtk
    scim-bridge-agent-qt
    scim-bridge-agent-qt4
    scim-gtk2-immodule
    scim-qtimm
    

    をインストールするパッケージとしてマーク。インストール済みのは再インストール指定。

  • ANTHY“でパッケージを検索
    kasumi

    をインストールするパッケージとしてマーク。インストール済みのは再インストール指定。

  • インストール実行。
  • 次に、Ubuntuの起動時にSCIMを標準の言語入力インターフェイスとして定義するためにファイル作成 or 編集
    # vi gedit /etc/X11/Xsession.d/74custom-scim_startup

    74custom-scim_startupが既に存在する場合は以下の行を追加、ない場合は新規に作成します。

    export XMODIFIERS="@im=SCIM"
    export GTK_IM_MODULE="scim"
    export XIM_PROGRAM="scim -d"
    export QT_IM_MODULE="scim"
    
  • OS再起動。

[CentOS]PostfixでSubmissionポート(587番)を使う。[Postfix]

先日のエントリー[CentOS]いつの間にかCentOS4.7サーバーからGmailへメール送信出来なくなってた。[Postfix]で、
OP25B対策にIPマスカレード対応ルーターで、ルーター外側のポート587を、ルーター内側のポート25に対応させるってっ書いて、一部のサーバーのルーターに設定したのですが全くポートが開かず・・・って感じでハマッってしまった。
そのルーターがNetGenesis SuperOPT100Eなのですが、よく商品詳細ページを見ていると「静的IPマスカレード対応」って書いてある・・・・・ポート変換出来んのかい!!

ということで、587番→25番へポート変換はやめて、587番→587番とそのままでPostfix側でSubmissionポート(587番)を対応させることにします。

  • # vi /etc/postfix/master.cf
    以下の行のコメントアウトを外して有効にする。

    submission inet n - n - - smtpd
    
  • /etc/services に以下の行があるか確認。
    submission 587/tcp msa # mail message submission
    submission 587/udp msa # mail message submission
    
  • ルーターのIPマスカレード設定(ポート変換)でTCP587→TCP587を開ける。
  • iptablesのTCP587ポートも開ける。
    iptables -A INPUT -p tcp --dport 587 -j ACCEPT

これで、PostfixがSubmissionポート(587番)で待ち受け開始します。

[CentOS]CentOS5の「PHP、MySQL、PostgreSQL」のバージョンをYumでアップデートする。

なんかサーバーを弄ってたら、PHPとかMySQLとかPostgresのバージョンを無性に上げたくなってきたからバージョンアップした。全部、自前でbuildなんてやってられんので全てYumで管理します。
CentOSのリポジトリのPHPなんて5.1.6とかPostgresが8.1とか・・・ねぇ?って感じだったのでつい・・・
ということでインストールメモ開始。このブログ、インストールメモ専門になってきたな・・・

  1. まず標準のCentOSのリポジトリからPHP、MySQL、PostgreSQLを除外する.。
    # vi /etc/yum.repos.d/CentOS-Base.repo
    [base] ## [base]の項目に↓を追加
    exclude=postgresql* php* mysql*
    [updates] ## [updates]の項目にも↓を追加
    exclude=postgresql* php* mysql*
    
  2. PHPとMySQLをアップデートする用にまずリポジトリ追加。
    # rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
    # vi /etc/yum.repos.d/utterramblings.repo ## ←のファイル作って以下の内容で保存。
    [utterramblings]
    name=Jason's Utter Ramblings Repo
    baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
    
  3. PostgreSQLをアップデートする用にやっぱりまずはリポジトリ追加。
    # wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-5.noarch.rpm
    # rpm -ivh pgdg-centos-8.3-5.noarch.rpm
    
  4. PHPとMySQLとPostgreSQLをアップデート。
    # yum update
    
    • ※ x86_64な環境の人で、既にMySQLをインストールしている人は一度削除してからインストールしなおしてください。(mysql、mysql-devel、mysql-server)
      # yum -y remove mysql mysql-devel mysql-server
      # yum -y install mysql mysql-devel mysql-server
      
    • ※ 既にPostgreSQLをインストール済の人で「古いバージョンの〜〜〜アップグレードする必要があります。」と言われた場合
      1. dataを削除、またはリネーム
        # mv /var/lib/pgsql/data /var/lib/pgsql/data.old
      2. DB初期化
        # /etc/init.d/postgresql initdb
      3. PostgreSQL再起動
        # /etc/init.d/postgresql restart
  5. リポジトリ追加したらyumでXcacheとかPostGISがインストールできるようになってたからインストールした。
    # yum -y install php-xcache postgis

各設定は以下を参考に。Ubuntu用に書いたけどほとんどいっしょなので。

[Ubuntu]Ubuntu8.10でPostGISを使えるようにする。[PostGIS]

  1. PostgreSQLとかPostGISをインストールしてない人はインストールする。
    # apt-get install postgresql postgresql-8.3-postgis

    Postgresの設定は[Ubuntu]Ubuntu8.10へApache、PHP、MySQL、PostgreSQLをインストールする。[LAMP]でも参照して下さい。

  2. PostGIS用に初期化済テンプレートDBを構築する。
    $ su - postgres
    $ createdb templategis
    $ createlang plpgsql templategis
    $ psql -d templategis -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql
    $ psql -d templategis -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql
    
  3. PostGIS用テンプレートDBを利用して、作成したいDBを作る。
    createdb -T templategis newdb

Home

Search
Feeds
Meta

Return to page top