Deutsch

How To: Ausführen von Schemawiederherstellungen einer Oracle Enterprise-Geodatabase

Zusammenfassung

In diesem Artikel wird eine Reihe von Schritten beschrieben, die auszuführen sind, wenn mit dem Data Pump-Import-Dienstprogramm impdp eine Oracle Data Pump-Datei nach Schema importiert wird. Diese Schritte müssen jeweils einzeln ausgeführt werden.

Unterstützte Versionen:
  • EGDB: Alle
  • DBMS: Oracle
  • DBMS-Version: 11g und höher

Vorgehensweise

  1. Erstellen Sie eine neue Oracle-Datenbank.
  2. Stellen Sie über SQL*Plus eine Verbindung als SYS her.
sqlplus sys/syspassword@server/sid as sysdba
  1. Erteilen Sie öffentliche Berechtigungen für die Oracle-Geodatabase.
GRANT EXECUTE ON dbms_pipe TO public;
GRANT EXECUTE ON dbms_lock TO public;
GRANT EXECUTE ON dbms_lob TO public;
GRANT EXECUTE ON dbms_utility TO public;
GRANT EXECUTE ON dbms_sql TO public;
GRANT EXECUTE ON utl_raw TO public;
  1. Rufen Sie eine Liste der Besitzer der Daten in der alten Enterprise-Geodatabase ab.
select distinct owner from sde.layers
union
select distinct owner from sde.st_geometry_columns
union
select distinct owner from sde.table_registry
order by 1;
  1. Erstellen Sie alle erforderlichen Tablespaces.
Hinweis:
Dies ist der Standard-Tablespace, der automatisch erweitert wird.
CREATE TABLESPACE SDETBS DATAFILE '/home/oracle/orcl/oradata/banner/sde.dbf'
SIZE 100M AUTOEXTEND ON NEXT 51200K MAXSIZE UNLIMITED EXTENT MANAGEMENT
LOCAL UNIFORM SIZE 320K LOGGING ONLINE SEGMENT SPACE MANAGEMENT MANUAL;
  1. Erstellen Sie alle erforderlichen Benutzer/Schema.
create user sde identified by sdepassword default tablespace sdetbs;
  1. Erteilen Sie dem neuen Benutzer alle erforderlichen Berechtigungen.
grant CREATE SESSION to sde;
grant CREATE TABLE to sde;
grant CREATE TRIGGER to sde;
grant CREATE SEQUENCE to sde;
grant CREATE PROCEDURE to sde;

grant EXECUTE ON DBMS_CRYPTO to sde;
grant CREATE INDEXTYPE to sde;
grant CREATE LIBRARY to sde;
grant CREATE OPERATOR to sde;
grant CREATE PUBLIC SYNONYM to sde;
grant CREATE TYPE to sde;
grant CREATE VIEW to sde;
grant DROP PUBLIC SYNONYM to sde;
grant ADMINISTER DATABASE TRIGGER to sde;

grant ALTER ANY INDEX to sde;
grant ALTER ANY TABLE to sde;
grant CREATE ANY INDEX to sde;
grant CREATE ANY TRIGGER to sde;
grant CREATE ANY VIEW to sde;
grant DROP ANY INDEX to sde;
grant DROP ANY VIEW to sde;
grant SELECT ANY TABLE to sde;

grant ALTER SESSION to sde;
grant ANALYZE ANY to sde;
grant SELECT ANY DICTIONARY to sde;
grant CREATE DATABASE LINK to sde;
grant CREATE MATERIALIZED VIEW to sde;
grant RESTRICTED SESSION to sde;
grant UNLIMITED TABLESPACE to sde;
grant ALTER SYSTEM to sde;
grant SELECT_CATALOG_ROLE to sde;
  1. Erstellen Sie ein Verzeichnis, auf das der SYSTEM-Benutzer Zugriff hat.
create directory DPUMP1 as '/home/oracle/dpump';
  1. Erteilen Sie dem SYSTEM-Benutzer Lese-/Schreibberechtigung für die Dateien im Verzeichnis.
GRANT READ, WRITE ON DIRECTORY DPUMP1 to system;
exit
  1. Führen Sie über die Eingabeaufforderung das Dienstprogramm impdp für jedes Benutzerschema aus.
  • Beispiel 1: SDE-Schema
impdp system/sys directory=dpump1 logfile=sde_imp.log dumpfile=backup.DMP schemas=sde
  • Beispiel 2: GIS-Schema
impdp system/sys directory=dpump1 logfile=GIS_imp.log dumpfile=backup.DMP schemas=GIS
  1. Melden Sie sich bei SQL*Plus an, und überprüfen Sie, ob ungültige Objekte vorhanden sind.
sqlplus sys/sys@server/sid as sysdba
Select count(*) from dba_objects where owner='SDE' and status='INVALID';
  1. Kompilieren Sie alle ungültigen Schemaobjekte.
exec dbms_utility.compile_schema(schema => 'SDE');

Referenzinformationen