近期在对生产数据库表空间进行扩容,目的是春节期间保证表空间的使用率,不会出现紧急告警信息。
1、查看表空间使用率的SQL语句
set pagesize 200 col tablespace_name for a16 col SUM_SIZE(M) for 99999999 col USED_SIZE(M) for 99999999 col USED_RATE(%) for 99999999 col FREE_SIZE(M) for 99999999 SELECT d.tablespace_name, sum_blocks "SUM_BLOCKS", sum_size || ‘M‘ "SUM_SIZE(M)", sum_size - nvl(free_size, 0) || ‘M‘ "USED_SIZE(M)", nvl(free_size,0) || ‘M‘ "FREE_SIZE(M)", round((1 - nvl(free_size, 0) / sum_size) * 100, 2) || ‘%‘ "USED_RATE(%)" FROM (SELECT tablespace_name, round(SUM(bytes) / (1024 * 1024), 2) sum_size, SUM(blocks) sum_blocks FROM dba_data_files GROUP BY tablespace_name) d, (SELECT tablespace_name, round(SUM(bytes) / (1024 * 1024), 2) free_size FROM dba_free_space GROUP BY tablespace_name) f WHERE d.tablespace_name = f.tablespace_name(+) ORDER BY 5 DESC;
2、查看数据文件存放位置以及数据文件类型
SELECT file_name, a.autoextensible, a.status, a.online_status FROM dba_data_files a; #建议关闭自动扩展,自动扩展后,空间太庞大,不易于管理和维护
3、查看表空间是否是BIGFILE类型的表空间
SELECT a.tablespace_name, a.bigfile, a.extent_management, a.segment_space_management FROM dba_tablespaces a; #查看表空间是否是BIGfile文件,BIGFile类型表空间有个最大的SIZE限制,如果数据文件超过这个最大限制,则是很危险的。
Oracle10g引进了一个新的表空间类型(BIGFILE),相对于bigfile的类型就是smallfile,它不像传统的表空间那样最多由1022个文件组成;一个BIGFILE表空间只包含一个数据文件,根据选择的块的大小,最大从32TB至128TB。
查看表空间类型有:smallfile和bigfile,查看默认表空间类型:
select * from database_properties a where a.PROPERTY_NAME= ‘DEFAULT_TBS_TYPE‘;
修改默认表空间类型:
ALTER DATABASE SET DEFAULT bigfile tablespace;#修改默认表空间类型为Bigfile
4、查看卷组信息
查看VG是否有空间能够进行分区给逻辑卷。
命令:
lsvg -o #已经激活的卷组 lsvg datavg #查看datavg卷组基本信息 lsvg -l datavg #查看datavg具体有哪些逻辑卷组成 AIX 查看检索新的物理磁盘 lspv #查看现有磁盘信息 cfgmgr -v #进行系统扫盘 powermt display dev=all #查看是否有多链路磁盘 extendvg ‘datavg‘ ‘hdisk14 hdisk15‘ #将物理磁盘hdisk14,hdisk15加入到datavg里
mklv oradata_lv datavg 100 #创建一个叫oradata_lv的逻辑卷,并分配给它100个PP --从lsvg -l datavg的显示结果可看到,PPs:LPs=1:1说明大小是一致的
5、新增裸设备
新增裸设备的逻辑卷,最好是使用smitty mklv命令,使用mklv命令一般容易出错。
aix的裸设备是lv 1)smit lv 输入名字,如system_r500M 2)选择vg 选择datavg 3)输入lp个数 count(lp)= 总计大小/PP Size 4)然后输入设备类型raw(不要选择),创建成功后,返回/dev 5)查看ls -l,多了rsystem_r500M名称的设备,但属主是root 跟system 6)需要修改system_r500M和rsystem_r500M宿主权限 #chown oracle:oinstall system_r500M #chown oracle:oinstall rsystem_r500M
7)新增卷组
smitty mkvg
使用命令添加:
#mkvg -f -y‘datavg01‘ -s‘512‘ ‘-n‘ hdisk12 hdisk13 hdisk14
-f:强制卷组在指定的物理卷上创建
-y:卷组名称
-s:设置每个物理分区的兆字节数
-n:指定在系统重新启动时,卷组不是自动地可获得。缺省值是自动激活卷组。
-C:创建“提高的并发卷组”,仅使用-C和hacmp ES,在没有Hacmp ES产品的卷组和系统上不可用。
使用命令创建裸设备:
#mklv -t raw -y system_r500M -a m -e x -o y datavg 100 -t: 逻辑卷类型 raw代表裸设备,还支持jfs2,jfs等 -y:指定逻辑卷名代替系统生成的名称 -a:设定内部物理卷分配策略 m:在每个物理卷的外部中间扇区内分配逻辑分区,这是默认值。 -e:确定内部物理卷分配策略 x:根据最大物理卷数量分配 m:根据最小物理卷数量分配逻辑分区,这是缺省值。 -o:指定打开/关闭重叠I/O串行化 -w:打开active镜像写一致性以确保在通常的I/O处理中逻辑卷副本之间的数据一致性。p:打开,只适用于大卷组 n:没有镜像一致性
6、给表空间添加数据文件
alter tablespace system add datafile ‘/dev/rsystem_500M‘ size 450M;
7、rac+hacmp环境下添加裸设备
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 |
操作步骤: a:创建concurrent LV smit hacmp —>system manageent (c-spoc) —>HACMP Concurrent logical Volume Management —>concurrent logical volume —> add
a concurrent logical volume —>选择所在vgname —>选在所在pv name —>输入lp数量 注: physical volume name :可不选 logical volume name :system_500M(这里不用写上字符设备的R,不然以后不好区分) logical volume type:raw OK,其他默认即可 b:更改<span style= "color: rgb(255, 0, 0);" ><strong>各节点</strong></span>的属主,一般情况下数据文件会创建在/dev下,会产生r开头的文件和没有r开头的2个文件。 chown oracle:dba /dev/rsystem_500M 是r开头的设备。 注:补充一句,r开头的文件为字符设备,最小的传输单位8bit,而没有r开头的文件是块设备就是我们所说的block设备,他传输的最小单位是512byte。 c:为表空间扩展数据文件。 <span style= "color: rgb(255, 0, 0);" >一定要要在各节点上都要修改裸设备的宿主权限,否则另一个节点回报错误,没有权限去写。解决办法需要重启机器才可以,这对于生产库来说是很危险的。切记!! </span> |
原文:http://www.cnblogs.com/oracle-dba/p/3515821.html