oracle在各种环境下扩展表空间
来源:互联网 发布:魏红元 注会 知乎 编辑:程序博客网 时间:2024/06/14 21:28
一、查看表空间使用状况
查看表空间的是使用率可以通过多种方式查看,比如 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 SYSTEM2 +DATADG/primarydb/datafile/sysaux.269.785597073 SYSAUX3 +DATADG/primarydb/datafile/undotbs1.264.785597075 UNDOTBS14 +DATADG/primarydb/datafile/users USERS5 +DATADG/primarydb/datafile/test.261.785597131 TEST6 +DATADG/primarydb/datafile/test.259.785597479 TEST7 /oracle/lixz01.dbf LIXZ8 /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% /boottmpfs 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
AIX hostname 1 6 00F6AD424C00---------------------------------------------------#AIX操作系统。
HP-UX hotname B.11.31 U ia64 1857089066 unlimited-user license-------------#HP-UX操作系统
4.1 AIX操作系统
1. 查看双机的状态
# lssrc -g cluster
Subsystem Group PID Status
clstrmgrES cluster 9568604 active
2. 查看裸设备所在 vg信息
如下:
# lslv lv_nameLOGICAL VOLUME: user_data08_03 VOLUME GROUP: xxvgLV IDENTIFIER: 00c05d9500004c00000001263670d134.70 PERMISSION: read/writeVG STATE: active/complete LV STATE: opened/syncdTYPE: raw WRITE VERIFY: offMAX LPs: 512 PP SIZE: 1024 megabyte(s)COPIES: 1 SCHED POLICY: parallelLPs: 5 PPs: 5STALE PPs: 0 BB POLICY: relocatableINTER-POLICY: minimum RELOCATABLE: yesINTRA-POLICY: middle UPPER BOUND: 1024MOUNT 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 -vCLUSTER STATUScluster1 up NODE STATUS STATEdb1 up runningPACKAGE STATUS STATE AUTO_RUN NODEdb_pkg up running enabled db1 NODE STATUS STATEdb2 up running
查看到 2个节点正常运行双机,数据库资源在 db1节点上运行。
2. 查看 vg与 lv信息,找到数据文件对应的裸设备所在的 vg
如:
# lvdisplay lv_name--- Logical volumes ---LV Name lv_nameVG Name /dev/vgxxLV Permission read/writeLV Status available/syncdMirror copies 1Consistency Recovery MWCSchedule parallelLV Size (Mbytes) 30720Current LE 960Allocated PE 1920Stripes 0Stripe Size (Kbytes) 0Bad block onAllocation strictIO 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 640x020000 Apr 1 18:47 /dev/vgxx/group
#vgexport -p -v -s -m /tmp/vgxx.map /dev/vgxx
#rcp /tmp/vgxx.map server-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.map vgxx
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会自动命名。
- oracle在各种环境下扩展表空间
- linux系统下Oracle表空间扩展
- Oracle 扩展表空间
- oracle扩展表空间
- oracle表空间扩展
- oracle扩展表空间
- Oracle表空间扩展
- 扩展oracle表空间
- Oracle表空间扩展
- Oracle表空间扩展
- ORACLE扩展表空间
- oracle扩展表空间
- Oracle表空间扩展
- oracle 扩展表空间
- oracle扩展表空间
- oracle 表空间扩展
- oracle表空间扩展
- Oracle扩展表空间
- [控件]NotificationManager提示通知(三)自定义通知
- 给图片设置圆角 使用CALayer
- Asterisk文件AMI接口
- Euler–Lagrange equation
- 孙鑫MFC笔记之十七--HOOK编程
- oracle在各种环境下扩展表空间
- C#中return语句使用简单介绍
- 如何快速进入屏保模式
- jdom解析xml提示Connection timed out错误
- (四) MySQL索引---让MySQL高效运行起来
- 选择绑定数据源时的提示信息与DataSet数据集中的信息不一致的故障
- bool 一个操作符关键字
- 操作系统经典书籍推荐
- jQuery 网页选项卡