题记:今天做系统检查时,发现一套数据库中的一表空间使用率超过了90%,可见,如果不扩大这个表空间,那么数据库很快将被撑挂,并且顺便将本次的操作过程记录下来,分享给大家,谢谢!
使用脚本检查:
SELECT d.status "Status",
d.tablespace_name "Name",
d.contents "Type",
d.extent_management "Extent Management",
to_char(nvl(a.bytes / 1024 / 1024, 0), '99999999.999') "Total Size (M)",
to_char(nvl(a.bytes - nvl(f.bytes, 0), 0) / 1024 / 1024,
'99999999.999') "Used (M)",
to_char(nvl(nvl(f.bytes, 0), 0) / 1024 / 1024, '99999999.999') "Free (M)",
to_char(nvl((a.bytes - nvl(f.bytes, 0)) / a.bytes * 100, 0),
'990.00') "Used %"
FROM sys.dba_tablespaces d,
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_free_space
GROUP BY tablespace_name) f
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = f.tablespace_name(+)
AND NOT
(d.extent_management LIKE 'LOCAL' AND d.contents LIKE 'TEMPORARY')
UNION ALL
SELECT d.status "Status",
d.tablespace_name "Name",
d.contents "Type",
d.extent_management "Extent Management",
to_char(nvl(a.bytes / 1024 / 1024, 0), '99999990.900') "Size (M)",
to_char(nvl(t.bytes, 0) / 1024 / 1024, '99999999.999') "Used (M)",
to_char((nvl(a.bytes / 1024 / 1024, 0)) -
(nvl(t.bytes, 0) / 1024 / 1024),
'99999999.999') "Free (M)",
to_char(nvl(t.bytes / a.bytes * 100, 0), '990.00') "Used %"
FROM sys.dba_tablespaces d,
(SELECT tablespace_name, SUM(bytes) bytes
FROM dba_temp_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes_cached) bytes
FROM v$temp_extent_pool
GROUP BY tablespace_name) t
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = t.tablespace_name(+)
AND d.extent_management LIKE 'LOCAL'
AND d.contents LIKE 'TEMPORARY'
ORDER BY "Used %" DESC;
结果发现:
Status Name Type Extent Man Total Size (M Used (M) Free (M) Used %
--------- ------------------------------ --------- ---------- ------------- ------------- ------------- -------
ONLINE BILLING_DATA2 PERMANENT LOCAL 44500.000 41558.480 2941.520 93.39
SQL> select file_name,tablespace_name,bytes/1024/1024 from dba_data_files where tablespace_name='BILLING_DATA2';
FILE_NAME TABLESPACE_NAME BYTES/1024/1024
---------------------------------------- ------------------------------ ---------------
/dev/rlvsm_data2 BILLING_DATA2 20000
/dev/rlvsm_data3 BILLING_DATA2 24500
确定lvsm_data2、lvsm_data3属于哪一个VG:
GD_HYWG_cManager2_A:/>lslv -L lvsm_data2
LOGICAL VOLUME: lvsm_data2 VOLUME GROUP: datavg
LV IDENTIFIER: 00062d670000d6000000011aaec5d738.40 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 128 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 240 PPs: 240
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
DEVICESUBTYPE : DS_LVZ
GD_HYWG_cManager2_A:/>lslv -L lvsm_data3
LOGICAL VOLUME: lvsm_data3 VOLUME GROUP: datavg
LV IDENTIFIER: 00062d670000d6000000011aaec5d738.45 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 128 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 200 PPs: 200
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 1024
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?: NO
DEVICESUBTYPE : DS_LVZ
由上面可见,lvsm_data2、lvsm_data3这两个LV均属于datavg:
GD_HYWG_cManager2_A:/dev>lsvg -l datavg | grep lvsm_data
lvsm_data1 raw 240 240 1 open/syncd N/A
lvsm_data2 raw 240 240 1 open/syncd N/A
lvsm_data3 raw 200 200 1 open/syncd N/A
那么接下来就确认datavg是否还有剩余可用空间:
GD_HYWG_cManager2_A:/dev>lspv
hdisk0 0001e6b91e911b61 rootvg active
hdisk1 0001f369e182ea0e rootvg active
hdisk2 00062d67aec5d1eb datavg active
hdisk3 00062d67aec5d3bb datavg active
hdisk4 0001e6b99995a385 billingbakvg active
hdisk5 0001e6b99995b755 billingarchvg active
hdisk6 0001e6b9020606ed billingvg active
GD_HYWG_cManager2_A:/dev>lsvg datavg
VOLUME GROUP: datavg VG IDENTIFIER: 00062d670000d6000000011aaec5d738
VG STATE: active PP SIZE: 128 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 7806 (999168 megabytes)
MAX LVs: 256 FREE PPs: 740 (94720 megabytes)
LVs: 45 USED PPs: 7066 (904448 megabytes)
OPEN LVs: 41 QUORUM: 2 (Enabled)
TOTAL PVs: 2 VG DESCRIPTORS: 3
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 2 AUTO ON: no
MAX PPs per VG: 32768 MAX PVs: 1024
LTG size (Dynamic): 1024 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable
由上面可知,datavg还有740个FREE PPs,于是我们可以从这个VG中划分出几个LV,用于扩大数据库的表空间。
小技巧:
我们知道,在创建LV时,都是以PP为单位进行分配的,这样会给很初学者带来不便,比如我要划分一个20G的LV,那么该给多少个PP呢?
以这里的datavg为例:
首先:lsvg datavg --> PP的大小为128M,那么20G需要的PP数为:20*1024/128=160。
GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data3 datavg 160 -->20G
GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data4 datavg 240 -->30G
GD_HYWG_cManager2_A:/dev>mklv -t jfs2 -y ora10g_data5 datavg 240 -->30G
修改权限:
GD_HYWG_cManager2_A:/dev>chown oracle:dba rora10g_data[3-5]
GD_HYWG_cManager2_A:/dev>chown oracle:dba ora10g_data[3-5]
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 24 15:50:48 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> alter tablespace BILLING_DATA2 add datafile '/dev/rora10g_data3' size 20470M autoextend off;
SQL> alter tablespace BILLING_DATA2 add datafile '/dev/rora10g_data4' size 30710M autoextend off;
SQL> select file_name,tablespace_name,bytes/1024/1024 from dba_data_files where tablespace_name='BILLING_DATA2';
相关推荐
在本文中,我们将深入探讨如何在AIX操作系统上安装和配置Oracle 10G数据库。AIX(Advanced Interactive eXecutive)是IBM推出的一种基于Unix的操作系统,它以其稳定性和安全性而闻名,是许多企业级服务器的选择。...
在AIX操作系统上安装Oracle 10g是一项复杂的过程,需要对操作系统和数据库软件有深入的理解。以下是详细的步骤和相关知识点: 1. **硬件环境检查**: - **内存**:至少需要1024MB的物理内存,可以通过`/usr/sbin/...
在AIX_5.3上安装Oracle_10.2是一项技术性较强的IT操作,涉及到对系统的多个层面进行调整和优化,以确保数据库能够稳定、高效地运行。以下是对这一过程的详细解析: ### 一、系统环境确认 1. **查询系统版本**:...
在安装Oracle 10G数据库之前,首先需要有一个稳定的AIX操作系统环境。本文将详细介绍如何在AIX 5.3上进行Oracle 10G的安装准备和系统优化。 1. AIX系统的安装与配置 AIX 5.3是IBM的Unix操作系统,对于Oracle数据库...
- 扩展文件系统:为了容纳Oracle数据库文件,可能需要扩大根文件系统或创建新的文件系统。 - 增加swap:增加交换空间可以提升系统在高负载下的性能,防止因内存不足而引发的问题。 以上步骤是AIX上Oracle RAC安装...
1. 安装前准备:确保AIX系统满足Oracle的硬件和软件要求,例如内存、磁盘空间等。 2. 解压Oracle软件包:通常以RPM或tar格式提供,解压到合适目录。 3. 创建Oracle用户和组:如`oracle`用户和`dba`组,用于运行...
【文件系统与页面交换空间扩充】 5.1. 文件系统扩展通过chfs命令完成,增加/home、/usr、/var、/tmp目录的大小。 5.2. 页面交换空间扩展,使用chps -s命令增加hd6的大小,同时添加hdisk1到rootvg镜像,并执行...
在AIX操作系统中,添加逻辑卷(Logical Volume, LV)是一项常见的存储管理任务,用于扩展系统或特定服务的可用磁盘空间。在这个场景中,我们看到一个针对名为`yuxscp3`的数据库服务器进行LV扩展的过程,目的是解决...
在AIX操作系统上安装Oracle 10g是一项技术性较强的任务,涉及到多个步骤和系统配置。以下是对这个过程的详细说明: 首先,AIX系统安装是基础,这里使用的是AIX 5300L5版本。安装过程遵循标准指南,通常包括选择合适...
在安装Oracle之前还需要对AIX系统进行一些必要的配置,包括确认安装的AIX版本、扩大/usr文件系统的空间等。 ### 结论 本文详细介绍了Oracle数据库图形用户界面的相关知识点,并结合了Oracle 10g在AIX上安装准备工作...
根据提供的文档信息,我们可以归纳出以下关键知识点,主要聚焦于Oracle数据库系统在AIX平台上的安装及准备: ### 一、Oracle数据库实验背景 #### 课程名称:大型数据库系统 本课程旨在通过实验的方式,让学生深入...
本文将详细解析如何在AIX(Advanced Interactive eXecutive)操作系统下进行表空间的添加,包括对裸设备的处理、表空间的创建以及数据空间的扩展等关键步骤。 ### 添加表空间的背景 表空间是数据库管理系统中的一...
总的来说,处理Oracle数据文件不能自动扩充的问题需要综合考虑数据库和操作系统两方面的因素,合理规划存储空间,及时调整和优化数据库配置。通过学习和实践,DBA可以提高处理这类问题的能力,确保数据库系统的稳定...
//AIX系统中如何限制用户所使用文件的大小(AIX小型机有大文件限制) >#smit chuser 在菜单上选择要控制的用户, 并修改下面两项: Soft FILE size [aaa] Hard FILE size [aaa] 则修改后用户的文件大小最大为aaa×...
AIX (Advanced Interactive eXecutive) 是IBM开发的一种UNIX操作系统,专为Power架构的服务器设计。AIX 6.1是其第六个主要版本,提供了许多增强功能和改进,包括安全性、性能优化、管理工具以及对虚拟化的支持。 在...
根据提供的文档信息,我们可以归纳出以下关键知识点,主要聚焦于Oracle数据库系统在AIX平台上的安装及准备: ### 一、Oracle10.2的基本安装要求 #### 硬件需求 - **位数**: 必须是64位系统。 - **内存与交换区**: ...
在AIX操作系统环境下,可以使用`vmstat`命令来检查进程、虚拟内存、磁盘、分页和CPU的活动,以及`lspv paging space`命令来关注交换区的使用情况,确保paging space不会过高导致系统性能下降。此外,`iostat`命令...
- **用途**: 管理SAP系统中的数据库,如扩展表空间等。 - **示例**: 使用orap34用户运行sapdba命令来扩展表空间: - `su - orap34` - `sapdba c - a - …` - 当数据库备份失败或无法启动时,可以使用以下命令尝试...