« 2008年4月 | トップページ | 2008年6月 »

2008年5月

2008-05-27

[mysql] やる夫が1台で複数のDBを管理しているようです。

インスタンスについて

データベースシステムのまとまりのことであり、データベースを起動・停止する単位を表します。検証環境にて世代管理をする場合や、リソースの有効活用で、1台のDBにいくつもDBを構築したりすると思います。

複数のDBを管理する

やる夫は、試験環境MySQL-DBを構築していて、1台のサーバ内で、複数のインスタンス構成を取り、世代管理運用をしていました。yaruoシステムがver2.0にアップするため、ver2.0検証用のDBを作成することになりました。今回はver1.5を削除して、ver2.0用のDBを構築する手順を記すことにします。

          ____
       / \  /\ キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \   試験環境DBはインスタンス毎で管理するお
    |      |r┬-|    |  
     \     `ー'´   /   
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

# ps axuw | grep mysql
mysql     9228  0.0  0.2 263768 17820 ?      Sl   Apr23   6:51 /usr/sbin/mysqld
mysql     9395  0.0  3.4 1656920 283764 ?    Sl   Apr23   1:26 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_s
mysql     9322  0.0  2.3 2043012 195480 ?    Sl   Apr02   1:52 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver1_5_m
mysql     9914  0.0  7.1 5398488 580780 ?    Sl   Apr23   1:47 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver1_6_m
root     12430  0.0  0.0 53268  804 pts/0    S+   14:29   0:00 grep mysql

# /usr/bin/mysqladmin shutdown -S /var/lib/mysql/yaruto_ver1_5.sock

# ps axuw | grep mysql
mysql     9228  0.0  0.2 263768 17820 ?      Sl   Apr23   6:51 /usr/sbin/mysqld
mysql     9395  0.0  3.4 1656920 283764 ?    Sl   Apr23   1:26 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_s
mysql     9914  0.0  7.1 5398488 580780 ?    Sl   Apr23   1:47 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver1_6_m
root     12430  0.0  0.0 53268  804 pts/0    S+   14:29   0:00 grep mysql

バージョンが変わるので、ディレクトリ管理しやすいように変えてしまいます。1からDBを構築する場合は、dataディレクトリを削除してしまいます。

# cd /usr/local/yaruo/data
# ls
mysql  yaruo_ver1_5  yaruo_ver1_6    work
# mv yaruo_ver1_5 yaruo_ver2_0
# cd yaruo_ver2_0
binlog  ibdata  iblogs  logs  mysql  relays  test  tmp  yaruo_db
# rm -rf yaruo_db

ディレクトリ名がver2_0に変わるので、ver1_5記載箇所をver2_0に変える必要があります。 viで手で変更しても可ですが、sed使う方が楽です。diffで変更点を確認してみて下さい。

# cd ../mysql
# sed 's/ver1_5/ver2_0/g' yaruo_ver1_5_my.cnf > yaruo_ver2_0_my.cnf
# diff yaruo_ver2_0_my.con yaruo_ver1_5_my.cnf
# chown mysql:mysql yaruo_ver2_0_my.cnf

インスタンスについては、親のmy.cnfからincludeさせているので、こちらの修正も必要です。

# vi my.cnf
-----
- /usr/local/yaruo/data/mysql/ yaruo_ver1_5_my.cnf
+ /usr/local/yaruo/data/mysql/ yaruo_ver2_0_my.cnf
-----

起動してみます。

# /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver2_0_m &
[1] 31886
#
[1]+  Exit 1                  /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver2_0_m

失敗・・・。エラーログを確認します。

            ___
       /      \         
      /ノ  \   u. \ !?
    / (●)  (●)    \ おっお・・・
    |   (__人__)    u.   |
     \ u.` ⌒´      /     またMySQLが立ち上がらないお
    ノ           \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

やる夫が困ってます。何とかしてあげましょう・・・。

