更改Oracle数据文件的位置

2011年9月13日 发表评论 阅读评论

如何更改Oracle数据文件的位置

A:归档模式下

1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle数据库文件位置:

SQL>select file_name   from   sys.dba_data_files;

FILE_NAME
--------------------------------------------------------------
C:ORA8ORADATAORACLEUSERS01.DBF
C:ORA8ORADATAORACLEDR01.DBF
C:ORA8ORADATAORACLETOOLS01.DBF
C:ORA8ORADATAORACLEINDX01.DBF
C:ORA8ORADATAORACLERBS01.DBF
C:ORA8ORADATAORACLETEMP01.DBF
C:ORA8ORADATAORACLESYSTEM01.DBF

查询到7记录. 记录要移动的文件的位置和名称。

2.下面我们以把文件“C:ORA8ORADATAORACLEUSERS01.DBF”移动到“D:ORADATAUSERS01.DBF”为例介绍,要移动其它文件,请安相同的方法(根据实际情况修改文件路径和名称)操作即可。

<1>   首先让所有的用户停止连接该数据库,关闭数据库。在命令行窗口中输入:

C:svrmgrl(回车)
SVRMGR> connect   internal(回车)
SVRMGR> shutdown   immediate(回车)
#等待数据库提示关闭
SVRMGR> exit

<2>   从“C:ORA8ORADATAORACLE”目录下找到文件“USERS01.DBF”,然后复制到目录“D:ORADATA”下面。如果移动多个文件,重复该步骤。

<3>   进入命令窗口,按以下内容输入:
C:svrmgrl(回车)
SVRMGR> connect   internal(回车)
SVRMGR> startup   mount(回车)
#等待数据库提示装载成功
SVRMGR> alter   database   rename   file   'C:ORA8ORADATAORACLEUSERS01.DBF '   to   'D:ORADATAUSERS01.DBF ';
#提示语句已处理后,如果要移动多个文件,修改文件路径和名称后重复执行上面的语句。完成后打开数据库。
SVRMGR> alter   database   open;
SVRMGR> exit

数据库文件移动成功。
B:数据库处于非归档模式下,可以通过如下步骤更改文件路径:
  
  1.关闭数据库
  
  2.系统级进行文件复制
  
  3.启动数据库到mount状态
  
  3.通过SQL修改数据文件位置
  
  4.打开数据库
  
  以下是实际操作的步骤示范:
  
  1.数据库处于非归档模式
  
  SQL> archive log list;
  Database log mode       No Archive Mode
  Automatic archival       Enabled
  Archive destination      /opt/oracle/oradata/conner/archive
  Oldest online log sequence   150
  Current log sequence      153
  
  2.需要移动test.dbf文件
  
  SQL> select name from v$datafile;
  
  NAME
  ------------------------------------------------------------
  /opt/oracle/oradata/conner/system01.dbf
  /opt/oracle/oradata/conner/undotbs01.dbf
  /opt/oracle/oradata/conner/users01.dbf
  /opt/oracle/test.dbf
  
  3.关闭数据库
  
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  
  4.复制文件到新的位置
  
  SQL> ! cp /opt/oracle/test.dbf /opt/oracle/oradata/conner/test.dbf
  
  5.启动数据库到mount状态
  
  SQL> startup mount;
  ORACLE instance started.
  
  Total System Global Area 101782828 bytes
  Fixed Size          451884 bytes
  Variable Size       37748736 bytes
  Database Buffers      62914560 bytes
  Redo Buffers         667648 bytes
  Database mounted.
  SQL> select name from v$datafile;
  
  NAME
  -----------------------------------------------------------
  /opt/oracle/oradata/conner/system01.dbf
  /opt/oracle/oradata/conner/undotbs01.dbf
  /opt/oracle/oradata/conner/users01.dbf
  /opt/oracle/test.dbf
  
  6.修改文件位置
  
  SQL> alter database rename file '/opt/oracle/test.dbf' to '/opt/oracle/oradata/conner/test.dbf';
  
  Database altered.
  
  SQL> alter database open;
  
  Database altered.
  
  SQL> select name from v$datafile;
  
  NAME
  ----------------------------------------------------------------
  /opt/oracle/oradata/conner/system01.dbf
  /opt/oracle/oradata/conner/undotbs01.dbf
  /opt/oracle/oradata/conner/users01.dbf
  /opt/oracle/oradata/conner/test.dbf

 




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 数据库 标签:
  1. 本文目前尚无任何评论.