Verplaatsen of hernoemen van database files in Oracle

28 okt

Het kan nodig zijn dat database files verplaatst moeten worden naar een andere locatie op het filesystem. Voor verschillende files zijn er verschillende methodes.


Verplaatsen van datafiles en logfiles
Om op te vragen welke datafiles en logfiles er in gebruik zijn in een database moet je inloggen op de database als SYSDBA en kun je de volgende query’s uitvoeren:
SQL> SELECT name FROM v$datafile;
D:\DATAFILES\OSITB\SYSTEM01.DBF
D:\DATAFILES\OSITB\SYSAUX01.DBF
D:\DATAFILES\OSITB\UNDOTBS01.DBF
D:\DATAFILES\OSITB\INDX01.DBF
D:\DATAFILES\OSITB\USERS01.DBF

SQL> SELECT member FROM v$logfile;
D:\DATAFILES\OSITB\REDO03.LOG
D:\DATAFILES\OSITB\REDO02.LOG
D:\DATAFILES\OSITB\REDO01.LOG

Bepaal welke file je wilt hernoemen en/of verplaatsen. De volgende stappen moeten nu worden uitgevoerd:

  • Stop de database
  • Verplaats en/of hetnoem de databasefile
  • Start de database in MOUNT mode
  • Geef met het ALTER DATABASE RENAME FILE commando de opdracht de nieuwe file te gebruiken
  • Open de database

Dit ziet er als volgt uit:

SQL> shutdown immediate
Database is gesloten.
Database is losgekoppeld.
ORACLE instance is afgesloten.

Verplaats of hernoem de bestanden in het Operating System.

SQL> startup mount
ORACLE instance is gestart.

In dit voorbeeld worden alle bestanden verplaatst:


ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\SYSTEM01.DBF' TO 'C:\DATAFILES\OSITB\SYSTEM01.DBF';
ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\SYSAUX01.DBF' TO 'C:\DATAFILES\OSITB\SYSAUX01.DBF';
ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\UNDOTBS01.DBF' TO 'C:\DATAFILES\OSITB\UNDOTBS01.DBF';
ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\INDX01.DBF' TO 'C:\DATAFILES\OSITB\INDX01.DBF';
ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\USERS01.DBF' TO 'C:\DATAFILES\OSITB\USERS01.DBF';
ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\REDO03.LOG' TO 'C:\DATAFILES\OSITB\REDO03.LOG';
ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\REDO02.LOG' TO 'C:\DATAFILES\OSITB\REDO02.LOG';
ALTER DATABASE RENAME FILE 'D:\DATAFILES\OSITB\REDO01.LOG' TO 'C:\DATAFILES\OSITB\REDO01.LOG';

SQL> ALTER DATABASE OPEN;
Database is gewijzigd.

Herstellen van de controlfile

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

In de user_dump_dest directory wordt een trace file geplaatst met het commando om de controlfile aan te maken.

No comments yet

Leave a Reply