oracle创建表空间linux
⑴ 如何创建ORACLE大文件表空间
如何创建ORACLE大文件表空间
sql>CREATE BIGFILE TABLESPACE 表名
datafile 'd:\ndo\ddo\表名.DBF‘
SIZE 500M AUTOEXTEND ON;
SQL>Create Bigfile tablespace bf_images_xp
datafile 'e:\datacenter\bf\bf_images_xp.dbf' size 500M Autoextend on;
//说明如下:
//创建一个大表空间,名称为:bf_images_xp,数据文件为e:\datacenter\bf\bf_images_xp.dbf
//初始化大小为500M,且文件自动增长
SQL>create bigfile tablespace bf_v_xp
datafile 'e:\datacenter\bf\bf_v_xp.dbf' size 500M autoextend on;
其中BIGFILE表示创建 的表空间是大文件表空间,
DATAFILE指定组成大文件表空间的大文件(上海硬盘数据恢复文件),
SIZE表示大文件的初始大小:
AUTOEXTED ON表示允许大文件自动扩张!
网友资料:供参考!
发现表空间文件容量与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 bigfile tablespace 大文件表空间 ----------------------------
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
在实际环境中,这还受到操作系统的文件系统的限制。
BFT基本操作
10g 数据库在创建的时候,会指定默认的表空间类型。
如果不特殊指定的话,默认为 SMALLFILE 类型的表空间。
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';
这种情况下,如果我们创建表空间的时候不指定类型,那么默认创建的都是 SMALLFILE 类型的表空间。
修改数据库默认的表空间类型
可以通过 ALTER DATABASE 命令来修改数据库默认的表空间类型:
SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;
Database altered.
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';
SQL>
SQL> ALTER DATABASE SET DEFAULT smallfile TABLESPACE;
创建 BIGFILE 类型的表空间,只需指定额外的一个参数 BIGFILE 即可,
其他和原有创建表空间语法类似:
CREATE BIGFILE TABLESPACE bftbs DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs01.dbf' SIZE 5M;
DBA_TABLESPACES (USER_TABLESPACES)与 V$TABLESPACE 这两个视图可以查看 BIGFILE 表空间的相关信息。
先看看 DBA_TABLESPACES 在 10g 中有了什么变化:
SQL> desc DBA_TABLESPACES
SQL>
和 9i 相比,
DBA_TABLESPACES 视图多了两列:RETENTION 和 BIGFILE。
其中 BIGFILE 列说明该表空间是否为 BFT:
SQL> SELECT tablespace_name, bigfile FROM dba_tablespaces;
8 rows selected. V$TABLESPACE 视图相对 9i 也增加了新的列:
SQL> desc V$TABLESPACE Name
其中 FlASHBACK_ON 和 BIGFILE 列都是新增的。
BFT 属性
BFT有一些特有的属性。
1.每个表空间只能包含一个数据文件。如果试图添加新的文件,则会报告 ORA-32771 错误:
SQL> ALTER TABLESPACE bftbs
ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M;
ALTER TABLESPACE bftbs * ERROR at line 1:
ORA-32771: cannot add file to bigfile tablespace
2.只有自动段空间管理的 LMT (locally managed tablespaces ) 支持 BFT
SQL> CREATE BIGFILE TABLESPACE bftbs02
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M
EXTENT MANAGEMENT DICTIONARY;
CREATE BIGFILE TABLESPACE bftbs02 * ERROR at line 1:
ORA-12913: Cannot create dictionary managed tablespace
SQL> CREATE BIGFILE TABLESPACE bftbs02
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M
SEGMENT SPACE MANAGEMENT MANUAL;
CREATE BIGFILE TABLESPACE bftbs02 * ERROR at line 1:
ORA-32772: BIGFILE is invalid option for this type of tablespace
3.相对文件号(RELATIVE_FNO)为1024 ( 4096 on OS/390)
因为BFT只有一个数据文件,所以其相对文件号也是固定的:1024
SQL> SELECT tablespace_name, file_id, relative_fno
FROM dba_data_files;
SQL>
4.rowid的变化
在 BFT 上存储的表的 ROWID 与 smallfile 表空间上的 rowid 结构有些不同的。
要正确得到 rowid 信息,dbms_rowid 包增加了一个新的参数ts_type_in来解决这个问题。
参考这个范例:
SQL> SELECT DBMS_ROWID.rowid_block_number (ROWID, 'BIGFILE')
FROM foo;
24
SQL>
你可以创建多大的表空间?
我们在前面提及,BFT 还受到操作系统的文件系统的限制。
下面我们以 linux 操作系统为例:
SQL> SHOW parameters db_block_size
db_block_sizeinteger 8192
SQL>
也就是说,理论上我们可以创建最大 32T
⑵ Oracle 怎么创建表空间
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
表空间;
⑶ oracle怎样创建表空间和用户
1.首先我们可以用scott用户以sysdba的身份登录oracle.
Sql代码
conn scott/tiger as sysdba
2.然后我就可以来创建用户了.
Sql代码
create user zzg identified by zzg123;
3.创建好用户我们接着就可以修改用户的密码.
Sql代码
alter user zzg identified by unis;
4.默认情况下用户创建好后系统会默认给该用户分配一个表空间(users);
我们可以通过下面的sql语句来查看一下所有用户所在的表空间.
Sql代码
select username,default_tablespace from dba_users;
⑷ oracle怎么创建表空间
创建表空间的基础语法:
create tablespace 表间名 datafile '数据文件名' size 表空间大小;
创建表并指定表空间
create user news identified by news default tablespace news_tablespace;
授权表空间:
grant dba to news; --表示把 dba权限授予给news用户 授权成功
⑸ 用友nc5.7 linux 中oracle创建表空间问题
只需另建一个用户即可,表空间可以共用,前提是这几个表空间空间在装下第一个帐套后还有足够的空间可以使用,不然要给不够的表空间增加数据文件来扩大表空间
⑹ oracle怎样创建表空间
建立表空间 x0dx0a建立表空间是使用crate tablespace命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限。 x0dx0a 建立数据表空间 x0dx0a在建立数据库后,为便于管理表,最好建立自己的表空间 x0dx0acreate tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size128k; x0dx0a说明:执行完上述命令后,会建立名称为data01的表空间,并为该表空间建立名称为data01.dbf的数据文件,区的大小为128k
⑺ Oracle 怎么创建表空间
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,);用户权限授予用户使用表空间的权限:
⑻ 如何在Linux下创建oracle数据库的表空间和用户
先su 到 oracle用户,SYS用户以DBA身份登陆
//创建临时表空间
SQL>create temporary tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 5000M autoextend on;
//创建数据表空间
SQL>create tablespace user_temp
datafile '/data1/oradata/user_temp.dbf'
size 500M autoextend on;
(这些只是例子,具体数据文件的路径,大小,都要你自己改,这里的是不自动扩展,你如果想自动扩展,autoextend on next 50m maxsize 2048m,上网查一下就可以了)
//创建用户并指定表空间
SQL> create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
//给用户授予权限
SQL> grant connect,resource to username;
⑼ oracle怎样创建表空间和用户
1.首先我们可以用scott用户以sysdba的身份登录oracle.
connscott/tigerassysdba
2.然后我就可以来创建用户了.
;
3.创建好用户我们接着就可以修改用户的密码.
alteruserzzgidentifiedbyunis;
4.默认情况下用户创建好后系统会默认给该用户分配一个表空间(users);
我们可以通过下面的sql语句来查看一下所有用户所在的表空间.
selectusername,default_tablespacefromdba_users;
5.一般在开发情况下,我们当然不会使用用户的默认表空间,所以这时我们需要创建一个表空间.
createtablespacets_zzgdatafile'f: s_zzgzzg_data.dbf'size200M;
注:datafile后面是表空间的物理存储路径,文件名的后缀可以随便.
6.创建好表空间,还需要将表空间分配给用户.
_zzg;
7.我们可以通过步骤4来查询用户所在的表空间.
8.给用户分配了表空间,用户还不能登陆(没有登录权限),因此还需要为用户分配权限
grantcreatesession,createtable,createview,createsequence,unlimitedtablespacetozzg;
9.给用户分配了权限之后我们就可以用zzg用户来登录了.
connzzg/unis;
10.登录之后我们也可以来查询用户所具有的权限
select*fromsession_privs;
11.最后我们也可以删除用户及其相关对象
dropuserzzgcascade;