Database Storage
Oracle8i Server and SQL*PlusèOracle8i Administrator's GuideèPart III Database Storage
介紹資料庫結構,資料庫物件和保護事務的完整性,包括以下三個章節:
第09章: 管理tablespace
第10章: 管理datafile
第11章: 管理rollback segment
第09章: 管理tablespace
管理tablespace指導
建立tablespace
管理tablespace的分配
改變tablespace的可用性
Read-Only Tablespace
Drop tablespace
使用dbms_space_admin包
Transporting tablespace between databases
訪問和tablespace相關的資訊
A:管理tablespace指導:
為了建立一個tablespace可以使用create tablespace 或create temporary tablesapce 。但是你必須擁有create tablespace 的系統許可權。
其後,可以使用alter tablespace 或alter database子句去改變一個tablespace。但必須擁有alter tablespace或alter database系統許可權。
8I之前是dictionary-managed tablespace,從8I開始支援local managed stablespace。8I預設還是字典。官方推薦使用local managed
temporary tablespace可以使用字典管理也可以使用local管理.
Alter tablespace字句的作用:
1, 改變預設的storage 引數
2, coalescing Free 表空間的空間
3, 改變online/offline/read-only/read-write
4, 新增,rename,開啟關閉auto extension,改變大小等等
建立一個本地管理的表空間
有2個選擇,1是使用autoallocate選項,ORACLE自動管理分割槽的分配;
2是使用unifor size的方式。如果指定uniform不指定大小,預設是1M的extent
可以透過v$sort_segment和v$sort_usage檢視去檢視目前在排序的使用者
建立一個字典管理的temporary Tablespace :
create tablespace temp dafile ‘/u01/temp01.dbf’ size 5m temporary ;
改變一個字典管理的temporary tablespace到一個local 的temporary tablespace
alter tablespace temp temporary;
在10G中已經不允許建立字典管理的tablespace了.
檢視temp的資訊要去v$tempfile和dba_temp_files 這和v$datafile 和dba_data_files是很相似的
coalesce free space
在local管理的表空間中是不會出現碎片的。如果在字典管理的表空間中,所有的的分割槽大小都是一樣的話,也是不會出現分割槽碎片
監控自由空間。DBA_FREE_SPACE和dba_free_space_coalesced
tablespace offline的幾種方式:
1,Normal:一個沒有錯誤的datafiles表空間中,可以Normal Offline,這樣的情況下會產生一個checkpoint在所有 資料檔案中。
2,Temporary:即使在datafiles中有出現問題的時候,還是可以用temporary的方式offline.在ONLINE上來的時候不需要meidia recovery
如過是因為write erroes 用temporary 的方式Offline後,再online回來的時候是要media recovery
3,Immediate:可以使用這樣的方式offline後,online的時候是需要media recovery的。而且在noarchvielog的模式下面是不可以offline immediate的。
4,For Recover:為了做recover的方式可以這樣OFFLINE
在readonly的模式表空間中.是可以進行資料字典修改。所以alter table add alter table modify等語句是可以執行的。
drop tablespace example including contents and datafiles cascade constraints
在控制檔案中,有MAXDATAFILES引數指定最大的資料檔案的數量。但是是小於db_files初始引數檔案的。當資料檔案的數量達到控制檔案中的限制,但沒有超過db_files的時候,控制檔案會自動擴張
要檢視某個表空間的資料檔案是否是處於autoetented on/OFF的模式,要訪問dba_data_files字典。
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/users03.dbf'
AUTOEXTEND OFF;
ALTER TABLESPACE users
RENAME DATAFILE '/u02/oracle/rbdb1/user1.dbf',
'/u02/oracle/rbdb1/user2.dbf'
TO '/u02/oracle/rbdb1/users01.dbf',
'/u02/oracle/rbdb1/users02.dbf';
ALTER DATABASE...RENAME FILE
ALTER DATABASE
RENAME FILE '/u02/oracle/rbdb1/sort01.dbf',
'/u02/oracle/rbdb1/user3.dbf'
TO '/u02/oracle/rbdb1/temp01.dbf',
'/u02/oracle/rbdb1/users03.dbf;
如果想使用checksum去驗證資料塊,要把引數db_block_checksum設定為true
DBWN程式產生這個checksum值為每一個快,並且存在塊頭中。在direct loader中。也會去checksums,
下一次ORACLE讀這個塊的時候,它使用checksum去發現塊是否損壞。如果有壞塊發現.ORACLE返回ora-01578
rollback_segments引數可以指定私有的回滾段,或者手工去指定一個回滾段。
總公初始分配回滾段的大小(byte)/初始分配的分割槽的數目=計算初始每個分割槽分配的大小(byte)
設定optimal的值在回滾段中。如果長事物的話,這個要設定的很大,避免1555號錯誤
create rollback segment rbs_01 tablespace test;
alter system set rollback_segments=rbs_01
sys@ORCL> create public rollback segment rbs_02
2 tablespace test
3 storage(
4 initial 100k
5 next 100k
6 optimal 1m
7 minextents 20
8 maxextents 100);
Oracle推薦:
1, 設定initial 和next一樣的大小
2, 建立一個大的數目,初始分配的分割槽的大小,避免動態擴張,說是minextents=20是個不錯的值
3, 避免設定maxextents=unlimited
sys@ORCL> alter rollback segment rbs_02
2 storage(maxextents 120);
ALTER ROLLBACK SEGMENT rbs1 SHRINK TO 100K;
sys@ORCL> select segment_name,owner,tablespace_name ,status from dba_rollback_segs;
SEGMENT_NAME OWNER TABLESPACE_NAME STATUS
------------------------------ ------ ------------------------------ ----------------
SYSTEM SYS SYSTEM ONLINE
_SYSSMU1$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU2$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU3$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU4$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU5$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU6$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU7$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU8$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU9$ PUBLIC UNDOTBS1 ONLINE
_SYSSMU10$ PUBLIC UNDOTBS1 ONLINE
SET TRANSACTION USE ROLLBACK SEGMENT large_rs1;
顯示一個ROLLBACK SEGMENT 是否已經OFFLINE了
如果OFFLINE一個表空間。他裡面還有事務的話,這個狀態會顯示pending offline。新的事務而且是沒有辦法使用這個回滾段的
=到舊的事務全部結束。回滾段就OFFLINE了
SELECT name, xacts "ACTIVE TRANSACTIONS"
FROM v$rollname, v$rollstat
WHERE status = 'PENDING OFFLINE'
AND v$rollname.usn = v$rollstat.usn;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9925929/viewspace-977923/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PingCAP】Database Storage EngineerPingCAPDatabase
- Display Storage Map for Database | Tablespace | Datafile Storage_1377458.1Database
- cmu15545-資料儲存(Database Storage)Database
- Migrating Oracle10g Database to Automatic Storage management (ASM)OracleDatabaseASM
- The Storage Situation: Removable StorageREM
- Step By Step Instructions on Migrating Oracle10g Database to Automatic Storage management (ASM)StructOracleDatabaseASM
- storage事件中的坑,storage.setItem()無法觸發storage事件事件
- JavaScript storage 事件JavaScript事件
- Web Storage概述Web
- Kafka Offset StorageKafka
- MySQL Storage EnginesMySql
- Physical Storage StructuresStruct
- Password Storage - UserDetailsAI
- cookie、session、web storageCookieSessionWeb
- Docker storage儲存Docker
- Btree Index storage internalIndex
- Storage location 地址資訊
- SAP WM Storage Type Search配置裡的Storage Class & WPC標記
- ASM(Automatic Storage Management)ASM
- 【ionic】storage本地快取快取
- Azure 基礎:File Storage
- Azure 基礎:Table storage
- Azure 基礎:Blob Storage
- Azure 基礎:Queue Storage
- MYSQL TABLE CHANGE STORAGE ENGINEMySql
- SAP WM高階之Storage Type上架策略L下的Mixed Storage
- standby database to primary database.Database
- SAP MM 物料主資料Plant Data Storage 1檢視裡的Storage Bin
- 微信小程式storage儲存微信小程式
- Automatic Storage Management (ASM)(轉)ASM
- k8s-storage-classK8S
- Nebula Storage 2.0 儲存格式
- 【HTML5】Web Storage 事件HTMLWeb事件
- Python 操作 Azure Blob StoragePython
- VERITAS Storage Foundation資料收集
- IBM Tivoli Storage ManagerIBM
- Veritas Storage Foundation 功能介紹
- AUTO_INCREMENT ON the MyISAM STORAGE ENGINEREM