5

シナリオは次のとおりです。

3つのデータベースを備えた企業Webサイトがあります。SQLServer2005を実行しています。3つのデータベースはMDFファイルにリンクされています。誰かがこれらのMDFファイルの1つを直接コピー/貼り付けしようとしたため、読み取り専用エラーの原因となったファイルに対して何らかのロックが実行されました。これは、取り外し/再取り付けによって修正されました。

これを再び防ぐために、これらのデータベースのコピーを取得してQAデータベースに降格することを検討しています。

企業サイトを停止せずにコピーを作成できる最善の方法は何ですか?私はグーグルを検索しようとしましたが、まともな方法を思いつきませんでした。データベースはかなり小さいので、考えられる最悪のケースは、SQL Serverサービスをシャットダウンし、MDFをコピーして、サービスを再起動することです。ほとんどのダウンタイムは10秒だと思います。

[これを読んでいる人は誰でも注意してください。MDFファイルを直接コピーしないでください。少なくともDBをオフラインにするか、DBをロックできることを確認してください]

4

2 に答える 2

2

@dave、あなたが正しいと思います。データベース>タスク>バックアップは、データベースへのユーザーアクセスを中断することなく機能します。次のコマンドをバッチファイルで実行してデータベースをバックアップしましたが、実行中にアクセスがブロックされません。私はSQLServerの専門家ではないことに注意してください。これは私のために働くものです。

sqlcmd -S "MyHostName \ sqlexpress" -Q "BACKUP DATABASE MyDatabaseName TO DISK = N'C:\ path \ to \ backup.bak'WITH NOFORMAT、NOINIT、NAME = N'MyDatabaseName-Full Database Backup'、SKIP、NOREWIND、 NOUNLOAD、STATS = 10 "

于 2012-04-24T14:14:22.767 に答える
2

MDFファイルをコピーしてロックしようとするのではなく、データベースのバックアップをファイルシステムに取り、それらをコピーしてください。

バックアップ中にユーザーが影響を受けるかどうかを尋ねます...

もちろんデータベースを使って作業しているので、ユーザーに「何の」影響も及ぼさないとは言えません。ただし、ライブデータベースのバックアップは標準です。通常、中断を最小限に抑えるために、バックアップを夜間または使用頻度の低い期間にスケジュールします。

いくつかの良い情報が提供されているこの質問をチェックしてください: https ://serverfault.com/questions/100490/what-happens-during-a-live-sql-server-backup

于 2012-04-24T14:14:28.960 に答える