OracleTemp临时表空间处理

OracleTemp临时表空间处理,第1张

Temporary tablespace是oracle里临时表空间 临时表空间主要用途是在数据库进行排序运算 管理索引 访问视图等 *** 作时提供临时的运算空间 当运算完成之后系统会自动清理 当oracle里需要用到sort的时候 PGA中sort_area_size大小不够时 将会把数据放入临时表空间里进行排序 同时如果有异常情况的话 也会被放入临时表空间 正常来说 在完成Select语句 create index等一些使用TEMP表空间的排序 *** 作后 Oracle是会自动释放掉临时段的 但有些有侯我们则会遇到临时段没有被释放 TEMP表空间几乎满的状况 甚至是我们重启了数据库仍没有解决问题

排序是很耗资源的 Temp表空间满了 关键是优化你的语句 尽量使排序减少才是上策

Temp表空间满时的处理方法

一 修改参数(仅适用于 i及 i以下版本)

修改一下TEMP表空间的storage参数 让Smon进程观注一下临时段 从而达到清理和TEMP表空间的目的

SQL>alter tablespace temp increase

SQL>alter tablespace temp increase

二 kill session

使用如下语句a查看一下认谁在用临时段

SELECT se username se SID se serial# se sql_address se machine se program su TABLESPACE

su segtype   su CONTENTS FROM v$session se v$sort_usage su

WHERE se saddr = su session_addr

kill正在使用临时段的进程

SQL>Alter system kill session sid serial#

把TEMP表空间回缩一下

SQL>Alter tablespace TEMP coalesce

这处方法只能针对字典管理表空间(Dictionary Managed Tablespace) 于本地管理表空间(LMT:Local Managed Tablespace) 不需要整理的 i以后只能创建本地管理的表空间

CREATE TABLESPACE TEST DATAFILE D:\TEST dbf SIZE M EXTENT MANAGEMENT DICTIONARY

CREATE TABLESPACE TEST DATAFILE D:\TEST dbf SIZE M EXTENT MANAGEMENT LOCAL

三 重启数据库库

库重启时 Smon进程会完成临时段释放 TEMP表空间的清理 *** 作 不过很多的时侯我们的库是不允许down的 所以这种方法缺少了一点的应用机会 不过这种方法还是很好用的

四 使用诊断事件的一种方法 也是最有效的一种方法

确定TEMP表空间的ts#

SQL>select ts# name from sys ts$

TS# NAME

SYSTEM

UNDOTBS

SYSAUX

TEMP

USERS

UNDOTBS

执行清理 *** 作

SQL>alter session set events immediate trace name DROP_SEGMENTS level

说明

temp表空间的TS# 为 So TS#+ =

重建TEMP 表空间

Temporary tablespace是不能直接drop默认的临时表空间的 不过我们可以通过以下方法来做

准备 查看目前的Temporary Tablespace

SQL>select name from v$tempfile

NAME

———————————————————————

D:\ORACLE\ORADATA\TEST\TEMP DBF

SQL>select username temporary_tablespace from dba_users

USERNAME                    TEMPORARY_TABLESPACE

MGMT_VIEW                  TEMP

SYS                                  TEMP

SYSTEM                         TEMP

DBSNMP                        TEMP

SYSMAN                         TEMP

创建中转临时表空间

create temporary tablespace  TEMP TEMPFILE E:\ORACLE\ORADATA\ORCL\temp DBF SIZE M REUSE AUTOEXTEND ON NEXT  M MAXSIZE UNLIMITED

改变缺省临时表空间 为刚刚创建的新临时表空间temp

alter database default  temporary tablespace  temp

删除原来临时表空间

drop tablespace temp including contents and datafiles

重新创建临时表空间

create temporary tablespace  TEMP TEMPFILE E:\ORACLE\ORADATA\ORCL\temp DBF SIZE M REUSE AUTOEXTEND ON NEXT  M MAXSIZE UNLIMITED

重置缺省临时表空间为新建的temp表空间

alter database default  temporary tablespace  temp

删除中转用临时表空间

drop tablespace temp including contents and datafiles

如果有必要 那么重新指定用户表空间为重建的临时表空间

alter user arbor temporary tablespace  temp

查看表空间语句 不过查不出Temp表空间

SELECT UPPER(F TABLESPACE_NAME) 表空间名

D TOT_GROOTTE_MB 表空间大小(M)

D TOT_GROOTTE_MB F TOTAL_BYTES 已使用空间(M)

TO_CHAR(ROUND((D TOT_GROOTTE_MB F TOTAL_BYTES) / D TOT_GROOTTE_MB * )

) 使用比

F TOTAL_BYTES 空闲空间(M)

F MAX_BYTES 最大块(M)

FROM (SELECT TABLESPACE_NAME

ROUND(SUM(BYTES) / ( * ) ) TOTAL_BYTES

ROUND(MAX(BYTES) / ( * ) ) MAX_BYTES

FROM SYS DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) F

(SELECT DD TABLESPACE_NAME

ROUND(SUM(DD BYTES) / ( * ) ) TOT_GROOTTE_MB

FROM SYS DBA_DATA_FILES DD

GROUP BY DD TABLESPACE_NAME) D

