Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

PHP wywołujący skrypt bazy danych kopii zapasowej sqlserver, plik kopii zapasowej utworzony, a następnie usunięty

Oto rozwiązanie, które działa dla mnie:

  • wykonaj sqlsrv_configure("WarningsReturnAsErrors", 0); aby zmienić ustawienia obsługi błędów.
  • usuń WITH STATS = 1 z BACKUP DATABASE oświadczenie.

Jestem w stanie odtworzyć ten problem w przypadku testowym przy użyciu Apache 2.4, PHP 7.1.12 i Microsoft PHP Driver dla SQL Server (php_sqlsrv_71_ts_x86.dll, wersja 4.3). Jedyną różnicą jest to, że przykład używa sterownika SQLSRV (nie mogę używać sterownika PDO_SQLSRV w moim środowisku testowym).

PHP

<?php
    sqlsrv_configure("WarningsReturnAsErrors", 0);

    // Connection
    $serverName = "127.0.0.1\instance,1433";
    $connectionInfo = array(
        "UID"=>"user",
        "PWD"=>"password",
        "Database"=>"ProdDB"
    );
    $conn = sqlsrv_connect($serverName, $connectionInfo);
    if ($conn === false) {
        echo "Unable to connect.</br>";
        die(var_export(sqlsrv_errors(), true));
    }

    // Backup database
    $strSQL = file_get_contents("archdata.sql");
    if (!empty($strSQL)) {
        $query = sqlsrv_query($conn, $strSQL);
        if ($query === false) {
            die(var_export(sqlsrv_errors(), true));
        } else {
            sleep(5);  
            echo "Success";
        }
    }   
?>

T-SQL (archdata.sql)

declare 
    @path varchar(100),
    @fileDate varchar(20),
    @fileName varchar(140)

SET @path = 'd:\Backup\'   
SELECT @fileDate = CONVERT(VARCHAR(20), GETDATE(), 112)  
SET @fileName = @path + 'ProdDB_' + @fileDate + '.BAK' 
BACKUP DATABASE ProdDB TO [email protected]

Nie zapomnij nadać niezbędnych praw do folderu „D:\Backup”.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najszybszy sposób na wyświetlenie listy wszystkich baz danych w SQL Server przy użyciu T-SQL

  2. Jak wykonać zapytanie SQL bez wyświetlania wyników

  3. Zrozumienie blokady SQL Server w bezpiecznym środowisku bazy danych

  4. Jak utworzyć funkcję SQL Server, aby połączyć wiele wierszy z podzapytania w jedno pole rozdzielane?

  5. Jak szybko edytować wartości w tabeli w SQL Server Management Studio?