Oracle如何更改表空間的數(shù)據(jù)文件位置詳解
表空間概述
Oracle的表空間屬于Oracle中的存儲結(jié)構(gòu),是一種用于存儲數(shù)據(jù)庫對象(如:數(shù)據(jù)文件)的邏輯空間,是Oracle中信息存儲的最大邏輯單元,其下還包含有段、區(qū)、數(shù)據(jù)塊等邏輯數(shù)據(jù)類型。表空間是在數(shù)據(jù)庫中開辟的一個空間,用于存放數(shù)據(jù)庫的對象,一個數(shù)據(jù)庫可以由多個表空間組成。可以通過表空間來實(shí)現(xiàn)對Oracle的調(diào)優(yōu)。(Oracle數(shù)據(jù)庫獨(dú)特的高級應(yīng)用)
表空間的分類
永久表空間:存儲數(shù)據(jù)庫中需要永久化存儲的對象,比如二維表、視圖、存儲過程、索引。
臨時表空間:存儲數(shù)據(jù)庫的中間執(zhí)行過程,如:保存order by數(shù)據(jù)庫排序,分組時產(chǎn)生的臨時數(shù)據(jù)。操作完成后存儲的內(nèi)容會被自動釋放。臨時表空間是通用的,所的用戶都使用TEMP作為臨時表空間。一般只有tmp一個臨時表空間,如果還需要別的臨時表空間時,可以自己創(chuàng)建。
UNDO表空間:保存數(shù)據(jù)修改前的副本。存儲事務(wù)所修改的舊址,即被修改之前的數(shù)據(jù)。當(dāng)我們對一張表中的數(shù)據(jù)進(jìn)行修改的同時會對修改之前的信息進(jìn)行保存,為了對數(shù)據(jù)執(zhí)行回滾、恢復(fù)、撤銷的操作。
引言
Oracle數(shù)據(jù)庫的數(shù)據(jù)文件的位置和信息都被記錄在控制文件中,rm或cp命令是不會也不可能更改控制文件記錄的,這時必須通過alter操作去更改刷新數(shù)據(jù)庫控制文件中數(shù)據(jù)文件的相關(guān)信息,以此確保數(shù)據(jù)庫能夠正常運(yùn)行。
操作方法
1. 方法1
主要步驟:
1、offline表空間:alter tablespace tablespace_name offline;
2、復(fù)制數(shù)據(jù)文件到新的目錄;
3、rename修改表空間,并修改控制文件;
4、online表空間;
offline表空間
SQL> alter tablespace cifdb offline;
復(fù)制數(shù)據(jù)文件到新的目錄
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;
檢查數(shù)據(jù)文件
SQL> select name from v$datafile;
或者
SQL> select file_name, tablespace_name from dba_data_files where tablespace_name='cifdb';
2. 方法2
主要步驟:
1、關(guān)閉數(shù)據(jù)庫;
2、復(fù)制數(shù)據(jù)文件到新的位置;
3、啟動數(shù)據(jù)庫到mount狀態(tài);
4、通過SQL修改數(shù)據(jù)文件位置;
5、打開數(shù)據(jù)庫;
關(guān)閉數(shù)據(jù)庫
SQL> shutdown immediate;
復(fù)制數(shù)據(jù)文件到新的位置
cp /u01/app/oracle/oradata/cifdb.dbf /u01/app/oracle/oradata/CIFDB/cifdb.dbf
啟動數(shù)據(jù)庫到mount狀態(tài)
SQL> startup mount;
修改數(shù)據(jù)文件位置
SQL> alter database rename file '/u01/app/oracle/oradata/cifdb.dbf' to '/u01/app/oracle/oradata/CIFDB/cifdb.dbf';
打開數(shù)據(jù)庫
SQL> alter database open;
檢查數(shù)據(jù)文件
SQL> select name from v$datafile;
或者
SQL> select file_name, tablespace_name from dba_data_files where tablespace_name='cifdb';
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Oracle中實(shí)現(xiàn)刪除重復(fù)數(shù)據(jù)只保留一條
這篇文章主要介紹了Oracle中實(shí)現(xiàn)刪除重復(fù)數(shù)據(jù)只保留一條,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle
Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)開發(fā)者網(wǎng)絡(luò)Oracle...2007-03-03C#利用ODP.net連接Oracle數(shù)據(jù)庫的操作方法
本文將介紹C#利用ODP.net連接Oracle數(shù)據(jù)庫的操作方法,需要的朋友可以參考下2012-11-11SQL中Charindex和Oracle中對應(yīng)的函數(shù)Instr對比
在項(xiàng)目中用到了Oracle中 Instr 這個函數(shù),順便仔細(xì)的再次學(xué)習(xí)了一下這個知識,使用 Instr 函數(shù)對某個字符串進(jìn)行判斷,判斷其是否含有指定的字符2013-10-10ORA-01578、ORA-01110:數(shù)據(jù)塊被損壞,此時無法讀取文件問題修復(fù)方案
這篇文章主要給大家介紹了關(guān)于ORA-01578、ORA-01110:數(shù)據(jù)塊被損壞,此時無法讀取文件問題的修復(fù)方案,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用數(shù)據(jù)庫具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2024-03-03oracle停止數(shù)據(jù)庫后linux完全卸載oracle的詳細(xì)步驟
本文介紹了linux完全卸載oracle的詳細(xì)步驟,卸載前需使用SQL*PLUS停止數(shù)據(jù)庫和相關(guān)服務(wù),詳細(xì)步驟看下面說明,大家可以參考使用2014-01-01Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2)
這篇文章主要介紹了Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2),需要的朋友可以參考下2023-05-05