2009年11月06日

SQLServer Express版の自動バックアップ

SQLServer2005の無償版であるExpress版ではAgentサービスが実装されていないため管理ツールSQLServer Management Studio(Express)からメンテナンス機能が使えない。
よってタスクメニューから手動でのバックアップはできても自動で(定期的に)バックアップを行うことができない。そのためどうしてもWindowsのタスク機能を使ってバッチ処理などで実行させる必要がある。

事例:
SQLServerインスタンス:SQLEXPRESS
データベース名:testdb
SQLServer認証ユーザー名:sa、同パスワード:pass
バックアップ保存先フォルダ:C:\sqlback

用意するのは2つのファイル(ファイル名は任意)
これをバックアップ保存先フォルダに配置する

1.バックアップ命令文(SQL):backup.sql
BACKUP DATABASE testdb TO DISK='C:\sqlback\testdb.bak' WITH INIT
GO
※解説
@DISK=''でバックアップファイルを指定したパスに保存
AWITH INIT の文が無いと、バックアップデータが毎回追加されてtestdb.bakが大きくなってしまう。この文を付けることで上書きモードになる。

2.バッチファイル(BAT):backup.bat
sqlcmd -S .\SQLEXPRESS -U sa -P pass -i C:\sqlback\backup.sql > C:\sqlback\backup.log
※解説
sqlcmdの詳細はサイトで確認
@-S はサーバー名(インスタンス名含)
A-U はログイン名
B-P はログインパスワード
 注:-U -P はSQLServer認証の場合に必要だが、Windows認証の場合は -E だけになる(下参照)
 例:sqlcmd -S .\SQLEXPRESS -E -i C:\sqlback\backup.sql
C-i は実行するSQLのファイル名
D > 以下は無くても良いがログを残したい時に使う

あとはWindowsのタスクでバッチファイルbackup.batを指定すれば良い。
今回は毎日指定された時刻に行う予定で作成したので、前日以前のバックアップは保存されない。
1週間分バックアップを保存したい場合には、曜日毎に別々のSQLとバッチファイルを用意してタスクに登録すれば良い。
posted by なっちゃん at 11:43| 静岡 ☀| Comment(2) | TrackBack(0) | ETC | このブログの読者になる | 更新情報をチェックする

2009年11月05日

アップロード可能なファイルサイズの上限変更

FileUploadコントロールを使ってWebサーバにファイルをアップロードさせるときファイルサイズの上限があることをご存知だろうか?

そんなことを何も意識せず普通に使った場合(Web.Config等に何も指定していない場合)では、上限初期値が4MBになっている。これを超えるとエラーになる。

最初はサイズが原因だとは思わなかったが、どうやらそうらしい。

設定変更はWeb.Configで行う。

system.web要素に次の項目を追加する。

<httpRuntime executionTimeout="600" maxRequestLength="40960"/>

executionTimeout:実行タイムアウト(秒)初期値110
maxRequestLength:リクエストデータ最大サイズ(KB)初期値4096(=4MB)

※location要素と組合せて必要なページのみ指定できるそうだが私は確認していない。
posted by なっちゃん at 12:45| 静岡 ☀| Comment(1) | TrackBack(0) | ASP.NET Tips | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。