初识Oracle表空间与数据文件
初识Oracle表空间与数据文件,描述oracle数据库的逻辑结构,创建表空间,改变表空间大小,为临时段分配空间,改变表空间状态,改
学习目标
1.描述Oracle数据库的逻辑结构
2.创建表空间
3.改变表空间大小
4.为临时段分配空间
5.改变表空间状态
6.改变表空间的存储设置
首先看一下oracle存储结构:
1.oracle数据库逻辑结构包含哪些东西?
1)表空间
a.一个Oracle数据库逻辑上分为更小的逻辑区域叫做表空间
b.一个表空间同时只属于一个数据库
c.每个表空间由一个或多个系统文件组成,叫做数据文件datafile
d.一个表空间可以有1个或多个段组成
e.当数据库运行时表空间可以是online状态
f.除了SYSTEM表空间或者带有活动回滚段的表空间,其他表空间可以设置为offline状态
g.表空间可以再读写(read-write)和只读(read-only)状态间切换
2)段
a.一个段是在一个表空间中为指定的逻辑存数结构分配的空间。例如,分配给一个表的所有存储就是一个段。
b.一个段只能属于一个表空间,可以跨越多个数据文件
c.一个段由一个或多个区组成
3)区
a.随着段的增长,额外的区将分配给段
b.DBA可以为段手动增加区
c.一个区是连续的oracle块集合
d.一个区只能在一个数据文件中存在
4)块
a.块作为oracle数据库最小的存储单位,数据全部存储在数据块中。
b.一个oracle数据块相当于一个或多个从已存在的数据文件中分配的操作系统块
c.一个标准数据块的大小由数据库创建时的初始化参数DB_BLOCK_SIZE指定
d.为避免不必要的I/O,数据块的大小应该是操作系统块大小的几倍
e.最大的数据块大小取决于操作系统
2.系统表空间与非系统表空间的区别?
1)系统表空间 system tablespaces:
a.随着数据库的创建而创建
b.在所有数据库中必须存在
c.系统表空间包含数据字典,存储程序单元
e.包含系统回滚段
f.最好不要包含用户数据
2)非系统表空间 non-system tablespaces:
a.分离回滚段、临时段、应用数据段和应用索引段
b.通过备份需求分离数据
c.分离动态和静态数据
e.控制用户对象空间分配的数量
f.方便数据库管理
3.如何创建表空间?
使用create tablespace语句,一下是官方示例:
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 5M MAXSIZE 200M;
CREATE TABLESPACE tablespace
[DATAFILE clause]
[MINIMUM EXTENT integer[K|M]]
[BLOCKSIZE integer [K]]
[LOGGING|NOLOGGING]
[DEFAULT storage_clause ]
[ONLINE|OFFLINE]
[PERMANENT|TEMPORARY]
MINIMUM EXTENT 指定最小区大小,,使用K(千兆)或M(兆)
LOGGING 默认值,指定表空间中对所有表,索引和分区修改写入到redo中
NOLOGGING 与LOGGING相反
ONLINE与OFFLINE 创建完表空间后是否立即可用
PERMANENT 指定表空间可用来保留永久对象
TEMPORARY 指定表空间只能来保留临时对象
AUTOEXTEND 启用数据文件自动扩展
4.管理表空间的方式?
1)本地管理表空间
a.用位图bitmap(在每个数据文件中维护)记录空闲区
b.每个bit对应一个数据块
c.bit值指示空闲和已使用
好处:减少数据字典表的争用;空间分配和回收不发生undo;没有合并需求(减少碎片);
用法举例:
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K;
[ EXTENT MANAGEMENT
[ DICTIONARY | LOCAL
[ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] ] ] ]
LOCAL和DICTIONARY 就不解释了。
AUTOALLOCATE 指定表空间由系统管理,用户不能指定区大小
UNIFORM 指定表空间由同一的区大小管理。使用K或M指定大小。
2)数据字典管理表空间
a.默认管理方法
b.空闲区被记录在数据字典表中
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE ( initial 1M NEXT 1M );
5.undo表空间
1)undo表空间只能用来存储回滚段
2)创建undo表空间只能使用DATAFILE和EXTENT MANAGEMENT语句
CREATE UNDO TABLESPACE undo1
DATAFILE '/u01/oradata/undo101.dbf' SIZE 40M;
6.temporary表空间
1)用来进行排序操作 SORT_AREA_SIZE(用来设置排序区的大小)
2)不能包含任何永久对象
3)推荐使用本地管理
CREATE TEMPORARY TABLESPACE temp
TEMPFILE '/u01/oradata/temp01.dbf' SIZE 500M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;
4)本地管理临时表空间有临时数据文件tempfiles:
a.临时文件一直是NOLOGGING模式
b.不能设置临时文件为只读read-only
c.不能重命名一个临时文件
d.不能使用ALTER DATABASE命令增加临时文件
e.临时文件对于只读数据库是需要的
f.介质恢复不恢复临时文件
g.备份控制文件时不生成任何临时文件的信息
h.创建控制文件时不能指定任何关于临时文件的信息
7.默认default临时表空间
1)避免使用SYSTEM表空间存储临时数据
2)可以使用CREATE DATABASE和ALTER DATABASE语句创建
3)当使用CREATE DATABSE命令创建,默认临时表空间为本地管理
默认临时表空间的限制:
a.没有指定新的默认临时表空间之前不能删除现有默认临时表空间
b.不能更改默认临时表空间为永久类型
c.不能修改默认临时表空间为offline状态
注:SYSTEM表空间、带有活动回滚段和默认临时表空间不能设置为离线状态

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言是一種高效、簡潔且易於學習的程式語言,因其在並發程式設計和網路程式設計方面的優勢而備受開發者青睞。在實際開發中,資料庫操作是不可或缺的一部分,本文將介紹如何使用Go語言實作資料庫的增刪改查操作。在Go語言中,我們通常會使用第三方函式庫來操作資料庫,例如常用的sql套件、gorm等。這裡以sql包為例介紹如何實作資料庫的增刪改查操作。假設我們使用的是MySQL資料庫。

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

Hibernate多態映射可映射繼承類別到資料庫,提供以下映射類型:joined-subclass:為子類別建立單獨表,包含父類別所有欄位。 table-per-class:為子類別建立單獨資料表,僅包含子類別特有列。 union-subclass:類似joined-subclass,但父類別表聯合所有子類別列。

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

HTML無法直接讀取資料庫,但可以透過JavaScript和AJAX實作。其步驟包括建立資料庫連線、發送查詢、處理回應和更新頁面。本文提供了利用JavaScript、AJAX和PHP來從MySQL資料庫讀取資料的實戰範例,展示如何在HTML頁面中動態顯示查詢結果。此範例使用XMLHttpRequest建立資料庫連接,發送查詢並處理回應,從而將資料填入頁面元素中,實現了HTML讀取資料庫的功能。

PHP是一種廣泛應用於網站開發的後端程式語言,它具有強大的資料庫操作功能,常用於與MySQL等資料庫進行互動。然而,由於中文字元編碼的複雜性,在處理資料庫中文亂碼時常常會出現問題。本文將介紹PHP處理資料庫中文亂碼的技巧與實踐,包括常見的亂碼原因、解決方法和具體的程式碼範例。常見的亂碼原因資料庫字元集設定不正確:資料庫建立時需選擇正確的字元集,如utf8或u

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。
