当前位置:操作系统 > Unix/Linux >>

在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;

  原作者:张勇

  来源:中国动感技术网络 本文来自:http://doc.xiaoyaxiao.com/3421.html
发表您的高见!
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,