国产91精品在线播放,欧美精品在线免费,日韩中文字幕在线有码视频网

上海校區(qū)切換校區(qū)
圖標(biāo)

學(xué)習(xí)文章

當(dāng)前位置:首頁(yè) > >學(xué)習(xí)文章 > >

{甲骨文OracleC} 數(shù)據(jù)文件和臨時(shí)文件的管理

發(fā)布時(shí)間: 2017-09-21 14:31:52

Oracle 數(shù)據(jù)文件和臨時(shí)文件的管理


一、數(shù)據(jù)文件概述


在 Oracle 數(shù)據(jù)庫(kù)中,SYSTEM

和 SYSAUX 表空間至少需要包含一個(gè)數(shù)據(jù)文件,此外還將包含多個(gè)其他表空間及與其相關(guān)的數(shù)據(jù)文件和臨時(shí)文件。Oracle 的數(shù)據(jù)文件和臨時(shí)文件是操作系統(tǒng)文件,屬于數(shù)據(jù)庫(kù)物理結(jié)構(gòu)范疇,用于存儲(chǔ)數(shù)據(jù)庫(kù)中的邏輯結(jié)構(gòu)的數(shù)據(jù)。在創(chuàng)建表空間時(shí),必須明確的為每個(gè)表空間指定數(shù)據(jù)文件。


Oracle 通過(guò)兩種方式為文件分配編號(hào):絕對(duì)文件號(hào),用于唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件,絕對(duì)文件號(hào)可以通過(guò) v$datafile 或 v$tempfile 視圖的 FILE# 列查詢,也可以通過(guò) DBA_DATA_FILES 或 DBA_TEMP_FILES 視圖的 FILE_ID 列查詢;相對(duì)文件號(hào),用于唯一標(biāo)識(shí)表空間內(nèi)的數(shù)據(jù)文件。大多數(shù)情況下,絕對(duì)文件編號(hào)和相對(duì)文件編號(hào)都是相等的,但當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件數(shù)量超出了一個(gè)閾值(比如 1023),那么他們就不再相等了。大文件表空間數(shù)據(jù)文件的相對(duì)文件號(hào)總為 1024。


查詢數(shù)據(jù)文件的絕對(duì)文件號(hào)和相對(duì)文件號(hào):

select t.name tablespace_name,d.file#,d.rfile#,d.name file_name from v$tablespace

t,v$datafile d where t.ts#=d.ts#;

TABLESPACE_NAME  

       FILE#  

 RFILE# FILE_NAME

--------------------

---------- ---------- --------------------------------------------------

SYSTEM    

                  1  

      1 /u01/app/oracle/oradata/stdb/system01.dbf

UNDOTBS1    

                2  

      2 /u01/app/oracle/oradata/stdb/undotbs01.dbf

SYSAUX    

                  3  

      3 /u01/app/oracle/oradata/stdb/sysaux01.dbf

USERS    

                   4  

      4 /u01/app/oracle/oradata/stdb/users01.dbf

USERS    

                   8  

      8 /u01/app/oracle/oradata/stdb/user02.dbf

EXAMPLE    

                 5  

      5 /u01/app/oracle/oradata/stdb/example01.dbf

TEST      

                  7  

      7 /u01/app/oracle/oradata/stdb/test02.dbf

TEST      

                  6  

      6 /u01/app/oracle/oradata/stdb/test01.dbf

BIGTBS    

                  9  

   1024 /u01/app/oracle/oradata/stdb/bigfile01.dbf

9 rows selected.


數(shù)據(jù)庫(kù)所能夠創(chuàng)建的數(shù)據(jù)文件數(shù)量受 CREATE DATABASE ...

MAXDATAFILES 語(yǔ)句和 DB_FILES 參數(shù)的影響。另外,還應(yīng)注意操作系統(tǒng)在創(chuàng)建文件數(shù)量方面的強(qiáng)制限制。在實(shí)例啟動(dòng)過(guò)程中,Oracle 將根據(jù)初始化參數(shù) DB_FILES 分配 SGA 中用于保存數(shù)據(jù)文件信息的空間,實(shí)例可以根據(jù)這個(gè)參數(shù)值來(lái)決定所能創(chuàng)建的較大文件的數(shù)量。該參數(shù)可以修改,但必須重啟數(shù)據(jù)庫(kù)方可生效,該參數(shù)在實(shí)例的整個(gè)生命周期中有效。


