《ORACLE数据库文件位置调整》由会员分享,可在线阅读,更多相关《ORACLE数据库文件位置调整(4页珍藏版)》请在金锄头文库上搜索。
1、由于数据库原始安装的原因造成数据库或整个操作系统的不安全或者由于磁盘空间变化再或者由于业务变化造成的 I/O 性能需要调整等等原因需要数据库管理员进行数据库文件位置的调整.下面通过一个 WINDOWS 平台的 ORACLE 数据文件移动为例子讨论一下数据库文件移动的方法,请大家指正.一.移动数据文件移动数据文件笔者目前使用的有 2 种办法,权作抛砖引玉.方法一、以数据文件为单位移动1.查看数据文件路径SQL select name from v$datafile;NAME-E:ORACLEORADATASLUMGABAKSYSTEM01.DBFE:ORACLEORADATASLUMGABAKU
2、NDOTBS01.DBFE:ORACLEORADATASLUMGACWMLITE01.DBFE:ORACLEORADATASLUMGADRSYS01.DBFE:ORACLEORADATASLUMGAEXAMPLE01.DBFE:ORACLEORADATASLUMGAINDX01.DBFE:ORACLEORADATASLUMGAODM01.DBFE:ORACLEORADATASLUMGATOOLS01.DBFE:ORACLEORADATASLUMGAUSERS01.DBFE:ORACLEORADATASLUMGAXDB01.DBF2.关闭数据库SQL shutdown immediateData
3、base closed.Database dismounted.ORACLE instance shut down.3.MOUNT 到数据库SQL startup mountORACLE instance started.Total System Global Area 135338868 bytesFixed Size 453492 bytesVariable Size 109051904 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesDatabase mounted.4.把要移动的数据文件剪切到目标目录,这里的要移
4、动 SYSTEM 数据文件从E:oracleoradataslumgabak到E:oracleoradataslumga4.alter database 方法移动数据文件SQL alter database rename file E:ORACLEORADATASLUMGABAKSYSTEM01.DBF to E:ORACLEORADATASLUMGASYSTEM01.DBF;Database altered.5.移动其他数据文件同上.但是我们要注意的是 TEMP 数据文件.在我们上边列出数据文件的命令里没有包含这个文件.而且我们在SQL alter database rename file
5、E:ORACLEORADATASLUMGAtemp01.DBF to E:ORACLEORADATASLUMGAbaktemp01.DBF;alter database rename file E:ORACLEORADATASLUMGAtemp01.DBF to E:ORACLEORADATASLUMGAbaktemp01.DBF*ERROR at line 1:ORA-01511: error in renaming log/data filesORA-01516: nonexistent log file, datafile, or tempfileE:ORACLEORADATASLUMG
6、Atemp01.DBFSQL alter database rename tempfile E:oracleoradataslumgatemp01.dbf to E:oracleoradataslumgabaktemp01.dbf;alter database rename tempfile E:oracleoradataslumgatemp01.dbf to E:oracleoradataslumgabaktemp01.dbf*ERROR at line 1:ORA-02231: missing or invalid option to ALTER DATABASE是不可行的.具体关于 TE
7、MP 数据文件我们会在下边讨论.6.移动完以后启动数据库SQL alter database open;SQL select name,status from v$datafile;方法二、以表空间为单位进行移动1.把相应表空间 offlineSQL alter tablespace example offline;Tablespace altered.2.操作系统级把数据文件移动到目标目录3.在 ORACLE 数据库中把该表空间的所有数据文件改名SQL alter tablespace example rename datafile E:ORACLEORADATASLUMGABAKexamp
8、le01.DBF to E:ORACLEORADATASLUMGAexample01.DBF;Tablespace altered.4.把表空间 ONLINESQL alter tablespace example online;Tablespace altered.5.此方法对系统表空间 system、undo 表空间和 temp 表空间无法使用。SQL alter tablespace UNDOTBS1 offline;alter tablespace UNDOTBS1 offline*ERROR at line 1:ORA-30042: Cannot offline the undo t
9、ablespaceSQL alter tablespace system offline;alter tablespace system offline*ERROR at line 1:ORA-01541: system tablespace cannot be brought offline; shut down if necessarySQL alter tablespace temp offline;alter tablespace temp offline*ERROR at line 1:ORA-03217: invalid option for alter of TEMPORARY
10、TABLESPACE如要修改 temp 表空间的位置,可以选择重新建立一个新的 temp 表空间,然后把新的表空间设置成默认的临时表空间,然后把老的 DROP 掉。详细语句SQL create temporary tablespace temp2 tempfile e:oracletem2.dbf size 20M reuseautoextend on next 50m maxsize unlimited; 关闭数据库。mount 到数据库。SQL alter database default temporary tablespace temp2;打开数据库二、移动控制文件1.用 SPFILE
11、 启动的数据库SQL alter system set control_files=E:oracleoradataslumgabakCONTROL01.CTL,E:oracleoradataslumgabakCONTROL02.CTL,E:oracleoradataslumgabakCONTROL03.CTL scope=spfile;System altered.重启数据库。SQL create pfile from spfile;File created.2.用 pfile 启动的数据库修改 E:oracleora92databaseinit.ora 文件,修改参数 CONTROL_FIL
12、ES 的值。重新启动数据库。如果有 SPFIL 重建 SPFILESQL create spfile from pfile;三、移动联机重作日志文件。1.停止数据库2.把日志文件移动到新的目标目录3.mount 到数据库,修改日志文件的名字SQL alter database rename file E:oracleoradataslumgaREDO01.LOG to E:oracleoradataslumgabakREDO01.LOG;Database altered.SQL alter database rename file E:oracleoradataslumgaREDO02.LOG to E:oracleoradataslumgabakREDO02.LOG;Database altered.SQL alter database rename file E:oracleoradataslumgaREDO03.LOG to E:oracleoradataslumgabakREDO03.LOG;Database altered.4.OPEN 数据库SQL alter database open;修改完成!