更改Oracle数据文件的位置
如何更改Oracle数据文件的位置
A:归档模式下
1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle数据库文件位置:
1SQL>select file_name from sys.dba_data_files;
2FILE_NAME
3--------------------------------------------------------------
4C:ORA8ORADATAORACLEUSERS01.DBF
5C:ORA8ORADATAORACLEDR01.DBF
6C:ORA8ORADATAORACLETOOLS01.DBF
7C:ORA8ORADATAORACLEINDX01.DBF
8C:ORA8ORADATAORACLERBS01.DBF
9C:ORA8ORADATAORACLETEMP01.DBF
10C:ORA8ORADATAORACLESYSTEM01.DBF
查询到7记录. 记录要移动的文件的位置和名称。
2.下面我们以把文件“C:ORA8ORADATAORACLEUSERS01.DBF”移动到“D:ORADATAUSERS01.DBF”为例介绍,要移动其它文件,请安相同的方法(根据实际情况修改文件路径和名称)操作即可。
首先让所有的用户停止连接该数据库,关闭数据库。在命令行窗口中输入:
1C:svrmgrl(回车)
2SVRMGR> connect internal(回车)
3SVRMGR> shutdown immediate(回车)
4#等待数据库提示关闭
5SVRMGR> exit
从“C:ORA8ORADATAORACLE”目录下找到文件“USERS01.DBF”,然后复制到目录“D:ORADATA”下面。如果移动多个文件,重复该步骤。
进入命令窗口,按以下内容输入:
1C:svrmgrl(回车)
2SVRMGR> connect internal(回车)
3SVRMGR> startup mount(回车)
4#等待数据库提示装载成功
5SVRMGR> alter database rename file 'C:ORA8ORADATAORACLEUSERS01.DBF ' to 'D:ORADATAUSERS01.DBF ';
6#提示语句已处理后,如果要移动多个文件,修改文件路径和名称后重复执行上面的语句。完成后打开数据库。
7SVRMGR> alter database open;
8SVRMGR> exit
数据库文件移动成功。
B:数据库处于非归档模式下
可以通过如下步骤更改文件路径:
1.关闭数据库
2.系统级进行文件复制
3.启动数据库到mount状态
3.通过SQL修改数据文件位置
4.打开数据库
以下是实际操作的步骤示范:
1.数据库处于非归档模式
1SQL> archive log list;
2 Database log mode No Archive Mode
3 Automatic archival Enabled
4 Archive destination /opt/oracle/oradata/conner/archive
5 Oldest online log sequence 150
6 Current log sequence 153
2.需要移动test.dbf文件
1SQL> select name from v$datafile;
2
3 NAME
4 ------------------------------------------------------------
5 /opt/oracle/oradata/conner/system01.dbf
6 /opt/oracle/oradata/conner/undotbs01.dbf
7 /opt/oracle/oradata/conner/users01.dbf
8 /opt/oracle/test.dbf
3.关闭数据库
1SQL> shutdown immediate;
2 Database closed.
3 Database dismounted.
4 ORACLE instance shut down.
4.复制文件到新的位置
1SQL> ! cp /opt/oracle/test.dbf /opt/oracle/oradata/conner/test.dbf
5.启动数据库到mount状态
1SQL> startup mount;
2 ORACLE instance started.
3
4 Total System Global Area 101782828 bytes
5 Fixed Size 451884 bytes
6 Variable Size 37748736 bytes
7 Database Buffers 62914560 bytes
8 Redo Buffers 667648 bytes
9 Database mounted.
10
11SQL> select name from v$datafile;
12 NAME
13 -----------------------------------------------------------
14 /opt/oracle/oradata/conner/system01.dbf
15 /opt/oracle/oradata/conner/undotbs01.dbf
16 /opt/oracle/oradata/conner/users01.dbf
17 /opt/oracle/test.dbf
6.修改文件位置
1SQL> alter database rename file '/opt/oracle/test.dbf' to '/opt/oracle/oradata/conner/test.dbf';
2
3 Database altered.
4
5SQL> alter database open;
6 Database altered.
7
8SQL> select name from v$datafile;
9
10 NAME
11 ----------------------------------------------------------------
12 /opt/oracle/oradata/conner/system01.dbf
13 /opt/oracle/oradata/conner/undotbs01.dbf
14 /opt/oracle/oradata/conner/users01.dbf
15 /opt/oracle/oradata/conner/test.dbf
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/oradatechange/273.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.