首页 / 数据库 / MySQL / Oracle数据库文件路径变更
环境:RHEL 6.4 + Oracle 11.2.0.3
情景一:只是部分普通数据文件迁移,可以在线操作。
1.将对应表空间offline,移动数据文件到新路径2.数据文件alter database rename file "" to "";3.再将表空间online情景二:所有数据文件迁移。
本文是针对情景二的实验,需求:主机/oradata挂节点变更为/usr2.在/usr2建立oradata文件夹来存放之前/oradata的所有文件。操作步骤:1.查看当前数据库的数据文件,临时文件,日志文件,控制文件,参数文件等信息。2.根据当前spfile创建pfile文件,正常关闭数据库,移动源数据库文件到新的存储路径。3.修改数据库参数文件,更改控制文件路径为新的存储路径,用改好的pfile文件启动数据库到mount状态。4.重定向数据库的所有数据文件、日志文件路径,然后正常打开数据库。5.核查各文件路径没有问题,根据当前pfile创建spfile,重启数据库实例。1.查看当前数据库的数据文件,临时文件,日志文件,控制文件,参数文件等信息。
SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/oradata/sysdata/jingyu/system01.dbf/oradata/sysdata/jingyu/sysaux01.dbf/oradata/sysdata/jingyu/undotbs01.dbf/oradata/sysdata/jingyu/users01.dbfSQL> select name from v$tempfile; NAME--------------------------------------------------------------------------------/oradata/sysdata/jingyu/temp01.dbfSQL> select member from v$logfile;MEMBER--------------------------------------------------------------------------------/oradata/sysdata/jingyu/redo03.log/oradata/sysdata/jingyu/redo02.log/oradata/sysdata/jingyu/redo01.logSQL> select name from v$controlfile;NAME--------------------------------------------------------------------------------/oradata/sysdata/jingyu/control01.ctl/opt/app/oracle/fast_recovery_area/jingyu/control02.ctlSQL> show parameter pfileNAME TYPEVALUE------------------------------------ ----------- ------------------------------spfile string/opt/app/oracle/product/11.2.0 /dbhome_1/dbs/spfilejingyu.ora 2.根据当前spfile创建pfile文件,正常关闭数据库,移动源数据库文件到新的存储路径。
SQL> create pfile from spfile;File created.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.--移动源数据库文件到新的存储路径:a.建立/usr2。 b./etc/fstab配置,更改/oradata为/usr2。c.mount /usr2 d./usr2下建立oradata文件夹。 e./usr2下文件移动到/usr2/oradata下。 f.处理相关目录权限。g.umount -l /oradata 3.修改数据库参数文件,更改控制文件路径为新的存储路径,用改好的pfile文件启动数据库到mount状态。
[oracle@JY-DB /]$ cd $ORACLE_HOME/dbs[oracle@JY-DB dbs]$ more initjingyu.ora jingyu.__db_cache_size=6677331968jingyu.__java_pool_size=33554432jingyu.__large_pool_size=33554432jingyu.__oracle_base="/opt/app/oracle"#ORACLE_BASE set from environmentjingyu.__pga_aggregate_target=5402263552jingyu.__sga_target=8086618112jingyu.__shared_io_pool_size=0jingyu.__shared_pool_size=1275068416jingyu.__streams_pool_size=0*.audit_file_dest="/opt/app/oracle/admin/jingyu/adump"*.audit_trail="db"*.compatible="11.2.0.0.0"*.control_files="/oradata/sysdata/jingyu/control01.ctl","/opt/app/oracle/fast_recovery_area/jingyu/control02.ctl"*.db_block_size=8192*.db_domain=""*.db_name="jingyu"*.db_recovery_file_dest="/opt/app/oracle/fast_recovery_area"*.db_recovery_file_dest_size=10737418240*.diagnostic_dest="/opt/app/oracle"*.dispatchers="(PROTOCOL=TCP) (SERVICE=jingyuXDB)"*.memory_target=13459521536*.open_cursors=1000*.processes=1500*.remote_login_passwordfile="EXCLUSIVE"*.sessions=1655*.undo_tablespace="UNDOTBS1"SQL> startup pfile="$ORACLE_HOME/dbs/initjingyu.ora" nomountORACLE instance started.Total System Global Area 1.3429E+10 bytesFixed Size2241064 bytesVariable Size6744444376 bytesDatabase Buffers 6677331968 bytesRedo Buffers4636672 bytesSQL> alter database mount;Database altered.4.重定向数据库的所有数据文件、日志文件路径,然后正常打开数据库。
SQL> alter database rename file "/oradata/sysdata/jingyu/system01.dbf" to "/usr2/oradata/sysdata/jingyu/system01.dbf";Database altered.SQL> alter database rename file "/oradata/sysdata/jingyu/sysaux01.dbf" to "/usr2/oradata/sysdata/jingyu/sysaux01.dbf";Database altered.SQL> alter database rename file "/oradata/sysdata/jingyu/undotbs01.dbf" to "/usr2/oradata/sysdata/jingyu/undotbs01.dbf"; Database altered.SQL> alter database rename file "/oradata/sysdata/jingyu/temp01.dbf" to "/usr2/oradata/sysdata/jingyu/temp01.dbf";Database altered.SQL> alter database rename file "/oradata/sysdata/jingyu/users01.dbf" to "/usr2/oradata/sysdata/jingyu/users01.dbf";Database altered.SQL> alter database rename file "/oradata/sysdata/jingyu/redo01.log" to "/usr2/oradata/sysdata/jingyu/redo01.log";Database altered.SQL> alter database rename file "/oradata/sysdata/jingyu/redo02.log" to "/usr2/oradata/sysdata/jingyu/redo02.log";Database altered.SQL> alter database rename file "/oradata/sysdata/jingyu/redo03.log" to "/usr2/oradata/sysdata/jingyu/redo03.log";Database altered.SQL> alter database open;Database altered. 5.核查各文件路径没有问题,根据当前pfile创建spfile,重启数据库实例。
SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/usr2/oradata/sysdata/jingyu/system01.dbf/usr2/oradata/sysdata/jingyu/sysaux01.dbf/usr2/oradata/sysdata/jingyu/undotbs01.dbf/usr2/oradata/sysdata/jingyu/users01.dbfSQL> select name from v$tempfile; NAME--------------------------------------------------------------------------------/usr2/oradata/sysdata/jingyu/temp01.dbfSQL> select member from v$logfile;MEMBER--------------------------------------------------------------------------------/usr2/oradata/sysdata/jingyu/redo03.log/usr2/oradata/sysdata/jingyu/redo02.log/usr2/oradata/sysdata/jingyu/redo01.logSQL> select name from v$controlfile;NAME--------------------------------------------------------------------------------/usr2/oradata/sysdata/jingyu/control01.ctl/opt/app/oracle/fast_recovery_area/jingyu/control02.ctlSQL> show parameter pfileNAME TYPEVALUE------------------------------------ ----------- ------------------------------spfile stringSQL> create spfile from pfile;File created.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 1.3429E+10 bytesFixed Size2241064 bytesVariable Size6744444376 bytesDatabase Buffers 6677331968 bytesRedo Buffers4636672 bytesDatabase mounted.Database opened. 更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址