Oracle_如何创建表空间
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 ⽤户名;。
linux下创建oracle表空间

linux下创建oracle表空间1 、登录服务器2 、查看磁盘空间是否够⼤df -h-h更具⽬前磁盘空间和使⽤情况以更易读的⽅式显⽰ [root@rac1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 2.9G 2.3G 521M 82% / none 209M 0 209M 0% /dev/shm /dev/sda2 4.5G 1.8G 2.5G 42% /u01 /dev/sde1 512M 80M 433M 16% /ocfs -H根上⾯的-h参数相同,不过在根式化的时候,采⽤1000⽽不是1024进⾏容量转换 [root@rac1 ~]# df -H Filesystem Size Used Avail Use% Mounted on /dev/sda1 3.1G 2.4G 546M 82% / none 219M 0 219M 0% /dev/shm /dev/sda2 4.8G 1.9G 2.7G 42% /u01 /dev/sde1 537M 84M 454M 16% /ocfs -k以单位显⽰磁盘的使⽤情况 [root@rac1 ~]# df -k Filesystem 1K-blocks Used Available Use% Mounted onsu - oracle 切换到oracle⽤户(linux的⼀个⽤户名)3 、在/home/oracle/oradata ⽬录下新建⼀个⽂件夹,后⾯创建表空间需要⽤到cd /home/oracle/oradatamkdir abc4 、 sqlplus / as sysdba (以dba⾝份登录数据库,系统的超级⽤户)5 、创建临时表空间创建⽤户前必须要先创建临时表空间和数据库表空间两个表空间,否则⽤系统默认的表空间不好。
create temporary tablespace abc_temp tempfile '/home/oracle/oradata/abc/abc_temp.dbf' size 512m autoextend on next 100m maxsize 1024m extent management local;说明:1)abc_temp 临时表空间名字2)/home/oracle/oradata/abc 存放数据库⽂件的地⽅,⼀般是安装数据库后有控制⽂件,数据⽂件和⽇志⽂件的⽂件夹,再加上要创建表空间的名字+dbf (数据⽂件)3)512m 表空间的初始⼤⼩4)100m 表空间的⾃动增长⼤⼩5)1024m 表空间最⼤的⼤⼩6 、创建数据表空间create tablespace abc logging datafile '/home/oracle/oradata/abc/abc.dbf' size 512m autoextend on next 100m maxsize 1024m extent management local;7 、创建⽤户并指定表空间create user abc identified by abc default tablespace abc temporary tablespace abc_temp;注:create standardtable.sql 创建表8 、给⽤户授予权限grant dba to abc; (给abc ⽤户授予了dba 所有权限)9 、删除⽤户以及⽤户所有的对象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';再执⾏:drop user nim cascade; 删除⽤户nim10、删除表空间前提:删除表空间之前要确认该表空间没有被其他⽤户使⽤之后再做删除drop tablespace nimeng including contents and datafiles cascade constraints ;including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,⽽未加此参数,表空间删不掉,所以习惯性的加此参数including datafiles 删除表空间中的数据⽂件cascade constraints 同时删除 tablespace 中表的外键参照如果在清除表空间之前,先删除了表空间对应的数据⽂件,会造成数据库⽆法正常启动和关闭。
Oracle起步---创建临时表空间表空间创建用户授权

Oracle起步---创建临时表空间表空间创建⽤户授权1. 安装: 百度⼀下你就知道2. sqlplus登录/sqlplus命令登录 在安装Oracle时,你需要记住设置的“全局数据库名”(默认为orcl) 和⼝令,在以两种⽅式登录时: ⽤户名: sys(超级⽤户==sysdba) / system(管理员⽤户和sys想⽐区别在于system不能创建表空间)... ⼝令:注意这⾥不仅仅要输⼊你设置的⼝令,在后⾯还要加上as sysdba 如:orcl as sysdba3. 创建临时表空间/表空间/创建⽤户/授权 代码如下:1:创建临时表空间create temporary tablespace user_temptempfile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_temp.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;2:创建数据表空间create tablespace user_dataloggingdatafile 'Q:\oracle\product\10.2.0\oradata\Test\xyrj_data.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;第3步:创建⽤户并指定表空间create user username identified by passworddefault tablespace user_datatemporary tablespace user_temp;第4步:给⽤户授予权限grant connect,resource,dba to username;4. 删除操作中的truncate,delete(不带where⼦句的delete语句),drop异同-------转⾄相同点:truncate和不带where⼦句的delete, 以及drop都会删除表内的数据不同点:1.truncate和 delete只删除数据不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态.2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才⽣效;如果有相应的trigger,执⾏的时候将被触发. truncate,drop是ddl, 操作⽴即⽣效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.3.delete语句不影响表所占⽤的extent, ⾼⽔线(high watermark)保持原位置不动显然drop语句将表所占⽤的空间全部释放 truncate 语句缺省情况下见空间释放到 minextents个 extent,除⾮使⽤reuse storage; truncate会将⾼⽔线复位(回到最开始).4.速度,⼀般来说: drop>; truncate >; delete5.安全性:⼩⼼使⽤drop 和truncate,尤其没有备份的时候.否则哭都来不及使⽤上,想删除部分数据⾏⽤delete,注意带上where⼦句. 回滚段要⾜够⼤. 想删除表,当然⽤drop 想保留表⽽将所有数据删除. 如果和事务⽆关,⽤truncate即可. 如果和事务有关,或者想触发trigger,还是⽤delete. 如果是整理表内部的碎⽚,可以⽤truncate跟上reuse stroage,再重新导⼊/插⼊数据。
oracle建立表空间的方法

oracle建立表空间的方法Oracle数据库中建立表空间的方法主要有两种:一种是通过SQL命令的方式,另一种是通过Oracle客户端Enterprise Manager Console来创建。
通过SQL命令的方式创建表空间,需要先创建临时表空间和数据表空间,然后创建用户并指定表空间。
具体步骤如下:1. 创建临时表空间。
可以通过以下命令创建:```sqlcreate temporary tablespace user_temptempfile 'D:\oracle\oradata\Oracle9i\user_'size 50m autoextend on next 50mmaxsize 20480mextent management local;```2. 创建数据表空间。
可以通过以下命令创建:```sqlcreate tablespace user_dataloggingdatafile 'D:\oracle\oradata\Oracle9i\user_'size 50m autoextend on next 50mmaxsize 20480mextent management local;```3. 创建用户并指定表空间。
可以通过以下命令创建用户并将表空间指定给该用户:```sqlcreate user username identified by password;grant create session, create tablespace to username;alter user username default tablespace user_data temporary tablespace user_temp;```通过Oracle客户端Enterprise Manager Console来创建表空间,可以通过以下步骤完成:1. 打开Oracle客户端Enterprise Manager Console。
Oracle-RAC增加ASM盘-创建表空间

Oracle RAC增加ASM盘,创建表空间实验环境说明虚拟机软件Oracle VirtualBox 4.3.8数据库软件Clusterware 10.2.0.1+database 10.2.0.1数据库名称OracleRAC节点SID OracleRA1 OracleRA2节点主机名rac1 rac2对应虚拟机名称CentOS_Oracle_2 CentOS_Oracle_3一、共享盘设置1、在一个虚拟机上创建虚拟盘(两台虚拟机都要处于关机状态)(本例选择在CentOS_Oracle_2上创建虚拟盘)在虚拟机列表上选中CentOS_Oracle_2,单击右键,选择设置选择创建新的磁盘由于是选择固定大小,单击创建后会立刻分配硬盘空间如果设置的虚拟盘比较大的话,下面的创建过程可能会需要较多时间创建完成后单击OK退出设置界面2、设置虚拟盘为共享盘设置完成后关闭虚拟介质管理界面3、为第二台虚拟机添加虚拟盘。
选中CentOS_ORACLE_3,单击鼠标右键,选择设置。
确认已添加虚拟盘单击OK,完成添加共享磁盘设置二、创建ASM磁盘1、启动一台虚拟机,创建分区打开xshell软件,连接到rac1.查看添加的磁盘并分区新添加的磁盘路径为:/dev/sdg 对其进行分区建立根据需要,分成需要的的分区数量和大小,这里只分一个区并且使用全部可用空间启动第二台虚拟机,xshell连接进去,查看硬盘分区2、创建ASM磁盘在一个节点上创建ASM磁盘,另一个节点刷新ASM磁盘列表即可在rac1节点创建ASM磁盘。
先查看已存在的ASM磁盘名称。
Root用户执行:/etc/init.d/oracleasm listdisks查到已存在三个asm磁盘,新建的asm磁盘不能和已存在的重名。
所以新建的asm磁盘定名为VOL4(建议全大写字母+数字)Root用户执行:/etc/init.d/oracleasm createdisk VOL4 /dev/sdg1然后查看ASM磁盘列表。
创建表空间

