Frage

Ich habe eine ASP .NET-Anwendung, die auf eine Oracle oder SQL Server-Datenbank verbindet. Ein Installationsprogramm wurde entwickelt, eine neue Datenbank zu einem vorhandenen SQL Server mithilfe von SQL-Befehlen wie „Datenbank wiederherstellen ...“ zu installieren, die einfach wieder einen „.bak“ -Datei, die wir unter Quellen Kontrolle zu halten.

Ich bin sehr neu für Oracle und unsere Anwendung ist erst seit kurzem mit 10g kompatibel sein portiert.

Wir sind derzeit mit dem „exp.exe“ Tool ein „.dmp“ Datei zu erzeugen und dann die ‚imp.exe‘ können sie in einem Entwickler-Box importieren.

Wie würden Sie gehen über einen „Oracle Database Installer“ zu erstellen?

Möchten Sie die Datenbank mit Skriptdateien erstellen und dann die Datenbank gefüllt mit erforderlich Standarddaten?

Würden Sie das "imp.exe" Werkzeug hinter den Kulissen laufen?

Haben wir eine saubere Schnittstelle für Systemadministratoren zur Verfügung stellen müssen, so dass sie nur den Zielserver auswählen und getan haben, oder sollten wir sie einfach bieten mit der „DMP“ Datei? Was sind die besten Praktiken?

Danke.

War es hilfreich?

Lösung

Die Frage ist - was Ihre Kunden über Oracle

?
  • Nichts? Sie sollten wahrscheinlich diese Position zu überdenken. Oracle ist sehr groß und komplex. Wenn Sie Ihre Kunden wissen nichts davon ausgehen, werden Sie dann beginnen sie Schulungen und helfen, das ist nicht angemessen.

  • Minimal Kompetente? Wenn sie kompetent sind, wissen sie genug imp von selbst zu laufen. Auch sie wissen genug, um ein Skript auszuführen, das SQL ausgeführt wird.

  • Die tatsächliche DBA? Die meisten Organisationen, die Oracle können echte DBA leisten sich leisten können. Real DBA kann mit einer Menge Dinge zu bewältigen - sie brauchen nicht viel Händchenhalten. Einige von ihnen mögen Speicherparameter entsprechend ihrem Geschäft Standards zuzuweisen.

Sie sollten ein Skript mit vernünftigen Standardeinstellungen bieten. Sie sollten Ihr Skript in einer Art und Weise definieren, dass jemand einfach alle Ihre Speicherparameter finden und optimieren sie, wenn nötig.

Ihre ersten Daten über Export / Import oder über einen Skript sein. Ich ziehe ein Skript.

Andere Tipps

Ich habe dies immer wieder von beiden Seiten erfolgen (Consumer und Provider) als DBA, Entwickler und Architekt.

Als Anbieter einer meiner großen Leistungen (1996) war die Schaffung einer Installations-CD für eine kommerzielle Versicherungsanspruch Produkt-Management-Software zu den größten Versicherungsträgern gezielt (ein Multi-Millionen-Dollar-Artikel). Die Installations-CD installiert, um den Oracle 7.2 RDBMS-Engine, das FileNet optisches Speichersystem (scannt Papierdokumente und erstellt Binärversionen katalogisierte), und unsere eigene Anspruch Verarbeitungsanwendung (gebaut in VB 4.0), die alle integriert und einsatzbereit. Als Teil des Installationsprozesses könnte der Benutzer die Oracle-Software-Installation überspringen oder anpassen, und der Benutzer kann die Datenbankkonfiguration in allen seinen wichtigen Details (Datenbank, Schemata, Tablespaces, Größen, Festplatten, etc.) anpassen / außer Kraft setzen.

Ich stellte auch den Außendienst für dieses Produkt, das als notwendig, um die Kunden vor Ort Reisen enthielt. Getestet habe ich die Installations-CD buchstäblich Hunderte Male unter jedem erdenklichen Szenario, das ich replizieren konnte, und wir hatten nie einen Feldfehler, der auch einen Anruf erforderlich, geschweige denn eine Reise (ich habe Reise vier Mal, aber für Pre-Sales-Sachen statt).

In jüngerer Zeit (2007), scripted ich die Schaffung einer Oracle 10g-Datenbank für ein internes System zu einem Megacorp. In der Produktion wurde die Datenbank auf 8 TB, meist für eine einzelne Transaktion Tabelle mit hohen Datenvolumen bemessen. Im Test wurde die Datenbank um 1 TB für einen bescheidenen Server bemessen. Bei der Entwicklung wurde die Datenbank um 100 MB Größe auf meinem Laptop laufen. Genau die gleiche SKRIPTE erstellt alle drei Umgebungen, und ich konnte sie eine neue Umgebung / Maschine in etwa fünf Minuten zu handhaben verlängern. Diese Datenbank extremen Performance-Tuning beteiligt, so Anpassung aller relevanten Merkmale war absolut entscheidend.

Zurück zur Versicherungsanspruch Verarbeitung Produkt - lassen Sie mich bitte hinzufügen, dass ich ursprünglich angeheuert seine Umwandlung aus einer SQL Server-Datenbank zu einer Oracle-Datenbank zu führen. Diese Umwandlung wurde als geschäftliche Notwendigkeit identifiziert, weil die meisten potenziellen Kunden kein SQL-Server-Produkt als professionelle, seriöse Lösung sehen waren. Das ist nicht ganz so häufig heute, aber es gilt immer noch im Allgemeinen: ein Software-Produkt eine bessere Chance der Marktdurchdringung hat, wenn es mehrere Datenbankoptionen aufnehmen kann, wie durch die Zielkunden bevorzugt (vor allem Unternehmenskunden)