# tail -f /usr/local/yaruo/data/yaruo_ver2_0/logs/yaruo_ver2_0_m.errorlog
080527 15:31:58  InnoDB: Started; log sequence number 0 130390540
/usr/sbin/mysqld: File '/usr/local/yaruo/data/yaruo_ver2_0/binlog/yaruo_db1_m.000001' not found (Errcode: 2)
080527 15:31:58 [ERROR] Failed to open log (file '/usr/local/yaruo/data/yaruo_ver2_0/binlog/yaruo_db1_m.000001', errno 2)
080527 15:31:58 [ERROR] Could not open log file
080527 15:31:58 [ERROR] Can't init tc log
080527 15:31:58 [ERROR] Aborting

080527 15:31:58  InnoDB: Starting shutdown...
080527 15:32:00  InnoDB: Shutdown completed; log sequence number 0 130390540
080527 15:32:00 [Note] /usr/sbin/mysqld: Shutdown complete

どうもver1.5時のデータが残っているのが原因らしいですね。なので、ログを全て削除してしまいます。

# /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver2_0_m &
[1] 1219
# ps axuw | grep mysql
mysql     9228  0.0  0.2 263768 17820 ?      Sl   Apr23   6:51 /usr/sbin/mysqld
mysql     9395  0.0  3.4 1656920 283764 ?    Sl   Apr23   1:26 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_s
mysql     9914  0.0  7.1 5398488 580780 ?    Sl   Apr23   1:47 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver1_6_m
mysql     9322  0.0  2.3 2043012 195480 ?    Sl   Apr02   1:52 /usr/sbin/mysqld --defaults-group-suffix=_yaruo_ver2_0_m
root     12430  0.0  0.0 53268  804 pts/0    S+   14:29   0:00 grep mysql

再度起動コマンドを実行指定見ます・・・。今回はうまく行ったようです。

      ___
     /_ノ   ヽ_\
   /( >)  (<)\
  /::::::⌒(__人__)⌒::::: \  ね!かんたんだお
  |     |r┬-/      |
  \     ` ̄'´     /

----------------------------------------

現場で使える MySQL (DB Magazine SELECTION)
Mysql
松信 嘉範
翔泳社翔泳社翔泳社
定価 : ¥ 2,730
2006-03-17
amazonで詳しく見る

| | コメント (0) | トラックバック (0)

2008-05-22

やる夫がcfengineを導入して管理の自動化を図るようです。

cfengineについて

設定の一見管理を行うツール。 管理パターンを定義する。例えば、ファイル操作や、daemon操作、パッケージ管理等。 設定手順等をSubversion等で一括管理する事が可能とのこと・・・。とりあえずインストールだけ今回します。設定はその後かな?

    / ̄ ̄ ̄ \    利用するかは別として
   / ::::\:::/:::: \   フリーだからインスコしておく分には問題なし
 /  <●>::::::<●>  \    
 |    (__人__)     |
 \    ` ⌒´    /

   / ̄ ̄\  
 /   _ノ  \   新しいものに興味があるんだな・・・導入して満足パターンか・・・
 |    ( ●)(●)               ____
. | U   (__人__)            /      \
  |     ` ⌒´|           /─    ─  \
.  |        }  \      / (●) (●)    \   
.  ヽ        }     \     |   (__人__)       |   ってことで入れてオキマスタ
   ヽ     ノ       \   \            _/   
   /    く. \      \  ノ           \
   |     \  \    (⌒二              |
    |    |ヽ、二⌒)、      \         |  |

# wget http://dag.wieers.com/packages/cfengine/cfengine-2.1.20-1.el4.rf.i386.rpm
root@indigo's password:
cfengine-2.1.20-1.el4.rf.i386.rpm                                                  100% 1557KB   1.5MB/s   00:00
# rpm -ivh cfengine-2.1.20-1.el4.rf.i386.rpm
warning: cfengine-2.1.20-1.el4.rf.i386.rpm: V3 DSA signature: NOKEY, key ID 6b8d79e6
Preparing...                ########################################### [100%]
   1:cfengine               ########################################### [100%]

続きを読む "やる夫がcfengineを導入して管理の自動化を図るようです。"

| | コメント (0) | トラックバック (0)

2008-05-19

やる夫のサービスが起動しなくなりました。

Bad arg length for Socket::pack_sockaddr_in

ある日、やる夫がサービス機の追加で、同じ用にアプリを構築していましたが、どうもエラーがでてしまし、アプリが起動しなくなりました。さぁ大変です。下記のようなメッセージが出力されているようですが・・・。

Use of uninitialized value in subroutine entry at /usr/local/lib/perl5/5.8.8/i686-linux-thread-multi/Socket.pm line 373.
Bad arg length for Socket::pack_sockaddr_in, length is 0, should be 4 at /usr/local/lib/perl5/5.8.8/i686-linux-thread-multi/Socket.pm line 373.

            ___
       /      \         
      /ノ  \   u. \ !?
    / (●)  (●)    \ おっお・・・
    |   (__人__)    u.   |
     \ u.` ⌒´      /     同じように構築したのに立ち上がらないお
    ノ           \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))

