Oracle數(shù)據(jù)庫(kù)由
數(shù)據(jù)文件,控制文件和聯(lián)機(jī)日志文件三種文件組成。
由于磁盤空間的變化,或者基于數(shù)據(jù)庫(kù)磁盤I/O性能的調(diào)整等,我們可能會(huì)考慮移動(dòng)數(shù)據(jù)庫(kù)文件。(
注:恢復(fù)數(shù)據(jù)庫(kù)時(shí)非常有用,屬于冷備份)
查詢當(dāng)前數(shù)據(jù)庫(kù)中,相關(guān)文件路徑
select * from v$datafile;
select * from v$controlfile;
select * from v$logfile;
根據(jù)以上路徑,找到當(dāng)前數(shù)據(jù)庫(kù)相應(yīng)文件路徑。
一.移動(dòng)數(shù)據(jù)文件:
可以用ALTER DATABASE,ALTER TABLESPACE兩種方法移動(dòng)數(shù)據(jù)文件。
1. ALTER DATABASE方法;
-- 用此方法,可以移動(dòng)任何表空間的數(shù)據(jù)文件。
STEP 1. 停數(shù)據(jù)庫(kù):
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
STEP 2.用操作系統(tǒng)命令移動(dòng)數(shù)據(jù)文件:
將數(shù)據(jù)文件 'test.dbf' 從/ora/oracle/data1目錄移動(dòng)到/ora/oracle/data2目錄下:
mv /ora/oracle/data1/test.dbf /ora/oracle/data2
STEP 3. Mount數(shù)據(jù)庫(kù),用ALTER DATABASE命令將數(shù)據(jù)文件改名:
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/test.dbf' TO '/ora/oracle/data2/test.dbf';
STEP 4. 打開數(shù)據(jù)庫(kù):.
SQL> ALTER DATABASE OPEN;
SQL>SELECT NAME,STATUS FROM V$DATAFILE;
2. ALTER TABLESPACE方法:
用此方法,要求此數(shù)據(jù)文件既不屬于SYSTEM表空間,也不屬于含有ACTIVE回滾段或臨時(shí)段的表空間。覺得麻煩,省略不用了。
二. 移動(dòng)控制文件:
控制文件 在 INIT.ORA文件中指定。移動(dòng)控制文件相對(duì)比較簡(jiǎn)單,下數(shù)據(jù)庫(kù),
編輯INIT.ORA,移動(dòng)控制文件,重啟動(dòng)數(shù)據(jù)庫(kù)。
STEP 1. 停數(shù)據(jù)庫(kù):
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
STEP 2.用操作系統(tǒng)命令 移動(dòng)控制文件:
--將控制文件'ctl3orcl.ctl' 從/ora/oracle/data1目錄移動(dòng)到/ora/oracle/data2目錄下:
mv /ora/oracle/data1/ctl3orcl.ctl /ora/oracle/data2
STEP 3. 編輯INIT.ORA文件:
INIT.ORA文件的在ORACLE_HOME/dbs目錄下,
修改參數(shù) "control_files",其中指定移動(dòng)后的控制文件:
control_files = (/ora/oracle/data1/ctrlorcl1.ctl,/ora/oracle/data1/ctrlorcl2.ctl,/ora/oracle/data2/ctrlorcl3.ctl)
STEP 4. 重啟動(dòng)數(shù)據(jù)庫(kù):
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP;
SQL>SELECT name FROM V$CONTROLFILE;
SQL> EXIT;
三. 移動(dòng)聯(lián)機(jī)日志文件:
STEP 1. 停數(shù)據(jù)庫(kù):
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> SHUTDOWN;
SQL> EXIT;
STEP 2. 用操作系統(tǒng)命令移動(dòng)聯(lián)機(jī)日志文件:
--將聯(lián)機(jī)日志文件'redolog1.log' 從/ora/oracle/data1目錄移動(dòng)到/ora/oracle/data2目錄下:
mv /ora/oracle/data1/redolog1.log /ora/oracle/data2
STEP 3. Mount數(shù)據(jù)庫(kù),用ALTER DATABASE 命令改聯(lián)機(jī)日志文件名:.
sqlplus /nolog
SQL> CONNECT INTERNAL;
SQL> STARTUP MOUNT ;
SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/redolog1.log' TO '/ora/oracle/data2/redolog1.log';
STEP 4.重啟動(dòng)數(shù)據(jù)庫(kù): .
SQL> ALTER DATABASE OPEN;
SQL>SELECT MEMBER FROM V$LOGFILE;