2010年11月17日水曜日

[MySQL] merge table

調べる機会があったのでメモ



merge table




読んで字の如く、テーブルを結合します。

肥大化したログテーブルとか、変更・削除はしないけど、残しておかないといけない売上情報を格納しているテーブルとかに使えます

使い方




マージ元(現在レコード数が多数で拡張したいテーブル)をtbl

マージ先(新たに追加するテーブル)をtbl_b

とします



・まず、tblをtbl_aというテーブルにリネームします。


rename table tbl to tbl_a;

・次にtbl_aと同じ構造のテーブルtbl_bを作成します


create table tbl_b (show create table tbl_a)
※エラーが出る場合あshow create分までを実行して確認⇒実行で

・元のテーブルtblを作成。ここで注意すべきはpkeyは定義しない

CREATE TABLE tbl (.....) TYPE=MERGE UNION=(tbl_a, tbl_b) INSERT_METHOD=LAST;



これでtblに対してinsertを行うとtbl_bにデータが格納されます。

見かけ上はtblに入るのでtblにSELECTを実行することでtbl_a,tbl_b両方のデータが参照できます。



tblをdrop⇒tbl_c追加⇒再度tblをcreate

で後から追加も可能です。



[自分へのtodo]

マージ元のテーブルを圧縮できたり、圧縮すると容量が何分の1かになるとか

後は圧縮すると読み出ししかできないとか・・


データの種類によるんだろうけど、レコードの物理削除・論理削除ってのはいつも悩みますねorz

運用の方針で決まるんでしょうが、開発側としては物理削除は避けたい傾向があるような気がします

2010年11月13日土曜日

[サーバー構築] iptables -F の罠

やっちまいました。。。。orz



元の設定が良く分からん鯖で

iptables -F





.....INPUTポリシー全拒否だって



やるときはatとかsleepで現状回帰出来るようにしないとダメですね



皆様もお気をつけください





2010年10月3日日曜日

[ipod touch] 4th generation ゲットしました

以前から示唆していたように、ipod touchの4世代をゲットしました。

購入したのは行きつけの某ジョー○ンで9/18に購入。

他所での予約の場合はもう少し遅れたりしているので、良かったのかな



色んなサイトやブログでレビューされているのであえてしませんが



retinaディスプレイは綺麗で良いですね

もう3世代以前には戻れません^^;

ですが、カメラはオマケ程度な品質です・・・(コストを考えたらわからないでもないですが、せめて100万画素はほしかった)



というかtouchのCMって最近トンと見ませんね・・・

あんまり宣伝しなくても売れるってことなのかな?(笑)



後今購入しても保護ケースは全然選べません

多分ジョブスの販売戦略なんでしょうが、信頼ある周辺機器メーカーにしかスペックを教えていなかったんでしょうね。



2010年9月29日水曜日

[サーバー構築]BINDの導入

今までなじみの無かった(存在と何をしてるかは知っている程度)BINDの導入をする機会があったので、そのメモ。



・ドメインの所有者情報?の中にそのドメインがどのネームサーバーに定義(?)されているのか、見ることが出来る。

・それを元にドメイン⇔IPの紐付けを行うのがBIND

・Linux上ではnamedというデーモンとして動作する。

・内向き(LAN内)と外向き(WAN)の設定が施せる。

・LAN内のみのネームサーバーも構築できる。(社内PCをドメインで管理する等)

・ドメイン提供企業はあくまでドメイン⇔IPの定義を行うだけ。グローバルな紐付けは少なくとも2台のネームサーバーが必要である。(だいたいドメイン提供企業の管理画面からGUIで設定できたりする。それでもネットワークのそれなりの知識がなければ難しいかも)



[サーバー構築]HDDの容量を占めているファイルを探す

rootにて

# du -sh /* | sort -n



0       /proc
0       /sys
2.7G    /usr
4.0K    /cgroup
4.0K    /media
4.0K    /srv
6.8M    /bin
8.0K    /mnt
8.0K    /selinux
15M     /sbin
16K     /lost+found
39M     /etc
51M     /boot
71M     /opt
92K     /tmp
233M    /lib
240M    /home
283M    /var
560K    /dev
909M    /root


上記の様に表示されるので、容量が大きいフォルダにcdして再度コマンドを実行

2010年6月27日日曜日

[自鯖]fedora13 yumのエラー

今日yumのアップデートを掛けると