表空間中包含的數(shù)據(jù)文件的數(shù)據(jù)量的多少,最終會(huì)影響到數(shù)據(jù)庫(kù)的性能。Oracle 允許的在線文件數(shù)量超過(guò)了操作系統(tǒng)的默認(rèn)限制,DBWn 進(jìn)程能夠打開(kāi)所有的在線數(shù)據(jù)文件,并有能力緩存所有處理中的文件,當(dāng)打開(kāi)文件數(shù)據(jù)量達(dá)到操作系統(tǒng)的默認(rèn)限制時(shí),Oracle 將自動(dòng)關(guān)閉文件。這可能會(huì)對(duì)性能產(chǎn)生負(fù)面的影響,建議調(diào)整操作系統(tǒng)的默認(rèn)限制值,使其大于數(shù)據(jù)庫(kù)的在線文件數(shù)量。


二、為表空間創(chuàng)建和添加文件


為表空間創(chuàng)建和添加數(shù)據(jù)文件的方法在之前已經(jīng)學(xué)習(xí)過(guò)了,這里僅簡(jiǎn)要回顧一下。

1、在創(chuàng)建表空間的同時(shí)創(chuàng)建數(shù)據(jù)文件

create tablespae ...

datafile '/xxx/xxxx/xxxx ...' size xx

create temporary

tablespace  datafile '/xxx/xxxx/xxxx

...' size xx

2、為已存在的表空間添加數(shù)據(jù)文件


alter tablespace ... add

datafile  '/xxx/xxxx/xxxx ...' size xx

alter tablespace ... add

tempfile '/xxx/xxxx/xxxx ...' size xx


三、修改數(shù)據(jù)文件大小


使用自動(dòng)擴(kuò)展子句為表空間添加數(shù)據(jù)文件:

SQL> create tablespace

test_tbs

 2

datafile '/u01/app/oracle/oradata/stdb/test03.dbf' size 10m

 3

autoextend on

 4  next 1m

 5

maxsize 100m;

Tablespace created.


打開(kāi)數(shù)據(jù)文件自動(dòng)擴(kuò)展:

SQL> alter database

datafile '/u01/app/oracle/oradata/stdb/test02.dbf'    

 2

autoextend on

 3  next 1m

 4

maxsize 100m;

Database altered.


關(guān)閉數(shù)據(jù)文件自動(dòng)擴(kuò)展:

SQL> alter database

datafile '/u01/app/oracle/oradata/stdb/test02.dbf'

 2

autoextend off;

Database altered.


手動(dòng) RESIZE 數(shù)據(jù)文件大?。?/span>

SQL> alter database

datafile '/u01/app/oracle/oradata/stdb/test03.dbf' resize 20m;

Database altered.



四、修改數(shù)據(jù)文件可用性


可以通過(guò)執(zhí)行數(shù)據(jù)文件的在線和離線操作修改數(shù)據(jù)文件的可用性,離線的數(shù)據(jù)文件不能被數(shù)據(jù)庫(kù)所訪問(wèn),直到它恢復(fù)在線狀態(tài)之前。只讀表空間中的數(shù)據(jù)文件也可以被離線或在線,只讀表空間內(nèi)的數(shù)據(jù)文件的在線或離線不影響表空間自身的狀態(tài),不管怎么樣,在表空間未處于讀寫狀態(tài)之前,這些文件都是不可寫的。


1、歸檔模式下的數(shù)據(jù)文件離線

SQL>  alter

database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' offline;

Database altered.


SQL>  alter

database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' online;

alter database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' online

*

ERROR at line 1:

ORA-01113: file 10 needs media recovery      

     //test03.dbf

文件離線時(shí)不觸發(fā)檢查點(diǎn)操作,所以該文件恢復(fù)在線時(shí)提示需要介質(zhì)恢復(fù)

ORA-01110: data file 10: '/u01/app/oracle/oradata/stdb/test03.dbf'


SQL> archive log list

Database log mode          

  Archive Mode

Automatic archival          

 Enabled

Archive destination        

  /u02/arch_1

Oldest online log sequence     5

Next log sequence to archive   7

Current log sequence        

 7


SQL> recover datafile 10;

Media recovery complete.


SQL> alter database

datafile '/u01/app/oracle/oradata/stdb/test03.dbf' online;

Database altered.


