精华内容
下载资源
问答
  • oracle 增加数据库表空间 方法一扩展数据库文件空间: 第一步:查询表空间使用情况 select a.tablespace_name as “表空间名”, a.bytes / 1024 / 1024 as “表空间大小(M)”, (a.bytes - b.bytes) / 1024 / 1024 as ...

    oracle 增加数据库表空间


    方法一扩展数据库文件空间:

    第一步:查询表空间使用情况

    select a.tablespace_name as “表空间名”,
    a.bytes / 1024 / 1024 as “表空间大小(M)”,
    (a.bytes - b.bytes) / 1024 / 1024 as “已使用空间(M)”,
    b.bytes / 1024 / 1024 “空闲空间(M)”,
    round(((a.bytes - b.bytes) / a.bytes) * 100, 2) “使用比”
    from (select tablespace_name, sum(bytes) bytes
    from dba_data_files
    group by tablespace_name) a,
    (select tablespace_name, sum(bytes) bytes, max(bytes) largest
    from dba_free_space
    group by tablespace_name) b
    where a.tablespace_name = b.tablespace_name
    order by ((a.bytes - b.bytes) / a.bytes) desc;


    执行结果如下:
    执行结果


    第二步:扩展表空间
    1、查看表空间的名字及文件所在位置
    select tablespace_name,
    file_id,
    file_name,
    round(bytes / (1024 * 1024), 0) total_space
    from dba_data_files
    order by tablespace_name

    执行结果

    2、扩展所需表空间大小
    alter database datafile ‘D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF’ resize 30000m;


    方法二 增加数据库文件个数

    alter tablespace 表空间名称 add datafile ‘F:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\new_xxx.DBF’ size 500m


    方法三 设置自动扩展

    ALTER DATABASE DATAFILE ‘xxx\xxx.dbf’ AUTOEXTEND ON;//打开自动增长off 为关闭自动扩展

    ALTER DATABASE DATAFILE ‘xxx\xxx.dbf’ AUTOEXTEND ON NEXT 200M ;/每次自动增长200m

    ALTER DATABASE DATAFILE ‘xxx\xxx.dbf’ AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自动增长200m,表空间最大不超过1G


    补充:

    数据文件自动扩展的好处
    1)不会出现因为没有剩余空间可以利用到数据无法写入
    2)尽量减少人为的维护
    3)可以用于重要级别不是很大的数据库中,如测试数据库等

    数据文件自动扩展的弊端
    1)如果任其扩大,在数据量不断变大的过程中会导致某个数据文件异常的大
    2)没有人管理的数据库是非常危险的

    展开全文
  • 数据库表空间扩容

    千次阅读 2019-03-10 21:14:27
    数据库表空间扩容 查看数据库表空间大小 SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) &...

    数据库表空间扩容

    查看数据库表空间大小

    SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (1024 * 1024 * 1024) "表空间大小(G)", free / (1024 * 1024 * 1024) "表空间剩余大小(G)", (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)", round((total - free) / total, 4) * 100 "使用率 %" 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;

    需要扩容的表空间总空间大小

    根据已有的表空间大小及表空间使用空间的增速,来判断是在原空间中增加大小,还是另加一个文件来存储数据(一个表空间,可以指向多个数据库存储文件):

    1、直接在原表空间上增加:alter database datafile '表空间文件位置.dbf' resize 10240m;--扩容10G;
    2、另外为表空间再建立一个新的dbf,用来存储新的数据:alter tablespace GZDATACUR add datafile '表空间文件位置.dbf' size 10240m;--增加一个10G的表空间文件;

    展开全文
  • 数据库服务:数据库表空间扩容

    千次阅读 2018-08-23 16:33:33
    数据库表空间扩容是我们在运维过程中经常需要做的事情,本文分享一次在扩容表空间中遇到的情况以及针对本次情况的一些想法。   记一次在运维过程中遇到的问题,在最近的一次表空间扩容中遇到的问题,该表表空间...

    http://www.enmotech.com/services/service.html(专业数据库服务)

     

    数据库表空间扩容是我们在运维过程中经常需要做的事情,本文分享一次在扩容表空间中遇到的情况以及针对本次情况的一些想法。

     

    记一次在运维过程中遇到的问题,在最近的一次表空间扩容中遇到的问题,该表表空间使用率达到 80% 以上,照常对该表空间进行扩容时报错,报错提示如下:

     l1.png

     

    打码部分为表空间名称,错误提示空间不足,在扩容表空间时已经检查过磁盘组的剩余空间。

     

    DATA 磁盘组的剩余空间还很充足,于是根据错误提示上 mos 查:

     l2.png

     

     

    结果如图,错误提示一样,直接拉到最后看解决办法。

     

    l3.png

    根据 mos 提供的方法,检查修复之后重新 rebalance。

     

    alter diskgroup diskgroupname rebalance power 32:使用此子句手动重新平衡磁盘组。自动存储管理在所有驱动器上均匀地重新分配数据文件。

     

    POWER :在 POWER 子句中,指定 0 到 11 之间的值,其中 1 表示重新平衡操作,11 表示 Oracle ASM 尽可能快地执行重新平衡。您在 POWER 子句中指定的值默认为 ASM_POWER_LIMIT 初始化参数的值。

     

    虽然指定 power 值为32,但是实际日志中查看,最大只能达到 11;

     

    l4.png

    查询官方文档给出的解释:

    ASM_POWER_LIMIT:该 ASM_POWER_LIMIT initialization 参数指定磁盘组中磁盘重新平衡的默认功率。该值的范围是 0 到 1024。默认值为 1。值 0 禁用重新平衡。较高的数值使重新平衡操作能够更快地完成,但可能会导致更高的 I / O 开销和更多的重新平衡过程。

    • 对于具有磁盘组ASM兼容性集到磁盘组11.2.0.2或更大(例如,COMPATIBLE.ASM= 11.2.0.2),值的操作范围是 0 到 1024 用于重新平衡能力。

    • 对于磁盘组 ASM 兼容性设置为小于的磁盘组 11.2.0.2,值的操作范围 0 为 11包含。如果值 ASM_POWER_LIMIT 大于11,则将值用于 11 这些磁盘组。

     

    初始化参数的 POWER 子句允许值范围相同 ASM_POWER_LIMIT。如果 POWER 指定的子句的值大于 11ASM 兼容性设置为小于的磁盘组 11.2.0.2,则会显示警告,并且将使用 POWER 等于的值 11 进行重新平衡,所以日志中看到的最大值为 11。

     

    Usable_file_MB=-115876 是什么含义?

     

    等到重新 rebalance 完成之后,重新增加数据文件发现仍然失败了,查看磁盘组信息发现每块盘的大小并没有改变。

     

    l5.png

     

    于是返回仔细查看 mos 文档,根据 mos 提示查看 Usable_file_MB 的值,我发现数据库的 Usable_file_MB=-115876 是一个负数。

     

    l6.png

     

    这个值代表什么意思,为什么是负数呢?我查询官方文档,官方文档给出的解释是:USABLE_FILE_MB 表示为镜像调整的可用空间量,可用于新文件在磁盘发生故障后恢复冗余。USABLE_FILE_MB 通过 REQUIRED_MIRROR_FREE_MB 从磁盘组中的总可用空间中减去然后调整镜像值来计算。例如,在正常冗余磁盘组中,默认情况下,镜像文件使用的磁盘空间等于其大小的两倍,如果剩余 4 GB 的实际可用文件空间,则 USABLE_FILE_MB 大约等于 2 GB。然后,您可以添加最大 2 GB 的文件。

    REQUIRED_MIRROR_FREE_MB 指为了使 diskgroup 能在一个或多个磁盘损坏后能够恢复冗余(redundancy),磁盘组中应该保留的剩余空间。

     

    在 data 磁盘组的查询输出示例中,计算如下:

    (FREE_MB - REQUIRED_MIRROR_FREE_MB)/ 2=USABLE_FILE_MB

     (278199-509952)/2=-115875

     

    该值为负数时有那些影响呢?官方文档给出的解释:

    1. 根据值FREE_MB,您可能无法创建新文件。

    2. 下一次失败可能会导致冗余减少的文件。

     

    如果 USABLE_FILE_MB 变为负数,强烈建议您尽快为磁盘组添加更多空间

    虽然 DATA 磁盘组还剩 两百八十多G 未使用,但是采用的是 Normal redundancy,减去故障恢复所需要的磁盘空间,剩下的空间已经不足了。所以无法新增数据文件,对表空间进行扩容。

     

    联系存储工程师新加一块 500G 的磁盘,对 DATA 磁盘组进行扩容。

    alter diskgroup DATA rebalance power 11;

     

    等待 rebalance 完成之后,再进行扩容表空间,表空间成功扩容。

     

    l7.png

     

    总结

     

     

    这次故障其实算不上真正意义上的故障,扩容失败主要是磁盘组剩余可使用空间不足,惯性思维认为剩余空间大小充足,就应该能进行扩容表空间,本来新增存储扩容磁盘组就能解决问题,由于知识储备不够,关注的问题的点不够全面导致这次简单的扩容复杂化了。以后在对表空间进行扩容时,不仅要关注磁盘组的剩余空间大小,还要注意磁盘的冗余方式。

     

    招聘专栏

     

    Oracle 售前工程师(广州、深圳、上海、武汉、北京、石家庄)

     

    Oracle 高级工程师(上海、深圳、北京、成都、昆明、贵州、西宁)

     

    MySQL 技术经理(上海、南京、成都)

     

    MySQL 工程师(上海、杭州)

     

    超高待遇:丰厚的年终奖,五险一金,高额学习基金,团建旅游,法定节假日,福利假期等。

     

    推荐他人成功入职有好礼(iPhone X)相送 。

     

    投递简历至邮箱:hr@enmotech.com

     

     

    展开全文
  • 数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见。--1查看表空间已经使用的百分比select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/...

     在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见。

    --1查看表空间已经使用的百分比
    select   a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024   "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
    from
    (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name)   a,
    (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name)   b
    where   a.tablespace_name=b.tablespace_name
    order   by   ((a.bytes-b.bytes)/a.bytes)   desc

    “Sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小
    比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB”就是700MB
    “userd MB”表示表空间已经使用了多少
    “free MB”表示表空间剩余多少
    “percent_user”表示已经使用的百分比

    --2比如从1中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件,每个数据文件是否自动扩展,可以自动扩展的最大值。
    select   file_name,tablespace_name,bytes/1024/1024 "bytes MB",maxbytes/1024/1024 "maxbytes MB"   from   dba_data_files
      where tablespace_name='MLOG_NORM_SPACE';

    --3比如MLOG_NORM_SPACE表空间目前的大小为19GB,但最大每个数据文件只能为20GB,数据文件快要写满,可以增加表空间的数据文件
    用操作系统UNIX、Linux中的df   -g命令(查看下可以使用的磁盘空间大小)
    获取创建表空间的语句:
    select   dbms_metadata.get_ddl('TABLESPACE','MLOG_NORM_SPACE')   from   dual;


    --4确认磁盘空间足够,增加一个数据文件
    alter   tablespace   MLOG_NORM_SPACE
    add   datafile   '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'
    size   10M   autoextend   on   maxsize   20G


    --5验证已经增加的数据文件
    select   file_name,file_id,tablespace_name   from   dba_data_files
    where   tablespace_name='MLOG_NORM_SPACE'

    --6如果删除表空间数据文件,如下:
    alter   tablespace   MLOG_NORM_SPACE
    drop    datafile '/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'

     

    展开全文
  • linux下移动Oracle数据库表空间文件

    千次阅读 2016-11-11 17:48:28
    原因:当前实例中的表空间文件及系统表空间文件全在一块硬盘上,导致IO增加。装数据库表空间移走。减少IO 详细操作步骤: 1、进入Oracle用户 su - oracle 2、启用sqlplus sqlplus /nolog 3、以...
  • Oracle 数据库 增加表空间容量

    千次阅读 2014-11-09 17:25:20
    1、首先查看数据文件的存放位置: 2、查看表空间已使用空间 3、查看表空间空闲空间 4、给NEWBS表空间增加一个数据文件
  • 基本关系:数据库---表空间---数据段---分区---数据块---操作系统块   smallfile tablespace   一个表空间最多包含210 – 2 =1022个数据文件; 一个数据文件的大小由db_block_size和db_block数据块数量决定...
  • --1查看表空间已经使用的百分比 select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_...
  • 检查之后发现表空间满了,随后把相应表空间进行了扩展,顺带总结了Oracle检查&调整表空间的sql语句如下: ##--查看某张表的表空间 select table_name,tablespace_name from user_tables where TABLE_NAME='表名'...
  • Oracle数据库表空间占满的解决方法 ,ORA-01691 方法1:修改数据文件的扩展性 alter database datafile '文件路径' autoextend on next 100m maxsize 2014M; 方法2:给表空间增加新的数据文件 alter tablespace...
  • 达梦数据库表空间及用户管理

    千次阅读 2019-09-18 13:55:09
    一、达梦数据库表空间的管理 1、达梦数据库表空间介绍 Select tablespace_name from dba_tablespace; 1)SYSTEM表空间--> 系统表空间有很多的数据字典等 2)ROLL表空间-->回滚表空间 MVCC(事务多版本机制...
  • oracle数据库表空间的扩展

    千次阅读 2008-11-16 16:08:00
    由于有一天凌晨3点发生了数据库表空间不足的错误(正在写方案打瞌睡的时候被电话叫醒,呵呵),用户怕其他的表空间也满了,这几天总是被催促扩展表空间,下面我就把相关的东东写下来,同大家一起讨论一下。...
  • 达梦数据库表空间不足的解决方法

    千次阅读 2019-09-29 17:59:10
    大家知道,达梦数据库中的表空间是由一个或多个数据文件组成。当表空间空间不足的情况下,最自然想到的办法当然是修改数据文件的大小。这里我们利用管理工具来进行演示: 首先右键点击表空间名称,点击修改 双击...
  • 表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间数据库对象分配空间表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系...
  • ORACLE数据库表空间增加数据文件

    万次阅读 2018-07-12 11:19:12
    目前我们常用的增加表空间大小的方法有四种:(1)给表空间增加数据文件ALTER TABLESPACE app_data ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M; (2)新增数据文件,并且允许...
  • db2查看表空间 连接db2数据库 Db2 connect to xxx user xxx using xxx ...增加表空间容器: db2 "ALTER TABLESPACE 表空间名 ADD (file '文件路径' 30G)" 修改表空间大小: db2 ALTER TABLESPACE.
  • 数据库表空间满了怎么办?

    千次阅读 2018-12-14 11:46:40
    有以下处理方法: 方法1:修改数据文件的扩展性 ...方法2:给表空间增加新的数据文件 alter tablespace 表空间名 add datafile '数据文件路径‘ size 1000m autoextend on next 100m maxsize 40...
  • 数据库表空间不够,需要扩容

    千次阅读 2017-02-05 10:11:24
    项目上线前需要导入数据,数据总量预计有30亿,原有空间不够,需要对数据文件进行扩容。1、查看vcenter,对应服务器所在的主机尚有足够的存储,对服务器进行增加硬盘操作,并重启生效。 2、使用fdisk对磁盘进行分区...
  • 创建表空间 create tablespace 表空间名字 logging datafile ‘/home/db/oracle/oradata/hfmsdb/hfms_data.dbf’ size 50m autoextend on next 50m maxsize 20480m extent management local; 创建临时表空间 ...
  • oracle数据库-修改表空间表数据文件

    千次阅读 2016-03-17 15:38:41
    数据库-修改表空间表数据语句 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象存放在指定的表空间中。但主要存放的是表, 所以称作表空间。 数据库中中少存在一个表空间,即SYSTEM的表...
  • plsql创建数据库表表空间

    千次阅读 2017-06-26 16:29:13
    --创建表空间 create tablespace glpt datafile 'E:\oracle\product\10.2.0\oradata\orcl\glpt.dbf' size 500M autoextend on next 100M maxsize unlimited logging extent management local autoallocate ...
  • 查看表空间状态: db2 list tablespaces show detail 3.查找状态,一般情况下有三种状态,一种是0x0000(正常状态),一种是0x0004 (处于停顿的独占),一种是0x0020(备份暂挂), 0x0004 解决办法:  ...
  • 年底客服机房进行整理,需停电,趁机对系统数据库进行调整,以下为简要脚本记录:...l 增加表空间   1. 进行数据库的完全备份 a) 导出nvl_user全部 $su- oracle $expdp nvl_user/nvl#2016 schemas=nvl_user directo
  • 数据库的物理结构是由数据库的操作系统文件所决定,   每一个 Oracle 数据库是由三种类型的 文件组成: ...数据库的文件为数据库提供真正的物理存储。...逻辑数据库结构(如,   索引等)的数据物理地存储在
  • Oracle数据库是由一个个表空间构成,表空间是由多个数据文件,数据文件又是区间构成,区由Oracle块构成。下图借鉴自:https://www.cnblogs.com/chengxiao/p/5904783.html 1.Oracle表空间数据文件大小的限制 ...
  • ALTER TABLESPACE SYSTEM ADD DATAFILE ‘D:\app\Administrator\oradata\orcl\SYSTEM02.DBF’ SIZE 100M alter database datafile ‘D:\app\Administrator\oradata\orcl\SYSTEM02.DBF’ autoextend on next 50m ...
  • DM达梦数据库--表空间

    千次阅读 2020-01-14 16:20:06
    DM达梦数据库表空间基本介绍 —主要表空间介绍---- SYSTEM:数据字典和全局的系统数据。 ROLL:存放了数据库运行过程中产生的回滚记录。 TEMP:临时表空间 Main:数据库默认的表空间,创建数据对象时,如果不指定存放的...
  • 知识点:数据库表的相关概念、创建数据库表的方法、设计数据库表、向数据库表中插入数据、建立不同数据库表之间的关系、删除数据库表。 1、数据相关的一些概念 1.1 数据库里的数据是如何保存的? 数据库...
  • 一、查看表空间碎片的方法 1.查看fsfi值 select a.tablespace_name, trunc(sqrt(max(blocks)/sum(blocks))* (100/sqrt(sqrt(count(blocks)))),2) fsfi  from dba_free_space a,dba_tablespaces b...
  • oracle数据库扩展表空间的四种方法

    千次阅读 2019-07-25 16:00:33
    扩展表空间,为其增加更多存储空间,有四种方法: 第一种:增加数据文件 alter tablespace data01 add datafile 'd:\java\test\data02.dbf’size 2m SQL> alter tablespace data01 add datafile 'd:\java\test\...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 386,190
精华内容 154,476
关键字:

怎么增加数据库表空间