Oracle如何更改表空間的數據文件位置

本文主要給大家介紹了關于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修改表空間,并修改控制文件;

????? 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、打開數據庫;

關閉數據庫

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數據庫表中字段順序

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享