実現したいこと
Microsoft SQLServerのバックアップについて、1日1回自動で行うように作成したいです。
SQLServer Expressの場合、自動バックアップを行う機能を利用できないため手動でシステムを作る必要があるのですが、バックアップファイルの処理がうまく起動しません。
発生している問題・分からないこと
https://sigmanest.jp/blog-sqlserverbackup/
上記のサイトを参考に
1 - SQLファイルの作成、
2 - バッチファイルの作成
ここまでを行いバッチファイルを起動してみたのですがバックアップデータが保存されていませんでした。
スクリプトを作成した際その内容を確認したのですが、一部の箇所が赤文字表記になっていました。
原因の可能性があると思うのですが、どのように変更すればいいかわかりません。
ご教授のほどお願い致します。
該当のソースコード
BACKUP DATABASE [DB名] TO DISK = N'C:バックアップ先' (この箇所が赤文字表記) WITH NOFORMAT, NOINIT, NAME = N'DB名-完全 データベース バックアップ'(この箇所が赤文字表記), SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
https://sigmanest.jp/blog-sqlserverbackup/
作成の流れは上記のサイトと同じです。バッチファイルもサイトの作成通りに行いました。
☆
sqlcmd -S サーバー名 -U SQLServerのユーザー名 -P SQLServerのパスワード
-i 実行するSQLファイルのフルパス>バックアップファイルのフルパス
・powershellにて実行後次のエラーが表示されました。
メッセージ 102、レベル 15、状態 1、サーバー サーバー名\SQLEXPRESS、行 1
'S' 付近に不適切な構文があります。
メッセージ 132、レベル 15、状態 1、サーバー サーバー名\SQLEXPRESS、行 1
ラベル 'C' は、既に宣言されています。ラベル名は、クエリ バッチまたはストアド プロシージャ内で一意にしてください。
☆
☆
バッチファイルの内容
sqlcmd -S サーバー名 -U SQLServerのユーザー名 -P SQLServerのパスワード -i 実行するSQLファイルのフルパス>バックアップファイルのフルパス
・パッチファイルは起動自体はできます。
・メモ帳による作成(UTF-8→ANSI(シフトJIS)に変換後実行)
・バックアップファイルのフルパスを変えてみたのですが保存されていませんでした。
☆
・サーバー名はMicrosoft SQL Server を立ち上げた際に表記される「サーバー名」
SQLServerのユーザー名は認証の下に入力する「ログイン」
SQLServerのパスワードはログインの下にある「パスワード」と同じです。
実行するSQLファイルのフルパスは1.で作成したスクリプトファイルのパスです。
バックアップファイルのフルパスはスクリプトしたコードのバックアップ先と同じです。
・スクリプト化したファイルを開くとSQL Server management studioが開きログイン画面が表示されます。
・Start-Process " C:\ファイル名.bat"
ターミナルでも実行自体はできます。
しかし、実行の際一瞬処理のためにか真っ黒な画面が表示されるだけで、エラーによって処理を止められたわけではなく、実行処理を終えるだけで保存はできないです。
補足
・SQL Server management studio 2020
・windows11 home、64ビット
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー