Frage

Wir haben ein gemeinsames Problem unserer Entwicklung SQL 2005-Datenbank auf gemeinsam genutzte Web-Server auf der Website-Hosting-Unternehmen zu bewegen.

Im Idealfall möchten wir ein System, das die Datenbankstruktur und Daten als exakte Kopie übertragen werden.

Dies würde häufig durch die Wiederherstellung einer Sicherung erreicht werden. Aber weil sie SQL-Servern gemeinsam genutzt werden, können wir nicht Backups wiederherstellen -. Wir keinen Zugriff auf die eigentliche Maschine gegeben

Wir könnten ein Skript erzeugen, um die Datenbankstruktur zu schaffen, aber dann konnten wir nicht eine Datenübertragung über den Menüpunkt Aufgaben / Importieren von Daten tun, weil wir Fremdschlüssel-Constraints verletzen könnte als Tabellen, die Konflikte mit der Datenbank in einer Reihenfolge importiert werden Schema. Auch könnte Indizes nicht repliziert werden, wenn sie Auto erzeugen gesetzt sind.

Damit wir mit einem unordentlichen Betrieb gelassen werden:

  1. Erstellen Sie ein Skript in SQL 2005, die die Datenbank in SQL 2000-Format erzeugt.
  2. Führen Sie das Skript eine SQL 2000-Datenbank in SQL 2000 zu erstellen.
  3. Erstellen Sie ein Skript in SQL 2000, die die Datenbankstruktur ohne Indizes und Fremdschlüssel erzeugt.
  4. Führen Sie dieses Skript auf dem Produktionsserver. Sie haben jetzt eine Datenbankstruktur zum Hochladen von Daten zu.
  5. Verwenden Sie SQL 2005 die Daten auf den Produktionsserver mit Aufgaben / Importieren von Daten übertragen.
  6. Verwenden Sie SQL 2000 ein Skript erzeugen, der die Datenbank mit Indizes und Schlüssel erstellt.
  7. Kopieren Sie die Befehle, die die Indizes und Fremdschlüssel nur erzeugen. Diese werden nach den Tabellenerstellung Befehle befinden. . Hinweis: In SQL 2005, die Indizes und Fremdschlüssel werden als eine erzeugt und nicht leicht getrennt werden können
  8. Führen Sie dieses Skript auf der Produktionsdatenbank.

Voila! Die Datenbank wird mit allen Daten und Schlüssel / Einschränkungen anstelle hochgeladen. Was für ein chaotisch und fehleranfällige System.

Gibt es etwas Besseres?

War es hilfreich?

Lösung

Scott Gu geschrieben hatte einige Beiträge zu diesem Thema:

SQL Server Database Publishing Toolkit für Web-Hosting

Andere Tipps

Generation Skripte sind in Ordnung, die Datenbank-Objekte für die Erstellung, aber nicht für den Transport von Datenbankinformationen. Zum Beispiel kundenspezifische Datenbanken, in denen der Entwickler erforderlich ist, um einige Daten vorab auszufüllen.

Eines der Probleme, ich habe laufen in mit diesem ist die neue MAX-Typen in SQL Server 2005+. (Nvarchar (max), varchar (max), etc.) Natürlich, das ist noch schlimmer, wenn Sie tatsächlich mit SQL Server Express, das nicht für den Export von anderen erlaubt als Erstellen von Skripten, die Daten zu erstellen.

Ich würde empfehlen, zu einem Hosting-Unternehmen wechseln, das Sie die Möglichkeit haben kann Backup-Dateien auf FTP und Sie nicht Ihren eigenen Skripten erforderlich verwenden. Das ist der ganze Punkt von SQL Server, nicht wahr? Um weitere Tools zur Verfügung stellen, die freundlicher zu bedienen sind. Wenn das Hosting-Unternehmen, dass wegnimmt, können Sie auch zu MySql für seine Leichtigkeit bewegen Informationen in Dumping.

WebHost4Life ist ein Lebensretter in dieser Kategorie. Sie bieten FTP auf den Datenbankserver der Sicherungsdatei oder MDF- und LDF-Dateien für die Befestigung zu! Ich war so aufgeregt, als ich sah, GoDaddy die ähnliche Einschränkung hatte die Sie erwähnt. Ihr Werkzeug hat mir nicht gesagt, es ist ein schlechter Import, und ich kann nicht herausfinden, warum meine Seite kam zurück mit 500 Fehlern.

Ein weiterer Hinweis: Ich bin nicht sicher, die sicherer angesehen wird. Ich ermöglichte externe Verbindungen in GoDaddy und verbunden mit Management Studio, und ich konnte jede Datenbank auf dem Server, um zu sehen! Ich kann nicht darauf zugreifen, aber ich habe jetzt, dass Informationen. Ein Doppelschlag ist, dass GoDaddy erfordert, dass der Benutzername für die DB gleich die DB sein! alles, was Sie jetzt brauchen, ist Spam Passwörter gegen die Hunderte von DBs zu tun!

