2011年2月9日水曜日

squidログ変換太朗

☆squidのaccesslogは、デフォルトだと、UTCのミリ秒(1970/1/1から)であらわされる。

このままだと読みずらいので、perlのscriptで変換しゅる。


#! /usr/bin/perl -p
s/^\d+\.\d+/localtime $&/e;

squid pid太郎

proxyサーバとして有名なsquidちゃん。
今日、ちょっとはまったのでメモ。

ほかのアプリもそうだけど、squidが起動するときに
生成するpidファイル。

設定(squid,conf)によるけど、だいたい/var/run/squid.pidにある。

squid起動中に、squid.pidファイルを消すと
squid関連のコマンドを受け付けなくなって停止できないことが判明。

ERROR: no running copyと言われる。

しょうがないからsquidのプロセス、killしちゃった。

repl太郎

Mysqlのレプリケーション設定してみた。

環境は、
VM上で
CentOS 4.8
Mysql 4.1.22
です。

準備として、Master→Slave、Slave→Masterへ
telnet IPアドレス mysqlのポート(3306?)で
つなげることチェックしておいてください。

確認しないとあとあとめんどいですわ。


MasterとSlaveの設定ファイルを追加します。
serveridの値は、uniqな数字にしてください。
uniqにしないとほかサーバのreplが全停止したりします。
log_binはバイナリログを出力する設定です。(ORACLEのredoログ的なのりだと思ってます)


#Master側
vi /etc/my.cnf
[mysqld]
server-id = 1
log_bin

#Slave側
CMD >vi /etc/my.cnf
[mysqld]
server-id = 2


編集後、Master側、Slave側で設定反映させるためにmysqlを再起動します。

/etc/init.d/mysqld stop
/etc/init.d/mysqld start

#一応、Master側でlog_ binが有効になっているかを確認。

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin   | ON |
+---------------+-------+
1 row in set (0.00 sec)

#Master側にレプリケーション専用のユーザをつくります。
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'SlaveサーバのIP' IDENTIFIED BY 'パスワード';

#んでユーザできたか、確認
mysql> select * from mysql.user where user = 'replication'\G

*************************** 1. row ***************************
Host: IPアドレス
User: replication
Password: ********
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: Y
Repl_client_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
1 row in set (0.00 sec)



んで、Master側のバイナリログの出力ポジションを確認する。
Slaveからは、、File(BALTHAZAR-bin.000002)の、position(203)から
レプリケーションを開始する必要があるので、必ず確認する。


mysql> SHOW MASTER STATUS;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| BALTHAZAR-bin.000002 | 203 | | |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

#んでSlave側で、Masterの情報を設定する。
mysql> CHANGE MASTER TO MASTER_HOST = 'MASTER側のIP',
-> MASTER_USER = 'replication',
-> MASTER_PASSWORD = 'replicationユーザのパスワード',
-> MASTER_LOG_FILE = 'BALTHAZAR-bin.000002',
-> MASTER_LOG_POS = 203;

#Slaveを動かす。
mysql> START SLAVE;

#Master側で状態を見てみる。
mysql> show processlist\G
*************************** 2. row ***************************
Id: 7
User: replication
Host: IPアドレス:32855
db: NULL
Command: Binlog Dump
Time: 18
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL

#Slave側で状態を見てみる。

*************************** 2. row ***************************
Id: 26
User: system user
Host:
db: NULL
Command: Connect
Time: 4
State: Waiting for master to send event
Info: NULL
*************************** 3. row ***************************
Id: 27
User: system user
Host:
db: NULL
Command: Connect
Time: 4
State: Has read all relay log; waiting for the slave I/O thread to update it
Info: NULL




#最後にほんとにレプリケーションできてるかっつーことでMaster側で
mysql> use test
Database changed

mysql> CREATE TABLE SAS (id int(10));
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO SAS VALUES (1);
;
mysql> select * from SAS;
+------+
| id |
+------+
| 1 |
+------+

#Slave側で、
mysql> use test
Database changed

mysql> select * from SAS;
+------+
| id |
+------+
| 1 |
+------+



SLAVE側から接続するとき、最初ちゃんとできませんでした。
FWの設定をいじったら接続できるようになりましたわ。
↓こうなって、masterへ接続できんかった。


*************************** 2. row ***************************
Id: 4
User: system user
Host:
db: NULL
Command: Connect
Time: 477
State: Connecting to master
Info: NULL
*************************** 3. row ***************************
Id: 5
User: system user
Host:
db: NULL
Command: Connect
Time: 477
State: Has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
3 rows in set (0.00 sec)

x3250でcffgenを導入する太郎

古いけど、
IBM X3250 M2でHARD RAIDをくんでいる場合でチェックツールを導入する。


まずは、IBMのサイトから、cfggenユーティリティーをとってくる。
http://www-947.ibm.com/support/Aentry/portal/docdisplay?brand=5000008&lndocid=MIGR-63501
※環境により、選択してくださいな。

サーバ上の任意のディレクトリで展開します。


unzip ibm_utl_mptsas_cfggen-2.06.01_linux_32-64.zip
chmod + x cffgen
mv /usr/sbin/.
#モジュールをロードします。
modprobe mptctl
vi /etc/modprobe.conf

bonding太郎

☆CentOS 5.4で、bondingの設定
Windowsだとチーミングという記憶がある・・・

まずは、↓のファイルを編集


vi /etc/modprobe.conf

alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0


そのあと、↓のファイルを作る。


vi /etc/sysconfig/network-scripts/ifcfg-bond.0

DEVICE=bond0
IPADDR=IPアドレス
NETMASK=サブネット
NETWORK=ネットワークアドレス
BROADCAST=ブロードキャストアドレス
ONBOOT=yes
BOOTPROTO=none
USERCTL=no


そのあと、↓のファイルを編集。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
MASTER=bond0
SLAVE=yes
USERCTL=no
ONBOOT=yes
BOOTPROTO=none



そのあと、↓のファイルを編集。

vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth0
MASTER=bond0
SLAVE=yes
USERCTL=no
ONBOOT=yes
BOOTPROTO=none


編集し終わったら


/etc/init.d/network restart

ipconfig -a で、bond0の表示がでることを確認する。

ping飛ばしながら、eth0とeth1のNICをそれぞれ交互に抜いて
pingが切れなければ、bondingの設定ができたことになりまんもす。

あとは、cat /proc/net/bonding/bond0で、NICのActive状態、linkのup/downが確認できる。

2010年6月8日火曜日

noblesse oblige太郎

chao。 タイトル通り。
東のエデン劇場版 The King of Eden を見ました。
TSUTAYAにあった。 劇場でも見たけど・・・やっぱり、JUIZがいいよ。


ノブレス携帯、販売しないかな?(NECさんがデザインしたって記事があったよ。)
すごくほしい。

あと、最近買いだめした本、読まなきゃ。
・ケルベロス 鋼鉄の猟犬
・廃墟の上でダンス
・戦場の掟 BIG BOYS RULE

(戦争ものばっかりだな)


あと、バイクの免許取ろうと画策中。

免許取ったらこのバイクに乗ります。



2010年2月16日火曜日

Create database実行太郎

oracleでDB作成後に、下のSQL忘れたらあかんで

catalog.sql → データディクショナリビューを作成する
catproc.sql → PL/SQL環境を構築
catdbsyn.sql → dbのversionが違う場合には必須?
pupbld.sql → PUP表に対するSELECT権限がPUBLICに付与されるらしい

もうちっとしらべるか