依存性の解決をしています
--> トランザクションの確認を実行しています
---> パッケージ gnome-applets.i686 1:2.30.0-1.fc13 を更新に設定しました
---> パッケージ gnome-panel.i686 0:2.30.0-1.fc13 を更新に設定しました
--> 依存性の処理をしています: gnome-session-xsession のパッケージ: gnome-panel-2.30.0-1.fc13.i686
--> 依存性の処理をしています: libedataserver-1.2.so.11 のパッケージ: gnome-panel-2.30.0-1.fc13.i686
---> パッケージ nautilus-sendto.i686 0:2.28.4-1.fc13 を更新に設定しました
--> 依存性の処理をしています: libedataserver-1.2.so.11 のパッケージ: nautilus-sendto-2.28.4-1.fc13.i686
--> トランザクションの確認を実行しています
---> パッケージ gnome-panel.i686 0:2.30.0-1.fc13 を更新に設定しました
--> 依存性の処理をしています: libedataserver-1.2.so.11 のパッケージ: gnome-panel-2.30.0-1.fc13.i686
---> パッケージ gnome-session-xsession.i686 0:2.30.0-1.fc13 を更新に設定しました
---> パッケージ nautilus-sendto.i686 0:2.28.4-1.fc13 を更新に設定しました
--> 依存性の処理をしています: libedataserver-1.2.so.11 のパッケージ: nautilus-sendto-2.28.4-1.fc13.i686
--> 依存性解決を終了しました
エラー: パッケージ: nautilus-sendto-2.28.4-1.fc13.i686 (fedora)
要求: libedataserver-1.2.so.11
利用可能: evolution-data-server-2.30.1-2.fc13.i686 (fedora)
エラー: パッケージ: gnome-panel-2.30.0-1.fc13.i686 (fedora)
要求: libedataserver-1.2.so.11
利用可能: evolution-data-server-2.30.1-2.fc13.i686 (fedora)
問題を回避するために --skip-broken を用いることができません
これらを試行できます: rpm -Va --nofiles --nodigest



となってupdate出来ない



エラー内容どおり、liedataserverをrpmコマンドでインストールしなおすことで解決可能

なぜこのエラーが出たのかは原因不明・・・fedora13をyumで導入しようとしたのが悪かったのかな






wget ftp://195.220.108.108/linux/Mandriva/official/2010.0/i586/media/main/testing/libedataserver11-2.28.2-1mdv2010.0.i586.rpm
rpm -ihv libedataserver11-2.28.2-1mdv2010.0.i586.rpm

2010年6月9日水曜日

[自宅サーバー構築記]fedora 13 アップデート

fedora13がリリースされたので、早速アップデートしてみる。

CDを焼くのは面倒なので、yumを使用して行ってみる。(公式には非推奨のやり方なので自己責任で)




$ su
# cd /tmp
# wget ftp://ftp.riken.jp/Linux/fedora/releases/13/Fedora/i386/os/Packages/fedora-release-*.noarch.rpm  
# rpm -Uvh fedora-release-*.noarch.rpm
# yum clean all
# yum -y update "rpm*" "yum*" && yum -y upgrade
# grub-install /dev/sd? (grubのあるdev?実行しなくてもよいかも)
# reboot

不具合を起こしたくない場合はCDに13のisoを焼いて実行するべし。。。だそうです。

2010年1月30日土曜日

[サーバー構築] NTPが使えない環境下での時計あわせ(PHP)

NTPが使えない環境下での時計合わせ




ini_set("user_agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.2) Gecko/20100115 Firefox/3.6");
$start = time();
$str = file_get_contents('http://133.243.238.162/cgi-bin/jsont');
$end = time();
preg_match('{"st": ([0-9\.]+)}', $str, $mat);
$date = date('Y/m/d H:i:s', $mat[1] + ($end - $start));
exec('/bin/date -s \'' . $date . '\'');
exec('/sbin/hwclock --adjust');
echo "date setting success!\n";
echo $date . "\n";

上記をrootのcronで任意の時間毎に実行すればOK。



2010年1月26日火曜日

[PC] Thunderbird 常駐アドオン

メーラーは仕事でも私用PCでもThunderbirdを使っているんですが

タスクトレイに常駐する事が出来ないので、起動してから窓を開けっぱなしでおいておくことが多いです。



そこで、こんなアドオンを見つけました。

https://addons.mozilla.org/ja/thunderbird/addon/2110



このアドオンを入れると×ボタンでウィンドウを閉じても、タスクトレイに常駐させることが出来ます。

2010年1月20日水曜日

[サーバー構築] VMWare ESXi

だいぶ乗り遅れている気がしますが、VMWareの最近のやつはホストOS無しに仮想化できるんですね。

http://www.thinkit.co.jp/article/127/2/2.html



しかも無料だし



��年前位にVMware Workstationを使った経験があるんですが、使用感はVirtualPCに毛が生えたくらいのもんにしか思いませんでした。。。。



今サーバー機にはWindows入れてVirtualPCにlinux入れてるんですが、これで構築すれば同時起動も可能(?)だしVNCいらないし、まさに願ったり叶ったり



今週末にでも時間があれば導入してみようと思います。








導入してみました。

結論としては無理でしたorz



原因はLANカードが未対応だって事。

ちなみに4.0は64bitしか対応していない為、3.5で実験してみました。



あーあ、結構楽しみだったんだけどなぁ・・

これだけのためにLANカード新調するのはちょっと^^;