oracle表空间+添加数据文件+日志文件

[size=small]oracle表空间+添加数据文件+日志文件

1.mount状态下查看数据文件,临时文件,日志文件
SQL> select file#,name,status,bytes/1024/1024 from v$datafile; --默认是4个数据文件
FILE# NAME STATUS BYTES/1024/1024
---------- ------- ------- ---------------
1 /u01/oradata/tinadb/system01.dbf SYSTEM 710
2 /u01/oradata/tinadb/sysaux01.dbf ONLINE 610
3 /u01/oradata/tinadb/undotbs01.dbf ONLINE 90
4 /u01/oradata/tinadb/users01.dbf ONLINE 5

SQL> select file#,name,status,bytes/1024/1024 from v$tempfile; --默认是1个临时文件
1 /u01/oradata/tinadb/temp01.dbf ONLINE 29

sql>select * from v$logfile; --默认是3个日志文件,大小是50m
GROUP# STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE
---------- ------- -------
3 ONLINE /u01/oradata/tinadb/redo03.log NO
2 ONLINE /u01/oradata/tinadb/redo02.log NO
1 ONLINE /u01/oradata/tinadb/redo01.log NO

SQL> select group#,thread#,members,archived,status,bytes/1024/1024 from v$log; ---还有一个v$log视图(日志还有日志组,日志组成员member的概念,具体可以查一下百度)
GROUP# THREAD# MEMBERS ARCHIVED STATUS BYTES/1024/1024
---------- ---------- ---------- -------- ---------------- ---------------
1 1 1 YES INACTIVE 50
2 1 1 YES INACTIVE 50
3 1 1 NO CURRENT 50

SQL> select * from v$tablespace; --默认是5个表空间,每个表空间一个数据文件
TS# NAME INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
0 SYSTEM YES NO YES
1 SYSAUX YES NO YES
2 UNDOTBS1 YES NO YES
4 USERS YES NO YES
3 TEMP NO NO YES


2.open状态下查看数据文件,临时文件,日志文件
SQL> select file_id,tablespace_name,bytes/1024/1024,status,autoextensible,increment_by from dba_data_files;
FILE_ID TABLESPACE_NAME BYTES/1024/1024 STATUS AUT INCREMENT_BY
---------- ------------------------------ --------------- --------- --- ------------
4 USERS 5 AVAILABLE YES 160
3 UNDOTBS1 90 AVAILABLE YES 640
2 SYSAUX 610 AVAILABLE YES 1280
1 SYSTEM 710 AVAILABLE YES 1280 ---都是自动扩展的

SQL> select file_id,tablespace_name,bytes/1024/1024,status,autoextensible,increment_by from dba_temp_files;
FILE_ID TABLESPACE_NAME BYTES/1024/1024 STATUS AUT INCREMENT_BY
---------- ------------------------------ --------------- ------- --- ------------
1 TEMP 29 ONLINE YES 80


3.查看某个表空间的大小
select maxbytes/1024/1024/1024 from dba_data_files where tablespace_name='BASE_DATA';
MAXBYTES/1024/1024/1024
-----------------------
933.571289 900多个g 现在已经用了850多个g 差不多91%,要改成85% 后来变成了1200g

查看所有表空间的使用情况
select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b
where a.tablespace_name=b.tablespace_name
order by ((a.bytes-b.bytes)/a.bytes) desc;

4.给表空间添加数据文件
说明:如果是ASM,那么就填写相应的路径,如'+DATA_DG' '+FRA_1'之类的。
如果是文件系统,那么就直接指向直接路径即可。
ASM 环境下,add tablespace 加datafile ,可以使用自动扩展,next size 100M
文件系统,尽量不要开自动扩展,因为可能会导致磁盘使用100%,直接指定固定值即可。

4.1 大文件表空间添加数据文件:
查看是否是大文件表空间
select tablespace_name, bigfile from dba_tablespaces where tablespace_name='';
添加
alter tablespace BASE_DATA add datafile '+DATA1' size 30g autoextend on next 100m maxsize 500m;
--ORA-32771:cannot add file to bigfile tablespace bigfile tablespace 大文件表空间只能有一个数据文件。

alter tablespace BASE_DATA autoextend on next 100m maxsize 1200g; bigfile
只有一个数据文件,每次自动扩展100m,整个数据文件最终达到1.2T

4.2 普通表空间添加数据文件
alter database datafile '' size 20g autoextend on next 100m maxsize 1000m; smallfile
当前大小:20g 下次扩展100m,可以扩展10次,到1000m,就不可以扩展。
自动扩展100m -----12800

4.3 裸设备添加数据文件
(1)列出所有VG
root@ossrac1:/>lsvg
rootvg
datavg01
datavg02
datavg03
datavg04
mndhb_vg_01
mndhb_vg_02
mndhb_vg_03
arch1vg
datavg05
datavg06
ggvg

(2)找出VG中没有当前被使用的lv
root@ossrac1:/>lsvg -l datavg06 | grep close
lsvg -l datavg04 | grep close
v_mb0631_16g raw 32 32 4 closed/syncd N/A
v_mb0637_16g raw 32 32 4 closed/syncd N/A
v_mb0638_16g raw 32 32 4 closed/syncd N/A
v_mb0639_16g raw 32 32 4 closed/syncd N/A
v_mb0640_16g raw 32 32 4 closed/syncd N/A
v_mb0641_16g raw 32 32 4 closed/syncd N/A

(3)查看LV的大小,LV的大小为<PP SIZE> * <PPS>,该LV的小为512M*32=16G ,核查状态是否为“closed/syncd“
root@ossrac1:/>lslv v_mb0631_16g
LOGICAL VOLUME: v_mb0631_16g VOLUME GROUP: datavg06
LV IDENTIFIER: 00cc885100004c000000013a1a12f671.335 PERMISSION: read/write
VG STATE: active/complete LV STATE: closed/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 512 megabyte(s)
COPIES: 1 SCHED POLICY: striped
LPs: 32 PPs: 32
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: maximum RELOCATABLE: no
INTRA-POLICY: middle UPPER BOUND: 4
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes (superstrict)
Serialize IO ?: NO
STRIPE WIDTH: 4
STRIPE SIZE: 128k
DEVICESUBTYPE : DS_LVZ
COPY 1 MIRROR POOL: None
COPY 2 MIRROR POOL: None
COPY 3 MIRROR POOL: None

(4)查看裸设备的权限,注意在LV的名称前做个一个”r”
root@ossrac1:/>ls -l /dev/rv_mb0631_16g
crw-rw---- 1 oracle dba 48,335 Sep 07 00:30 /dev/rv_mb0631_16g

(5)登陆库核查该裸设备有没有被使用
select * from dba_data_files f where f.file_name like '%v_mb0631_16g%'
select * from dba_temp_files f where f.file_name like '%v_mb0631_16g%';

(6)如上一步没有返回记录,则可使用, 文件大小为LV的大小减去32M,16*1024 – 32 = 16352
alter tablespace UNDOTBS4 add datafile '/dev/rv_mb0631_16g ' size 16352M autoextend off;


5.添加日志组,日志组添加成员
注意,只有当日志组状态为INACTIVE时,才可以对该组进行操作,当然你也可以切换一下:
alter system switch logfile;

alter database add logfile group 4 '/u01/oradata/tinadb/redo04.log' size 500m;
alter database add standby logfile group 4 '/u01/oradata/tinadb/redo04.log' size 500m; ---如果有standb db,那么那边也需要一同添加
alter database drop logfile group 3; --删除组

alter database add logfile member '/u01/oradata/tinadb/redo04_2.log' to group 4;
alter database drop logfile member '/u01/oradata/tinadb/redo04_2.log'; --删除组成员

