前段时间,我管理的一台Oracle数据库表空间容量不足了,由于本人以前没有接触过Oracle的使用所以,就自己查资料来研究如何扩容,网上的文档多数都是在物理机上扩容,而偏偏我的数据文件是存储在裸设备上的,裸设备和磁盘文件稍有不同,再加上Oracle默认是以表空间为归类的,操作上与MySQL有些不一样。

先是查询了前人留下的扩容文档,但多数写的草率根本无从下手,气得我直接当场气死,后来经过各种查资料各种尝试,最终还是扩容完成了,这里做个总结,免得以后再碰到类似的问题,防止二次当场气死。

首先确定数据库的基本信息,先查询数据库名称,表空间位置等。

SQL> select name from v$database; 查当前数据库名

SQL> select * from v$datafile; 查表空间文件位置

查询当前裸设备容量情况,如下命令

SQL> select name,total_mb,free_mb,(free_mb/total_mb)*100 as usage from v$asm_diskgroup;

查询所有的表空间。

SQL> select tablespace_name from dba_tablespaces;

查询表空间与用户对应关系。

SQL> select default_tablespace as "默认表空间", temporary_tablespace as "临时表空间", d.username as "用户" from dba_users d;

以TBS_CSP_PUB_DAT为例,查询该表空间中有哪些表。

SQL> select TABLE_NAME,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME='TBS_CSP_PUB_DAT';

接着查询一下裸设备的使用情况。

SQL> set line 200

SQL> col path for a40

首先查询组ID与裸设备名称对应关系。

SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;

接着查询其挂载位置。

SQL> select group_number,mount_status,header_status,path,total_mb,free_mb from v$asm_disk;

如上可知道裸设备所对应的位置为/dev/目录下,我们可以Linux切换过去看看,裸设备无法直接在linux上操作,Linux只保留一个类似于符号链接的东西。

查询TBS_CSP_PUB_DAT所对应到裸设备中的位置。

SQL> select file_name from dba_data_files where tablespace_name='TBS_CSP_PUB_DAT' order by file_id;

查询表空间利用率使用情况。

set pagesize 9999

set pagesize 9999

set linesize 132

select

a.tablespace_name,

a.Total_mb,

f.Free_mb,

round(a.total_MB-f.free_mb,2) Used_mb,

round((f.free_MB/a.total_MB)100) "%_Free"

from

(select tablespace_name, sum(bytes/(1024
1024)) total_MB from dba_data_files group by tablespace_name) a,

(select tablespace_name, round(sum(bytes/(1024*1024))) free_MB from dba_free_space group by tablespace_name) f

WHERE a.tablespace_name = f.tablespace_name(+)

order by "%_Free"

/

其他有用的参数查询

确定好参数以后,只需要保证裸设备中容量足够,即可执行一条命令完成扩容任务,以扩容 TBS_CSP_PUB_DAT 为例

先来看一下扩容前的数据

SQL> select tablespace_name,file_name,autoextensible from dba_data_files where autoextensible='YES';

首先开启表空间自动扩展。

SQL> ALTER DATABASE DATAFILE '+DG_DATA1/rlv_pub_dat001' AUTOEXTEND ON;

扩大容量可以这么写,注意pub_dat0xx不能冲突,如下增加1个GB

SQL> alter tablespace 需要扩容的空间 add datafile '+DG_DATA1/rlv_pub_dat017' SIZE 1g;

最后查询一下,已经添加上了。

SQL> select file_name from dba_data_files where tablespace_name='TBS_CSP_PUB_DAT' order by file_id;

需要注意的是,如果裸设备中的容量严重不足,那么就无法直接扩容,正确的做法是去机房,给裸设备增加一块新磁盘,然后规划好容量,之后在使用上面的方法对Oracle数据库扩容。

