Windows のボリュームの謎

先日買ったミキサーの USB インターフェースがいつのまにか Vista の ASIO 対応していたので、早速ドライバーをいれていろいろ試していました。 前使っていた、USB オーディオインターフェースよりも、さすがに音楽活動向けだけあってしっかり鳴ってくれていて満足、、、なんですが。

ASIO 入れても、Windows のボリュームコントロールが効く

という謎の現象が発生しました。 Vista からなのだろうか。。

ASIO のドライバーっていうのは、いわゆる Windows のカーネルミキサーをすっとばして、オーディオ機器に信号をダイレクトに渡す技術です。

USB オーディオで Windows のボリュームが効くということは、PC 内のどこかの段でデジタル信号を操作していると言うことですよね。 こっちとしては、 CD からとった .wav をそのまま PC 外に出して欲しくて、アンプは PC 段とは別にしたいわけで、にんともかんとも。

Windows で音楽を鳴らした場合にボリュームをコントロールするのは、以下の2つ。

  • WinAmp 等アプリケーションでのボリュームコントロール
  • 前述のカーネルミキサーでのボリュームコントロール

まずアプリのコントロールでは、WinAmp やぼくの使っているメディアプレイヤー MediaMonkey では、音量を 100% にすると、一切アプリが波形に対して加工をしない状態で出力をするようです。(DirectKS ドライバのヘルプに書いてありました)

で、カーネルミキサー(ボリュームコントロール)なんですが、、、 100% でいじらないで出力なのか、 50 %でいじらないのかがよくわからず。 MSDN とかも引いてみたのですが、それっぽい記述もたぶんないんですよね。。

[tegaki]え~い、100% だ[/tegaki]

ってことで、100% で運用していて、悪くはないと思うのですが、なんというか逆フラシーボ効果?が脳裏を(笑)

う~ん、知らなきゃいいことも世の中あるモンです。 🙂

MySQL のデータベースバックアップ

