实现在ORACLE中移动数据库文件的具体步骤

发表于:2007-05-25来源:作者:点击数: 标签:数据库oracle移动文件现在
ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。由于磁盘空间的变化,或者基于数据库磁盘I/O 性能的调整等,数据库管理员可能会考虑移动数据库文件。下面以 UNIX 平台为例,分别讨论三种数据库文件的移动方法。 一.移动数据文件: 可以用ALTE

  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;
  
  

原文转自:http://www.ltesting.net