Oracle 数据库裸设备扩容处理的更多相关文章

  1. oracle数据库表空间扩容方法

    1. 先查询表空间在物理磁盘上存放的位置,注意使用sysdba的账号登陆. SELECT tablespace_name, file_id, file_name, ), ) total_space F ...

  2. 干货分享:SQLSERVER使用裸设备

    干货分享:SQLSERVER使用裸设备 这篇文章也适合ORACLE DBA和MYSQL DBA 阅读 裸设备适用于Linux和Windows 在ORACLE和MYSQL里也是支持裸设备的!! 介绍 大 ...

  3. 裸设备和Oracle问答20例

    导读裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备.裸设备可以绑定一个分区,也可以绑定一个磁盘.本文收集裸设备和Oracle问答20例. 1.什么叫 ...

  4. Oracle数据文件迁移到裸设备

    本文主要描述如何将Oracle表空间的文件系统形式的数据文件迁移到LV裸设备上. 前提条件 1.oracle运行正常. 2.已使用LVM命令规划好LV文件.如/dev/vgoracle/lvdatat ...

  5. ASM下裸设备的路径更改是否会影响数据库的执行

    通过asm来存储数据库文件,在linux下能够通过asmlib的方式来管理块设备,也能够直接使用裸设备来建立asm磁盘.在asmlib方式下,磁盘设备启动顺序和名称的改变不会影响到asm的使用.但假设 ...

  6. oracle 裸设备划分 --centos6.5

    主题思想:物理卷PV->卷组VG->逻辑卷LV(类型:raw)->添加表空间 操作过程 vg_orcl         8g 一:划分 二:创建裸设备 方法1:目前最常用的方法 #c ...

  7. AIX用裸设备给表空间添加数据文件

    近期在对生产数据库表空间进行扩容,目的是春节期间保证表空间的使用率,不会出现紧急告警信息. 1.查看表空间使用率的SQL语句 col tablespace_name for a16 col SUM_S ...

  8. ORACLE数据库异步IO介绍

    异步IO概念 Linux 异步 I/O (AIO)是 Linux 内核中提供的一个增强的功能.它是Linux 2.6 版本内核的一个标准特性,当然我们在2.4 版本内核的补丁中也可以找到它.AIO 背 ...

  9. Oracle数据库管理员面试题

    Oracle数据库管理员面试题 1.模拟使用oracle的flashback找回过去某个时间点的数据,实现误操作的恢复. http://www.txw100.com/soft/2013/08/547. ...

随机推荐

  1. CSS:CSS基础

    和 HTML 类似,CSS 也不是真正的编程语言,甚至不是标记语言.它是一门样式表语言,这也就是说人们可以用它来选择性地为 HTML 元素添加样式. CSS规则集 选择器(Selector):元素的名 ...

  2. JWT原理及常见攻击方式

    JWT的全称是Json Web Token.它遵循JSON格式,将用户信息加密到token里,服务器不保存任何用户信息,只保存密钥信息,通过使用特定加密算法验证token,通过token验证用户身份. ...

  3. HDOJ-1560(迭代加深搜索问题)

    DNA sequence HDOJ-1560 *本题是迭代加深搜索问题,主要是要理解题目,题目中一定是有解的,所以为了找最小的解,可以从小的搜索深度开始逐渐增加. *这里有个技巧就是,如果本次指定开始 ...

  4. POJ-1015(背包变形+输出路径)

    Jury Compromise POJ-1015 推荐几个较好的介绍和理解:https://blog.csdn.net/lyy289065406/article/details/6671105 htt ...

  5. Windows下常用测试命令

      (1)ping 127.0.0.1 (测试本地网卡,127.0.0.1是本地循环地址,如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作) (2)ping 127.0.0.1  - ...

  6. js 数组的浅拷贝和深拷贝

    1.背景介绍 javascript分原始类型与引用类型.Array是引用类型,直接用"="号赋值的话,只是把源数组的地址(或叫指针)赋值给目的数组,指向的是同一个内存地址,其中一个 ...

  7. FreeRedis分布式锁实现以及使用

    前言 今日上班听到同事在准备面试题分布式锁(准备溜溜球),随即加入了群聊复习了一波,于是有了这篇小作文. 场景 本文中的演示 DEMO, 以下订单减库存为例. 无锁裸奔表现 示例代码: 先来模拟一个库 ...

  8. [SPOJ2021] Moving Pebbles

    [SPOJ2021] Moving Pebbles 题目大意:给你\(N\)堆\(Stone\),两个人玩游戏. 每次任选一堆,首先拿掉至少一个石头,然后移动任意个石子到任意堆中. 谁不能移动了,谁就 ...

  9. Hive相关的命令

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过 ...

  10. 1.认识numpy的数组

    认识ndarray --ndarray:用于存储单一数据类型的多维数组 ndarray基础属性的认识 import numpy as np #将numpy简写为np方便调用 1.通过以下实例来认识ar ...