Oracle 数据库裸设备扩容处理
前段时间,我管理的一台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/(10241024)) 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 数据库裸设备扩容处理的更多相关文章
- oracle数据库表空间扩容方法
1. 先查询表空间在物理磁盘上存放的位置,注意使用sysdba的账号登陆. SELECT tablespace_name, file_id, file_name, ), ) total_space F ...
- 干货分享:SQLSERVER使用裸设备
干货分享:SQLSERVER使用裸设备 这篇文章也适合ORACLE DBA和MYSQL DBA 阅读 裸设备适用于Linux和Windows 在ORACLE和MYSQL里也是支持裸设备的!! 介绍 大 ...
- 裸设备和Oracle问答20例
导读裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备.裸设备可以绑定一个分区,也可以绑定一个磁盘.本文收集裸设备和Oracle问答20例. 1.什么叫 ...
- Oracle数据文件迁移到裸设备
本文主要描述如何将Oracle表空间的文件系统形式的数据文件迁移到LV裸设备上. 前提条件 1.oracle运行正常. 2.已使用LVM命令规划好LV文件.如/dev/vgoracle/lvdatat ...
- ASM下裸设备的路径更改是否会影响数据库的执行
通过asm来存储数据库文件,在linux下能够通过asmlib的方式来管理块设备,也能够直接使用裸设备来建立asm磁盘.在asmlib方式下,磁盘设备启动顺序和名称的改变不会影响到asm的使用.但假设 ...
- oracle 裸设备划分 --centos6.5
主题思想:物理卷PV->卷组VG->逻辑卷LV(类型:raw)->添加表空间 操作过程 vg_orcl 8g 一:划分 二:创建裸设备 方法1:目前最常用的方法 #c ...
- AIX用裸设备给表空间添加数据文件
近期在对生产数据库表空间进行扩容,目的是春节期间保证表空间的使用率,不会出现紧急告警信息. 1.查看表空间使用率的SQL语句 col tablespace_name for a16 col SUM_S ...
- ORACLE数据库异步IO介绍
异步IO概念 Linux 异步 I/O (AIO)是 Linux 内核中提供的一个增强的功能.它是Linux 2.6 版本内核的一个标准特性,当然我们在2.4 版本内核的补丁中也可以找到它.AIO 背 ...
- Oracle数据库管理员面试题
Oracle数据库管理员面试题 1.模拟使用oracle的flashback找回过去某个时间点的数据,实现误操作的恢复. http://www.txw100.com/soft/2013/08/547. ...
随机推荐
- 关于《Android编程权威指南》的MockWalker在模拟器中无法运行的解决方法
1.打开模拟器中的Dev Settings应用. 2.选中Allow mock locations选项. 之后应该就能正常运行了.
- 文件查询 select name,age where age>22
# 员工信息表: 完善代码,背下来给代码加注释column_dic = {'id': 0, 'name': 1, 'age': 2, 'phone': 3, 'job': 4} # 将文件每一列的名字 ...
- CVE-2017-10271 XMLDecoder 反序列化
漏洞描述:WebLogic的 WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,可以构造请求对运行 ...
- 致被职场PUA的打工人
作为打工人,除了每天面对着各种繁琐的工作,还要被动接受上级或多或少的PUA,实在是难上加难,甚至有人想不开而自杀.网络上最近流行了一个词:职场PUA,赋予了这种现象一个正式的名字. 职场PUA指的是职 ...
- 学员和教师管理优化用例点整理v2.0
更新记录: 更新内容 更新人 更新时间 新建 Young 2021.01.08 12:06 彭洋洋确认结果疑问 Young 2021.01.08 15:06 问题集锦 1. 购买成功页点击完成返回路径 ...
- WorkSkill整理之 java用Scanner 类输入数组并打印
输入不确定长度的数组 import java.util.*; public static void main(String[] args){ System.out.println("请输入一 ...
- linuxc语言图形化编程包含gtk/gtk.h编译总是报错找不到该文件的解决方法
在编译时输入gcc file.c `pkg-config --libs --cflags gtk+-2.0` 注意`不是单引号,和--前均有一个字符 这样问题就结局啦
- 这个Bug的排查之路,真的太有趣了。
这是why哥的第 92 篇原创文章 在<深入理解Java虚拟机>一书中有这样一段代码: public class VolatileTest { public static volat ...
- 使用 DD 命令制作 USB 启动盘
Windows 下有很多很好用的 USB 启动盘制作工具,比如 Rufus,但是 MacOS 下这个类型的工具就少了很多,这里记录下在 MacOS 中用 DD 命令制作 Linux USB 启动盘的操 ...
- Linux+mysql混杂
一.linux 1.linux中给某一文件中批量新增一个内容 先vim进入文件,然后先按ctrl+v 然后选中需要的行数, 在shift+i 写你要添加的东西 然后在按下esc 二,mysql 1.l ...