転ばぬ先のバックアップって PC88 のコピーツール、大昔ありましたよね。 気のせいですか?(挨拶

WordPress の MySQL に関するバックアップ手法のひとつを書いてみます。

現在の WP はコアに XML によるバックアップ機能がついていて、データ移行やアップグレード前のバックアップにはこれを使うのが確実そうです。

それ以外にも不測の事態というのはあるもので、バックアップは定期的に行っておくと、被害を最小限に抑えることができます。 フェイルセーフってやつです。 しかしながら、バックアップなんて動いているうちは不要とも言える作業なので、なるべくやりたくない。 

てなわけで、こういうのはコンピュータに自動的にやってもらうのが一番です。 WordPress のプラグインでも、スケジュールバックアップしてくれるのがいくつかあると思うのですが、この場合、WP がおちるとバックアップも落ちてしまうので、ぼくは MySQL の世界で定期バックアップをしています。

データベースのバックアップというのは、実は非常に奥が深くて、さらに、いわゆるデータベース起動中に行う、ホットバックアップ(オンラインバックアップ)というのはなかなかに難しい技術です。

なぜならばアプリケーションからのトランザクションを確定している状態で行わないと、データに不整合が起きてしまうからです。 最も簡単な例だと、テーブルA と B がリレーションしている場合で、A だけに書いた瞬間にバックアップしたら、システムがおかしくなるみたいなイメージです。

まぁ WP みたいな自分で使う Web アプリは更新処理が極端に少ないですし、自分で更新をコントロールすることができます(サイトメンテ中にすればよい)のであまり気にしなくてもいいのかもしれませんが、、一応 MySQL でホットバックアップをするにはどうすればいいのかを調べてみました。

MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 4.5.1 データベースのバックアップ

MySQL テーブルはファイルとして保存されるため、バックアップが簡単です。一貫したバックアップを行うには、そのテーブルに対して LOCK TABLES を実行してから、FLUSH TABLES を実行します。 See 項6.7.5. 「LOCK TABLES および UNLOCK TABLES 構文」。 See 項4.6.4. 「FLUSH 構文」。 読み取りロックだけが必要なので、データベースディレクトリのファイルをコピーしている間も、他のスレッドはテーブルに対してクエリを続行できます。FLUSH TABLE は、バックアップを開始する前に、キャッシュされているページをすべてディスクに書き込むために必要です。

root をもって MySQL を構築しているのであれば、(たとえば XAMPP だと)

C:\xampp\mysql\data

この下のファイルがデータベースの実体で、ここをコピーしておけばバックアップが取れます。 コピー前に LOCK TABLE で読み取りロックをかけて、FLUSH TABLES でキャッシュを吐かせてからコピーすればトランザクションも確定されるようです。

これをいちいち手でやっていたら間違うので、MySQL にはこれを自動でやってくれる Perl のスクリプトがついています。

MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 4.9.8 mysqlhotcopy(MySQL のデータベースとテーブルのコピー)

mysqlhotcopy は、LOCK TABLESFLUSH TABLES、および cp(または scp)を使用して、すばやくデータベースのバックアップを行う Perl スクリプトです。これは、データベースや単一のテーブルのバックアップを行う最速の方法ですが、データベースディレクトリのある同一マシンだけでしか実行できません。 mysqlhotcopy は、Unix のみ、および MyISAM テーブルと ISAM テーブルでのみ使用できます。

おー、これつかえばバイナリダンプできるんね、ってことでデータ領域からファイルコピーもしてきてくれそうなので、 CORESERVER でためしてみる。 ぽち。

permission denied.

予想はしていたが、無念。(笑

MySQL にはもうひとつバックアップの方法が用意されていて、 mysqldump というコマンドで SQL でデータをエクスポートする手段があります。(SQLテキストでダンプするのは個人的にはいかにもトラブりそうであまり好きではないのですが!)

MySQL AB :: MySQL 4.1 リファレンスマニュアル :: 4.9.7 mysqldump(テーブル構造とデータのダンプ)

バックアップ用のデータベースまたはデータベースの集合をダンプしたり、他の SQL サーバ(MySQL サーバである必要はない)にデータを移動するためのユーティリティです。ダンプには、テーブル作成や入力のための SQL ステートメントが含まれます。

CORESERVER でもこのコマンドは動きますので、これをうまいことシェルにして cron に登録すれば履歴でバックアップを自動的にとることができます。 (これがテーブルロックしているかどうかは分かりませんでした)

JSeries で使っている sourceforge でも、ぼくが適当にかいたシェルで1週間に一度 WordPress のデータベースのバックアップがとられています。 (自分のホームディレクトリに格納されていますので、ぼくに何かあったらホームをさぐってください。> JSeries 関係者のみなさま)

mysqldump を利用して高度なバックアップをとりたい場合は、次のようなちゃんとしたシェルをかぶせて使うといいかもしれません。

SourceForge.net: AutoMySQLBackup

A script to take daily, weekly and monthly backups of your MySQL databases using mysqldump. Features – Backup mutiple databases – Single backup file or to a seperate file for each DB – Compress backup files – Backup remote servers – E-mail logs – More..

bash 動くサーバなら、おそらく動くのではないかと思います。

転ばぬ先のバックアップ。 あ、逆に、バックアップ取得しようとして誤って消したりしないようにご注意ください。 :-)

via ワードプレスとデータベースとバックアップ – ひかげStyle

夜の空騒ぎ

サブロク、国道36号線。 世間と俗世間のボーダーライン。

Dscf0165

ざわめく雑居ビルの傍らで一人グラスを傾け、やがて雑音は耳に入らなくなり、人の動きと暗くされたライトだけがちらちらと動く時間。

孤独よりも独りをリアルに感じ、少しの愛想笑いと飲み干す酒がかろうじてゆらゆらと現実に戻れる瞬間。

時の流れが人で異なり、しかし全てが同じ場所に集う、きらきら瞬く星空をみているのと同じような空間。

演出する彼女たちはプロフェッショナルで、それぞれの思惑を暖かく包む。 この世界での独りは一人では成り立たない。

ボーダラインの外側で彼女たちが何をやっているのか知らないし、知りたくもない。

夢とも現実とも分からないはかない恋心は、この地に留まり、煙草の煙とともに消える。

—-

…営業メールは不要です。(←オチ

実は宇宙人? « MMRT daily life より