WHERE D TABLESPACE_NAME = F TABLESPACE_NAME

lishixinzhi/Article/program/Oracle/201311/17017

使用plsql developer怎么对oracle增加表空间和使用者 建立表空间:

create tablespace tbs1 datafile '/u01/app/oracle/oradata/orcl/tbs01.dbf' size 20m

如果想往表空间里面加资料档案,可以执行:

Alter tablespace tablespace_name add datafile '/u01/app/oracle/oradata/orcl/tbs02.dbf' size 100M autoextend on next 10m maxsize unlimited

建立使用者:

create user username identified by password default tablespace users

有不懂的可以继续交流

oracle 12c怎么建表空间和使用者

在Oracle12c之前,例项与资料是一对一或者多对一的关系(RAC):即一个数据实例只能与一个数据库相关联,资料库可以被多个例项所载入。

但是,例项与资料库不可能是一对多的关系。

建立表空间:

CREATE TABLESPACE A LOGGING DATAFILE 'G:\oracle\product\10.2.0\oradata\tbs_etl_data01.dbf' SIZE 521M AUTOEXTEND OFF

解释:A为要建立的表空间名称,DATAFILE 是表空间存放位置,SIZE是表空间大小。AUTOEXTEND OFF设定表空间自动扩充套件(表空间不足时自动扩充套件)。

建立使用者:

create user Test identified by Test1 default tablespace A;

解释:Test为使用者名称,Test1为密码 ,A为设定的预设表空间

oracle怎样建立表空间和使用者

oracle怎样建立表空间和使用者

.临时表空间

create temporary tablespace 表空间名 --建立临时表空间

tempfile '路径\档名.dbf' --临时表空间的路径已经临时表空间名字

size 50m autoextend on next 50m --表空间出事空间大小50M,自动增加,步长是50M,后面还可以跟最大值,比如 maxsize 20480m

extent management local--表空间管理方式

首先是Oracle的安装,具体安装的Oracle的步骤这边就不进行介绍了,在我另一篇经验中会讲到如何安装Oracle。

2

Oracle安装完成后,是自带例项的,建议:如果进行新的开发,可以自己建一个例项,这边就不进行赘述。这边需要用到一个软体:PLSQL来进行 *** 作资料库例项,进行建立表和使用者。

3

安装完成PLSQL后,开启sql命令视窗,这个就是编写SQL语句的文字框。

在文中写入对应的sql语句

4

建立表空间语句:

create tablespace user_data datafile 'D:\ a.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local

5

建立表空间内的使用者:

create user username identified by password default tablespace user_data

6

给使用者授予许可权 :

grant connect,resource,dba to username

用sys或system登入资料库。

建表空间

create tablespace tbs_data datafile 'D:\ORACLE\TBS_DATA01.DBF' autoextend on next 32m maxsize 4g

建使用者

create user test_user identified by test_password default tablespace tbs_data temporary tablespace temp

grant connect,resource to test_user

建立表空间和使用者的步骤:使用者建立:create user 使用者名称 identified by "密码"授权:grant create session to 使用者名称 grant create table to 使用者名称 grant create tablespace to 使用者名称 grant create view to 使用者名称表空间建立表空间(一般建N个存资料的表空间和一个索引空间):create tablespace 表空间名datafile ' 路径(要先建好路径)\***.dbf ' size *Mtempfile ' 路径\***.dbf ' size *Mautoextend on --自动增长--还有一些定义大小的命令,看需要 default storage( initial 100K, next 100k,)例子:建立表空间create tablespace DEMOSPACE datafile 'E:/oracle_tablespaces/DEMOSPACE_TBSPACE.dbf' size 1500M autoextend on next 5M maxsize 3000M删除表空间drop tablespace DEMOSPACE including contents and datafiles使用者许可权授予使用者使用表空间的许可权:alter user 使用者名称 quota unlimited on 表空间或 alter user 使用者名称 quota *M on 表空间--表空间CREATE TABLESPACE sdtDATAFILE 'F:\tablespace\demo' size 800M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO--索引表空间CREATE TABLESPACE sdt_IndexDATAFILE 'F:\tablespace\demo' size 512M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO--2.建使用者create user demo identified by demo default tablespace demo--3.赋权grant connect,resource to demogrant create any sequence to demogrant create any table to demogrant delete any table to demogrant insert any table to demogrant select any table to demogrant unlimited tablespace to demogrant execute any procedure to demogrant update any table to demogrant create any view to demo--汇入汇出命令 ip汇出方式: exp demo/demo@127.0.0.1:1521/orcl file=f:/f.dmp full=yexp demo/demo@orcl file=f:/f.dmp full=yimp demo/demo@orcl file=f:/f.dmp full=y ignore=y

以建立一个shopping表空间,和一个shopping使用者为例

--建表空间create tablespace shoppingdatafile 'shopping.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local --建使用者create user shopping identified by shoppingdefault tablespace shopping--授权grant connect,resource,dba to shopping


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11601956.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存