Webhost4life, auf der anderen Seite, hat nur spezifische Datenbank in Management Studio gezeigt. Und sie lassen Sie Ihren eigenen DB Namen und Benutzernamen auswählen, unabhängig voneinander. Sie hängen Sie nur die gleiche eindeutige ID am Ende der Benutzer & db Namen, um sie daran zu hindern, mit anderen in Konflikt.

Sie sollten nicht verlassen Sicherungen für das Kopieren / Übertragen von Datenbanken wiederherstellen. Sie müssen Skripte verwenden, -. Vertrauen mir, dass du es besser

Ich habe die RedGate vergleicht Werkzeuge mit Shared-Hosting verwendet und es funktioniert gut.

Datenbank-Generation Scripts ist chaotisch, aber sie haben auch eine Reihe von Vorteilen, die ... na ja, die Schmerzen erträglicher machen.

Als erstes, wenn Sie die DB-Skripte als echte Programmieraufgaben in und von sich selbst zu behandeln, können Sie die Unsauberkeit einzukapseln. Wenn Sie ein Skript einmal erzeugen (ein Datenbank-Tool), können Sie die Tabellenstruktur Aspekte aus den Constraint Aspekten aufgeteilt (Schlüssel, Indizes, etc.). Ebenso können Sie die Daten exportieren einmal, sondern spaltete es es in „System“ Daten, die nicht häufig geändert hat ist aber notwendig für den korrekten Betrieb (Sachen wie Steuern oder Versandkosten, etc.), ‚Test‘ Daten, die leicht erkennbar ist, und ' Betrieb‘Daten, die von der DB-Version Alte DB Version Neu (letzter Woche Aufträge).

bewegt werden muss

Die ersten 3 Minuten, nachdem Sie das erreicht haben, sind die Dinge wunderbar: Sie eine neue Datenbank mit oder ohne Testdaten in wenigen Minuten regenerieren können. Leider nach 3 Minuten, sind die Datenbanken nicht mehr synchron, zumindest in Bezug auf die Daten, wenn auch nicht ganz so häufig in Bezug auf die Struktur.

Ich persönlich mag jede Tabellenstruktur als eine separate SQL-Datei haben (und es ist Zwang als separate Datei in einem separaten Verzeichnis, und es ist Testdaten in einer Datei, es ist Systemdaten in einem anderen, etc.). Auf der einen Seite bedeutet dies, dass mehrere verschiedene Dateien, berührt werden, wenn eine Änderung vorgenommen haben, aber auf der anderen Seite, macht es viel einfacher, die Granularität zu sehen, was sich verändert hat worden: es ist alles genau dort in den Versionskontrollprotokolle. (Ich wahrscheinlich davon überzeugt werden kann, dass viele-Dateien ist eine falsche Strategie ...)

All dies auf der Annahme ist, dass Sie einige Möglichkeit haben, für tatsächlich einen komplexen Skript des viele Dateien ausgeführt und sind nicht nur auf einig Web-basierte eingeschränkt Bedienfeld, das sein kann, was Sie beschreiben, wenn Sie sagen " wir keinen Zugriff auf die eigentliche Maschine gegeben.“ Ich glaube, dass Sie nicht kundenspezifische Software-Entwicklung tun und nicht haben einige Art von Shell-Zugriff auf den Server; das Hosting-Geschäft ist wettbewerbsfähig genug, dass man auf jeden Fall ein Skript freundliche Gastgeber leicht genug finden kann.

Überprüfen Sie, ob die webhsoting Unternehmen bietet myLittleBackup Dies ist definitiv die einfachste Lösung zu „installieren“, um eine db aus dem Entwicklungsserver auf die gemeinsamen genutzten SQL Server

Antwort für SQL Server 2008-Benutzer.

ich hatte exakt das gleiche Problem wie OP, aber ich wurde mit SQL Server 2008 und mein Shared-Hosting-Unternehmen ist GoDaddy. Hier ist die Lösung zu kopieren DB + die Daten an GoDaddy Datenbank ...

In Visual Studio 2010, gehen Sie auf dem Server-Explorer (in VS Express, ich denke, es Datenbank-Explorer aufgerufen wird). Recht auf Datenbank klicken und Provider Veröffentlichen wählen ... dies öffnet die Datenbank-Publishing-Assistenten ... gehen Sie durch die Assistenten und es wird eine xxx.sql Datei auf dem lokalen Computer erstellen ...

Öffnen Sie SQL Server Management Studio und eine Verbindung zu der GoDaddy-Datenbank (Sie dies bereits über die GoDaddy Bedienfeld innerhalb ihrer Website erstellt haben sollten) ...

Öffnen Sie den Windows Explorer und finden Sie die xxx.sql Datei und doppelklicken Sie darauf. Das Skript sollte in SSMS öffnen. Führen Sie das Skript „in der richtigen Datenbank“ ... voila, fertig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top