Database 디렉토리 옮기기 (Oracle)

sqlplus / as sysdba

1. 어떤 DB파일들이 있는지 확인한다.

SQL> startup mount
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBORCL\SYSTEM01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBORCL\SYSAUX01.DBF
C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBORCL\PDBORCL_USERS01.DBF


2. DB 데이터 파일들을 옮긴다.

SQL> shutdown

C:\APP\ADMINISTRATOR\ORADATA\ORCL\에 있는 모든 데이터 파일을 D:\DATABASE\ORACLE\ORCL\로 복사한다. (이동 아님!)

SQL> startup mount
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBORCL\PDBORCL_USERS01.DBF' TO 'D:\DATABASE\ORACLE\ORCL\PDBORCL\PDBORCL_USERS01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBORCL\SYSAUX01.DBF'        TO 'D:\DATABASE\ORACLE\ORCL\PDBORCL\SYSAUX01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBORCL\SYSTEM01.DBF'        TO 'D:\DATABASE\ORACLE\ORCL\PDBORCL\SYSTEM01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF'        TO 'D:\DATABASE\ORACLE\ORCL\PDBSEED\SYSAUX01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF'        TO 'D:\DATABASE\ORACLE\ORCL\PDBSEED\SYSTEM01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF'                TO 'D:\DATABASE\ORACLE\ORCL\SYSAUX01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF'                TO 'D:\DATABASE\ORACLE\ORCL\SYSTEM01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF'               TO 'D:\DATABASE\ORACLE\ORCL\UNDOTBS01.DBF';
SQL> ALTER DATABASE RENAME FILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'                 TO 'D:\DATABASE\ORACLE\ORCL\USERS01.DBF';
SQL> exit

C:\APP\ADMINISTRATOR\ORADATA\ORCL\* 내 DB파일를 삭제 하면 DB가 구동되지 않는다.


3. 아래의 명령으로 정상적으로 변경되었는지 확인한다.

sqlplus / as sysdba
SQL> startup mount
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
D:\DATABASE\ORACLE\ORCL\SYSTEM01.DBF
D:\DATABASE\ORACLE\ORCL\PDBSEED\SYSTEM01.DBF
D:\DATABASE\ORACLE\ORCL\SYSAUX01.DBF
D:\DATABASE\ORACLE\ORCL\PDBSEED\SYSAUX01.DBF
D:\DATABASE\ORACLE\ORCL\UNDOTBS01.DBF
D:\DATABASE\ORACLE\ORCL\USERS01.DBF
D:\DATABASE\ORACLE\ORCL\PDBORCL\SYSTEM01.DBF
D:\DATABASE\ORACLE\ORCL\PDBORCL\SYSAUX01.DBF
D:\DATABASE\ORACLE\ORCL\PDBORCL\PDBORCL_USERS01.DBF
위로 스크롤