6.查看表空间的使用率
set linesize 256
with ta as
(select tablespace_name, sum(decode(MAXBYTES,0 ,BYTES,MAXBYTES)) / 1024 / 1024 as file_mb
from dba_data_files
group by tablespace_name),
tb as
(select tablespace_name, sum(bytes) / 1024 / 1024 as seg_mb
from dba_segments
group by tablespace_name)
select ta.tablespace_name,
ta.file_mb,
tb.seg_mb,
Ta.file_mb-tb.seg_mb as free_mb,
round(seg_mb * 100 / file_mb) / 100 as usepecent,
round(seg_mb/0.8-file_mb) as needadd
from ta, tb
where ta.tablespace_name = tb.tablespace_name
order by usepecent desc;

7.修改自动扩展为100M
查看哪些数据文件开了自动扩展:--自动扩展的数据文件最大会扩展到32g
select file_name,autoextensible,increment_by from dba_data_files where autoextensible='YES';

select 'alter database datafile '''|| file_name || ''' autoextend on next 100m ;' from dba_data_files where autoextensible = 'YES' and increment_by < 12800;
alter database datafile '/u01/oradata/tinadb/users01.dbf' autoextend on next 100m;

8.创建新用户
创建单独的表空间
SQL> create tablespace ts_tina datafile '/u01/oradata/tinadb/ts_tina01.dbf' size 500m;
Tablespace created.

创建用户
SQL> create user tina identified by tina123 default tablespace ts_tina temporary tablespace temp;
User created.

授权
SQL> grant dba to tina;
Grant succeeded.

修改默认表空间
SQL> alter database default tablespace ts_tina;
Database altered.

9.Undo切换成表空间tbs2:
SQL> CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '+DATA_DG' SIZE 2000M AUTOEXTEND ON NEXT 100M;
Tablespace created.
SQL> alter system set undo_tablespace='UNDOTBS2' scope=both;
System altered.

10.查询表所属于的表空间,注意对象名在数据库中是以大写存放的。
SQL> select owner,table_name,tablespace_name from dba_tables where table_name=upper('ti_vms_driving_log_bak');

OWNER TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
VMS TI_VMS_DRIVING_LOG_BAK TB_VMS

11.查询整个库的大小:
select sum(bytes)/1024/1024/1024 from dba_segments;

12.如何关闭自动扩展
SQL> alter database datafile '/u01/oradata/tinadb/ts_tina01.dbf' autoextend off;

13.删除表空间
SQL> drop tablespace TS_TINA include contents and datafiles;
删除表空间包括目录和数据文件。

14.大文件表空间
1)bigfile tablespace的属性:
1.只能有一个数据文件
2.BigFile表空间必须是AUTO管理的方式
3.查看默认的表空间类型
SELECT * from database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
---------------- ----------------- -----------------
DEFAULT_TBS_TYPE SMALLFILE Default tablespace type

2)大文件表空间的大小:
发现表空间文件容量与DB_BLOCK_SIZE有关,
在初始建库时,DB_BLOCK_SIZE要根据实际需要,
设置为4K,8K、16K、32K、64K等几种大小,
ORACLE的物理文件最大只允许4194304个块(由操作系统决定),

smallfile tablespace表空间文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。
即:
4k最大表空间为:16384M=16G
8K最大表空间为:32768M=32G
16k最大表空间为:65536M=64G
32K最大表空间为:131072M=128G
64k最大表空间为:262144M=256G
---------------------------------------------------------------------
Oracle 10g 新增的表空间类型:大文件 (Bigfile) 表空间。      
大文件表空间从某种角度来说提高了 Oracle 在 VLDB 上的管理能力。
只有自动段空间管理的 LMT (Locally Managed Tablespaces ) 支持 BIGFILE 表空间。
大文件表空间只能包含一个文件,但是文件可以达到 4G 个数据块大小。
(以下用 BFT 指代 BIGFILE Tablespace。BFT 可以和以下存储技术结合使用:
自动存储管理(ASM)   LVM   OMF   
理论上的 BFT 可以达到下面所列的值:     
数据块大小(单位:K) BFT 最大值(单位:T)   
2k 8T   
4k 16T   
8k 32T   
16k 64T   
32k 128T  

[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值