Das Kopieren einer DB (bzw. des Tabellen-Inhalts) in eine andere kann man manuell in folgenden Schritten erledigen:
SUN> dbshema -d quell-db-name shema.quell-db-name.20050128.sql
(Hier die erforderlichen Schritte.)
SUN> dbaccess -e ziel-db-name shema.quell-db-name.20050128 > shema.ziel-db-name.20050128.log 2>&1
(dbaccess Ziel-DB)
INSERT INTO kleine-tabelle SELECT * FROM quell-db-name:kleine-tabelle ;
(dbaccess Quell-DB)
SET ISOLATION TO DIRTY READ; UNLOAD TO grosse-tabelle.unl SELECT * FROM grosse-tabelle ;
Damit sind alle Sätze in der Datei "grosse-tabelle.unl".
SUN> split -l 10000 grosse-tabelle.unl grosse-tabelle_
Damit werden mehrere Dateien erzeugt: "grosse-tabelle_aa", "grosse-tabelle_ab" u.s.w.
(dbaccess Ziel-DB)
SET TRIGGERS FOR grosse-tabelle DISABLED; SET INDEXES FOR grosse-tabelle DISABLED;
(dbaccess Ziel-DB)
BEGIN WORK; LOCK TABLE grosse-tabelle IN EXCLUSIVE MODE; LOAD FROM grosse-tabelle_aa INSERT INTO grosse-tabelle ;
Damit ist ein Teil (hier die Datei "grosse-tabelle_aa") der Daten geladen.
(dbaccess Ziel-DB)
COMMIT WORK;
(Bei Fehler: mit ROLLBACK WORK;)
Die letzten 2 Schritte solange wiederholen bis alle Dateien geladen sind.
SET INDEXES FOR grosse-tabelle ENABLED; SET TRIGGERS FOR grosse-tabelle ENABLED;
EOF