こういうときは、memcachedに接続できてないものと思われます。一度ルーティング確認または、memcachedのプロセス確認をお願い致します。

ちょっとしたあるあるネタでした。関係ないのですが、この困った感じのやる夫が一番好きです。

続きを読む "やる夫のサービスが起動しなくなりました。"

| | コメント (0) | トラックバック (0)

2008-05-13

やる夫がメモリの空き容量を調べるようです。

free コマンド

メモリの使用量を調調べます。ちょっとだけ見方を記載します。

オプション無し

$ free
             total       used       free     shared    buffers     cached
Mem:       8161968    6252848    1909120          0     168084    1416452
-/+ buffers/cache:    4668312    3493656
                                 ^^^^^^^ -①
Swap:     12586916          0   12586916
                      ^^^^^^^ -②

見やすい値

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7970       6106       1864          0        164       1383
-/+ buffers/cache:       4558       3411
Swap:        12291          0      12291

  • -m オプションでMB表示になります。見やすいですね。

メモリの空き容量を調べる

①がメモリの空き容量となります。計算方法としては下記になります。上記例だと3GB程余裕があるようです、すごいですね・・・。②の値が高いとswapしていることになります。

  • free + buffres + cached = メモリ空き容量

自然状態のときと、トラブル時の値を何度も見て慣れておく必要があると思います。

リアルタイム表示

$ free -s 5
             total       used       free     shared    buffers     cached
Mem:       8161968    6253488    1908480          0     168084    1415636
-/+ buffers/cache:    4669768    3492200
Swap:     12586916          0   12586916              total       used       free     shared    buffers     cached
Mem:       8161968    6253648    1908320          0     168084    1415636
-/+ buffers/cache:    4669928    3492040
Swap:     12586916          0   12586916

  • -s [n] オプションでn秒感覚で結果を表示します。上記例だと5秒間隔です。

| | コメント (0) | トラックバック (0)

2008-05-09

やる夫がaliasを作成したようです。

alias について

コマンドのエイリアスコマンドを作成するにはaliasコマンドを使用します。エイリアスとはコマンドのショートカットのようなものです。

ログアウトしてしまうと、設定内容がクリアされてしまうので、ログイン時に読まれるファイルに登録してあげる必要があります。homeディレクトリにある”.bashrc”を編集します。”.bashrc”はログイン時に読み込まれるファイルです。

     ____
   /      \ ( ;;;;(
  /  _ノ  ヽ__\) ;;;;) 
/    (─)  (─ /;;/   
|       (__人__) l;;,´   いつも決まったコマンドうつのにも  
/      ∩ ノ)━・'/     うざいお・・・。
(  \ / _ノ´.|  |
.\  "  /__|  | 
  \ /___ / 

         |
     \  __  /
     _ (m) _
        |ミ|
      /  `´  \
       ____
     /⌒  ⌒\
   /( ●)  (●)\    aliasに登録しちゃえばいいんだお!
  /::::::⌒(__人__)⌒::::::\  
  |     |r┬-|     |    
  \      `ー'´     /

最近ネタがないのと、モチベーション↓により、やる夫の下りメンドクサイ今日この頃・・・。

# vi ~/.bashrc
-----
# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
+ alias yaruo='cd /usr/local/yaruo/shell ;pwd'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
-----
# source

  • + は新たに追加した行です。
  • source は”.bashrc”の編集を有効にします。

コマンドから設定

# alias yaruo='cd /usr/local/yaruo/shell ;pwd'

| | コメント (0) | トラックバック (0)

2008-05-07

やる夫がコマンドでバイナリファイルを添付してメールするようです。

バイナリファイルを添付してメール

uuencodeコマンドを利用して、ファイル添付する方法を記載します。uuencodeコマンドは、バイナリファイルを暗号化してテキスト出力にしてくれるコマンドです。

uuencodeコマンドはデフォルトで入っていない可能性があります。”which”とかで確認してみて下さい。

uuencodeコマンドのインストール

yumでインストール

# yum -y install sharutils

rpmでインストール

redhatであれば、4枚目のCD-Romに入っている筈です。

# rpm -ivh sharutils-4.2.1-22.i386.rpm
警告: sharutils-4.2.1-22.2.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing...
########################################### [100%]
   1:sharutils
########################################### [100%]
# which uuencode
/usr/bin/uuencode

コマンドからバイナリファイルを添付してメール

下記例では、”/user/local/yaruo/yaruo.tar”ファイルを”yaruo.yyyymmdd.tar”というファイル名で添付して、”yaruo@neet.co.jp”へメールするようになっています。

# /usr/bin/uuencode /user/local/yaruo/yaruo.tar yaruo.`date +%Y%m%`.tar | mail -s "yaruo mail" yaruo@neet.co.jp

書式

  • /usr/bin/uuencode [file_name] [update_filename] | mail -s "subject" [mailaddress]

こんな感じでメールが届きます。

Subject:yaruo mail

begin 644 yaruo.20080507.tar
M'XL(""G)($@``W-L;W=Q=65R:65S+C(P,#@P-3`V+G1A<@#M&VMOVS8PG_LK
MN$]S"D_0TW:&I5@?WI8M<X8D13$4A2'+3$Q$$EU);I;]^ATEZF&2DI,V3C*'
MUX?D.XKB/7FZDV8AO8SF,\^SC32DUY]7."$X-6S3')F>.=B[#S`!!JZ;'P&$
MHV4[`V_/LDSXXSJ.;>_!<6`-]Y!Y+W??`*LT\Q.$]A)*LZYQF^C_4WA+5W'V
M([(0.B<1/K0L[\`PS13UV%FZC]`Q#:X.S0)G,L0IO4X/+<.$(?M]E-TL\=*?
M;:0DPVQS#*ZD*\J8I;Q-)-^?WWEZD6!1ZDO*+#G7>2;*.J?E#$ND<L9T%00X
M%>6;8)`@SO<?N/0*2RJ;T97250L"B8-P):LFIS$EB[<K*&EV(TED1L*0[0E+
MG!`J2A&6![F=)/<Y28L]2*'(<K[6<%D.F/G@T(%D].ETAC-?C%M@=%E"I(!*
MXQ"RC_@+)8'*`ICXY(C"L>IMHB0"BV#--ZJ@7%T/OJNT\W)`EZJJ29@),XVI
M=S8V!*1U50YI[3HI=B3TG9``RMY1;O6J,7F1\3NYNUM,,(=$I.O[+)X%=21!
MMWCK[(DWYMRB,;<IT=N1QES)M5-PO2FEW_56U?/H3SX+;C<UYAY$"+O1\)%:
MF:/\C7W=RKQS*U.R,OLNK4S'[&YE/G931(,&#1HT:-"@08,&#1HT:-"@08,&
G#1HT:-"@08,&#1HT:-"@08,&#1HT:-"@08.&)PK_`5C4>```>```
`
end

ちゃんと添付されています。本文のこのバイナリ文字列はなんとも汚いですがしょうがない。

ログを定期的に添付してメールするように、仕込んだのですが、考えてみればいちいち”tar.gz”を回答して見るのもなんかなぁ・・・。近いうち変更します。

| | コメント (0) | トラックバック (0)

« 2008年4月 | トップページ | 2008年6月 »