SYSTEM表空间满,解决方法

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> 

  

posted @ 2021-05-12 17:46  LuckinAaron  阅读(2071)  评论(0编辑  收藏  举报