SYSTEM表空間是Oracle創建數據庫時候自動創建的,每個Oracle數據庫都會有SYSTEM表空間,而且SYSTEM表空間總是要保持在聯機模式下,因為其包含了數據庫運行所要求的基本信息,如:數據字典、聯機求助機制、所有回退段、臨時段和自舉段、所有的用戶數據庫實體、其它ORACLE軟件產品要求的表等等。
在建立數據庫的時候,SYSTEM表空間一般都寫在磁盤最開始的位置,這就埋下了問題的隱患。如:誤操作導致的格式化,ASM出現故障等等一系列的問題,他都會從
磁盤最開始的地方寫起,這樣就會導致SYSTEM表空間沒有辦法進行
數據恢復。
但是,如果在建立數據庫的時候,把最開始的位置“讓”出來,這樣就會使得很多故障輕能而易舉的解決,也讓DBA在管理數據庫、恢復數據庫的時候能輕松一些。
查詢Oracle表空間剩余大小
---查詢Oracle表空間使用情況-- SELECT -- '表空間名稱' a.tablespace_name as "表空間名稱", -- 表空間總大小(byte) total as "表空間總大小(byte)", -- 表空間剩余大小(byte) free as "表空間剩余大小(byte)", -- 表空間已使用大小(byte) (total - free) as "表空間已使用大小(byte)", -- 表空間總大小(G) total / (1024 * 1024 * 1024) as "表空間總大小(G)" , -- 表空間剩余大小(G) free / (1024 * 1024 * 1024) as "表空間剩余大小(G)", -- 表空間已使用大小(G) (total - free) / (1024 * 1024 * 1024) as "表空間已使用大小(G)" , round((total - free) / total, 4) * 100 as "Usage Rate(%)" FROM (SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name;
這里的system使用率達到了99.27%,接下來登入數據庫服務器為system添加表空間
Linux系統下使用SQLPLUS命令登入Oracle
1. 輸入: su oracle // 必須使用oracle 用戶
說明: 直接進入的目錄是 /home/oraccle
[root@crb-db1 ~]# su - oracle Last login: Tue May 11 10:47:23 CST 2021 on pts/0 [oracle@crb-db1 ~]$ sqlplus as / sysdba SQL*Plus: Release 11.2.0.4.0 Production Copyright (c) 1982, 2013, Oracle. All rights reserved. 使用 SQL*Plus 執行 SQL, PL/SQL 和 SQL*Plus 語句。 用法 1: sqlplus -H | -V -H 顯示 SQL*Plus 版本和 用法幫助。 -V 顯示 SQL*Plus 版本。 用法 2: sqlplus [ [<option>] [{logon | /nolog}] [<start>] ] <option> 為: [-C <version>] [-L] [-M "<options>"] [-R <level>] [-S] -C <version> 將受影響的命令的兼容性設置為 <version> 指定的版本。該版本具有 "x.y[.z]" 格式。例如, -C 10.2.0 -L 只嘗試登錄一次, 而不是 在出錯時再次提示。 -M "<options>" 設置輸出的自動 HTML 標記。選項 的格式為: HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}] -R <level> 設置受限模式, 以禁用與文件系統交互的 SQL*Plus 命令。級別可以 是 1, 2 或 3。最高限制級別為 -R 3, 該級別 禁用與文件系統交互的 所有用戶命令。 -S 設置無提示模式, 該模式隱藏 命令的 SQL*Plus 標幟, 提示和回顯 的顯示。 <logon> 為: {<username>[/<password>][@<connect_identifier>] | / } [AS {SYSDBA | SYSOPER | SYSASM}] [EDITION=value] 指定數據庫帳戶用戶名, 口令和數據庫連接 的連接標識符。如果沒有連接 標識符, SQL*Plus 將連接到默認數據庫。 AS SYSDBA, AS SYSOPER 和 AS SYSASM 選項是數據庫 管理權限。 <connect_identifier> 的形式可以是 Net 服務名 或輕松連接。 @[<net_service_name> | [//]Host[:Port]/<service_name>] <net_service_name> 是服務的簡單名稱, 它解析 為連接描述符。 示例: 使用 Net 服務名連接到數據庫, 且 數據庫 Net 服務名為 ORCL。 sqlplus myusername/mypassword@ORCL Host 指定數據庫服務器計算機的主機名或 IP 地址。 Port 指定數據庫服務器上的監聽端口。 <service_name> 指定要訪問的數據庫的 服務名。 示例: 使用輕松連接連接到數據庫, 且 服務名為 ORCL。 sqlplus myusername/mypassword@Host/ORCL /NOLOG 選項可啟動 SQL*Plus 而不連接到 數據庫。 EDITION 指定會話 Edition 的值。 <start> 為: @<URL>|<filename>[.<ext>] [<parameter> ...] 使用將分配給腳本中的替代變量的指定參數 從 Web 服務器 (URL) 或本地文件系統 (filename.ext) 運行指定的 SQL*Plus 腳本。 在啟動 SQL*Plus 並且執行 CONNECT 命令后, 將運行站點概要 文件 (例如, $ORACLE_HOME/sqlplus/admin/glogin.sql) 和用戶概要文件 (例如, 工作目錄中的 login.sql)。這些文件 包含 SQL*Plus 命令。 有關詳細信息, 請參閱 SQL*Plus 用戶指南和參考。 [oracle@crb-db1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on################### Copyright (c) 1982, 2013, Oracle. All rights reserved. 連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options --查看當前數據庫中表空間是否為自動擴展 SQL> select tablespace_name,file_name,autoextensible from dba_data_files; TABLESPACE_NAME ------------------------------ FILE_NAME -------------------------------------------------------------------------------- AUT --- USERS /data/oradata/orcl/users01.dbf YES UNDOTBS1 /data/oradata/orcl/undotbs01.dbf YES TABLESPACE_NAME ------------------------------ FILE_NAME -------------------------------------------------------------------------------- AUT --- SYSAUX /data/oradata/orcl/sysaux01.dbf YES SYSTEM /data/oradata/orcl/system01.dbf TABLESPACE_NAME ------------------------------ FILE_NAME -------------------------------------------------------------------------------- AUT --- YES 已選擇24行。 --增加新的數據文件 SQL> alter tablespace SYSTEM add datafile '/data/oradata/orcl/system02.dbf' size 10G autoextend on; 表空間已更改。 SQL>