2、非歸檔模式下的數(shù)據(jù)文件離線


在非歸檔模式下使用 alter database ... offline for

drop 語(yǔ)句離線數(shù)據(jù)文件。offline 關(guān)鍵字標(biāo)記該數(shù)據(jù)文件離線,不論其是否損壞,所以可以打開(kāi)數(shù)據(jù)庫(kù);for drop 關(guān)鍵字標(biāo)記該數(shù)據(jù)文件隨后被刪除,該數(shù)據(jù)文件不能再次恢復(fù)到在線狀態(tài)。(實(shí)際上,在在線日志組還未發(fā)生切換之前,還是可以恢復(fù)到在線狀態(tài)的)


SQL> alter database datafile

'D:\app\Manganese\oradata\orcl\test01.dbf' offline for drop;

數(shù)據(jù)庫(kù)已更改。


SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter system switch logfile;

系統(tǒng)已更改。

SQL> alter database datafile

'D:\app\Manganese\oradata\orcl\test01.dbf' online;

alter database datafile 'D:\app\Manganese\oradata\orcl\test01.dbf'

online

*

第 1 行出現(xiàn)錯(cuò)誤:

ORA-01113: 文件 7 需要介質(zhì)恢復(fù)

ORA-01110: 數(shù)據(jù)文件 7:

'D:\APP\MANGANESE\ORADATA\ORCL\TEST01.DBF'


SQL> recover datafile 7;

ORA-00279: 更改 1108304 (在 03/19/2014 15:44:41 生成) 對(duì)于線程 1 是必需的

ORA-00289: 建議:

D:\APP\MANGANESE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_03_19\O1_MF_1_9_%U_.ARC

ORA-00280: 更改 1108304 (用于線程 1) 在序列 #9 中

指定日志: {=suggested | filename | AUTO |

CANCEL}

auto

ORA-00308: 無(wú)法打開(kāi)歸檔日志

'D:\APP\MANGANESE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_03_19\O1_MF_1_9_%U_.ARC'

ORA-27041: 無(wú)法打開(kāi)文件

OSD-04002: 無(wú)法打開(kāi)文件

O/S-Error: (OS 2) 系統(tǒng)找不到指定的文件。

ORA-00308: 無(wú)法打開(kāi)歸檔日志

'D:\APP\MANGANESE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_03_19\O1_MF_1_9_%U_.ARC'

ORA-27041: 無(wú)法打開(kāi)文件

OSD-04002: 無(wú)法打開(kāi)文件

O/S-Error: (OS 2) 系統(tǒng)找不到指定的文件。


3、修改表空間內(nèi)所有數(shù)據(jù)文件和臨時(shí)文件的可用性

alter tablespace ...

datafile  {online | offline}

alter tablespace ...

tempfile {online | offline}


五、重命名(修改存儲(chǔ)位置)數(shù)據(jù)文件


1、將包含數(shù)據(jù)文件的表空間離線。

2、使用操作系統(tǒng)命令修改數(shù)據(jù)文件名。

3、使用 alter database ... rename datafile

... 語(yǔ)句改變數(shù)據(jù)庫(kù)中的數(shù)據(jù)文件名。

4、備份數(shù)據(jù)庫(kù)。


示例一:重命名同一表空間內(nèi)的數(shù)據(jù)文件

SQL> alter tablespace

test_tbs offline normal;

Tablespace altered.


[oracle@stdb stdb]$ mv

test03.dbf test04.dbf


SQL> alter tablespace

test_tbs                

 2  rename

datafile '/u01/app/oracle/oradata/stdb/test03.dbf'

 3  to '/u01/app/oracle/oradata/stdb/test04.dbf';

Tablespace altered.


SQL> alter tablespace

test_tbs online;

Tablespace altered.


示例二:重命名不同表空間中的數(shù)據(jù)文件

SQL> select status from v$instance;

STATUS

------------

MOUNTED    

  // 該操作必須在 mount 下進(jìn)行


SQL> alter database

 2

rename file '/u01/app/oracle/oradata/stdb/test01.dbf',

 3  

          '/u01/app/oracle/oradata/stdb/test02.dbf',

 4  

          '/u01/app/oracle/oradata/stdb/test04.dbf'

 5  

       to

 6  

          '/u01/app/oracle/oradata/stdb/test1.dbf',

 7  

          '/u01/app/oracle/oradata/stdb/test2.dbf',

 8  

          '/u01/app/oracle/oradata/stdb/test3.dbf';


