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

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数据库、表空间及数据文件之间的关系

    当需要为表空间添加更多的存储空间时,可以通过添加新的数据文件或者扩展现有数据文件的大小来实现。 - **数据文件与数据库**:数据文件作为数据库文件的一种,它们是Oracle数据库中实际存储数据的地方。一个数据库...

    ORACLE导入数据文件到指定的表空间

    在Oracle数据库管理中,将数据文件导入到指定的表空间是一项常见的操作,这对于数据迁移、备份恢复或测试环境的构建至关重要。"ORACLE导入数据文件到指定的表空间"这个主题涉及了Oracle数据库的导入工具(IMP)、...

    oracle表空间和数据文件管理.pptx

    在逻辑层面,主要由表空间、段、区和块组成,而在物理层面,数据主要存储在数据文件、日志文件等文件中。本章重点介绍了Oracle的存储结构以及表空间和数据文件的管理。 首先,Oracle的存储结构分为物理存储结构和...

    Oracle 表空间建立方法

    表空间可以进行各种修改操作,包括添加数据文件、调整大小、更改状态等。 ##### 添加数据文件 ```sql ALTER TABLESPACE tablespace_name ADD DATAFILE 'path/filename.xxx' SIZE xM MAXSIZE xM/UNLIMITED; ``` - `...

    Oracle 12c中的表空间管理、用户和角色、临时Undo.pdf

    可以向永久表空间添加数据文件以增加存储容量。例如,可以使用ALTER TABLESPACE ADD DATAFILE语句向已存在的表空间中添加新的数据文件。同时,表空间的数据文件可以设置为自动扩展,以便在空间不足时自动增加文件...

    oraclerac增加asm盘创建表空间.docx

    以下是如何在Oracle RAC环境中增加ASM磁盘并创建表空间的详细步骤: 1. **环境准备**: - 使用虚拟化软件如Oracle VM VirtualBox搭建Oracle RAC环境,这里有两个节点:rac1和rac2,分别对应虚拟机CentOS_Oracle_2...

    Oracle必杀技物理删除数据文件恢复

    4. **添加丢失的数据文件**:使用`ALTER DATABASE ADD DATAFILE`命令重新添加数据文件。你需要提供原始文件的位置、大小等信息。如果文件已经彻底丢失,可能需要从备份中恢复。 5. **还原数据文件**:如果你有文件...

    ORACLE_表空间操作(图)

    表空间的属性可以在创建后通过ALTER TABLESPACE命令进行修改,包括添加数据文件、改变状态等: - **添加数据文件**: ```sql ALTER TABLESPACE IDO ADD DATAFILE 'f:\zjd\ido.dbf' SIZE 1M REUSE; ``` - **...

    oracle temp表空间不足解决方法

    - 增加数据文件:首先,你可以考虑向现有的Temp表空间添加新的数据文件。通过`ALTER TABLESPACE`命令,可以指定一个新的数据文件路径和大小,将其添加到表空间中。 - 扩大现有数据文件:如果不想增加新的数据文件...

    Oracle RAC增加ASM盘,创建表空间

    ASM 盘是 Oracle RAC 中的一个关键组件,用于存储数据库的数据文件、日志文件和控制文件等。 在本文中,我们将介绍如何在 Oracle RAC 中增加 ASM 盘,并创建表空间。实验环境为虚拟机软件 Oracle VirtualBox 4.3.8...

    大型数据库应用oracle实验报告.pdf

    SYS 登录到数据库,为 Users 表空间添加一个数据文件,修改上述数据文件为自动扩展方式,创建一个本地管理方式下自动分区管理的表空间,修改表空间的数据文件大小,添加一个数据文件,创建一个重做日志文件组等。...

    Oracle Rac 集群数据文件改变目录操作

    1. **表空间迁移**:使用ALTER TABLESPACE命令,将表空间的数据文件移动到新路径,同时更新表空间的定义。 2. **验证**:通过`DBA_DATA_FILES`等视图检查新路径是否生效。 3. **修改TEMP表空间**:与普通表空间类似...

    ORACLE 修改redo日志文件 大小的方法

    每当有数据修改时,Oracle会首先将这些更改写入redo日志文件,然后再更新到数据文件中。这种机制确保了在系统崩溃或突然断电的情况下,可以通过redo日志文件恢复未完成的事务,从而保证数据库的一致性和完整性。 ##...

    创建表空间及数据文件.txt

    以上四种方法分别展示了不同的操作场景:直接添加数据文件、添加时设置自动扩展、调整已有数据文件的自动扩展设置以及直接调整数据文件的大小。这些命令为Oracle数据库提供了灵活的数据文件管理方式,便于根据业务...

    修改ORACLE控制文件和日志

    控制文件是Oracle数据库的核心组成部分,它存储了数据库的元数据,如数据文件的位置、表空间信息、数据库创建日期等。当需要修改控制文件时,通常涉及以下场景: 1. **备份与恢复**:在进行数据库备份或灾难恢复时...

    Oracle应用项目——使用OracleEM创建表空间.pdf

    6. 查看SQL语句:在"添加数据文件"页面,你可以点击"显示SQL"来查看即将执行的创建表空间的SQL命令,这对于理解底层操作和手动创建表空间非常有帮助。 7. 配置存储选项:返回表空间创建界面,勾选"启用日志记录",这...

    oracle 12c SYSAUX表空间过大

    3. **扩展SYSAUX表空间**:如果空间需求仍然很高,可以考虑增加SYSAUX表空间的数据文件大小或添加新的数据文件。 4. **调整表空间管理策略**:根据实际需要,可以将部分对象移动到其他表空间,比如将索引移到独立的...

    oracle表空间入门.doc

    - **增加数据文件**:可以通过`ADD DATAFILE`命令向现有的表空间中添加新的数据文件。例如: ```sql ALTER TABLESPACE game ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M; ``` - **手动增加数据文件...

    oracle命令大全及关于oracle 1000问 日志管理,表空间管理,表,索引等等等等

    `CREATE TABLESPACE`命令用于创建新的表空间,`ALTER TABLESPACE`用于修改表空间属性,如添加或删除数据文件,`DROP TABLESPACE`则用于删除表空间。表空间的大小可以通过`ALTER DATABASE DATAFILE AUTOEXTEND`设置...

Global site tag (gtag.js) - Google Analytics