在ORACLE中移动数据库文件大全
a.shutdownimmediate关闭数据库
b.在os下拷贝数据文件到新的地点
c.Startupmount启动到mount下
d.Alterdatabaserenamedatafile'老文件'to'新文件';
e.Alterdatabaseopen;打开数据库
2、利用Rman联机操作
RMAN>sql"alterdatabasedatafile''filename''offline";
RMAN>run{
2>copydatafile'oldfilelocation'
3>to'newfilelocation';
4>switchdatafile'oldfilelocation'
5>todatafilecopy'newfilelocation';
6>}
RMAN>sql"alterdatabasedatafile''filename''online";
说明:利用OS拷贝也可以联机操作,不关闭数据库,与rman的步骤一样,利用rman与利用os拷贝的原理一样,在rman中copy是拷贝数据文件,相当于OS的cp,而switch则相当于alterdatabaserename,用来更新控制文件。


--ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。
--由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,
--我們可能会考虑移动数据库文件。
--下面以LUNIX平台为例,分别讨论三种数据库文件的移动方法。

一.移动数据文件:
--可以用ALTERDATABASE,ALTERTABLESPACE两种方法移动数据文件。

1.ALTERDATABASE方法;
--用此方法,可以移动任何表空间的数据文件。

STEP1.下数据库:
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>SHUTDOWN;
SQL>EXIT;

STEP2.用操作系统命令移动数据文件:
--将数据文件'test.ora'从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
$mv/ora/oracle/data1/test.ora/ora/oracle/data2

STEP3.Mount数据库,用ALTERDATABASE命令将数据文件改名:
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>STARTUPMOUNT;
SQL>ALTERDATABASERENAMEFILE'/ora/oracle/data1/test.ora'TO'/ora/oracle/data2/test.ora';

STEP4.打开数据库:.
SQL>ALTERDATABASEOPEN;
SQL>SELECTNAME,STATUSFROMV$DATAFILE;

2.ALTERTABLESPACE方法:
--用此方法,要求此数据文件既不属于SYSTEM表空间,也不属于含有ACTIVE回滚段或临时段的表空间。

STEP1.将此数据文件所在的表空间OFFLINE:
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>ALTERTABLESPACEtestOFFLINE;
SQL>EXIT;

STEP2.用操作系统命令移动数据文件:
将数据文件'test.ora'从/ora/oracle/
data1目录移动到/ora/oracle/data2目录下:
$mv/ora/oracle/data1/test.ora/ora/oracle/data2

STEP3.用ALTERTABLESPACE命令改数据文件名:
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>ALTERTABLESPACEtestRENAMEDATAFILE'/ora/oracle/data1/test.ora'TO'/ora/oracle/data2/test.ora';

STEP4.将此数据文件所在的表空间ONLINE:
SQL>ALTERTABLESPACEtestONLINE;
SQL>SELECTNAME,STATUSFROMV$DATAFILE;

二.移动控制文件:

--控制文件在INIT.ORA文件中指定。移动控制文件相对比较简单,下数据库,
--编辑INIT.ORA,移动控制文件,重启动数据库。

STEP1.下数据库:
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>SHUTDOWN;
SQL>EXIT;

STEP2.用操作系统命令移动控制文件:
--将控制文件'ctl3orcl.ora'从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
$mv/ora/oracle/data1/ctrlorcl3.ora/ora/oracle/data2

STEP3.编辑INIT.ORA文件:
INIT.ORA文件的在$ORACLE_HOME/dbs目录下,
修改参数"control_files",其中指定移动后的控制文件:
control_files=(/ora/oracle/data1/ctrlorcl1.ora,/ora/oracle/data1/ctrlorcl2.ora,/ora/oracle/data2/ctrlorcl3.ora)

STEP4.重启动数据库:
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>STARTUP;
SQL>SELECTnameFROMV$CONTROLFILE;
SQL>EXIT;


三.移动联机日志文件:
STEP1.停数据库:
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>SHUTDOWN;
SQL>EXIT;

STEP2.用操作系统命令移动联机日志文件:
--将联机日志文件'redolog1.ora'从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:
$mv/ora/oracle/data1/redolog1.ora/ora/oracle/data2

STEP3.Mount数据库,用ALTERDATABASE命令改联机日志文件名:.
$sqlplus/nolog
SQL>CONNECTINTERNAL;
SQL>STARTUPMOUNT;
SQL>ALTERDATABASERENAMEFILE'/ora/oracle/data1/redolog1.ora'TO'/ora/oracle/data2/redolog1.ora';

STEP4.重启动数据库:.
SQL>ALTERDATABASEOPEN;
SQL>SELECTMEMBERFROMV$LOGFILE