.

Ebenso wurde die Installations-CD auch als wesentliches Element angesehen. Allerdings haben diese Situation und vieles mehr zu mir offenbart, dass die meisten „echten“ DBAs wird kein Import-basierte Datenbank-Installation übernehmen. Als DBA und Architekt, ich weiß, dass ich auf jeden Fall nicht aus den gleichen Gründen.

Einfach ausgedrückt, ein Import-basierte Datenbank-Installation gibt dem Kunden fast keine Kontrolle über die resultierende Datenbank. Es ist undurchsichtig für die Kunden, so dass sie in Frage zu stellen, was es tat. Es zwingt die Kunden massive Anstrengungen aufwenden, um zu versuchen, zu üben, was wenig Kontrolle sie können. Es ist notorisch instabil und fehleranfällig (Oracle Importe für den Besitz und die Erlaubnis Probleme, Constraint Probleme gut bekannt, etc.). Mit einem Gewicht all diese Auswirkungen, ein Import-basierten Datenbank-Installation ist unprofessionell -. Es nicht die Kundenbedürfnisse ersten nicht setzen

Scripting die Datenbank-Installation bietet die richtige Art von Transparenz, Konfigurierbarkeit, selektiver Wiederholbarkeit und die allgemeinen Kundenkontrolle, dass Professionalität verlangt. Es fordert Sie dazu auch richtig, die Auswirkungen Ihrer Datenbank-Design-Entscheidungen in einer Art und Weise zu verstehen, dass ein Import nicht.

Die besten Wünsche.

persönlich favorisieren ich SQL-Skripte Datenbankerstellung und Datenlasten, soweit möglich. Ich neige dazu, PL / SQL Developer zu verwenden. Es hat einige gute Möglichkeiten Skripte aus einer bestehenden Datenbank zu generieren. Sobald Sie diese haben, können Sie die Skripte mit sqlplus oder einen Anwendungscode ausführen, beliebige SQL (zB JDBC mit Java) ausführen kann. Toad ist das häufigere (und teurer) Tool für Oracle-Entwicklung.

Die einzige Einschränkung eines SQL-Export ist es kann CLOB / BLOB-Felder nicht exportieren. Wenn Sie die haben, entweder Sie müssen sie separat tun (als PL / SQL-Export) oder das Ganze als ein PL / SQL-Export zu tun. Theres keine Dramen mit dieser Ausnahme der Datei ist effektiv ein binärer Export (Erweiterung .pde) und sind begrenzt, wie Sie es ausführen können.

Der andere große Vorteil von SQL-Quelldateien ist sie Version leicht gesteuert werden. Es ist wirklich praktisch zu können, indem Sie einen oder zwei Skripte eine Datenbankumgebung erstellen.

Die Import- und Export-Tools für Oracle ich denke, sind eher für Sicherungs- und Wiederherstellungsvorgänge.

Nun, wie für die an einem Kunden aus Ihren Kommentaren zu liefern scheint es, dass Sie dies DBAs werden geben werden. So ziemlich jede Oracle-Installation haben DBAs beteiligt. Sie wird gut mit SQL-Skripts, das Schema zu erstellen und die Datenlast tun. Sie werden eine Menge ortsspezifische Konfiguration tun (zB Abstimmung der SGA, Temp Tablespaces, Anzahl der gleichzeitigen Verbindungen, usw. basierend auf der erwarteten Belastung).

Sie als Anbieter, kann Leitlinien für jede relevante Konfiguration geben und Sie können zur Unterstützung und möglicherweise Installation einlassen, aber letztlich ist es an ihnen, um herauszufinden, was für sie arbeitet. Oracle läuft auf einer Vielzahl von Betriebssystemen und Hardware-Varianten mit unendlichen Variationen in der Netzwerktopologie und Firewall configuraiton. Sie können nicht Faktor in allen diese zu einem Installateur oder sogar einen Satz von Anweisungen (außer den Richtlinien genannten zuvor).

Das letzte Mal, dass ich in der Schaffung eines (Oracle) db (für ein einigermaßen großen Unternehmen mit eigenen DBAs) beteiligt war, wollten die DBAs weiß, Dinge wie:

  • , was wir wollten die DB nennen,
  • , welche Tablespaces würden wir brauchen, und eine Schätzung, wie viele Daten in jedem
  • wäre
  • , wie viele Benutzer würden verbinden.

(aus dem Gedächtnis) sie die db und Tablespaces einzurichten, dann haben wir eine Kombination von einfachen Skripten zur Verfügung gestellt, die sie (oder klarer Anweisungen, wenn eine Aufgabe nicht leicht war, zu automatisieren) laufen konnten
Wie ich sage, war dies für ein in-house-App, so die Leistung kann variieren, aber in meinem Fall wollten sie alle Anweisungen klar, so dass Dinkel (a) kein possibily von einem Missverständnis war die falsche Sache führenden getan, und (b) kein Verschulden ihrerseits, wenn etwas nicht funktioniert hat ( „wir wurden nach nur die Anweisungen“)

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