创建表空间

创建表空间
创建表空间

Create tablespace 表空间名

[datafile 子句]

[minimum extent 正整数[K|M]

[blocksize 正整数[K]]

[logging|nologging]

[default 存储子句]

[online|offline]

[permanent|temporary]

[区段管理子句]

[段管理子句]

表空间名:所要创建的表空间名.

Datafileb子句:组成所要创建的表空间的文件说明. Minimum extent:表空间中所使用的每个EXTENT都必须是该参数所指定数的整数倍.

Blocksize:为该表空间说明非标准决的大小.在使用这一子句之前,必须先设置DB_CACHE_SIZE和DB_nK_CACHE_SIZE参数,而且该子句中所说明的正整数一定与DB_nK_CACHE_SIZE参数的设定相对应.

Logging:说明在该表空间中所有数据的变化都将写入重做日志文件中,这也是默认方式.

Nologging:说明在该表空间中所有数据的变化不都写入重做

日志文件中,nologging只影响一些DML和DDL命令.

Default 存储子句:说明所有在该表空间中所创建的对象的默认存储参数.

Offline:说明该表空间在创建后立即被置为脱机,即不能使用.

在数据字典管理的表空间中所有的EXTENTS的管理都是在数据字典中进行的,而且每一个存储在同一个表空间中的段可以具有不同的存储子句。在这种表空间的管理方法中可以按您的需要修改存储参数,所以存储管理比较灵活但系统的效率较低。如果使用这种表空间的管理方法,有时需要合并碎片。

本地管理的表空间其空闲EXTENTS是在表空间中管理的,它是使用位图来记录空闲EXTENTS,位图中的每一位对应于一块或一组块,而每位的值批示空闲或分配。当一个EXTENT 被分配或释放时,ORACLE服务器就会修改位图中相应位的值以反映该EXTENT的新的状态。位图存放在表空间所对应的数据文件的文件头中。

使用本地管理的表空间减少了数据字典表的竞争,而且当磁盘空间分配或收回时也不会产生回滚(还原),它也不需要合并碎片。在本地管理的表空间中无法按实际需要来随

意修改存储参数,所以存储管理不像数据字典(系统)管理的表空间那样灵活,但系统的效率很高。

在这里为了给大家演示表空间的创建及其管理,我们假设我们在做一个探月工程的项目需要为这个项目创建自己的表空间和其他相应的辅助表空间,以及模拟如何管理我们这个项目这涉及到的表空间和它的相关结构。

好,让我们开始吧,大家跟着我,我带你们去探月。

一.创建数据字典管理的表空间:

SQL> connect / as sysdba

已连接。

SQL> create tablespace moon

2 datafile 'e:\disk2\moon\moon01.dbf' size 50 m,

3 'e:\disk4\moon\moon02.dbf' size 50 m

4 minimum extent 50k extent management dictionary

5 default storage (initial 50k next 50k maxextents 100 pctincrease 0);

create tablespace moon

*

第 1 行出现错误:

ORA-12913: 无法创建字典管理的表空间

二.创建本地管理的表空间

让我们为探月工程创建一个存储工程所需要数据的表空间MOON。

SQL> create tablespace moon

2 datafile 'e:\disk2\moon\moon01.dbf' size 50 m,

3 'e:\disk4\moon\moon02.dbf' size 50 m

4 extent management local

5 uniform size 1m;

表空间已创建。

接下来还要为这个项目创建一个名为MOON_INDEX的索引表空间。该表空间只基于一个数据文件,其文件名为e:\disk6\moon\moon_index.dbf,其大小为50M(在实际当中可能是几百M)。为了方便磁盘存储的管理,我们研究决定使用本地管理的表空间(EXTENT MANAGEMENT LOCAL)。

让我们来创建这个表空间

SQL> create tablespace moon_index

2 datafile 'e:\disk6\moon\moon_index.dbf'

3 size 50 M

4 extent management local

5 uniform size 1M;

表空间已创建。

我们在创建完表空间后要养成良好习惯利用dba_tablespaces 视图去查看一下自己创建的表空间是否满足要求:

SQL> select tablespace_name,block_size,extent_management,segment_spa ce_management

2 from dba_tablespaces

3 where tablespace_name like 'moon%';

未选定行//这里没有信息并非是我们的表空间没创建成功而是表空间名以大写存储

SQL> select tablespace_name,block_size,extent_management,segment_spa ce_management

2 from dba_tablespaces

3 where tablespace_name like 'MOON%';

TABLESPACE_NAME BLOCK_SIZE EXTENT_MAN SEGMEN

------------------------------ ---------- ---------- ------

MOON 8192 LOCAL MANUAL

MOON_INDEX 8192 LOCAL MANUAL

接着,再让我们查看一下表空间的参数配置:

SQL> select tablespace_name,initial_extent,next_extent,

2 max_extents,pct_increase,min_extlen

3 from dba_tablespaces

4 where tablespace_name like 'MOON%'; TABLESPACE_NAME INITIAL_EXTENT

NEXT_EXTENT MAX_EXTENTS PCT_INCREASE MIN_EXTLEN

------------------------------ -------------- ----------- ----------- ------------ ----------

MOON 1048576 1048576 2147483645 0 1048576

MOON_INDEX 1048576 1048576 2147483645 0 1048576

再让我们查看一下表空间中的数据文件是否已经成功创建,因为表空间是由多数据文件构成如果表空间中没有数据文件那表空间也就不存在了:

SQL> select file_id,file_name,tablespace_name,autoextensible

2 from dba_data_files

3 order by file_id;

FILE_ID FILE_NAME TABLESPACE_NAME AUT

---------- ------------------------------ ------------------------------ ---

1 E:\ORACLE\PRODUCT\10.1.0\ORADA SYSTEM YES

TA\TEST\SYSTEM01.DBF

2 E:\ORACLE\PRODUCT\10.1.0\ORADA UNDOTBS1 YES

TA\TEST\UNDOTBS01.DBF

3 E:\ORACLE\PRODUCT\10.1.0\ORADA SYSAUX YES

TA\TEST\SYSAUX01.DBF

4 E:\ORACLE\PRODUCT\10.1.0\ORADA USERS YES

TA\TEST\USERS01.DBF

FILE_ID FILE_NAME TABLESPACE_NAME AUT

---------- ------------------------------ ------------------------------ ---

5 E:\DISK2\MOON\MOON01.DBF MOON NO

6 E:\DISK4\MOON\MOON02.DBF MOON NO

7 E:\DISK6\MOON\MOON_INDEX.DBF MOON_INDEX NO

已选择7行。

在为我们宏大探月项目创建完成前两个所需的表空间去,这只是我们浩大工程冰山一角,还需要我们做更多的工作,再让我们为探月工程创建一个很重要的表空间“还原表空间”:在数据库初始创建时库中有一个叫UNDOTBS1的还原表空间,但对于我们这个项目建议大家为我们这个项目单独创建一个“moon_undo”的表空间,它也是基于操作系统本地管理的数据文件名为‘e:\disk7\moon\moon_undo.dbf,其大小为20m:

SQL> create undo tablespace moon_undo

2 datafile 'e:\disk7\moon\moon_undo.dbf'

3 size 20 m;

表空间已创建。

在创建完成后一定要查看一下,保证你创建的表空间是满足要求的:

SQL> select tablespace_name,block_size,extent_management,segment_spa ce_management

2 from dba_tablespaces

3 where tablespace_name like 'MOON%';

TABLESPACE_NAME BLOCK_SIZE EXTENT_MAN SEGMEN

------------------------------ ---------- ---------- ------

MOON 8192 LOCAL MANUAL

MOON_INDEX 8192 LOCAL MANUAL

MOON_UNDO 8192 LOCAL MANUAL

然后再确认一下,我们所创建表空间的类型:

SQL> select tablespace_name,status,contents

2 from dba_tablespaces

3 where tablespace_name like 'MOON%';

TABLESPACE_NAME STATUS CONTENTS ------------------------------ --------- ---------

MOON ONLINE PERMANENT

MOON_INDEX ONLINE PERMANENT

MOON_UNDO ONLINE UNDO

好了,已经做了一些准备工作了,我们在一步一步的接近我们的目标,但是不要高兴太早,因为我们才刚刚开始,大家是否还记得临时表空间,还记得它的作用吗?如果忘记了希望你回去注意复习,古人云:“温故而知新”,对于我们学习oracle来说这是非常重要,毕竟它的中文名称叫“甲古文”。在我们这个项目中一定会存储大量数据,在我们实施工程时也一定会用到这些数据,那么这么大量的数据在查看时会非常困难,那么我们可以借助order by 和group by 子句来进行查询以帮助我们把数据排序分组以便我们能够更快的分析数据。

那么基于以上项目需要,我们需要创建一个临时表空间“MOON_TEMP“,临时表空间可以由多个用户共享,在其中不能包含任何永久对象。临时表空间中的排序段是在实例启

动后当有第一个排离操作时创建的,排序段在需要时可通过分配EXTENTS来扩展,并一直可以扩展到大于或等于在该实例上所运行的所有排序活动的总和。

当创建临时表空间时,必须使用标准数据块。建议大家用本地管理:

SQL> create temporary tablespace moon_temp

2 tempfile 'e:\disk8\moon\moon_temp.dbf'

3 size 10 m

4 extent management local

5 uniform size 2 m;

表空间已创建。

做项目态度一定要严谨,保持良好习惯我们来查看一下:

SQL> select tablespace_name,status,contents

2 from dba_tablespaces

3 where tablespace_name like 'MOON%';

TABLESPACE_NAME STATUS CONTENTS ------------------------------ --------- ---------

MOON ONLINE PERMANENT

MOON_INDEX ONLINE PERMANENT

MOON_TEMP ONLINE TEMPORARY

MOON_UNDO ONLINE UNDO

SQL> select tablespace_name,block_size,extent_management,

2 segment_space_management,min_extlen

3 from dba_tablespaces

4 where tablespace_name like 'MOON%';

TABLESPACE_NAME BLOCK_SIZE EXTENT_MAN SEGMEN MIN_EXTLEN

------------------------------ ---------- ---------- ------ ----------

MOON 8192 LOCAL MANUAL 1048576

MOON_INDEX 8192 LOCAL MANUAL 1048576

MOON_TEMP 8192 LOCAL MANUAL 2097152

MOON_UNDO 8192 LOCAL MANUAL 65536

注:本地管理的临时表空间是基于临时数据文件(TEMP FILES)的,这些文件与普通的数据文件非常相似,但它们还具有如下的特性:

1.临时数据文件的状态不能置为只读。

2.不能将临时数据文件重新命名。

3.临时数据文件总是置为NOLOGGING状态。

4.不能使用ALTER DATABASE命令创建临时数据文件。5.以只读方式运行的数据库需要临时数据文件。

6.介质恢复是不能恢复临时数据文件的。

7.另外,为了优化某一临时表空间中排序的效率,应该将UNIFORM SIZE 设为SORT_AREA_SIZE(PGA中排序区的大小)参数的整数倍。

那么还需要注意的一点是,只有我们把MOON_TEMP表空间设置为“默认临时表空间”我们的探月工程项目才能使用这个MOON_TEMP表空间作为为我们工程服务的临时表空间。那么接下教会大家如何将普通的临时表空间改为默认临时表空间,这个过程非常简单,但它的意义非凡:

首先,让我们来查看一下当前的默认临是表空间是“谁”,

SQL> col property_value for a30

SQL> col description for a50

SQL> select * from database_properties

2 where property_name like 'DEFAULT%';

PROPERTY_NAME PROPERTY_VALUE DESCRIPTION

------------------------------ ------------------------------ --------------------------------------

DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace

DEFAULT_PERMANENT_TABLESPACE USERS Name of default permanent tablespace

DEFAULT_TBS_TYPE SMALLFILE Default tablespace type

我们看到当前数据库的默认临时表空间是TEMP,现在我们可以把默认临时表空间改为我们探月工程所需要的

MOON_TEMP,为我们的工程服务。

SQL> alter database default temporary tablespace moon_temp;数据库已更改。

再让我们来查询一下是不是修改了默认表空间:

SQL> select * from database_properties

2 where property_name like 'DEFAULT%';

PROPERTY_NAME PROPERTY_VALUE DESCRIPTION

------------------------------ ------------------------------ --------------------------------------

DEFAULT_TEMP_TABLESPACE MOON_TEMP Name of default temporary tablespace

DEFAULT_PERMANENT_TABLESPACE USERS Name of default permanent tablespace

DEFAULT_TBS_TYPE SMALLFILE Default tablespace type

注:在默认临时表空间上有一些限制:

首先,默认临时表空间不能被删除,除非有一个新的可以使用的默认临时表空间。也就是必须先使用ALTER DATABASE将一个新的临时表空间设置为默认临时表空间,之后才能删除旧的(默认)临时表空间。使用旧的(默认)临时表空间的用户被自动地赋予新的默认临时表空间。

因为默认临时表空间必须是临时表空间所以不能将默认临时表空间改为一个永久表空间,也不能将默认临时表空间设置为脱机。

从显示结果中我们看到确定被我们修改了,做到这大家是不是有一点小小的成就感呢,不要洋洋得意啊,后面还有很多工作要做呢,我们需要努力吧!

当表空间需要维护或其中数据需要保护时,我们该怎么办?请大家想想!

答:可以把表空间设置为脱机。

一个表空间的正常状态是联机状态,此时数据库用户可以访问该表空间中的数据。然而,有时数据库管理员需要将某一

表空间设置为脱机状态,以进行数据库的维护其维护工作包括:

1.在数据库处于打开状态下移动数据文件。

2.在数据库处于打开状态下恢复一个表空间或一个数据文件。

3.执行对表空间的脱机备份(虽然对表空间可以进行联机备份)。

4.使数据库的一部分不可以被访问,而其他的部分可以被正常地访问。

当一个表空间被设置为脱机状态时,该表空间上的数据是不可以访问的。如果用户试图访问该表空间上的数据就会收到出错信息。

当一个表空间被设置为脱机状态时或重新被设置为联机状态时,oracle会把这一事件记录在数据字典和控制文件中,也会记录在报警文件中。如果当数据库被关闭时,某一表空间为脱机状态,那么当数据库被加载(MOUNT)和重新打开时该表空间仍保持为脱机状态。

注:并不是所有的表空间都可以被设置为脱机状态,以下的表空间不能被设置为脱机状态:

1.系统(SYSTEM)表空间

2.上面有活动的还原/回滚段的表空间。

3.默认临时表空间。

如何将表空间进行脱机/联机:

SQL> alter tablespace moon offline;

表空间已更改。

让我们来查看一下:

SQL> select tablespace_name,status,contents

2 from dba_tablespaces

3 where tablespace_name like 'MOON%';

TABLESPACE_NAME STATUS CONTENTS ------------------------------ --------- ---------

MOON OFFLINE PERMANENT

MOON_INDEX ONLINE PERMANENT

MOON_TEMP ONLINE TEMPORARY

MOON_UNDO ONLINE UNDO

SQL> select file#,name,status

2 from v$datafile

3 ;

FILE# NAME STATUS

---------- -------------------------------------------------- -------

1

E:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\SYSTEM01.DBF SYSTEM

2

E:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\UNDOTBS01.DB ONLINE

F

3

E:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\SYSAUX01.DBF ONLINE

4

E:\ORACLE\PRODUCT\10.1.0\ORADATA\TEST\USERS01.DBF ONLINE

基础概念:Oracle数据库、实例、用户、表空间、表之间的关系

基础概念:Oracle数据库、实例、用户、表空间、表之间的关系 数据库: Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是Oracle就只有一个大数据库。 实例: 一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有n个实例。 用户: 用户是在实例下建立的。不同实例可以建相同名字的用户。 表空间: 表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。 数据文件(dbf、ora): 数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。 注: 表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。由于oracle的数据库不是普通的概念,oracle是有用户和表空间对数据进行管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了! 关系示意图:

创建临时表空间(精)

/创建临时表空间 create temporary tablespace test_temp tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; //创建数据表空间 create tablespace test_data logging datafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; //创建用户并指定表空间 create user testserver_user identified by testserver_user default tablespace test_data temporary tablespace test_temp; //给用户授予权限 grant connect,resource to testserver_user; (db2:指定所有权限) 导入导出命令: Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于在oracle 8i 中安装目录ora81BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。 SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。 下面介绍的是导入导出的实例。 数据导出: 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manager@TEST file=d:daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

oracle创建用户及权限说明文档

Oraclec创建用户 一、命令行创建用户具体步骤如下: 1.以管理员身份登录系统并创建一个新的表空间,操作如下: 操作如下: 2. Next 5M maxsize 100M ;----每次扩大5M,但最大为100M

3. Temporary tablespace test1_temp; ----设置临时表空间为test1_temp 4. 操作如下 5. 操作如下 6.最后提交即可。Commit 二、表空间的增删改查 1. 2. 如下操作,其中标示出来的路径即为查询到的要更改的表空间的具体路径,将该路径加到语句2中的单引号处即可。

3. 4.

四、权限的设置 1.权限的分类: 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。 实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。 2.系统权限管理 DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 RESOURCE: 拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。 CONNECT: 拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。 3.系统权限授权命令及用户管理。 [系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)] 授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...; [普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys 用户相同的权限,system用户的权限也可以被回收。] 例: SQL> connect system/manager SQL> Create user user50 identified by user50; SQL> grant connect, resource to user50; 查询用户拥有哪里权限: SQL> select * from dba_role_privs; SQL> select * from dba_sys_privs; SQL> select * from role_sys_privs; 删除用户:SQL> drop user 用户名cascade; //加上cascade则将用户连同其创建的东西全部删除。 4.给新建的用户分配只有连接以及对某些表和视图的查询权限: oracle授权对视图的查询.docx 5.用户管理: 1)、创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_ATTEMPTS 3 //指定锁定用户的登录失败次数 PASSWORD_LOCK_TIME 5 //指定用户被锁定天数 PASSWORD_LIFE_TIME 30 //指定口令可用天数 2)、创建用户 SQL> Create User username Identified by password Default Tablespace tablespace Temporary Tablespace tablespace Profile profile Quota integer/unlimited on tablespace; 6.用户密码过期问题: 首先,查看系统中有哪些用户:

Oracle tablespace创建参数

Oracle tablespace创建参数 ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.因此,在创建对象之前,首先要分配存储空间. 分配存储,就要创建表空间: 创建表空间示例如下: CREATE TABLESPACE "SAMPLE" LOGGING DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO 上面的语句分以下几部分: 第一: CREATE TABLESPACE "SAMPLE" 创建一个名为 "SAMPLE" 的表空间. 对表空间的命名,遵守Oracle 的命名规范就可了. ORACLE可以创建的表空间有三种类型: (1)TEMPORARY: 临时表空间,用于临时数据的存放; 创建临时表空间的语法如下: CREATE TEMPORARY TABLESPACE "SAMPLE"...... (2)UNDO : 还原表空间. 用于存入重做日志文件. 创建还原表空间的语法如下: CREATE UNDO TABLESPACE "SAMPLE"...... (3)用户表空间: 最重要,也是用于存放用户数据表空间 可以直接写成: CREATE TABLESPACE "SAMPLE" TEMPORARY 和 UNDO 表空间是ORACLE 管理的特殊的表空间.只用于存放系统相关数据. 第二: LOGGING 有 NOLOGGING 和 LOGGING 两个选项, NOLOGGING: 创建表空间时,不创建重做日志. LOGGING 和NOLOGGING正好相反, 就是在创建表空间时生成重做日志. 用NOLOGGING时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复,但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的,所以通常不需要表空间的创建日志,因此,在创建表空间时,选择NOLOGGING,以加快表空间的创建速度. 第三: DATAFILE 用于指定数据文件的具体位置和大小. 如: DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M

linux下创建oracle用户表空间

linux下创建oracle用户表空间 就是在已有的数据库实例上创建一个新的帐号,访问一些新的表 操作步骤如下: 1、登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2、以sysdba方式来打开sqlplus,命令如下:sqlplus "/as sysdba" 3、查看我们常规将用户表空间放置位置:执行如下sql: select name from v$datafile; 上边的sql一般就将你的用户表空间文件位置查出来了。 4、创建用户表空间: CREATE TABLESPACE NOTIFYDB DATAFILE '/oracle/oradata/test/notifydb.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; 5、创建用户,指定密码和上边创建的用户表空间 CREATE USER hc_notify IDENTIFIED BY hc_password DEFAULT TABLESPACE NOTIFYDB; 6、赋予权限 grant connect,resource to hc_notify; grant unlimited tablespace to hc_notify; grant create database link to hc_notify; grant select any sequence,create materialized view to hc_notify; 经过以上操作,我们就可以使用hc_notify/hc_password登录指定的实例,创建我们自己的表了 续: 创建临时表空间: create temporary tablespace test_temp tempfile 'F:\app\think\oradata\orcl\test_temp01.dbf' size 32m autoextend on

Oracle 创建用户

Oracle 创建用户 创建一个新的数据库用户是使用CREATE USER 语句完成的,该语句一般是由DBA 用户来执行;如果要以其他用户身份创建用户,则要求用户必须具有CREATE USDER 系统权限。 每个用户在连接到数据库时,都需要进行身份验证。身份验证可以通过操作系统进行,也可以通过数据库进行,或者通过独立的网络服务器进行。数据库验证是指使用数据库来检查用户、密码以及连接用户的身份,该方式也是最常用的用户验证方式,因此本书重点介绍数据库验证方式。采用数据库验证具有如下优点: ● 用户账号及其身份验证全部由数据库控制,不需要借助数据库外的任何控制。 ● 当使用数据库验证时,Oracle 提供了严格的密码管理机制,加强了密码的安全性。 如果使用数据库验证,则创建用户时必须提供连接密码,并且密码必须是单字节字符。例如,下面的语句创建了一个用户ATG ,并为该用户指定了登录密码、默认表空间、临时表空间: SQL> connect system/password 已连接。 SQL> create user developer 2 identified by developer 3 default tablespace user01 4 quota 10m on user01 5 temporary tablespace temp; 用户已创建。 在上面的语句中,创建了一个名为DEVELOPER 的用户。其中,子句IDENTIFIED BY 指定用户密码,该密码是用户的初始密码,在用户登录到数据库后可以对其进行修改。DEFAULT TABLESPACE 子句为用户指定默认表空间,这样在建立数据库对象(表、索引和簇)时,如果不指定TABLESPACE 子句,Oracle 会自动在默认表空间上为这些对象分配空间。TEMPORARY TABLESPACE 子句用于为用户指定临时表空间,当用户所执行的SQL 语句需要进行排序操作时,若临时数据尺寸超过PGA 工作区,则会在该表空间上建立临时段。QUOTA 子句为用户指定表空间配额,即用户对象在表空间上可占用的最大空间。 在创建用户时需要注意,Oracle 不允许使用其他类型的表空间作为临时表空间使用,同样,也不允许使用临时表空间作为默认表空间。否则会出现如下所示的错误: SQL> create user developer02 2 identified by developer 3 default tablespace USER01 4 quota 128m on users 5 temporary tablespace USERS; create user atg02 注 意 使用过Oracle 10g 以及早期版本的用户需要注意,11g 中的用户密码是区分大小的。

Oracle如何创建表空间-2012年5月1日

oracle创建表空间 SYS用户在CMD下以DBA身份登陆: 打开黑窗口 在CMD中打sqlplus /no log 然后再 conn / as sysdba // 分为四步 //第1步:创建临时表空间,路径自己换 create temporary tablespace user_temp tempfile 'E:\AProgramMy\Oracle11g\tablespace\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; //第2步:创建数据表空间,路径自己换 create tablespace user_data logging datafile 'E:\AProgramMy\Oracle11g\tablespace\user_data.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; (删除表空间: DROP TABLESPACE user_data INCLUDING CONTENTS AND DATAFILES; )

//第3步:创建用户并指定表空间 create user yzk identified by yzk default tablespace user_data temporary tablespace user_temp; (删除用户: drop user yzk cascade; ) //第4步:给用户授予权限,没有create sessio n权限就不能登录! grant connect,resource,create sessio n,create table to yzk; (撤销权限: revoke connect,resource,create session,create table from yzk; ) 查看已创建的表空间:select tablespace_name,status from dba_tablespaces; 这样就可以用此用户登录了,登录后是没有表的(如果管理员登录会有很多乱七八糟的表看着十分不爽,都不知道哪个是自己创建的)因为用户和表空间都是新的所以什么也没,此时就可以新建表了,终于解决了我的疑问,爽! --------------------------------------------------------------------------------- //以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data 表空间, 这就不用在每创建一个对象给其指定表空间了 查看创建的表空间的名称和状态: select tablespace_name,status from dba_tablespaces; 撤权: revoke 权限... from 用户名; 删除用户命令 drop user user_name cascade; 删除表空间 DROP TABLESPACE data01 INCLUDING CONTENTS AND

NC57创建用户、表空间、授权sql语句实例

NC57创建表空间和用户、授权实例 创建表空间6个 create tablespace nnc_index01 datafile'E:\app\Administrator\oradata\NC57\nnc_index01.dbf' size 500m autoextend on next 50m extent management local uniform size 128k; create tablespace nnc_index02 datafile'E:\app\Administrator\oradata\NC57\nnc_index02.dbf' size 500m autoextend on next 50m extent management local uniform size 128k; create tablespace nnc_index03 datafile'E:\app\Administrator\oradata\NC57\nnc_index03.dbf' size 500m autoextend on next 50m extent management local uniform size 128k; create tablespace nnc_data01 datafile'E:\app\Administrator\oradata\NC57\nnc_data01.dbf' size 500m autoextend on next 50m extent management local uniform size 256k; create tablespace nnc_data02 datafile'E:\app\Administrator\oradata\NC57\nnc_data02.dbf' size 500m autoextend on next 50m extent management local uniform size 256k; create tablespace nnc_data03 datafile'E:\app\Administrator\oradata\NC57\nnc_data03.dbf' size 500m autoextend on next 50m extent management local uniform size 256k; 创建用户及授权 create user nc57 identified by nc57 default tablespace nnc_data01 temporary tablespace temp grant connect,dba to nc57; 删除表空间 drop tablespace csmbus including contents cascade constraints;

如何在Linux下创建oracle数据库的表空间和用户

如何在Linux下创建oracle数据库的表空间和用户 数据库实例名:db_for_ck 用户名:ck 密码:ck123456 一、使用:secureCRT 工具连接到到Linu操作系统 二、了解一些linux常用命令 1、\cd /返回根目录 2、ls 查看当前目录下的内容 3、ls -al 是查看当前目录下当前用户的操作权限 4、cd database 进到database目录 5、mkdir db_for_ck 创建db_for_ck目录 6、lsnrctl start 启动Oracle监听器 7、lsnrctl status 检查监听器状态 8、sqlplus / as sysdba 打开SQL语句输入 三、创建表空间 secureCRT 连接10.10.1.66 oracle/redpass#66 lsnrctl start sqlplus / as sysdba 或PL/SQL连接数据库 1、创建临时表空间 CREATE TEMPORARY TABLESPACE db_for_ck_temp TEMPFILE '/home/oracle/database/db_for_ck/db_for_ck_temp01.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; 2、创建用户表空间 CREATE TABLESPACE db_for_ck_data LOGGING DA TAFILE '/home/oracle/database/db_for_ck/db_for_ck_data01.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; 3、创建用户并指定表空间

Oracle 11g表空间——创建和扩展(永久)表空间

Oracle 11g表空间——创建和扩展(永久)表空间 本文内容 创建(永久)表空间 查看表空间 扩展表空间 创建(永久)表空间 Oracle 按照区和段空间进行管理表空间。 区管理方式 - 针对区的分配方式的不同,有两种方式:字典管理方式 (dictionary-managed tablespace,DMT)和本地管理方式(local-managed tablespace,LMT)。Oracle 10g 开始强烈建议使用 LMT 方式。从 Oracle 9i 开始,创建表空间时默认使用 LMT。 其中,LMT 区的分配方式: 统一(UNIFORM)- 统一分配。指定表空间中所有区的大小都相同。默认值是 1MB。自动(AUTOALLOCATE 或 SYSTEM)- 自动分配。指定有 Oracle 系统来自动管理区的大小。这是默认设置。 段管理方式– LMT 方式,除了可以指定区的分配方式外,还可以指定段的管理方式。段空间管理方式主要是指 Oracle 用来管理段中已用数据块和空闲数据块的机制。分为两种: 手动(MANUAL)- Oracle 将使用空闲列表(free list)管理段的已用数据块和空闲数据块。这是传统的段空间管理方式,为了与以前的版本兼容。 自动(AUTO)- Oracle 将使用位图(bitmap)来管理段的已用数据块和空闲数据块。通过位图中单元的取值判断段中的数据块是否可用。 字典管理方式没有段管理。 下面示例演示用本地管理方式创建表空间。这是 Oracle 推荐的方式。 示例 1:使用 AUTOALLOCATE 区分配方式。创建表空间 mytbs01,数据文件是 D:\oracledata\mytbs01_1.dbf,大小为 2M,并指定区分配方式为 AUTOALLOCATE。create tablespace mytbs01 datafile 'D:\oracledata\mytbs01_1.dbf' size 2M

EDB用户创建流程

EDB数据库创建用户流程 1.创建用户 创建用户mu并指定用户。 CREATE USER mu PASSWORD '***' ; 2.创建表空间 创建表空间的同时可以指定表空间的所有者。 创建表空间 CREATE TABLESPACE mu_dat owner mu LOCATION '/opt/app/edbdata/mu_dat'; 注: 1.表空间的目录不能为空,并且拥有enterprisedb用户的读写权限。 2.创建表空间的用户具有superuser的权限。 3.创建对象时要加上tablespace xxx 来指定数据存储的位置。 3.创建数据库 创建数据库指定属主为mu,字符集和最大连接数等信息。 CREATE DATABASE mu WITH OWNER = mu ENCODING = 'UTF8' TEMPLATE = template0 TABLESPACE = mu_dat LC_COLLATE = 'en_US.utf8' LC_CTYPE = 'en_US.utf8' CONNECTION LIMIT = -1; 4.创建模式 创建mu模式以及拥有该模式的用户名,只有superuser才可以指定非自身的拥有者,其它用户建立的模式默认拥有者为自身。 登录mu数据库 ./psql -d mu -U enterprisedb 创建模式 CREATE SCHEMA mu AUTHORIZATION mu; 注:

在postgres数据库中最好建立一个和用户(mu)同名的模式,这样用该用户建立的对象会默认存在同名的模式下,否则会存在public模式下面。 5.创建角色 CREATE ROLE r_selmu; CREATE ROLE r_updmu; 6.创建维护账户并赋予权限 CREATE USER p_yaohy PASSWORD 'yaohy'; 赋予用户权限: GRANT usage ON SCHEMA mu TO p_yaohy; GRANT r_selmu TO p_yaohy; GRANT r_updmu TO p_yaohy; 注: 需要对维护账户赋予usage权限,用来访问mu模式。 7.导入数据并调整权限 指定目标库,导入文件,导入所用用户,数据库端口信息,其中mu.sql是由pg_dump导出的: ./psql -d mu -f /enterprise/control/mu.sql -U enterprisedb -p 5445 修改表和序列对象的owner和schema: alter table t1 owner to mu; alter table t1 set schema mu; 赋予对应表的权限给维护用户,序列只赋予查询权限即可: GRANT select ON mu.t TO r_selmu; GRANT insert,update,delete ON mu.t TO r_updmu; 对数据库进行vacuum和分析: -bash-4.1$ ./psql -d mu -U enterprisedb -c vacuum -bash-4.1$ ./psql -d mu -U enterprisedb -c analyze

oracle 创建删除用户、角色、表空间和导入导出数据

Oracle 创建删除用户、角色、表空间、导入导出数据库总结 创建新的用户必须以system 或者sysman( 这二者的权限最大) 的身份登录后才可创建,创建用户前须先建好临时表空间和数据表空间两个表空间。 1、创建临时表空间 create temporary tablespace nimeng_temp tempfile D:/oracle/oradata/neusoft/nimeng_temp.dbf' size 100 m autoextend on next 32 m maxsize 2048 m extent management local ; 说明: 1 、nimeng_temp 表空间的名字 2 、D:/oracle/oradata 存放数据库文件的地方,一般是安装数据库后有控制文件,数据文件和日志文件的文件夹, 再加上要创建表空间的名字+dbf( 数据文件) 3 、100M 表空间的初始大小 4 、32M 表空间自动增长的大小 5 、2048M 表空间最大的大小 2、创建数据表空间 create tablespace nimeng logging datafile 'D:/oracle/oradata/neusoft/nimeng.dbf'' size 100 m autoextend on next 32 m maxsize 2048 m extent management local ; 3、创建用户:create user 用户名identified by 密码 例如:create user nim identified by nim ; 创建完成后,必须分配权限,否则连不上数据库和sqlplus 。 4、分配权限:grant connect,resource,dba to nim ; 这样数据库就可以通过nim / nim 连上了。那些select, update ,delete,insert 的权限就不必分配了,因为每个用户默认都有这些基本权限。 5、创建用户并指定表空间 create user zfmi identified by zfmi default tablespace zfmi temporary tablespace zfmi_temp; 完成。 6、删除用户以及用户所有的对象 drop user zfmi cascade; cascade 参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数 删除oracle 用户nim 出现下面的错误: SQL> drop user nim cascade; drop user nim cascade * ERROR 位于第1 行: ORA-00604: 递归SQL 层1 出现错误 ORA-24005: 必须使用DBMS_AQADM.DROP_QUEUE_TABLE 删除队列表 处理方式:先执行这条语句:alter session set events'10851 trace name context forever,level 2';

表空间创建与删除完整步骤

Oracle 10g表空间创建的完整步骤 当在数据库中创建用户时,基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。 1.创建表空间 不论是Lnux环境,还是Wndows环境,都要首先创建好表空间的存放路径,根据自己的情况修改。如: /opt/oracle/oradata/cocis 或D:\oracle\oradata\cocis 若事先不创建该目录路径,则在创建表空间的时候会出错。 通过pl/sql登录到Oracle数据库上,然后执行菜单:文件/新建/命令窗口,打开一个命令窗口然后在该命令窗口中执行脚本创建和删除表空间 引用 创建表空间 Sql>create tablespace histdb datafile 'D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf' size 200m autoextend on next 10m maxsize unlimited; Sql>alter database datafile 'D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf' autoextend on; 1) DATAFILE: 表空间数据文件存放路径 2) SIZE: 起初设置为200M 3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k 4) 空间名称histdb 与数据文件名称histdb.dbf 不要求相同,可随意命名. 5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间 6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\histdb.dbf ' resize 500m; //手动修改数据文件大小为500M 删除表空间 DROP TABLESPACE histdb INCLUDING CONTENTS AND DATAFILES; 表空间已创建。 2.为应用创建用户 创建用户的同时,为用户指定缺省的永久表空间和临时表空间。 SQL> create user cocis identified by cocis

Oracle11g NC63创建表空间及用户及授权

Oracle11g NC63创建表空间及用户及授权 在cmd中运行 sqlplus /nolog conn /as sysdba 2--建表空间及用户 CREATE TABLESPACE NNC_DATA01 DATAFILE 'F:\app\oradata\nnc_data01.dbf' SIZE 2048M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE TABLESPACE NNC_DATA02 DATAFILE 'F:\app\oradata\nnc_data02.dbf' SIZE 50M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ; CREATE TABLESPACE NNC_DATA03 DATAFILE 'F:\app\oradata\nnc_data03.dbf' SIZE 2048M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K ; CREATE TABLESPACE NNC_INDEX01 DATAFILE 'F:\app\oradata\nnc_index01.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ; CREATE TABLESPACE NNC_INDEX02 DATAFILE 'F:\app\oradata\nnc_index02.dbf' SIZE 2048M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K ; CREATE TABLESPACE NNC_INDEX03 DATAFILE 'F:\app\oradata\nnc_index03.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;

oracle创建表空间命令

eclipse+webservice开发实例 spring mvc数据绑定 oracle11g 创建表空间和用户授权 2013-01-27 10:54:18| 分类:默认分类| 标签:|举报|字号大中小订阅 *分为四步*/ /*第1步:创建临时表空间*/ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间*/ create tablespace AKJY_DATA logging datafile 'E:\oracleDATA\akjy_data.dbf' size 50m autoextend on next 50m maxsize 2048m extent management local; eclipse+webservice开发实例 spring mvc数据绑定 create tablespace DATA datafile 'D:\Program Files\oracle11g\DATA.dbf’size 1G autoextend on next 50m maxsize 20480m oracle11g 创建表空间和用户授权 2013-01-27 10:54:18| 分类:默认分类| 标签:|举报|字号大中小订阅 *分为四步*/ /*第1步:创建临时表空间*/ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; /*第2步:创建数据表空间*/

Oracle12C用户创建与表空间分配

Oracle 12C用户创建与表空间分配 数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’ SQL>create tablespace iemi datafile'E:\Oracle_DB\ cdb_iemi.dbf'size 10240m autoextend on next 200m; 表空间已创建。 接下来在Oracle 12C数据库中创建用户时会报ORA-65096错误。SQL> create user imei identified by imei default tablespace imei temporary tablespace imei_temp; * ERROR at line 1: ORA-65096: invalid common user or role name ORA-65096:公用用户名或角色名无效 以前没见过这个错误,通用用户(common user)是什么?之前的版本可是没这概念啊,上网搜索看到了下面的图片,原来和common user 对应的还有local user。

这个common user 和local user是和oracle 12c的新特性pluggable database(PDB)有关。在PDB中创建的用户就是local user。从上图可以看出,common user必须以大写或小写的c##开头,尝试建立以c##开头的common user。 SQL> create user c##imei identified by imei default tablespace imei temporary tablespace imei_temp;; User created. SQL> grant dba to c##imei; Grant succeeded. 每个PDB都是独立的单元,有自己的用户(local user)、表空间、数据文件,每个local user只能访问自己的PDB,而common user只要权限足够,可以访问任意PDB。

oracle数据库建表空间语句汇总

建立表空间和用户的步骤: 用户 建立: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 *M tempfile ' 路径\***.dbf ' size *M autoextend on --自动增长 --还有一些定义大小的命令,看需要 default storage( initial 100K, next 100k, ); 用户权限 授予用户使用表空间的权限: alter user 用户名quota unlimited on 表空间; 或alter user 用户名quota *M on 表空间; --表空间 CREATE TABLESPACE deej DA TAFILE 'E:\database\deej.dbf' size 2G EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; --索引表空间 CREATE TABLESPACE sdt_Index DA TAFILE 'F:\tablespace\demo' size 512M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO; --2.建用户 create user deej identified by deej default tablespace deej; --3.赋权

相关文档
最新文档