创建表空间创建Oracle数据库表空间是数据库管理员经常需要做的一项任务。
Oracle的表空间是用来存储数据库对象的物理存储区域,包括表、索引、视图等等。
在创建表空间时,需要考虑到数据库的性能和安全等因素。
以下是创建Oracle数据库表空间的步骤和注意事项。
步骤一:登录到Oracle数据库在创建表空间前,首先需要登录到Oracle数据库并以管理员身份登录。
可以使用SQL*Plus、SQL Developer等工具进行登录。
步骤二:选择合适的表空间名称和大小根据数据库的需要,选择合适的表空间名称和大小。
表空间名称应该能够反映出该空间的用途,如存储某个特定表或索引。
表空间大小需要根据数据量和增长率进行估计,以便在日后不必频繁地扩展表空间。
步骤三:创建表空间使用CREATE TABLESPACE命令来创建表空间,语法格式如下:CREATE TABLESPACE 表空间名称DATAFILE '存储路径' SIZE 表空间大小LOGGING/NONLOGGINGEXTENT MANAGEMENT {DICTIONARY | LOCAL};其中,表空间名称和大小是必须指定的。
存储路径是指数据文件的存储路径,可以使用相对路径或绝对路径。
LOGGING/NONLOGGING表示该表空间的存储是否记录数据库的日志。
EXTENT MANAGEMENT {DICTIONARY | LOCAL}表示该表空间使用字典管理或局部管理。
例如,以下命令将创建一个名为USR_TAB的表空间,大小为100MB,存储在路径C:\ORACLE\ORADATA\ORCL\USR_TAB01.DBF中,并且记录到数据库日志:CREATE TABLESPACE USR_TABDATAFILE 'C:\ORACLE\ORADATA\ORCL\USR_TAB01.DBF' SIZE 100MLOGGING;步骤四:为表空间添加数据文件使用ALTER TABLESPACE命令为表空间添加数据文件,语法格式如下:ALTER TABLESPACE 表空间名称 ADD DATAFILE '存储路径' SIZE 数据文件大小;其中,表空间名称是要添加数据文件的表空间名称,存储路径和数据文件大小需要指定。
Oracle19C创建用户表空间

Oracle19C创建⽤户表空间Oracle 19C 创建⽤户&表空间声明:本次操作基于win10系统安装Oracle 19C1.创建⽤户需要管理员权限运⾏ cmd 按如下输⼊命令sqlplus / as sysdba---------以sys登陆超级⽤户(sysdba)2新建⽤户create user ⽤户名 IDENTIFIED BY 密码;如:create user C##SCOTT IDENTIFIED BY 123456;3.创建表空间create tablespace 表空间名称 datafile 路径 size ⼤⼩;如:create tablespace SCOTT_TEST_DATA datafile 'D:\devlop\Oracle19c\OracleSpace\scott_test.dbf' size 2048M;注意:我们给⽤户赋予新建的表空间权限的时候,⼀定要重启⼀下数据库,否则会失败4.重启数据库关闭数据库:shutdown immediateSQL> shutdown immediate;数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
5.启动 startupORACLE 例程已经启动。
Total System Global Area 5133827960 bytesFixed Size 9277304 bytesVariable Size 922746880 bytesDatabase Buffers 4194304000 bytesRedo Buffers 7499776 bytes数据库装载完毕。
数据库已经打开。
6.分配表空间alter user ⽤户名 default tablespace 表空间名称;如:alter user C##SCOTT default tablespace SCOTT_TEST_DATA;7.给⽤户授权dba是数据库管理员它除了重启数据库修改字符集的权限没有外具有其它全部权限如建表改表表的增删改查,建表空间建索引视图存储过程,建⽤户给⽤户授权等等SQL> grant dba to C##SCOTT;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SYS用户在CMD下以DBA身份登陆:
在CMD中打sqlplus /nolog
然后再
conn / as sysdba
//创建临时表空间
create temporary tablespace user_temp
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
//创建数据表空间
create tablespace test_data
logging
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
//创建用户并指定表空间
create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
//给用户授予权限
grant connect,resource to username;
//以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间,这就不用在每创建一个对象给其指定表空间了
撤权:
revoke 权限... from 用户名;
删除用户命令
drop user user_name cascade;
建立表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
一、建立表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
二、建立UNDO表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M
#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间: ALTER SYSTEM SET undo_tablespace=UNDOTBS02;
三、建立临时表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
四、改变表空间状态
1.使表空间脱机
ALTER TABLESPACE game OFFLINE;
如果是意外删除了数据文件,则必须带有RECOVER选项
ALTER TABLESPACE game OFFLINE FOR RECOVER;
2.使表空间联机
ALTER TABLESPACE game ONLINE;
3.使数据文件脱机
ALTER DATABASE DATAFILE 3 OFFLINE;
4.使数据文件联机
ALTER DATABASE DATAFILE 3 ONLINE;
5.使表空间只读
ALTER TABLESPACE game READ ONLY;
6.使表空间可读写
ALTER TABLESPACE game READ WRITE;
五、删除表空间
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
六、扩展表空间
首先查看表空间的名字和所属文件
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
1.增加数据文件
ALTER TABLESPACE game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;
2.手动增加数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M;
3.设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M;
设定后查看表空间信息
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE。