Hallo Martin,
also die Skripte sollen auf dem Server laufen mit Oracle 8i, daher als erstes führe ich folgendes Skript aus:
set ORACLE_SID=
sqlplus internal@%ORACLE_SID%
@02_shutdown.sql
start 03_rename.bat
sqlplus internal@%ORACLE_SID%
@04_controlfile.sql
Das 02_shutdown.sql beihaltet nur:
connect / as sysdba
shutdown immediate
Das 03_rename.bat beinhaltet:
nur die move befehle, es werden die files aus v$dbfile,v$logfile,v$controlfile und v$tempfile verschoben.
Tja und das 04_controlfile.sql beinhaltet:
STARTUP NOMOUNT–Startet nur die Instance ( SGA und Prozesse ). Notwendig um eine neue DB anzulegen.
CREATE CONTROLFILE REUSE SET DATABASE „“ RESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 4
MAXDATAFILES 254
MAXINSTANCES 1
MAXLOGHISTORY 113
LOGFILE
select ‚GROUP‘ || group# || ’ ’ || ‚‘’’ || ‚D:\database\cosd07am‘ || substr(member,15) || ‚‘’’ || ’ SIZE 8M’ from v$logfile;
–GROUP 1 ‚F:\LOGS\LOG1.ORA‘ SIZE 8M,
–GROUP 2 ‚G:\LOGS\LOG2.ORA‘ SIZE 8M
DATAFILE
select ‚‘’’ || ‚D:\database\‘ || substr(name,19) || ‚‘’’ from v$dbfile;
CHARACTER SET WE8ISO8859P1;
– Recovery is required if any of the datafiles are restored backups,
–# or if the last shutdown was not normal or immediate.
–RECOVER DATABASE USING BACKUP CONTROLFILE
–# Database can now be opened normally.
–#Mit der Option resetlogs wird er Inhalt der aktuellen Redolog-Files ignoriert.
ALTER DATABASE OPEN RESETLOGS;
–# Commands to add tempfiles to temporary tablespaces.
–# Online tempfiles have complete space information.
–# Other tempfiles may require adjustment.
–select v$tablespace.name, v$tempfile.name from v$tablespace, v$tempfile where v$tablespace.ts# = v$tempfile.ts#;
select ‚alter tablespace ’ || v$tablespace.name || ’ add tempfile ’ || ‚‘‘’ || v$tempfile.name || ‚‘’ reuse;’ from v$tablespace, v$tempfile where v$tablespace.ts#=v$tempfile.ts#;
–ALTER TABLESPACE TEMP ADD TEMPFILE ‚D:\DATABASE\TMP1.ORA‘ REUSE;
–ALTER TABLESPACE TS_TEMP ADD TEMPFILE ‚D:\DATABASE\TS_TEMP1.DBF‘ REUSE;
–# End of tempfile additions.
select name from v$database;
select * from global_name;
shutdown immediate
startup restrict
startup
Jetzt weiss ich nicht ob ich noch ein anderes Skript schreiben muss mit der alter database Methode. Und wenn ich dies mache, muss ich das Controlfile trotzdem neu schreiben? Und ich weiss nicht wie ich im Controlfile die richtigen dateien mit dem neuen Pfad reinschreiben soll, da der Pfad immer eine unterschiedliche Länge hat und die Skripte auf mehreren Servern laufen sollen.
Hilfe.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]