首頁  >  文章  >  資料庫  >  Oracle如何更改表空間的資料檔位置

Oracle如何更改表空間的資料檔位置

小云云
小云云原創
2017-12-11 14:24:442362瀏覽

本文主要為大家介紹了關於Oracle如何更改表空間的資料檔案位置,文中透過範例程式碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧,希望能幫助大家。

表格空間概述

Oracle的表空間屬於Oracle中的儲存結構,是一種用於儲存資料庫物件(如:資料檔案)的邏輯空間,是Oracle中資訊儲存的最大邏輯單元,其下方還包含有段、區、資料塊等邏輯資料型別。表空間是在資料庫中開闢的一個空間,用於存放資料庫的對象,一個資料庫可以由多個表空間組成。可以透過表空間來實現對Oracle的調優。 (Oracle資料庫獨特的高階應用)

表空間的分類

永久表空間:儲存資料庫中需要永久化儲存的對象,例如二維表、檢視、預存程序、索引。

暫存資料表空間:儲存資料庫的中間執行過程,如:儲存order by資料庫排序,分組時產生的暫存資料。操作完成後儲存的內容會自動釋放。臨時表空間是通用的,所的使用者都使用TEMP作為臨時表空間。一般只有tmp一個臨時表空間,如果還需要別的臨時表空間時,可以自行建立。

UNDO表空間:儲存資料修改前的副本。儲存事務所修改的舊址,即被修改之前的資料。當我們對一張表中的資料進行修改的同時會對修改之前的資訊進行保存,為了對資料執行回溯、復原、撤銷的操作。

引言

Oracle資料庫的資料檔案的位置和資訊都被記錄在控製檔中,rm或cp指令是不會也不可能更改控製檔記錄的,這時必須透過alter操作去更改刷新資料庫控製文件中資料檔的相關信息,以此確保資料庫能正常運作。

操作方法

1. 方法1

## 主要步驟:


      1、offline表空間:alter tablespace tablespace_name offline;


      2、複製資料檔到新的目錄;


      3、rename修改表空間,並修改控制檔;








#c ##      4、online表空間;

offline表空間

SQL> alter tablespace cifdb offline;

複製資料檔案到新的目錄

cp /u01/app/oracle/oradata/cifdb.dbf /u01/app/oracle/oradata/CIFDB/cifdb.dbf

rename修改表空間

SQL> alter tablespace cifdb rename datafile '/u01/app/oracle/oradata/cifdb.dbf' to '/u01/app/oracle/oradata/CIFDB/cifdb.dbf';

online表空間

SQL> alter tablespace cifdb online;

檢查資料檔

SQL> select name from v$datafile;

#或##

SQL> select file_name, tablespace_name from dba_data_files where tablespace_name='cifdb';

#2. 方法2

主要步驟:

      1、關閉資料庫;#########      2、複製資料檔案到新的位置;#########      3、啟動資料庫到mount狀態;#########      4、以SQL修改資料檔案位置;#########      5、開啟資料檔案位置;#########      5、開啟資料庫; #########關閉資料庫#########
SQL> shutdown immediate;
##########複製資料檔到新的位置#########
cp /u01/app/oracle/oradata/cifdb.dbf /u01/app/oracle/oradata/CIFDB/cifdb.dbf
### ######啟動資料庫到mount狀態#########
SQL> startup mount;
##########修改資料檔位置#########
SQL> alter database rename file '/u01/app/oracle/oradata/cifdb.dbf' to '/u01/app/oracle/oradata/CIFDB/cifdb.dbf';
###### ###開啟資料庫#########
SQL> alter database open;
#########檢查資料檔#########
SQL> select name from v$datafile;
##########或### ######
SQL> select file_name, tablespace_name from dba_data_files where tablespace_name='cifdb';
#########相關推薦:########如何修改Oracle資料庫表中欄位順序############關於oracle擴充使用的方法總結############Oracle程式開發小技巧#######

以上是Oracle如何更改表空間的資料檔位置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn