zoukankan      html  css  js  c++  java
  • 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> 
    

      

  • 相关阅读:
    如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    什么是 JavaConfig?
    序列号Sequences
    包Packages
    参数Parameters、变量Variables
    maven配置多个镜像
    各种http报错的报错的状态码的分析
    举例说明同步和异步。
    第二阶段的任务及燃尽图(第二天)
    第二阶段的任务及燃尽图(第一天)
  • 原文地址:https://www.cnblogs.com/Williamls/p/14760903.html
Copyright © 2011-2022 走看看