`
LJ你是唯一LT
  • 浏览: 239719 次
社区版块
存档分类
最新评论

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

阅读更多
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  

分享到:
评论

相关推荐

    Oracle.11g.从入门到精通 (1/2)

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 9.4.2 存储参数...

    【数据库维护】-oracle远程维护程序

    通过远程连接Oracle数据库的方式实现对数据库进行管理维护 功能列表: 1) 查询优化SQL所需的表、索引的统计信息相关属性。... 9) 表空间自动添加数据文件(仅支持ASM)。 10) 生成SQL语句优化建议。

    DBA成长之路(ORACLE)

    一个数据库实例可以包含多个数据文件,一个数据 文件只能存储一个表空间。(添加网卡:devcon.exe install %windir%\inf\netloop.inf *msloop )  日志文件 日志文件,用于记录数据库所做的全部变更(如增加、删除...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    8-14 缺省临时表空间 8-15 缺省临时表空间的限制 8-16 脱机状态 8-17 只读表空间 8-19 删除表空间 8-20 改变表空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给表空间添加数据文件 8-24...

    Oracle11g从入门到精通2

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 ...

    赤兔Oracle数据库恢复软件 v11.6.zip

    28.自动检测数据文件的表空间号和文件号 29.导出的数据格式包括纯文本和DMP文件两种。以纯文本导出时,能够自动生成建表的SQL语句和SQL*Loader导入所需的control文件 30.支持DESC表,以显示表的列定义支持列出表的...

    Oracle11g从入门到精通

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 9.4.2 ...

    Oracle.11g.从入门到精通 (2/2)

    9.2.2 向表空间增加数据文件 9.3 解决空间不足的方法 9.3.1 增加数据文件大小 9.3.2 创建新表空间 9.3.3 动态增加表空间 9.3.4 三种方法的区别与比较 9.4 合理利用存储空间 9.4.1 采用正确的数据类型 9.4.2 存储参数...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    13.5.2数据文件脱机与恢复 13.5.3表空间脱机与恢复 13.6本章小结 第14章 RAC安全性 14.1数据访问安全性 14.1.1 Oracle安全性解决方案 14.1.2 VPD和OLS策略 14.2 Database Vault部署 14.2.1 Database Vault...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    3) 在线重做日志文件  逻辑结构 功能:数据库如何使用物理空间 组成:表空间、段、区、块的组成层次 六、 oracle安装、卸载和启动  硬件要求 物理内存:1GB 可用物理内存:50M 交换空间大小:3.25GB 硬盘...

    Oracle 11g基础能力培训交流

    Oracle简介 安装Oracle 11g ...介绍原理,归档日志文件,重做日志文件 启动/停止Oracle 使用EM管理,创建用户,表空间,建表 载入数据,查询表,闪回数据 数据导入导出IMP EXP help=y 创建序列和触发器

    vmware workstation7 安装oracle rac

    共享存储用于存储 Oracle RAC 的数据文件和日志文件。需要创建共享磁盘,并将其挂载到虚拟机节点上。 安装 Oracle RAC 在配置虚拟机和共享存储后,需要安装 Oracle RAC。安装过程包括安装 Oracle Enterprise Linux...

    oracle数据库笔记

    添加数据 40 1.Insert Into 表名 [ 字段列表 ] Values (值) 40 2.向表中插入空值 40 3.从其它表中拷贝数据 40 二. 更新数据 41 三. 删除数据 42 1.Delete 语句 42 2.Truncate 语句 42 四. SQL*Plus命令 42 1.设置...

    oracle数据库经典题目

    用户表空间用于分离不同应用的数据,而且能够减少读取数据文件时产生的I/O冲突。 6. 说明Oracle 10g数据库文本初始化参数文件与服务器初始化参数文件的区别。 答案: 文本初始化参数文件是一个本地的初始化参数文件...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

     通过提示及配置文件等来控制执行计划;  在程序中优化查询而无需改动代码。  作为Oracle SQL经典著作之一,本书为SQL开发人员指明了前行的方向,赋予了他们不断开拓的动力。 作者简介  KAREN MORTON 研究...

    oracle10g课堂练习I(2)

    表空间和数据文件 1-17 SYSTEM 和 SYSAUX 表空间 1-18 段、区和块 1-19 逻辑和物理数据库结构 1-20 课程示例: HR 方案 1-22 数据库体系结构:结构化组件概要 1-23 小结 1-24 2 安装 Oracle 数据库软件 ...

    Oracle 10g 开发与管理

    添加数据 40 1.Insert Into 表名 [ 字段列表 ] Values (值) 40 2.向表中插入空值 40 3.从其它表中拷贝数据 40 二. 更新数据 41 三. 删除数据 42 1.Delete 语句 42 2.Truncate 语句 42 四. SQL*Plus命令 42 1.设置...

Global site tag (gtag.js) - Google Analytics