Bei einem Gesamt-Datenbank Export werden sämtliche Objekte ausser
diejenigen des User SYS exportiert. Insbesondere werden auch PUBLIC Synonyme exportiert.
Soll also eine Datenbank auf einem anderen Host reinstalliert werden, so kann dies auf
relativ einfache Art und Weise über einen Full Export / Full Import gemacht werden.
Zuerst wird die DB exportiert, dann wird die neue DB erstellt und die SYS SQL-Scripts in
$ORACLE_HOME/rdbms/admin ausgeführt, damit die SYS Objekte wieder vorhanden sind. Zum
Schluss wird die DB importiert. Fehlermeldungen betreffend existierenden Objekten
können ignoriert werden. Existieren die physischen Datenbankfiles am neuen Ort
bereits, so muss die Option DESTROY=Y beim Import angegeben werden. Auf keinen Fall sollte
IGNORE=Y beim Import angegeben werden, denn damit könnten doppelte Rows eingefügt
werden sofern kein Primary Key dies verhindert.
log_archive_start = false
# Kein Online Backup
# rollback_segments = (sys_rb2) # Alle RS auskommentieren
exp80 userid=system/manager full=y log=exp.log file=full.dmp
SPOOL D:\Orant\Database\initARK1.log
CONNECT sys/manager AS SYSDBA;
REM *************************************************************
REM *
*
REM * Startup database
*
REM *
*
REM *************************************************************
STARTUP NOMOUNT pfile=D:\Orant\Database\initARK1_init.ora
REM *************************************************************
REM *
*
REM * Create database.
*
REM *
*
REM *************************************************************
CREATE DATABASE ARK1
CONTROLFILE REUSE
MAXDATAFILES 256
MAXINSTANCES 4
MAXLOGFILES 62
MAXLOGMEMBERS 5
MAXLOGHISTORY 1600
CHARACTER SET "WE8ISO8859P1"
NATIONAL CHARACTER SET "WE8ISO8859P1"
DATAFILE 'E:\Oradata\ARK1\sys\ARK1_sys1.dbf' SIZE 150M REUSE
AUTOEXTEND ON NEXT 20M MAXSIZE UNLIMITED
LOGFILE GROUP 1 ('E:\Oradata\ARK1\rdo\ARK1_log1A.rdo',
'E:\Oradata\ARK1\rdo\ARK1_log1B.rdo') SIZE 4M REUSE,
GROUP 2
('E:\Oradata\ARK1\rdo\ARK1_log2A.rdo',
'E:\Oradata\ARK1\rdo\ARK1_log2B.rdo') SIZE 4M REUSE;
CREATE ROLLBACK SEGMENT sys_rb2
TABLESPACE SYSTEM
STORAGE
(
INITIAL 4M
NEXT 4M
MINEXTENTS 2
MAXEXTENTS 100
);
ALTER ROLLBACK SEGMENT sys_rb2 ONLINE;
REM *************************************************************
REM *
*
REM * Set security for the administrative users.
*
REM *
*
REM *************************************************************
ALTER USER system
IDENTIFIED BY manager;
ALTER USER sys
IDENTIFIED BY manager;
REM *************************************************************
REM *
*
REM * Load the system scripts.
*
REM *
*
REM *************************************************************
SET STOPONERROR OFF;
SET TERMOUT ON;
@D:\ORANT\RDBMS80\admin\catalog.sql
@D:\ORANT\RDBMS80\admin\catparr.sql
@D:\ORANT\RDBMS80\admin\catproc.sql
@D:\ORANT\RDBMS80\admin\catrep.sql
@D:\ORANT\RDBMS80\admin\catio.sql
@D:\ORANT\RDBMS80\admin\dbmsiotc.sql
@D:\ORANT\RDBMS80\admin\prvtiotc.plb
@D:\ORANT\RDBMS80\admin\dbmspool.sql
@D:\ORANT\RDBMS80\admin\utlchain.sql
@D:\ORANT\RDBMS80\admin\utlexcpt.sql
@D:\ORANT\RDBMS80\admin\utltkprf.sql
@D:\ORANT\RDBMS80\admin\utlxplan.sql
@D:\ORANT\RDBMS80\admin\catperf.sql
@D:\ORANT\RDBMS80\admin\catexp7.sql
@D:\ORANT\RDBMS80\admin\catblock.sql
@D:\ORANT\RDBMS80\admin\utllockt.sql
@D:\ORANT\RDBMS80\admin\dbmspipe.sql
@D:\ORANT\RDBMS80\admin\dbmsalrt.sql
@D:\ORANT\RDBMS80\admin\utlvalid.sql
@D:\ORANT\RDBMS80\admin\utlraw.sql
@D:\ORANT\RDBMS80\admin\prvtrawb.plb
@D:\ORANT\RDBMS80\admin\dbmsoctk.sql
@D:\ORANT\RDBMS80\admin\prvtoctk.plb
@D:\ORANT\RDBMS80\admin\dbmsrand.sql
SPOOL OFF;
EXIT;
imp80 userid=system/manager log=imp.log file=full.dmp full=y destroy=y
commit=y
Fehlermeldungen IMP-00015: following statement failed because the
object already exists: ignorieren. Das Logfile auf ORA Fehler untersuchen mit grep "ORA-*
imp.log.
ALTER ROLLBACK SEGMENT sys_rb2 OFFLINE;
svrmgrl;
CONNECT sys/manager AS SYSDBA;
GRANT EXECUTE ON sys.dbms_pipe TO <dbuser>;
GRANT EXECUTE ON sys.dbms_alert TO <dbuser>;
GRANT EXECUTE ON sys.dbms_standard TO <dbuser>;
GRANT EXECUTE ON sys.dbms_transaction TO <dbuser>;
GRANT EXECUTE ON sys.dbms_utility TO <dbuser>;
GRANT EXECUTE ON sys.dbms_lock TO <dbuser>;
GRANT EXECUTE ON sys.dbms_sql TO <dbuser>;
### Grant Privileges for SET AUTOTRACE in SQL*PLUS
### ----------------------------------------------
GRANT DELETE,INSERT,UPDATE,SELECT ON sys.plan_table TO <dbrole>;
GRANT SELECT ON V_$PARAMETER TO <dbrole>;
@D:\ORANT\PLUS80\plustrce.sql
GRANT plustrace to <dbrole>;
set heading off;
set feed off;
set pagesize 10000;
set wrap off;
set linesize 200;
set tab on;
set scan off;
set verify off;
--
spool comp_all.tmp
select decode (OBJECT_TYPE, 'PACKAGE BODY',
'alter package ' || OWNER ||'.'||OBJECT_NAME || ' compile body;',
'alter ' || OBJECT_TYPE || ' ' || OWNER||'.'|| OBJECT_NAME ||
' compile;'
)
from DBA_OBJECTS A,
SYS.ORDER_OBJECT_BY_DEPENDENCY B
where A.OBJECT_ID = B.OBJECT_ID (+)
and A.STATUS = 'INVALID'
and A.OBJECT_TYPE in ('PACKAGE
BODY','PACKAGE','FUNCTION','PROCEDURE','TRIGGER','VIEW')
order by B.DLEVEL desc,
A.OBJECT_TYPE,
A.OBJECT_NAME;
--
spool off;
set heading on;
set feed on;
set scan on;
set verify on;
--
@comp_all.tmp
rollback_segments = (RBS01,RBS02,RBS03,RBS04,RBS05,RBS06)
log_archive_start = false #
Kein Online Backup
svrmgrl
connect internal
shutdown immediate
startup
|