unix oracle 存储增加表空间 ascmd,oracle在各种环境下扩展表空间

一、查看表空间使用状况

查看表空间的是使用率可以通过多种方式查看,比如oracle客户端管理器,OEM等等。这里使用命令方式查看:

SELECT tablespace_name, sum_m as "sum(M) " , sum_free as "sum_free(M) ",to_char(100*(sum_m-sum_free)/sum_m, '99.99') || '%' AS pct_free

FROM ( SELECT tablespace_name,sum(bytes)/1024/1024 AS sum_m FROM dba_data_files GROUP BY tablespace_name),

( SELECT tablespace_name AS ts_name, sum(bytes/1024/1024) AS sum_free FROM dba_free_space GROUP BY tablespace_name )

WHERE tablespace_name = ts_name (+)

Union

SELECT tablespace_name , sum_m as "sum(M) " , sum_free as "sum_free(M) " , to_char(100*(sum_m-sum_free)/sum_m, '99.99') || '%' AS pct_free

FROM (select tablespace_name, sum(bytes)/1024/1024 AS sum_m from dba_temp_files group by tablespace_name),

(select tablespace_name AS ts_name, sum(BYTES_FREE /1024/1024) AS sum_free from v$temp_space_header group by tablespace_name)

Where tablespace_name = ts_name (+)

order by pct_free;

二、数据库文件存储方式

Oracle的表空间存储方式主要有三种:

1. 文件系统(通常非/dev目录开头,如/oradata

2. 裸设备(通常是/dev/r****方式)

3. ASM(非/开头,以+开头)

如何查看表空间数据文件的存放位置,如下:

SQL>set linesize 200

SQL> col file_name format a50

SQL> col tablespace format a20

SQL> select file_id,file_name,tablespace_name from dba_data_files;

FILE_ID FILE_NAME TABLESPACE_NAME

1 +DATADG/primarydb/datafile/system.270.785597071 SYSTEM

2 +DATADG/primarydb/datafile/sysaux.269.785597073 SYSAUX

3 +DATADG/primarydb/datafile/undotbs1.264.785597075 UNDOTBS1

4 +DATADG/primarydb/datafile/users USERS

5 +DATADG/primarydb/datafile/test.261.785597131 TEST

6 +DATADG/primarydb/datafile/test.259.785597479 TEST

7 /oracle/lixz01.dbf LIXZ

8 /dev/ruser_data01 USER_DATA01

这个数据库中三种存储方式都有,1-6号数据文件存放在ASM的+DATADG中,7号数据文件存放在文件系统中,8号数据文件存放在裸设备中。

注:一般ORACLE不建议将数据文件以不同的方式存储,这里只是演示使用。

下面介绍下各个数据文件存储方式在不同操作系统下增加数据文件或者表空间的步骤。

三、文件系统

3.1 windows平台:

通过dba_data_files视图查出的数据文件目录通常以盘符开头(如D:\oradata)

打开我的电脑查看对应的磁盘分区剩余空间,确保满足需求。通过如下命令增加数据文件:

SQL>alter tablespace XX add datafile ‘D:\xx\xx.dbf’ size xxM;

3.2 UNIX操作系统

如果通过dba_data_files视图查出的数据文件是存放在unix/linux下的文件系统,通过以下方 式查看文件系统的剩余空间,如下:

SQL> !df -k

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/hda3 28337624 15770924 11103984 59% /

/dev/hda1 101086 11825 84042 13% /boot

tmpfs 1048576 383652 664924 37% /dev/shm

单位是kb,如’/’目录的剩余空间为11103984 K大约为10G。

如果子目录不是文件系统的挂载目录,则表示数据存放在根目录中。

确保相应的文件系统剩余空间满足需求。通过以下命令增加数据文件:

SQL>alter tablespace XX add datafile ‘/xx/xx.dbf’ size xxM;

四、裸设备

通常我们的生产系统如果使用裸设备,都与双机系统结合使用。不同的UNIX操作系统增加 裸设备的方法不同。

通过下列命令查看操作系统类型:

SQL> !uname -a

AIXhostname     1 6 00F6AD424C00---------------------------------------------------#AIX操作系统。

HP-UXhotname B.11.31 U ia64 1857089066 unlimited-user license-------------#HP-UX操作系统

4.1  AIX操作系统

1.查看双机的状态

# lssrc -g cluster

SubsystemGroup                     PID                  Status

clstrmgrEScluster                  9568604           active

2. 查看裸设备所在vg信息

如下:

# lslv lv_name

LOGICAL VOLUME: user_data08_03 VOLUME GROUP: xxvg

LV IDENTIFIER: 00c05d9500004c00000001263670d134.70 PERMISSION: read/write

VG STATE: active/complete LV STATE: opened/syncd

TYPE: raw WRITE VERIFY: off

MAX LPs: 512 PP SIZE: 1024 megabyte(s)

COPIES: 1 SCHED POLICY: parallel

LPs: 5 PPs: 5

STALE PPs: 0 BB POLICY: relocatable

INTER-POLICY: minimum RELOCATABLE: yes

INTRA-POLICY: middle UPPER BOUND: 1024

MOUNT POINT: N/A LABEL: None

从上面可以了解到数据文件存放的 vg是 xxvg、LV类型是 raw、PP大小为 1024M

3.增加共享LV

#smit cl_admin

-->

HACMP Logical Volume Management

-->

Shared Logical Volume

-->

Add  a  Shared Logical Volume

-->

选择相应的 Shared Volume Group

根据需求设定裸设备的大小:LP的个数n,对应的裸设备大小为n*lp _size .

Logigcal volume name根据数据文件的原来命名规则命名,如user_data01_08Logical volume type选择raw

4. 为裸设备授权

#chown oracle:dba /dev/rlv_name

#chmod 660 /dev/rlv_name

双机的各个节点都必须执行。

5. 增加数据文件

SQL>alter tablespace XX add datafile ‘/dev/rlv_name’size xxM;

注意:这里size大小必须小于裸设备的大小。

4.2 HP-UX操作系统

1.查看双机的状态

#cmviewcl -v

CLUSTER STATUS

cluster1 up

NODE STATUS STATE

db1 up running

PACKAGE STATUS STATE AUTO_RUN NODE

db_pkg up running enabled db1

NODE STATUS STATE

db2 up running

查看到2个节点正常运行双机,数据库资源在db1节点上运行。

2. 查看vg与lv信息,找到数据文件对应的裸设备所在的vg

如:

# lvdisplay lv_name

--- Logical volumes ---

LV Name lv_name

VG Name /dev/vgxx

LV Permission read/write

LV Status available/syncd

Mirror copies 1

Consistency Recovery MWC

Schedule parallel

LV Size (Mbytes) 30720

Current LE 960

Allocated PE 1920

Stripes 0

Stripe Size (Kbytes) 0

Bad block on

Allocation strict

IO Timeout (Seconds) default

从上面可以了解到数据文件存放的vg是vgxx

3. 创建裸设备

在数据库运行的节点创建裸设备:

#lvcreate -n lv_name-L xx /dev/vgxx

Lv_name:根据数据文件的原来命名规则命名,如user_data01_08

-L参数的单位为M,根据需求设置大小。

4. 同步VG信息

在创建LV的节点上导出vg信息,并复制到另一个节点:

查看vgxx的group id

#ll /dev/*/group

crw-r-----1 root            sys         640x020000Apr              1 18:47  /dev/vgxx/group

#vgexport-p -v -s -m /tmp/vgxx.map   /dev/vgxx

#rcp /tmp/vgxx.mapserver-b: /tmp/vgxx.map

在另一个节点导入vg信息:

先清空原来的vg信息

#vgexport /dev/vgxx

#mkdir /dev/vgxx

#mknode /dev/vgxx/group c 640x020000-------------------------------#该group id上面查看得到

#vgimport -v -s -m /tmp/vgxx.mapvgxx

5.为裸设备授权

#chown oracle:dba /dev/vgxx/rlv_name

#chmod 660 /dev/vgxx/rlv_name

双机的各个节点都必须执行。

6. 增加数据文件

SQL>alter tablespace XX add datafile ‘/dev/vgxx/rlv_name’size xxM;

注意:这里size大小必须小于裸设备的大小。

五、ASM

在oracle 10g以后oracle新增了一种存储方式自动存储管理(ASM),ASM省去了操作系统方式的管理数据文件,而通过oracle自身管理。如果通过dba_data_files视图查出以ASM方式存储数据文件,

可以通过以下方式增加数据文件。 如何查看ASM的diskgroup剩余空间:

Oracle 10g:

在第一个节点执行:

#su -oracle

$export ORACLE_SID=+ASM1

$asmcmd

ASMCMD>lsdg

Oracle 11g:

#su - grid

$asmcmd

ASMCMD>lsdg

确保相应的diskgroup Free_MB满足需求。

通过以下命令增加数据文件:

SQL>alter tablespace XX add datafile ‘+XX’size xxM;

注意:ASM增加数据文件或者创建表空间不需要指定数据文件名,只要指定diskgroup即可!ASM会自动命名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值