程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> 在ORACLE中移動數據庫文件

在ORACLE中移動數據庫文件

編輯:關於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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved