在oracle中移動數據庫文件
---- oracle數據庫由數據文件,控制文件和聯機日志文件三種文件組成。由于磁盤空間的變化,或者基于數據庫磁盤i/o性能的調整等,數據庫管理員可能會考慮移動數據庫文件。下面以unix平臺為例,分別討論三種數據庫文件的移動方法。
---- 一.移動數據文件:
---- 可以用alter database,alter tablespace兩種方法移動數據文件。
---- 1. alter database方法;
---- 用此方法,可以移動任何表空間的數據文件。
---- step 1. 下數據庫:
$ svrmgrl
svrmgr > connect internal;
svrmgr > shutdown;
svrmgr > exit;
---- step 2.用操作系統命令移動數據文件:
---- 將數據文件 'app1_data.ora' 從/ora/oracle7/data1目錄移動到/ora/oracle7/data2目錄下:
---- $ mv /ora/oracle7/data1/app1_data.ora /ora/oracle7/data2
---- step 3. mount數據庫,用alter database命令將數據文件改名:
---- $ svrmgrl
svrmgr > connect internal;
svrmgr > startup mount;
svrmgr > alter database rename file
2 > '/ora/oracle7/data1/app1_data.ora ' to
3 > '/ora/oracle7/data2/app1_data.ora;
step 4. 打開數據庫:.
svrmgr > alter database open;
svrmgr >select name,status from v$datafile;
---- 2. alter tablespace方法:
---- 用此方法,要求此數據文件既不屬于system表空間,也不屬于含有active回滾段或臨時段的表空間。
---- step1. 將此數據文件所在的表空間offline:
$ svrmgrl
svrmgr > connect internal;
svrmgr > alter tablespace app1_data offline;
svrmgr > exit;
step2. 用操作系統命令移動數據文件:
將數據文件 'app1_data.ora' 從/ora/oracle7/
data1目錄移動到/ora/oracle7/data2目錄下:
$ mv /ora/oracle7/data1/app1_data.ora /ora/oracle7/data2
step3. 用alter tablespace命令改數據文件名:
$ svrmgrl
svrmgr > connect internal;
svrmgr > alter tablespace app1_data rename datafile
2 > '/ora/oracle7/data 1/app1_data.ora' to
3 > '/ora/oracle7/data2/app1_data.ora;
step4. 將此數據文件所在的表空間online:
svrmgr > alter tablespace app1_data online;
svrmgr > select name,status from v$datafile;
---- 二. 移動控制文件:
---- 控制文件 在 init.ora文件中指定。移動控制文件相對比較簡單,下數據庫,編輯init.ora,移動控制文件,重啟動數據庫。
step 1. 下數據庫:
$ svrmgrl
svrmgr > connect internal;
svrmgr > shutdown;
svrmgr > exit;
step 2.用操作系統命令 移動控制文件:
將控制文件'ctl3orcl.ora' 從/ora/oracle7
/data1目錄移動到/ora/oracle7/data2目錄下:
$ mv /ora/oracle7/data 1/ctrl3orcl.ora
/ora/oracle7/data2
step 3. 編輯init.ora文件:
init.ora文件的在$oracle_home/dbs目錄下,
修改參數 "control_files",其中指定移動后的控制文件:
control_files = (/ora/oracle7/data 1/ctrl1orcl.ora,
/ora/oracle7/data1/ctrl2orcl.ora,
/ora/oracle7/data2/ctrl3orcl.ora)
step 4. 重啟動數據庫:
$ svrmgrl
svrmgr > connect internal;
svrmgr > startup;
svrmgr >select name from v$controlfile;
svrmgr > exit;
---- 三. 移動聯機日志文件:
step 1. 停數據庫:
$ svrmgrl
svrmgr > connect internal;
svrmgr > shutdown;
svrmgr > exit;
step 2. 用操作系統命令移動聯機日志文件:
將聯機日志文件'redolog1.ora' 從/ora/oracle7
/data1目錄移動到/ora/oracle7/data2目錄下:
$ mv /ora/oracle7/data 1/redolog1.ora
/ora/oracle7/data2
step 3. mount數據庫,用alter database
命令改聯機日志文件名:.
$ svrmgrl
svrmgr > connect internal;
svrmgr > startup mount cc1;
svrmgr > alter database rename file
2 > '/ora/oracle7/data 1/redolog1.ora' to
3 > '/ora/oracle7/data 2/redolog1.ora';
step 4.重啟動數據庫: .
svrmgr > alter database open;
svrmgr >select member from v$logfile;
新聞熱點
疑難解答