投稿

1月, 2010の投稿を表示しています

PostgreSQL、MySQL保守用のバックアップ、リストアのコマンド

毎回検索して実行しているので、自分用メモ。環境: CentOS(linux), lampp▼PostgreSQLバックアップ
$ pg_dump dbname > /tmp/output.sqlバックアップ(drop文付き)
$ pg_dump --clean dbname > /tmp/output.sqlリストア
$ psql dbname < /tmp/input.sqlリストアしたらVACUUMする(アナライズも)
$ vacuumdb -d dbname --analyze▼MySQLバックアップ(パスワード付き)。lamppが導入されているならphpMyAdmin経由の方が簡単
# mysqldump -p dbname > /tmp/output.sqlリストア(パスワード付き)
# mysql -p dbname < /tmp/input.sql▼保守ファイル(ディレクトリ)の圧縮(アーカイブ用)tarコマンド
※フルパスで実行するとパスごとアーカイブするのでカレントディレクトリを移動して実行するほうがいい。
# tar -czvf /tmp/archive.tar.gz target/解凍
# tar -xzvf /tmp/archive.tar.gz10日以内に更新されたファイルを抽出して圧縮する。
(2015/04/19 Modified)xargsは大量のファイルを抽出する場合に失敗する。参考:つらつらと気づいたことを書いていきます。人狼とか。
# find ./target/ -mtime -10 | xargs tar czvf ./hoge.tgz
# find ./target/ -mtime -10 -print0 | tar -czv -T - --null -f ./hoge.tgz「.svn」「node_modules」を除外したディレクトリ一覧をパス付きで。
# find -type d -name '.svn' -prune -o -name 'node_modules' -prune -o -type d -printさらに書き込み可になっているディレクトリ一覧
# ls -dlF $(find -type d -name '.svn' -prune …

【.NET】BindingSourceの利点

.NET Framework 2.0から新たに使えるようになったBindingSource。何が出来るのかよく分からなかったので調べたメモ。【MSDN】BindingSource コンポーネントの概要【MSDN】BindingSource コンポーネント アーキテクチャ詳しくは上記のドキュメントを読んでもらうとして、個人的に体感したのはデザイン時のサポート 伝達性の管理 ▼デザイン時のサポートVisual Studioで開発していると、データベース(DataSet) ⇔ BindingSource ⇔ コンポーネントというのをデザイナー(GUI)で全てできるので便利。▼伝達性の管理データを挿入する場合などBindingSourceやコンポーネントに値をセットしておいて、EndEditメソッドを実行すると、そこでデータベースに反映されるので、行追加イベントや値更新イベントなどの制御をやりやすい。逆にEndEditを使うタイミングを良く考えないと変にイベントが走って動作がおかしくなる。キャンセルする場合はCancelEditメソッドを使えば初期状態に戻るので、「リセット」ボタンに使ったりするのに便利。今のところはこんな感じ。まだ使いこなせてないので、MSDNに書いてあることの半分も理解しない。この辺は実際に使ってみるしかないか。

【.NET】ClickOnceのインストール先とキャッシュ領域

