數據文件就是以dbf結尾的文件也也就是用來存儲我們數據的一個文件了,此文件通常比較大所以我們一般存儲在空間比較大的目錄了,下面一起來看看Oracle數據庫數據文件位置修改方法
如何更改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