2 xiezhaofeng1 xiezhaofeng1 于 2014.10.19 14:36 提问

关于oracle安装到建立表空间

安装oracle时,创建的用户,有什么作用?跟sysdba,表空间之类的,有直接关系吗?syadba创建用户后,此用户是不是就拥有了表空间? 还是要书写相关的代码,求说明及代码操作.

2个回答

lzp_lrp
lzp_lrp   Ds   Rxr 2014.12.30 08:48

表空间的概念

一、TableSpace管理准则

1、使用多个TableSpace

* 用户数据与数据字典数据分离,减少竞争
* 应用程序之间的数据分离,防止某个TableSpace脱机后对多个程序造成影响
* 不同磁盘驱动器上存储数据,减少I/O竞争
* 回滚段数据与用户数据分离,防止单磁盘故障造成数据永久丢失
* 可以控制单个TableSpace脱机,提供更高的整体可用性
* 为特定类型数据库使用保留TableSpace,可优化TableSpace的使用
* 可以备份单独的TableSpace

2、指定表空间默认的存储参数

为TableSpace设置合适的参数,下文中详细介绍。

3、为用户指定表空间限额

可以有效控制TableSpace的大小,限制用户权限防止发生意外。

二、创建TableSpace

1、创建本地管理TableSpace

Oracle创建的TableSpace默认均是本地管理的,明确的表述应该是:
在CREATE TABLESPACE 语句中 EXTENT MANAGEMENT 子句中指定 LOCAL

然后可以用 AUTOALLOCATE 选项(默认)来使Oracle自动管理盘区
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

也可以使用一个指定大小(UNIFORM SIZE)的同意盘区来管理该TableSpace
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

如果未指定盘区大小,则默认为1M,说明数据文件至少要大于1MB

注:如果TableSpace被期望用于包含需要不同盘区大小和拥有很多盘区的大小变动的对象,那选择AUTOALLOCATE是最好的选择。AUTOALLOCATE是一种管理TableSpace的简便方法,只是有可能会对一些空间造成浪费。如果需要准确控制未用空间,并能够精确预计为一个或多个对象要非配的空间和盘区大小,那就可以使用UNIFORM。

2、在本地管理TableSpace中指定段空间管理

可使用 SEGMENT SPACE MANAGEMENT子句来设置端控件的管理模式,有以下几种模式:

MANUAL(默认):使用段中管理空闲空间的空闲列表。
AUTO:使用位图来管理段中的空闲空间。又称为自动段空间管理。

AUTO立功了一种更加简单、有效的管理方法,完全消除了为表空间中创建的段指定和调整PCTUSED、FREELISTS、FREELISTS GROUPS属性的任何必要。

CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

注:LOB类型不能指定自动段空间管理。

3、修改本地管理TableSpace

* 不能讲本地管理TableSpace改为本地管理的temp TableSpace
* 不能改变TableSpace的段空间管理办法
* 本地管理TableSpace没有必要合并空闲盘区

* 可以添加数据文件
* 可以改变TableSpace状态(ONLINE/OFFLINE)
* 修改TableSpace为只读or只写
* rename数据文件
* 启用/禁用该TableSpace数据文件的自动盘区大小

4、创建字典管理的TableSpace

CREATE TABLESPACE tbsb
DATAFILE '/u02/oracle/data/tbsb01.dbf' SIZE 50M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE (
INITIAL 50K
NEXT 50K
MINEXTENTS 2
MAXEXTENTS 50
PCTINCREASE 0);

使用ALTER TABLESPACE语句可以进行以下操作:

* 添加一个新的文件
* 改变默认的存储参数
* 合并TableSpace的空闲空间
* 可以改变TableSpace状态(ONLINE/OFFLINE)
* 修改TableSpace为只读or只写
* rename数据文件
* 启用/禁用该TableSpace数据文件的自动盘区大小

5、临时表空间

临时表空间主要用于提高多个排序操作的并发能力、减小开销,或避免Oracle空间管理操作在一起进行。临时表空间创建之后,可以被多个用户共享。
一个给定实例和表空间的所有排序操作共享一个单一的排序段。即排序段为一个给定表空间的每个执行排序操作的实例而存在。
排序段由使用临时表空间用于排序的第一个语句创建,并在关闭时释放,一个盘区不能被多个事务共享。

可以使用V$SORT_SEGMENT视图来查看临时表空间排序段的空间分配和回收情况
用V$SORT_USAGE视图查看这些段的当前排序用户

注:临时表空间中不能创建明确对象。

6、创建本地管理的临时表空间

CREATE TEMPORARY TABLESPACE lmtemp TEMPFILE '/u02/oracle/data/lmtemp01.dbf' SIZE 20M REUSE
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;

注1:临时数据文件信息查询与数据文件不同,需要查询V$TEMPFILE和DBA_TEMP_FILES,但结构与V$DATAFILE和DBA_DATA_FILES类似。
注2:临时表空间在初次使用时才分配空间,可以更快创建和修改大小,但要注意磁盘大小。

7、本地管理临时表空间的修改

* 添加临时文件
ALTER TABLESPACE lmtemp ADD TEMPFILE '/u02/oracle/data/lmtemp02.dbf' SIZE 20M REUSE;

* 改变临时文件状态
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' ONLINE|OFFLINE;

* 更改临时文件大小
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' RESIZE 4M;

* 取消临时文件并删除相应操作系统文件
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' DROP
INCLUDING DATAFILES;

8、创建字典管理的临时表空间

CREATE TABLESPACE sort
DATAFILE '/u02/oracle/data/sort01.dbf' SIZE 50M
DEFAULT STORAGE (
INITIAL 2M
NEXT 2M
MINEXTENTS 1
PCTINCREASE 0)
EXTENT MANAGEMENT DICTIONARY
TEMPORARY;

注1:不能以这种方式创建EXTENT MANAGEMENT LOCAL的临时表空间。
注2:可以使用ALTER TABLESPACE tbsa TEMPORARY;语句将一个现有的字典管理永久表空间改为临时表空间。
lzp_lrp
lzp_lrp   Ds   Rxr 2014.12.30 08:49

oracle用户,通俗的讲就是访问oracle数据库的“人”。下面就让我们一起来了解一些oracle用户方面的知识。

一、用户的概念
oracle用户,即user,通俗的讲就是访问oracle数据库的“人”。在oracle中,可以对oracle用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema)、权限、角色、存储设置、空间限额、存取资源限制、数据库审计等。每个用户都有一个口令,使用正确的用户/口令才能登录到数据库进行数据存取。

二、用户默认表空间
表空间是信息存储的最大逻辑单位、当oracle用户连接到数据库进行资料存储时,若未指出数据的目标存储表空间时,则数据存储在用户的默认表空间中。比如:create table mytable(id varchar2(20),name varchar2(100));这条语句创建了一个表mytable,并将其存储在当前用户的默认表空间中,若要指定表空间,则:create table mytable(id varchar2(20),name varchar2(100)) tablespace tbs1;。用户的默认表空间可以在创建用户时指定,也可以使用aler user命令进行指定,具体语法见后面的介绍。

三、用户临时表空间
临时表空间主要用于order by语句的排序以及其它一些中间操作。在oracle9i之前,可以指定用户使用不同的临时表空间,从9i开始,临时表空间是通用的,所的用户都使用TEMP作为临时表空间。

四、用户资源文件
oracle用户资源文件用来对用户的资源存取进行限制,包括:cpu使用时间限制、内存逻辑读个数限制、每个用户同时可以连接的会话数据限制、一个会话的空间和时间限制、一个会话的持续时间限制、每次会话的专用SGA空间限制。

五、用户表空间限额
表空间存储限制是用户在某一个表空间中可以使用的存储空间总数。在创建或修改用户时,可以由参数quota指出。若用户在向表空间存储数据时,超出了此限额,则会产生错误。错误信息如:'ORA-01536:space quota exceeded for tablespace tablespacename..'。可以通过查询字典dba_ts_quotas查看表空间限额信息。

六、创建oracle用户资源文件
创建用户资源文件的语法如下:
CREATE PROFILE filename LIMIT
SESSION_PER_USER integer
CPU_PER_SESSION integer
USER_PER_CALL integer
CONNECT_TIME integer

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!