在Oracle數據庫中移動數據文件的具體方法
一.移動數據文件:
– 可以用ALTER DATABASE,ALTER TABLESPACE兩種方法移動數據文件。
1. ALTER DATABASE方法;
– 用此方法,可以移動任何表空間的數據文件。
◆STEP 1. 下數據庫:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
◆STEP 2.用操作系統命令移動數據文件:
– 將數據文件 ‘test.ora’ 從/ora/oracle/data1目錄移動到/ora/oracle/data2目錄下:
$ mv /ora/oracle/data1/test.ora /ora/oracle/data2
◆STEP 3. Mount數據庫,用ALTER DATABASE命令將數據文件改名:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RENAME FILE ‘/ora/oracle/data1/test.ora’ TO ‘/ora/oracle/data2/test.ora’;
◆STEP 4. 打開數據庫:.
SQL> ALTER DATABASE OPEN;
SQL>SELECT NAME,STATUS FROM V$DATAFILE;
2. ALTER TABLESPACE方法:
– 用此方法,要求此數據文件既不屬于SYSTEM表空間,也不屬于含有ACTIVE回滾段或臨時段的表空間。
◆STEP1. 將此數據文件所在的表空間OFFLINE:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> ALTER TABLESPACE test OFFLINE;
SQL> EXIT;
◆STEP2. 用操作系統命令移動數據文件:
將數據文件 ‘test.ora’ 從/ora/oracle/
data1目錄移動到/ora/oracle/data2目錄下:
$ mv /ora/oracle/data1/test.ora /ora/oracle/data2
◆STEP3. 用ALTER TABLESPACE命令改數據文件名:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> ALTER TABLESPACE test RENAME DATAFILE ‘/ora/oracle/data1/test.ora’ TO ‘/ora/oracle/data2/test.ora’;
◆STEP4. 將此數據文件所在的表空間ONLINE:
SQL> ALTER TABLESPACE test ONLINE;
SQL> SELECT NAME,STATUS FROM V$DATAFILE;
二. 移動控制文件:
– 控制文件 在 INIT.ORA文件中指定。移動控制文件相對比較簡單,下數據庫,
– 編輯INIT.ORA,移動控制文件,重啟動數據庫。
◆STEP 1. 下數據庫:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
◆STEP 2.用操作系統命令 移動控制文件:
–將控制文件’ctl3orcl.ora’ 從/ora/oracle/data1目錄移動到/ora/oracle/data2目錄下:
$ mv /ora/oracle/data1/ctrlorcl3.ora /ora/oracle/data2
◆STEP 3. 編輯INIT.ORA文件:
INIT.ORA文件的在$ORACLE_HOME/dbs目錄下,
修改參數 “control_files”,其中指定移動后的控制文件:
control_files = (/ora/oracle/data1/ctrlorcl1.ora,/ora/oracle/data1/ctrlorcl2.ora,/ora/oracle/data2/ctrlorcl3.ora)
◆STEP 4. 重啟動數據庫:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP;
SQL>SELECT name FROM V$CONTROLFILE;
SQL> EXIT;
三. 移動聯機日志文件:
◆STEP 1. 停數據庫:
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
◆STEP 2. 用操作系統命令移動聯機日志文件:
–將聯機日志文件’redolog1.ora’ 從/ora/oracle/data1目錄移動到/ora/oracle/data2目錄下:
$ mv /ora/oracle/data1/redolog1.ora /ora/oracle/data2
◆STEP 3. Mount數據庫,用ALTER DATABASE 命令改聯機日志文件名:.
$ sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP MOUNT ;
SQL> ALTER DATABASE RENAME FILE ‘/ora/oracle/data1/redolog1.ora’ TO ‘/ora/oracle/data2/redolog1.ora’;
◆STEP 4.重啟動數據庫: .
SQL> ALTER DATABASE OPEN;
SQL>SELECT MEMBER FROM V$LOGFILE;
