第一篇:Oracle11g 通过工具创建表空间
Oracle备份(11g)
例如: 用户名: test 密码:test 全局数据库名:joyo
开始-运行-cmd 输入 exp test/test@joyo file=d:back.dmp full=y 其中back备份的名,可以任意起,后缀一定是.dmp的
Oracle还原
例如:要还要的用户名为:apple 密码:apple 开始-运行-cmd 输入 imp apple/apple@joyo file=d:back.dmp full=y
还原的用户建立
1.建表格
在建立用户前先建立用户使用的表格
在 oracle Enterprise Manage Console的存储下建立表空间 打开oracle Enterprise Manage Console
输入要建立的表空间名字 如 test 大小 输入100 M 表格可以自已任意起名字
点创建 创建表格
点中创建的表格test下的数据文件的信息
选择 存储
选中数据文件已满后自动扩展
100MB
点应用
表格创建成功
2.建用户
在 oracle Enterprise Manage Console的安全性下建立用户 打开oracle Enterprise Manage Console
输入用户名
如hong 密码hong 默认值选刚建的表空间test 用户可以自已任意起名字
角色选DBA
点创建,创建用户成功
第二篇:oracle-sql语句-创建表空间、数据库
1、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0)ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0)total_space from dba_data_files order by tablespace_name;
3、查看回滚段名称及大小
select segment_name, tablespace_name, r.status,(initial_extent/1024)InitialExtent,(next_extent/1024)NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+)order by segment_name;
4、查看控制文件
select name from v$controlfile;获取创建表空间的sql select
dbms_lob.substr(dbms_metadata.get_ddl('TABLESPACE',a.tablespace_name))from dba_tablespaces a;
SQL> select sid,serial# from v$session where username='TEST';alter system kill session '150,9019';查看被锁的表 select object_name,machine,s.sid,s.serial#,s.event from gv$locked_object l,dba_objects o,gv$session s where l.object_id=o.object_id and l.session_id=s.sid;alter system kill session ‘sid,serial#’;
5、查看日志文件
select member from v$logfile;
6、查看表空间的使用情况
select sum(bytes)/(1024*1024)as free_space,tablespace_name from dba_free_space group by tablespace_name;
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_NAME;
Select b.tablespace_name as表空间名,b.bytes as字节数,(b.bytes-sum(nvl(a.bytes,0)))as已使用,sum(nvl(a.bytes,0))as剩余空间,sum(nvl(a.bytes,0))/(b.bytes)*100 as 剩余百分比 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_id,b.bytes order by b.file_id;
7、查看数据库库对象
select owner, object_type, status, count(*)count# from all_objects group by owner, object_type, status;
8、查看数据库的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
9.查看某个表空间内所占空间大于某个值的段(表或索引):
Select segment_name,bytes FROM dba_segments Where bytes>10000000 AND tablespace_name='tablespace_name';10.查看所有表空间的碎片程度(值在30以下表示碎片很多)
select tablespace_name,sum(bytes),sum(free),sum(free)*100/sum(bytes)from(select
b.file_id file_ID,b.tablespace_name tablespace_name,b.bytes Bytes,(b.bytes-sum(nvl(a.bytes,0)))used,sum(nvl(a.bytes,0))free,sum(nvl(a.bytes,0))/(b.bytes)*100
Percent
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id)group by tablespace_name order by sum(free)*100/sum(bytes);11.查看自上次数据库启动以来所有数据文件的读写次数
select
substr(DF.NAME,1,5)Drive,DF.NAME file_name,(fs.phyblkrd+fs.phyblkwrt)
from v$filestat fs,v$datafile df
where df.file#=fs.file#;
创建临时表空间: //创建临时表空间
create temporary tablespace mytest tempfile 'E:/Program/oracle/product/10.1.0/oradata/orcl/mytest.dbf' size 32m autoextend on next 32m maxsize 1024m extent management local;
//创建数据表空间
create tablespace mytest_data logging datafile 'E:/Program/oracle/product/10.1.0/oradata/orcl/mytest_data.dbf' size 32m autoextend on next 32m maxsize 1024m extent management local;//创建用户并指定表空间
create user testaccount identified by testpwd default tablespace mytest_data temporary tablespace mytest;//给用户授予权限
grant connect,resource to testaccount;(db2:指定所有权限)12,创建一个用户:
CREATE USER username IDENTIFIED BY password OR IDENTIFIED EXETERNALLYOR IDENTIFIED GLOBALLY AS ‘CN=user’[DEFAULT TABLESPACE tablespace][TEMPORARY TABLESPACE temptablespace][QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[PROFILES profile_name][PASSWORD EXPIRE][ACCOUNT LOCK or ACCOUNT UNLOCK];
//查看数据库中的所有用户: select * from all_users;//or select * from dba_users 13查看oracle最大连接数: Select session_max,session_current,sessions_highwater,users_max from v$license;Select username,count(username)from v$session group by username;加密存储过程 WRAP
INAME=D:ORACLESOURCEDATE.SQL ONAME=D:ORACLESOURCEDATA.PLD
第三篇:表空间
管理表空间和数据文件
小结:作用
Undo表空间和临时表空间的建立方法
了解各个状态(online,read write,readonly)的作用,及如何改变表空间的状态的方法。了解移动数据文件的原因,及使用alter tablespace和alter datatable命令移动数据文件的方法
介绍
表空间是数据库的逻辑组成部分,从物理上将,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间是 由一个或多个数据文件组成。
表
表空间——》数据文件 数据库的逻辑结构
Oracle中逻辑结构包括表空间、段、区、块 一个数据库逻辑上由一个或多个表空间。表空间是由物理文件构成。可以达到以下作用:
(1)控制数据库占用的磁盘空间
(2)dba可以将不同数据类型部署到不同的位置,这样有利于提高I/O性能,同时利于备份和恢复等管理操作。建立表空间
建立表空间是使用create tablespace命令完成,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果其他用户来创建表空间,则用户必须要具有create tablespace的系统权限。建立数据表空间
在建立数据库后,为了便于管理,最好建立自己的表空间 Create tablespace date01(表空间的名)datefile(数据文件)‘d:testdata01.dbf’size 20m uniform size 128k(区128k)
说明;执行完上述命令后,会建立名称为date01的表空间,并为该表空间建立名称为date01.bdf的数据文件,区的大小为128k; 使用数据表空间
Create table mypart(deptno number(4), dname varchar2(14), loc varchar2(13))tablespace date01;改变表空间的状态
在建立表空间时,表空间处于联机的状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表空间执行各种语句。但是在进行系统维护或是数据库维护时,可能需要改变表空间的状态。一般情况下,由特权用户或是dba来操作。
(1)使表空间脱机
Alter tablespace 表空间名 offline;(2)使表空间联机
Alter tablesqace 表空间名online;(3)只读表空间
当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update、delete、insert操作,那么可以将表空间修改为只读 Alter tablespace 表空间名
read only 改变表空间的状态
(1)显示表空间包括的所有表
Select * from all_tables where tablespace_name=’表空间名’(2)知道表名,查看该表属于那个表空间
(3)Select tablespace_name,table_name from user_tables where table_name=’emp’;删除表空间
Drop tablespace ‘表空间’ including contents and datafiles;说明:including contents 表示删除表空间时,删除该表空间的所有数据对象,而datafiles表示将数据文件也删除。扩展表空间
1、建立表空间 sp01
2、在该表空间上建立一个普通的表 mydment 其表结构和dept一样
3、想该表空间加入数据insert into mydment select * from dept;
4、当一定时候就会出现无法扩展的问题,怎么办?
5、就扩展该表空间,为其增加更多的存储空间。有三种方法:(1)增加数据文件
Alter tablespace sp01 add datefile ‘d:testsp01.dbf’ size 20m(2)增加数据文件的大小 Alter tablespace sp01 ‘d:testsp01.dbf’ resize 20m;(数据文件不超过500m)(3)设置文件的自动增长。
Alter tablespace 表空间名 ‘d:testsp01.dbf’ autoextend on next 10m maxsize 500m;故障处理
有时,如果你的数据文件所在的磁盘损坏时,该数据文件将不再能使用,为了能够重新使用,需要将这些文件的副本移动到其他的磁盘,然后恢复。
下面以移动数据文件sp_001.dbf为例说明: 1)确定数据文件所在的表空间 select tablespace_name
from
dba_data_files
where file_neme=’d:sp001.dbf’;2)使用表空间脱机
确保数据文件的一致性,将表空间转变为offline的状态 Alter tablespace sp01 offline;3)使用命令移动数据文件到指定的目标位置 Host move d:sp01.dbf c:sp01.dbf 4)移动数据文件
在物理上移动数据后,还必须执行alter tablespace 命令对数据库进行逻辑修改:
Alter tablespace sp01 rename datafile ‘d:sp01.dbf’ to ‘c:sp01.dbf’;5)使得表空间联机
在移动了数据文件后,为了使用户可以访问表空间,必须将其转变为online状态:
Alter tablespace sp01 online;
第四篇:创建一个以你的名字命名的表空间
3、创建一个以你的名字命名的表空间,在此表空间增加一个数据文件。
4、分别设置表空间的状态为脱机、只读、读写和联机方式。5、6、7、8、5、创建一个新的数据库test.上机任务4 Oracle 10g数据库的角色和用户创建及权限设置
1、用命令方式在此数据库下创建一个以你的姓名缩写为名称的表空间。
2、在刚才创建好的表空间中创建一个以你的姓名缩写为名称的用户,密码为你的姓名缩写加学号。
3、把对SCOTT.DEPT表中更新DNAME的权限授予你刚创建的用户。
4、创建一个角色SUI使其对SCOTT.EMP的表有查询、更新、插入的权利。
5、把这个创建好的角色授予给在步骤二中创建的用户。
6、试着把创建表的管理权限授予你刚创建的用户。
7、四、上机内容(全部使用命令方式完成)
1、创建以你的名字命名的用户名和以你的五个同学的名字命名的五个用户。
2、在你的用户名下创建USERS表。
3、在USERS表中插入三条数据。
4、创建一个以你的名字缩写为名称的角色。
5、把对表USERS的查询、插入、删除、更新的权限授予你刚创建的角色。
6、把角色授予你的五个同学。
7、把对表USERS删除和插入权限从你五个同学那收回。
第五篇:Oracle数据库创建表空间、建立用户、授权、还原备份
创建用户一般分四步: 第一步:创建临时表空间 第二步:创建数据表空间 第三步:创建用户并制定表空间 第四步:给用户授予权限
--Oracle创建临时表空间 如果没有指定的临时表空间,则可以不建 CREATE TEMPORARY TABLESPACE DB_TEMP TEMPFILE 'E:Oa DataOA_TEMP.DBF'
SIZE 32M AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
--Oracle创建表空间 如果没有指定的表空间,则可以不建 CREATE TABLESPACE DB_DATA LOGGING
DATAFILE 'E:Oa DataOA_DATA.DBF'
SIZE 32M AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
--创建用户“oa”,密码“oa”
CREATE USER OA IDENTIFIED BY OA ACCOUNT UNLOCK
DEFAULT TABLESPACE DB_DATA TEMPORARY TABLESPACE DB_TEMP;
--授权
GRANT CONNECT,RESOURCE,DBA TO OA;
--导入dmp文件到数据库 这个必须用命令窗口来执行,不是SQL语句--用户名就是要导入的用户,要导入给A,那用户名就是A imp 用户名/密码@数据库实例名 file=文件地址 full=y ignore=y;
exp system/123456@orcl file=oa.dmp owner=oa full=y;
使用expdp和impdp时应该注重的事项:
1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
2、expdp和impdp是服务端的工具程序,他们只能在oracle服务端使用,不能在客户端使用。
3、imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
4、对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。
一、准备工作 1)、在备份目的路径建立备份文件夹 Oracle不会自动创建,务必手动创建 例如:d:bak 2)、用sys用户在oracle中创建逻辑目录
--oracleBak_dir这个就是这个逻辑目录的名字 SQL>create directory oracleBak_dir as ‘d:bak’;
3)、查看数据库中的逻辑目录 用来检查上面两步骤是否对应OK SQL>select * from dba_directories;4)、授权用户有对逻辑目录的读写权限
SQL>grant read,write on directory oracleBak_dir to 用户名;
二、导出
1)导出用户 登录的用户需要有导出权限
expdp 用户名/密码@orcl dumpfile=expdp.dmp directory=oracleBak_dir schemas=要导出的用户名;2)导出表
expdp用户名/密码@orcl tables=要导出的表名 dumpfile=expdp.dmp(备份文件的带后缀全名)directory=oracleBak_dir;3)按查询条件导
expdp 用户名/密码@orcl directory=oracleBak_dir dumpfile=expdp.dmp(备份文件的带后缀全名)tables=表名 query=’where deptno=20’(引号内为查询条件);4)按表空间导
expdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp(备份文件的带后缀全名)tablespaces=temp,example(表空间名称);5)导整个数据库
expdp system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;
expdp system/orcl@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;
三、导入数据 导入与导出雷同,不做解析 1)导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=oracleBak_dir dumpfile=expdp.dmp schemas=scott;2)导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=oracleBak_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp(原用户下.某表)remap_schema=scott:system(从用户scott导入到用户system);3)导入表空间 impdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp tablespaces=example;4)导入数据库
impdb system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;5)追加数据
impdp system/manager@orcl schemas=systemtable_exists_action
directory=dump_dir
dumpfile=expdp.dmp 终止expdp/impdp的方法:
1从dba_datapump_jobs中查job_name select * from dba_datapump_jobs;2连接到需要终止的JOB impdp U/PWD@instance_name attach=SYS_IMPORT_TABLE_01(这里attach后面的就是1查出来的job_name)3终止对应的JOB Import> KILL_JOB 选Y
Oracle删除用户及表空间
以system用户登录,查找需要删除的用户:--查找用户
select * from dba_users;--查找工作空间的路径
select * from dba_data_files;
--删除用户
drop user 用户名称 cascade;--删除表空间
drop tablespace 表空间名称 including contents and datafiles cascade constraint;例如:删除用户名成为LYK,表空间名称为LYK--删除用户,及级联关系也删除掉 drop user LYK cascade;--删除表空间,及对应的表空间文件也删除掉
drop tablespace LYK including contents and datafiles cascade constraint;