ClickOnceでインストールされたアプリケーションはどこのフォルダに配置されるのかを調べたメモ。ClickOnceに関するメモアプリケーションが配置されるのは下記フォルダc:\Document and Settings\<user>\Apps\2.0「ClickOnceキャッシュ領域」とか「ClickOnceアプリケーションストア」と呼ばれているらしい。ただ、インストールするときに差分をチェックする際に使われるのは、「NETアセンブリ・ダウンロード・キャッシュ」という場所。「NETアセンブリ・ダウンロード・キャッシュ」をクリアしないと、「ClickOnceキャッシュ領域」を削除してもClickOnceがインストールできなくてハマる。詳しくは下記。@IT - 第2回 ClickOnceの仕組みを理解しよう@IT - ClickOnceオンライン・キャッシュ領域をクリアするには?[2.0のみ、C#、VB]MSDN ClickOnce キャッシュの概要コマンドラインでmage –ccかgacutil –cdlを使う。Gacutil.exeについてはこちら。Visual Studio 2005をインストールしてある環境ならスタートメニューから「Visual Studio 2005 コマンドプロンプト」を起動すると使える。ちなみに同じアプリケーションを各ユーザーごとにカスタマイズしている場合は、アプリケーションの「アセンブリ名」を変更して、別アプリケーションとした方が開発とテストがやりやすいと思う。

【.NET】ClickOnceのインストール時に不明な発行元がでる

ClickOnceのインストール時に「不明な発行元です。」と表示されるのをなんとかしようと調べたメモ。ベリサインなどの証明機関(CA)から証明書を発行してもらい署名すればエラーはでないみたい。MSDN 開発者以外が配置する ClickOnce アプリケーションの作成上記サイトを読むと「顧客に代わって配置に署名」するを実行すれば良さそうだけど、よく分からず。インストールするときに出るだけなので今のところはいいか。また、時間があるときに調べる。

【Firefoxアドオン】FireMobileSimulatorでAndroidをエミュレート

イメージ
Andorid端末向けのサイトを構築する際に動作確認をするのにAndroid SDKに付属するエミュレータをインストールするのは面倒だったので、簡単にできないものかと調査したメモ。Firefoxを携帯エミュレータにしてくれるアドオン「FireMobileSimulator」を使うと簡単にできる。インストールはこちらから。インストール後、ツール → FireMobileSimulator → 最新端末リストから端末を追加から「HT-03A」を検索。選択して「選択した端末を追加」で完了。あとはツール → FireMobileSimulator → DC HT-03Aを選択すればOK.Firebugとの連携でデバッグもしやすい。ちなみに試してたのは、WordpressをAndroid端末, iPhone, iPod touch向けに表示してくれるプラグイン「WPtouch

【.NET】ClickOnceの署名(デジタル証明書)を更新・延長する

開発をしていたら、ある日突然発行ウィザードでエラーを吐くようになった。環境はVisual Studio 2005エラー    2    SignTool はエラー 'bin\Debug\AuroraClient.publish\\setup.exe の署名に失敗しました。 SignTool Error: ISignedCode::Sign returned error: 0x80880253     The signer's certificate is not valid for signing. SignTool Error: An error occurred while attempting to sign: bin\Debug\AuroraClient.publish\\setup.exe ' を報告しました。    AuroraClientデジタル証明書の有効期限が切れたみたい・・・。下記サイトを参考に更新してみる。ClickOnceのデジタル証明書を更新するには?[VS 2005のみ、2.0のみ、C#書いてある通りに作成して実行してみると強制終了する・・・。検索してみると、ここからRenewCertのエラーメッセージを出力してくれるバージョンをダウンロードできる。ビルドして実行してみると、PFXImportCertStore failed with error 0x56:というエラーが。もしやと思い設定したパスワードを引数で渡すと作成できた。RenewCert.exe "元のpfxパス" "出力pfxパス" "CN=<発行者名>" "設定したパスワード"発行者名は適当に設定しても大丈夫らしい。

PostgreSQLをバージョン8.4系にあげたらクエリが遅い

新しい開発案件でPostgreSQL(今のバージョンは8.4.2)の設定をし終えて、いざ動かしてみるとviewが(異様に)遅い(のがある)。環境はCentOS5.4(linux)最初はPostgreSQLのチューニングで何とかなると思い、試行錯誤しながら設定したけど、8.3のころのスピードにはならず。しょうがないので8.3の最新版を再インストールすることに。下記ドキュメントを見る限り、8.4にすれば速くなりそうな気がするけど、もう少し8.4は待ちかな?PostgreSQL 8.4 に関する技術情報(リリースノートの解説)普通に使う文には多分速いと思う。viewの作りが悪いのとオプティマイザの相性の問題かなと・・・

jQueryを使ってPHPとJSON形式のデータをやり取りする方法

クライアントとサーバー間で通信するときにJSON形式のデータを簡単にやり取り出来ないものかと調査したメモ。クライアント(JavaScript側)はjQueryとjQueryのプラグイン「jquery-json」を使う。ダウンロードはこちらから。jquery-jsonはjson形式の変換(encode, decode)を簡単にできる。サーバー側はjson_decodeとjson_encodeを使う。詳しくは前の記事を参照。以下サンプルクライアント側var objData = new Object(); //var aData = {};でもOK objData.name = "hoge"; //aData["name"] = "hoge"でもoK objData.age = 12; sJson = $.toJSON(objData); $.getJSON("test.php", { json : sJson }, function(objRes){ alert(objRes.country); //objRes["country"]でもok }); (jquery-jsonを使わない場合はobjDataをpostする)ちなみに$.post()を使って、$.evalJSON(res)してもいい。サーバー側(test.php)$objParam = json_decode($_POST['json']); $objParam->country = 'japan'; //注意:配列ではない echo json_encode($objParam); 試してないけど、こんな感じでできるはず。POSTするとサーバー側のデバッグがしづらいので、サーバーにポストする前にalertでJSONを出力して次のようなHTMLを用意すれば、ちょっとやりやすくなる。<html> <head> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> <title>保存するときの文字コードを…

PostgreSQLのチューニング(postgresql.confの設定)

サーバーを設定する際にPostgreSQLに割り当てるメモリをどれくらいにするか調査したメモ。環境はCentOS 5.4, PostgreSQL 8.3.9postgresql.confに書いてある設定の意味は公式リファレンスを参照する。このwikiを参考に。shared_buffers = 1024MB #共有メモリバッファtemp_buffers = 256MB # 一時テーブルで使用work_mem = 10MB #ソートやテーブル結合で使用wal_buffers = 1024kB #トランザクションログで使用effective_cache_size = 256MB #なるべくインデックスを使うようにrandom_page_cost = 2.0 #なるべくインデックスを使うように▼関連記事MySQLのチューニングメモ

【Linux】プロセスのメモリを確認して不要なサービスを止める

VMware上でメモリが足らず、開発に影響してきたので、不要なサービスを止めるために調査したメモ。ここのブログを参考にした環境はCentOS現在使用中のメモリを確認するコマンド# ps alx | lessVSZが仮想メモリでRSSが物理メモリらしいので、これらが多いプロセスでいらないやつを止めた。不要なデーモンで参考になったのが下記サイトr271-635 CentOS 不必要なサービスを無効化PukiWiki 不要サービスの停止以下止めたデーモン一覧プロセス説明autofsファイルシステムの自動マウント/アンマウントavahi-daemonmDNSを使用して名前解決auditd監査メーッセージをログ出力acpid電源管理cups印刷サービスgpmコンソールでマウスを使うためのドライバip6tablesファイヤーウォール(IP6版)jexecjarファイルを実行可能にするfirstbootシステム初期設定用mcstransSELinuxで内部データを、ユーザ定義に変換して表示mdmonitorRAID監視netfsNFS, Sambaなどネットワークドライブを自動マウントnfslockNFSでファイルの排他制御portmapNFSなどのRPC接続を、TCP/IPにマッピングrpcgssd
rpcidmapdNFS(RPC)関連pcscdスマートカードリーダーsendmailメール送信smartdHDDの障害予測機能(S.M.A.R.T)のサポート自動起動を停止する場合は# chkconfig <プロセス> off起動しているか確認する場合は# /etc/rc.d/init.d/<プロセス> status関連記事▼【CentOS】いらないデーモン(daemon)を削除する

【Android開発】EclipseのAndroid SDKをアップデートする方法

Android SDKをアップデートしたときのメモ。環境はEclipse(Galileo)インストールの仕方はこちらの記事を参考に。プラグイン(Android Development Tools)(ADT)のアップデートはEclipseのHelp → Check for Updatesからできる。インストールされたSDKなどはWindows → Android SDK and AVD Managerから。Installed Packages、Available Packagesのどちらでも可能。Accept Allで一括インストール。ただEclipseを起動しているとSDKのファイルをロックされて更新できない場合があるので、その場合はAndroid SDK and AVD Managerを単独で起動。Windowsの場合はandroid-sdk-windows\tools\android.batを起動すればOK。

VMware Server 2.0の仮想マシンをコマンドラインで操作

遅いサーバーにVMware Serverをインストールして使っていると、いちいちWeb Accessを立ち上げていると遅いので、さくっとコマンドラインで出来なものかと調べたメモ。ちなみにWeb Accessから「Generate Virtual Machine Shortcut」でデスクトップにショートカットを作ってもいい。コマンドラインは下のブログを参考に。VMware Server 2.0 をコマンドラインから操作する方法以下は自分用メモコマンド説明vmware-vim-cmd vmsvc/getallvmsゲストOSの一覧vmware-vim-cmd vmsvc/power.suspend [Vmid]サスペンドvmware-vim-cmd vmsvc/power.on [Vmid]電源onvmware-vim-cmd vmsvc/power.off [Vmid]電源offvmware-vim-cmd vmsvc/power.reboot [Vmid]再起動vmware-vim-cmd vmsvc/power.getstate [Vmid]状態表示vmware-vim-cmd help vmsvcコマンド一覧対話型で操作するには# vmware-vimshを使う。実行後にTabを打てば、コマンドが出てくる。後は[/]$ help (コマンド)でいろいろ分かる。

【PostgreSQLチューニング】遅いSQLクエリをみつけるログ設定

ボトルネックになっているSQLを見つけようと設定したときのメモ。環境はCentOS 5.4, PostgreSQL 8.4.2インストールの方法は前の記事を参考に。ログ設定で参考になったのは下記@IT 第3回 PostgreSQLを遅くしている犯人はどこだ?コンパイル直後はログの設定が無効になっているので、/usr/local/pgsql/data/postgresql.confを編集するlog_destination = 'stderr'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_truncate_on_rotation = on
log_rotation_age = 1d #1日ごとにrotation
log_rotation_size = 10MB
log_min_duration_statement = 3s #3秒を超えたらログ出力それぞれコメントアウトをして有効にする。最後のlog_min_duration_statementで設定した秒数を超えるクエリをログに出力してくれる。ログファイルは/usr/local/pgsql/data/pg_logに出力される。

SubversionをCompileしてsvnコマンドを使用(RPMとYUMを使う方法を追記)

yumでインストールしたsubversionは古いので最新のSubversionをソースからコンパイルしたメモ。環境はCentOS5.4(linux)Sambaで共有して、Windowsから更新・コミットしているので、サーバーではsvn exportができるだけでいい(subversionクライアントとして動作すればいい)ダウロードは公式サイトから。この辺からsubversion-1.6.6.tar.gzとsubversion-deps-1.6.6.tar.gzをダウンロードする。subversion-1.6.6.tar.gzだけで最初やろうとしたらSQLiteの依存関係で困ったので(SQLiteはいろんなパーケージに依存されているのでyum管理から出したくない)、依存関係がパッケージされているsubversion-depsを使うことにした。# tar xzvf subversion-1.6.6.tar.gz
# tar xzvf subversion-deps-1.6.6.tar.gz
# cd subversion-1.6.6
# ./configure --without-berkeley-db --without-apxs --without-swig --without-serf --disable-mod-activation
# make
# make install/usr/local/binに配置される。一回ログアウトしないとコマンドがないと怒られた。エクスポートするコマンドは
# svn export /opt/aurora /tmp/auroraという感じ。詳しくは
# svn help exportで確認。< 2012/04/10 Modified >
subversion 1.7 のClient PackageをInstallしたのを追記。Apache Subversion Binary PackagesCentOS 5.xにCollabNet Subverion 1.6を入れるCollabNetに登録(無料)して、rpm packageをDownloadする。# rpm -ivh CollabNetSubversion-client-1.7.4-1.…

2010年はHTML5がどこまで広がるか

HTML5のドラフト版が発表され(2008年8月)、2010年の9月頃に正式に発表を予定しているらしい。wikipediaFirefoxとかいくつかのブラウザでは既にHTML5のいくつかの機能を実装しているみたい。そんなHTML5の情報は下記サイトから。HTML5.JPHTML 5 ― HTML 4 からの変更点ざっと見ていると今までFlashやJavaScriptで実装していた機能がタグやAPIとして提供されるような感じ。よりWebアプリケーションが実装しやすくなりそう。Google Chrome OSなんかはHTML5をフルで活用してきそうなイメージ。グーグルが賭けるHTML 5の未来でも、最近発表されたGoogleのAndroid携帯はflashが内蔵されているらしい。

【DNS】SPFレコードを設定して自ドメインのなりすましメール対策

メールを送信するときにFromを任意に設定して送信することが可能ですが、自分の管理しているドメインが不正に使われないようにするのにSPFレコードをDNSに記述して対策するらしい。SPF(Sender Policy Framework)の詳細は下記WikipediaGoogle Apps 管理者用 ヘルプ SPF レコードの設定サンプルとかはGoogle先生に聞いてみるといろいろ出てくる。自分でも設定したときに追記予定。

MicrosoftとGoogleのCDNでjQuery.jsの読み込みを高速化

Microsoftが提供するCDN(コンテンツ・デリバリー・ネットワーク)に置いてあるAjax(jQuery)ライブラリを使うと読み込みが高速化できるらしい。Microsoft AJAX CDNのお知らせ - @ITMicrosoft AJAX CDN - SSLのサポート - @IT商用、非商用でも無償で利用できるらしい。さらにこれを調べていて、Googleでもすでに同じようなサービスを提供していることが分かった。Google AJAX Libraries APIこちらの方が提供しているライブラリが豊富。利用することで体感で分かるほど速度改善できるかは疑問だけど、頭の片隅に置いておくことにする。

HDD to HDDでコピーする「これdo台 PRO」

実際に見せてもらって良さそうだったのでメモ。PCレスでHDDをまるごとコピーしたりできるCentury 「これdo台 PRO」値段は26000円ぐらい。ちょっと高いか?PC経由であればHDDをまるごとコピーできるフリーソフトもあるので、お金がない場合はそちらを利用するのも手。

2010年仕事始め

今日から仕事始め。溜まっているタスクを考えると萎えるけど、地元で(精神的に)充電してきたのでグァーッとやって終わらせたい。