Database altered.


SQL> alter database

open;

Database altered.



六、刪除數(shù)據(jù)文件


從表空間內(nèi)刪除數(shù)據(jù)文件:

alter tablespace ... drop

datafile ... ;

alter tablespace ... drop

tempfile ... ;


從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)文件:

alter database tempfile '/xxx/xxxx/....' drop including datafiles;


SQL> alter database

tempfile '/u01/app/oracle/oradata/stdb/temp03.dbf' drop including datafiles;

Database altered.


SQL> alter database

datafile '/u01/app/oracle/oradata/stdb/test1.dbf' drop including datafiles;    // 注意:數(shù)據(jù)文件不能以這樣的方式刪除

alter database datafile '/u01/app/oracle/oradata/stdb/test1.dbf' drop including datafiles

           

       *

ERROR at line 1:

ORA-01916: keyword ONLINE, OFFLINE, RESIZE, AUTOEXTEND or END/DROP

expected


注意:

1、從字典管理遷移到本地管理的只讀表空間內(nèi)的數(shù)據(jù)文件時(shí)不能被刪除的。除此之外,其他的只讀表空間內(nèi)的數(shù)據(jù)文件可以刪除。

2、系統(tǒng)表空間內(nèi)的數(shù)據(jù)文件無(wú)法被刪除。

3、如果一個(gè)本地管理的表空間被離線,則其內(nèi)的數(shù)據(jù)文件無(wú)法被刪除。

SQL> alter tablespace

test_tbs drop datafile '/u01/app/oracle/oradata/stdb/test4.dbf';

alter tablespace test_tbs

drop datafile '/u01/app/oracle/oradata/stdb/test4.dbf'

*

ERROR at line 1:

ORA-03264: cannot drop offline datafile of locally managed

tablespace


4、如果表空間內(nèi)僅包含一個(gè)數(shù)據(jù)文件,該數(shù)據(jù)文件無(wú)法被刪除。

SQL> alter tablespace

test_tbs drop datafile '/u01/app/oracle/oradata/stdb/test3.dbf';

alter tablespace test_tbs

drop datafile '/u01/app/oracle/oradata/stdb/test3.dbf'

*

ERROR at line 1:

ORA-03261: the tablespace TEST_TBS has only one file


5、如果數(shù)據(jù)文件不為空,該數(shù)據(jù)文件無(wú)法被刪除。

6、刪除數(shù)據(jù)文件必須保證數(shù)據(jù)塊處于打開(kāi)狀態(tài)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




/* Style Definitions */

table.MsoNormalTable

{mso-style-name:普通表格;

mso-tstyle-rowband-size:0;

mso-tstyle-colband-size:0;

mso-style-noshow:yes;

mso-style-priority:99;

mso-style-parent:"";

mso-padding-alt:0cm 5.4pt 0cm 5.4pt;

mso-para-margin:0cm;

mso-para-margin-bottom:.0001pt;

mso-pagination:widow-orphan;

font-size:10.0pt;

font-family:"Times New Roman",serif;}




上一篇: {甲骨文OracleC} 表碎片整理操作步驟詳解

下一篇: {大數(shù)據(jù)}你應(yīng)該知道的大數(shù)據(jù)專業(yè)術(shù)語(yǔ)

在線咨詢 ×

您好,請(qǐng)問(wèn)有什么可以幫您?我們將竭誠(chéng)提供最優(yōu)質(zhì)服務(wù)!

<menuitem id="vlare"></menuitem>

    <ul id="vlare"><rp id="vlare"><optgroup id="vlare"></optgroup></rp></ul>

  • 主站蜘蛛池模板: 麦盖提县| 安泽县| 安吉县| 库车县| 呈贡县| 龙口市| 咸丰县| 于田县| 红河县| 若尔盖县| 和政县| 乌鲁木齐市| 延川县| 伊春市| 西藏| 遵义市| 汝南县| 南宫市| 诸暨市| 永州市| 丰台区| 汝州市| 剑河县| 蒙自县| 仁寿县| 三穗县| 郴州市| 竹山县| 当阳市| 青川县| 乐平市| 徐汇区| 新营市| 定结县| 邹平县| 瑞丽市| 城市| 莱阳市| 达州市| 大理市| 浪卡子县|