質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
バックアップ

バックアップとは、保存データやプログラムの複製を異なる記録装置などへ保存することを言います。バックアップを取っておくことで、機器のトラブルでデータが損傷するなどの不測の事態にもデータを複製することが可能です。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

Q&A

解決済

3回答

10843閲覧

sqlコマンドでリストアしたい。

alfald

総合スコア19

バックアップ

バックアップとは、保存データやプログラムの複製を異なる記録装置などへ保存することを言います。バックアップを取っておくことで、機器のトラブルでデータが損傷するなどの不測の事態にもデータを複製することが可能です。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

0グッド

0クリップ

投稿2020/10/12 01:48

前提・実現したいこと

PC1のSQLServe2012で取ったバックアップデータを別のPC(PC2)でリストアしたい。
バックアップを取ったPCもリストアしたいPCもSQLServe2012を使用
最終的には自動化したいため、コマンドで実行したい。

発生している問題・エラーメッセージ

メッセージ 5133、レベル 16、状態 1、サーバー xxx、行 1 オペレーティング システム エラー 3(指定されたパスが見つかりません。) により、ファイル "xxx.mdf" のディレクトリ参照に失敗しました。 メッセージ 3156、レベル 16、状態 3、サーバー xxx、行 1 ファイル 'yyy' を 'D:\yyy.mdf' に復元できません。WITH MOVE を使用して、そのファイルにとって有効な場所を特定してください。 メッセージ 5133、レベル 16、状態 1、サーバー xxx、行 1 オペレーティング システム エラー 3(指定されたパスが見つかりません。) により、ファイル "D:\yyy_L.ndf" のディレクトリ参照に失敗しました。 メッセージ 3156、レベル 16、状態 3、サーバー xxx、行 1 ファイル 'yyy_L' を 'D:\yyy_L.ndf' に復元できません。WITH MOVE を使用して、そのファイルにとって有効な場所を特定してくださ い。 メッセージ 5133、レベル 16、状態 1、サーバー xxx、行 1 オペレーティング システム エラー 3(指定されたパスが見つかりません。) により、ファイル "D:yyy_log.ldf" のディレクトリ参照に失敗しました。 メッセージ 3156、レベル 16、状態 3、サーバー xxx、行 1 ファイル 'yyy_log' を 'D:\yyy_log.ldf' に復元できません。WITH MOVE を使用して、そのファイルにとって有効な場所を特定してく ださい。 メッセージ 3119、レベル 16、状態 1、サーバー xxx、行 1 RESTORE ステートメントのプランを作成中に問題が検出されました。詳細については、以前のメッセージを参照してください。 メッセージ 3013、レベル 16、状態 1、サーバー xxx、行 1 RESTORE DATABASE が異常終了しています。

該当のソースコード

cmd

1sqlcmd -s localhost -U User -P Password -Q "RESTORE DATABASE database FROM DISK='C:\back\database.bak' WITH REPLACE"

試したこと

ManagementStudioを使用したGUI操作でのリストアはできた。

補足情報(FW/ツールのバージョンなど)

PC1:SQLServe2012
OS:WindowsServer2016

PC2:SQLServe2012
OS:WindowsServer2016

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

SSMSでGUIで実行できたならGUIにスクリプトに吐くボタンがあるからそれをsqlファイルに保存して
コマンドからはスクリプトファイルを実行するといいと思います。

「sqlcmd スクリプト 実行」とかで調べると出てくると思います。
https://haronoid.hatenablog.com/entry/2018/02/09/141843

投稿2020/10/12 01:53

sousuke

総合スコア3830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alfald

2020/10/12 02:52

そんなやり方があったのですね 参考にしてみます。
guest

0

バックアップファイルは、PC1とPC2で共有される場所に配置していますか?
単にそのパスが合っていないようなエラーです。

用途的には上書きリストアのように思えますが、(バックアップ/リストア)が完全か差分なのかは意識していますか?

投稿2020/10/12 01:56

編集2020/10/12 02:06
sazi

総合スコア25327

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alfald

2020/10/12 02:51

バックアップは完全です。 PC1と2では何も共有されていません。 違うサーバーにリストアするイメージです。
sazi

2020/10/12 02:54

PC1でバックアップしたファイルはPC2から参照出来ていますか? そもそも、エラーが起きている処理が分からないので、エラー内容からの推測でしかありませんが。
alfald

2020/10/12 04:23

できていません。 PC2に持ってきたものは、bakファイルのみです。
guest

0

自己解決

sqlcmd -s localhost -U User -P Password -Q "RESTORE FILELISTONLY FROM DISK='C:xxx.bak’”
で論理名を調べて、それを
sqlcmd -s localhost -U User -P Password -Q "RESTORE DATABASE database FROM DISK='C:xxx.bak'
WITH MOVE 'xxx' TO 'C:xxx.mdf',
MOVE 'xxx_log' TO 'C:xxx_log.ldf',
MOVE 'xxx_L' TO 'C:xxx_L.ndf',
REPLACE;"
という感じでMOVE 'aaa' TO 'bbb' のaaaの部分を調べた。
bbbは自分でパス指定した。

投稿2020/10/12 06:15

alfald

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問