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

Oracle表空间创建及表创建-- 创建表空间,(数据库⽂件)create tablespace db3datafile 'E:\tablespace\db3.dbf'size 1m-- 创建表空间,(数据库⽂件),指定数据⽂件在哪⼉多⼤扩容create tablespace db2datafile 'E:\tablespace\db2.dbf'size 1m autoextend on next 1m maxsize unlimited-- 查询表select * from user_tablespaces-- 删除表空间drop tablespace db3-- 删除表空间及删除内容和⽂件drop tablespace db3 including contents and datafiles-- 更改表的状态alter tablespace db3 read onlyalter tablespace db3 read write-- 创建⽤户,密码create user user1 identified by user1-- 删除⽤户drop user user1-- 创建⽤户,密码,同时更改默认表空间create user user1 identified by user1default tablespace db3-- 创建后更改密码,更改默认表空间alter user user1 identified by user2alter user user1 default tablespace db3-- 授权登录grant create session to user1-- 授予⽤户dba权限,管理员权限grant dba to user1-- 授予查询某个表权限grant select on scott.dept to user1-- 撤销权限revoke dba from user1revoke select on scott.dept from user1-- user1创建表create table student(id number,name varchar2(20),birthday date)create table student2(id number(1),name varchar2(20),birthday date)create table student3(id number(5),name varchar2(20),birthday date) -- number默认number(5)-- 查表select * from user_tablesselect * from scott.dept -- 查询其他⽤户的表select * from user_tab_colsselect * from user_tab_cols where table_name='STUDENT' -- 要和表中相同为⼤写select * from user_tab_columns -- 和select * from user_tab_cols基本⼀样,少了⼏项-- 删表drop table student2-- 增、改、删表中字段使⽤ ()或者columnalter table student add chengji varchar2(10)alter table student add (math number(1),english number(1)) -- 增加多个字段需⽤括号()alter table student add (chengji2 varchar2(10)) -- 增统⼀都使⽤()alter table student rename (chengji to remark) -- xxalter table student rename column chengji to remark -- 改需使⽤关键字columnalter table student drop column chengji2 -- 删需使⽤关键字columnalter table student drop (english) -- 删使⽤()也⾏-- 注释comment on table student is '学⽣表'comment on column student.id is '编号'。
oracle创建用户、创建表空间、授权、建表的完整过程

oracle创建⽤户、创建表空间、授权、建表的完整过程1.⾸先以sysdba的⾝份登录oracle conn /as sysdba 查询⽤户: select username from dba_users; 查询表空间 select username, default_tablespace from dba_users where username='⽤户名‘; 查询数据⽂件 select file_name, tablespace_name from dba_data_files;2.然后就可以来创建⽤户. create user ⽤户名 identified by 密码;3.修改⽤户的密码 alter user ⽤户名 identified by 新密码;4.创建⼀个表空间 create tablespace 表空间名 datafile '空间物理存储路径(f:\ts_zzg\zzg_data.dbf后缀随意)' size ⼤⼩(200M);5.将表空间分配给⽤户 alter user ⽤户名 default tablespace 表空间名;6.为⽤户分配权限 grant create session,create table,create view,create sequence,unlimited tablespace to ⽤户名; grant all privileges to ⽤户名;(全部权限)7.查看所有⽤户所在的表空间 select username,default_tablespace from dba_users;8.查询⽤户所具有的权限 select *from session_privs;9.删除⽤户及其相关对象 drop user ⽤户名;。
dos命令、创建删除表空间、删除行、表

','2'
,8,'01-1月-2010','130202199502031211',1200,'女')
*
第1行出现错误:
ORA-00001:违反唯一约束条件(YONYOU.SYS_C005175)
SQL> create table seentao.jintian(id varchar2(10) primary key);
表已创建。
SQL> create table employee(sid varchar2(8) primary key,sname varchar2(10) not nu
ll,sdeptid number not null default 9,sdate date,sidcard varchar2(18) unique,smon
请输入用户名: system
输入口令:
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create tablespace yonyou datafile'd:\0529\yonyou.dbf' size 100m;
表空间已创建。
SQL> create user yonyou identified by seentao default tablespace yonyou;
shell脚本操作oracle删除表空间、创建表空间、删除用户

shell脚本操作oracle删除表空间、创建表空间、删除⽤户oracle下表空间的导出,⽤户的删除,表空间删除,⽤户新建,表空间新建,数据导⼊的shell使⽤⾮oracle⽤户执⾏该脚本参数说名$1:base表空间的⽤户名$2:同步表空间的⽤户名使⽤场景测试⽤,base表空间⽤于升级建⽴⼀些固化数据。
同步表空间⽤于测试⽤,每次去和base表空间拉平数据复制代码代码如下:#!/bin/shoraclehome=$ORACLE_HOMEecho $oraclehomelocaldir="/oracle/data"echo $localdir#删除已经存在的临时dmp⽂件rm -rf $localdir/$2temp.dmprmresult=$?echo "rm $2temp.dmp result:$rmresult"#将⽤户$1的表空间导出su - oracle -c "exp dba/dba file=$localdir/$2temp.dmp owner=$1"expresult=$?if [ "$expresult" != "0" ];thenecho "exp $1 tablespace failure"fi#先删除⽤户$2及其表空间,然后再新建该⽤户及表空间su - oracle -c "${ORACLE_HOME}/bin/sqlplus /nolog" <<EOFconnect / as sysdbadrop user $2 cascade;drop tablespace $2 including contents and datafiles;create tablespace $2 datafile '/oracle/product/10.2.0/oradata/$2.dbf' size 5M autoextend on;create user $2 identified by "$2" default tablespace $2 temporary tablespace TEMP profile DEFAULT;grant connect to $2;grant resource to $2;grant create any table to $2;grant create any trigger to $2;grant create any type to $2;grant create any view to $2;grant unlimited tablespace to $2;exitEOFcrdrresult=$?if [ "$crdrresult" != "0" ];thenecho "drop user and tablespace failure"echo "create user and tablespace failure"else#刚建完的⽤户不能马上使⽤,等候10秒sleep 10s#更换dmp⽂件中的表空间名sed -i 's/TABLESPACE "$1"/TABLESPACE "$2"/g' $localdir/$2temp.dmp#使⽤imp命令导出表空间数据到⽤户$2的表空间su - oracle -c "imp dba/dba file=$localdir/$2temp.dmp fromuser=$1 touser=$2"impresult=$?if [ "$impresult" != "0" ];thenecho "imp failure"elseecho "imp success"fifi。
神通数据库表空间内创建表

神通数据库表空间内创建表1. 什么是数据库表空间数据库表空间是数据库管理系统中用于存储表和索引的逻辑容器。
它可以理解为一个文件夹,用于组织和管理数据库中的表和索引。
在数据库中,表空间是一个重要的概念,对于数据库的性能和管理都有着重要的影响。
2. 表空间的作用表空间在数据库中起到了以下几个重要的作用:2.1 存储表和索引表空间作为数据库中存储表和索引的逻辑容器,提供了存储和管理表和索引的能力。
它可以将表和索引组织在一起,方便数据库的管理和维护。
2.2 控制数据库的逻辑结构表空间可以用来控制数据库的逻辑结构,将不同的表和索引组织在不同的表空间中,可以根据需要对表和索引进行分组和分类,便于管理和维护。
2.3 控制数据库的物理结构表空间还可以用来控制数据库的物理结构,可以指定表空间的大小、位置和其他属性,以满足数据库的需要。
通过合理地设置表空间,可以提高数据库的性能和可用性。
3. 创建表空间的步骤在神通数据库中,创建表空间可以按照以下步骤进行操作:3.1 登录数据库首先,需要使用数据库管理工具登录到神通数据库,以便进行后续的操作。
3.2 创建表空间在登录成功后,可以使用SQL语句来创建表空间。
例如,可以使用以下语句创建一个名为my_tablespace的表空间:CREATE TABLESPACE my_tablespace DATAFILE 'my_tablespace.dat' SIZE 100M;这条语句创建了一个大小为100M的表空间,并将其存储在名为my_tablespace.dat的数据文件中。
3.3 指定默认表空间创建表空间后,可以将其设为默认表空间,以便新创建的表和索引自动存储在该表空间中。
可以使用以下语句来指定默认表空间:ALTER DATABASE SET DEFAULT TABLESPACE my_tablespace;这条语句将默认表空间设置为my_tablespace。
PLSQL Developer 10g 创建、删除表空间、更名

EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT MANUAL FLASHBACK ON;
7) DROP TABLESPACE db_name_ INCLUDING CONTENTS AND DATAFILES; //删除表空间
--测试创建表空间
create tablespace IMSTEST
datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\HNORCL\IMTEST.def' size 200M
TEMPORARY TABLESPACE "TEMP" ;
grant connect to PROJECTNAME ;
grant dba to PROJECTNAME ;
grant sysdba to PROJECTNAME ;
--创建无限表空间 SQL代码
CREATE TABLESPACE test DATAFILE 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORACLE\TEST1.DBF' SIZE 20000M
extent management local autoallocate
segment space management auto;
CREATE USER PROJECTNAME
IDENTIFIED BY "PROJECTNAME"
DEFAULT TABLESPACE "TBS_PROJECTNAMETEST"
创建表空间

创建表空间第一篇:什么是表空间?在Oracle数据库中,表空间是数据库逻辑存储结构的一部分。
它是由一个或多个数据文件组成的逻辑存储单元,用于存储数据库中的表、索引、过程、触发器等对象。
一个表空间中可以包含多个数据文件,这些数据文件可以位于不同的磁盘上。
表空间的组织方式是物理和逻辑分离的,即表空间中的数据文件可以分散在不同的磁盘上,但是逻辑上它们是一个整体。
这种组织方式可以提高数据库的灵活性和可靠性。
在Oracle数据库中,默认情况下会创建一个表空间,这个表空间叫做SYSTEM表空间,它包含了数据库的系统表、系统索引和其他重要的对象。
除了SYSTEM表空间以外,我们还可以创建其他的表空间来存储用户表、索引、LOB数据等。
第二篇:创建表空间的步骤在Oracle数据库中,我们可以使用CREATE TABLESPACE语句来创建表空间。
下面是创建表空间的步骤:1. 打开SQL*Plus或者其他的Oracle命令行工具。
2. 以系统管理员的身份登录数据库。
3. 执行CREATE TABLESPACE语句。
语法如下:CREATE TABLESPACE tablespace_nameDATAFILE 'file_name' SIZE size[ AUTOEXTEND { ON | OFF } ] [ MAXSIZE max_size ][ LOGGING | NOLOGGING ][ ONLINE | OFFLINE ]其中,tablespace_name是要创建的表空间的名称,file_name是要创建的数据文件的名称,size是数据文件的大小,AUTOEXTEND参数指定数据文件是否可以自动扩展,MAXSIZE参数指定数据文件的最大大小,LOGGING参数指定是否将表空间的操作日志记录到日志文件中,ONLINE参数指定是否将表空间置为联机状态,OFFLINE参数指定是否将表空间置为脱机状态。
UNDO表空间详解

UNDO表空间详解目录UNDO表空间详解 (1)一、描述 (2)二、作用 (3)1. 回退事务 (3)2. 读一致性 (3)3. 事务恢复 (4)4. 倒叙查询(FlashBack Query) (4)三、UNDO参数 (5)1. UNDO_MANAGEMENT (5)2. UNDO_TABLESPACE (5)3. UNDO_RETENTION (5)四、UNDO表空间操作 (6)1. 建立UNDO表空间 (6)2. 修改UNDO表空间 (7)3. 切换UNDO表空间 (7)4. 删除UNDO表空间 (8)五、其他操作(段、区、块) (8)1. UNDO表空间及大小: (8)2. undo段 (9)3. undo段中区的状态: (10)六、统计信息 (11)1. 显示UNDO表空间统计信息 (11)2.显示UNDO段统计信息. (12)3.显示UNDO区信息 (12)4.显示活动事务信息. (13)5. V$ROLLSTAT中的常用列 (13)七、参考文档: (14)附件1: (14)附件2: (22)一、描述undo表空间是Oracle特有的概念,undo表空间中会自动分配undo段,这些undo段用来保存事务中的DML语句的undo信息,也就是来保存数据在被修改之前的值。
在rollback,实例恢复(前滚),一致性读CR块的构造时会使用到undo信息,由于undo的引入,从而Oracle 的select语句实现一致性读时,不需要任何锁。
undo表空间和其它表空间有很多类似的地方:undo数据块也会被读到buffer cache缓存起来,修改时也会产生redo log,数据也会写回到undo表空间的磁盘上。
所以崩溃后,undo块的buffer cache也会恢复过来。
Undo:是基于回滚的,当数据被误修改时,可以从修改的新状态回退到老状态,实现事物回滚,相当于撤销操作。
是回滚,就像倒录音带一样,把走过的路反向再走一遍回到原点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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: 起初设置为200M3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k4) 空间名称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 cocis2 default tablespace cocis3 temporary tablespace temp;用户已创建。
SQL> select username,default_tablespace,temporary_tablespace2 from dba_users3 where username='COCIS';USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE------------------------------ ------------------------------ ------------------ COCIS COCIS TEMPSQL> selectusername,user_id,password,default_tablespace,temporary_tablespace2 from dba_users3 where username='COCIS';USERNAME USER_ID PASSWORD TEMPORARY_TABLESPACE------------------------------ ---------- -----------------------------------------------------COCIS 61 E031F623C0F15D34 COCIS3.权限的授予SQL> grant connect,resource to cocis;授权成功。
注释:当用户创建之后,一般只需要授予CONNECT和RESOURCE这两个角色即可。
若要单独进行授权,则需执行单独的授权命令,如grant create table to cocis;等。
如果要授予SYSDBA的权限给用户则用如下命令SQL> grant SYSDBA to cocis;---------------------------------------------------SQL> revoke unlimited tablespace from cocis;撤销成功。
SQL> alter user cocis quota unlimited on cocis;用户已更改。
注释:为了更严谨的管理,可以回收用户的UNLIMITED TABLESPACE权限,然后对用户的空间限额进行单独授权。
Oracle 使用时间长了,新增了许多user 和tablespace. 需要清理一下对于单个user和tablespace 来说,可以使用如下命令来完成。
步骤一:删除userdrop user ×× cascade说明:删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。
步骤二:删除tablespaceDROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;但是,因为是供开发环境来使用的db, 需要清理的user 和 table space 很多。
思路一:Export出DB中所有的user和tablespace, 筛选出系统的和有用的tablespace,把有用的信息load到一张表中去。
然后写例程循环,把不在有用表的tablespace删掉1. select username,default_tablespace from dba_users;2.create table MTUSEFULSPACE(ID Number(4) NOT NULL PRIMARY KEY,USERNAME varchar2(30),TABLESPACENAME varchar2(60),OWNERNAME varchar2(30));3.declare icount number(2);tempspace varchar2(60);beginfor curTable in (select username as allusr,default_tablespace as alltblspace from dba_users)looptempspace :=curTable.alltblspace;dbms_output.put_line(tempspace);select count(TABLESPACENAME) into icount from MTUSEFULSPACE where TABLESPACENAME = tempspace;if icount=0 thenDROP TABLESPACE tempspace INCLUDING CONTENTS AND DATAFILES; end if;commit;end loop;end;执行后会报如下错误ORA-06550: 第 10 行, 第 5 列:PLS-00103: 出现符号 "DROP"在需要下列之一时:begin case declare exitfor goto if loop mod null pragma raise return select updatewhile with <an identifier><a double-quoted delimited-identifier> <a bind variable> <<close current delete fetch lock insert open rollbacksavepoint set sql execute commit forall merge pipe06550. 00000 - "line %s, column %s:\n%s"*Cause: Usually a PL/SQL compilation error.*Action:好像是被锁了。
没办法,例程不能写,就只能组出语句执行了。
把需要删除的user, tablespace 导出到Excel. 使用CONCATENATE 组出SQL. 贴到SQLdevelop 批量执行。
整个删除会比较耗时间, 100多个user. 用了12个小时左右。
如要找datafile的具体位置,可以使用select , from v$tablespace t1, v$datafile t2 where t1.ts# = t2.ts#;SQL code--删除空的表空间,但是不包含物理文件drop tablespace tablespace_name;--删除非空表空间,但是不包含物理文件drop tablespace tablespace_name including contents;--删除空表空间,包含物理文件drop tablespace tablespace_name including datafiles;--删除非空表空间,包含物理文件drop tablespace tablespace_name including contents and datafiles;--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTSdrop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;。