SQL Server: база данных застряла в состоянии «восстановление» с помощью PHP - PullRequest
1 голос
/ 29 января 2012

Я попытался выполнить резервное копирование своей базы данных, следуя инструкции SQL Server: База данных застряла в состоянии «Восстановление» .но моя база данных застряла в состоянии «Восстановление».PHP-код ниже:

$database = "container";
$uid = "sa";
$pwd = "12345" ; 

try {
      $conn = new PDO( "sqlsrv:Server=localhost\SQLEXPRESS;Database=$database", 
          $uid, 
          $pwd
          //,array(PDO::ATTR_PERSISTENT => true)
          ); 
  $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); }
catch( PDOException $e ) {
  die( "Error connecting to SQL Server" ); }

echo "Connected to SQL Server\n";

$backfile = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\sql server bk' ;
echo "Connected to SQL Server\n";
$backfile = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\sql server bk'  ;

$query = "RESTORE DATABASE child_database FROM DISK = '$backfile' WITH  REPLACE, RECOVERY ";
$conn->exec($query);

После выполнения этого кода моя child_database застряла в состоянии восстановления. Однако я копирую команду sql

RESTORE DATABASE child_database FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\sql server bk' WITH  REPLACE, RECOVERY

и запускаю ее в инструменте управления сервером Microsoft SQLработает просто отлично.

Я пытаюсь запустить добавить php код

$conn->exec("RESTORE DATABASE child_database WITH RECOVERY");

Я получил исключение.

, пожалуйста, помогите.

1 Ответ

3 голосов
/ 31 января 2012

Кажется, есть проблема с драйвером PDO, эта проблема может быть на уровне ODBC / SNAC, на котором построен драйвер. Но это восстановление базы данных хорошо работает с другими драйверами. Я пытался с sqlsrv и mssql, они работали хорошо. Подробнее см. Восстановление базы данных SQL Server из PHP

...