Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下

对于单个user和tablespace 来说, 可以使用如下命令来完成。

步骤一:  删除user

drop user ×× cascade

说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。

步骤二: 删除tablespace

DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

--删除空的表空间,但是不包含物理文件
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 CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;

(1)创建临时表空间

create temporary tablespace keyprojectdata_temp tempfile 'e:/oracle/product/10.2.0/oradata/keyprojectdata/keyprojectdata_temp.dbf' size 128m;

(2)创建表空间

create tablespace keyprojectdata  logging datafile 'e:/oracle/product/10.2.0/oradata/keyprojectdata/keyprojectdata.dbf' size 2048m;

(3)创建用户并指定表空间

create user keyprojectdata identified by keyproject default tablespace keyprojectdata  temporary tablespace keyprojectdata_temp;

(4)给用户授权

grant connect,resource to keyprojectdata;

===============================

Oracle创建删除用户、角色、表空间、导入导出、...命令总结

//创建临时表空间

create temporary tablespace zfmi_temp 
tempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf' 
size 32m 
autoextend on 
next 32m maxsize 2048m 
extent management local;

//tempfile参数必须有

//创建数据表空间

create tablespace zfmi 
logging 
datafile 'D:\oracle\oradata\zfmi\zfmi.dbf' 
size 100m 
autoextend on 
next 32m maxsize 2048m 
extent management local;

//datafile参数必须有

//删除用户以及用户所有的对象

drop user zfmi cascade;

//cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数

//删除表空间 
前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除

drop tablespace zfmi including contents and datafiles cascade onstraints;

//including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数 
//including datafiles 删除表空间中的数据文件 
//cascade constraints 同时删除tablespace中表的外键参照

如果删除表空间之前删除了表空间文件,解决办法:

如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。 
可使用如下方法恢复(此方法已经在oracle9i中验证通过): 
下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。 
$ sqlplus /nolog 
SQL> conn / as sysdba; 
如果数据库已经启动,则需要先执行下面这行: 
SQL> shutdown abort 
SQL> startup mount 
SQL> alter database datafile 'filename' offline drop; 
SQL> alter database open; 
SQL> drop tablespace tablespace_name including contents;

//创建用户并指定表空间

create user zfmi identified by zfmi 
default tablespace zfmi temporary tablespace zfmi_temp;

//identified by 参数必须有

//授予message用户DBA角色的所有权限

GRANT DBA TO zfmi;

//给用户授予权限

grant connect,resource to zfmi; (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"打头的数据导出 
   exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。 
也可以在上面命令后面 加上 compress=y 来实现。

数据的导入 
1 将D:daochu.dmp 中的数据导入 TEST数据库中。 
   imp system/manager@TEST file=d:daochu.dmp 
   imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y 
   上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 
   在后面加上 ignore=y 就可以了。 
2 将d:daochu.dmp中的表table1 导入 
imp system/manager@TEST file=d:daochu.dmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

注意: 
操作者要有足够的权限,权限不够它会提示。 
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

附录一: 
给用户增加导入数据权限的操作 
第一,启动sql*puls 
第二,以system/manager登陆 
第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略) 
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , 
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, 
      DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字 
第五, 运行-cmd-进入dmp文件所在的目录, 
      imp userid=system/manager full=y file=*.dmp 
      或者 imp userid=system/manager full=y file=filename.dmp

执行示例: 
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp

屏幕显示 
Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006 
(c) Copyright 2000 Oracle Corporation. All rights reserved.

连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production 
With the Partitioning option 
JServer Release 8.1.7.0.0 - Production

经由常规路径导出由EXPORT:V08.01.07创建的文件 
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入 
导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换) 
. 正在将AICHANNEL的对象导入到 AICHANNEL 
. . 正在导入表                  "INNER_NOTIFY"          4行被导入 
准备启用约束条件... 
成功终止导入,但出现警告。

附录二: 
Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的. 
先建立import9.par, 
然后,使用时命令如下:imp parfile=/filepath/import9.par 
例 import9.par 内容如下: 
        FROMUSER=TGPMS      
        TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)         
        ROWS=Y 
        INDEXES=Y 
        GRANTS=Y 
        CONSTRAINTS=Y 
        BUFFER=409600 
        file==/backup/ctgpc_20030623.dmp 
        log==/backup/import_20030623.log

======================================================

Oracle数据库创建表空间及为用户指定表空间
2012-10-30 09:25:03     我来说两句      作者:jeasonjack
收藏    我要投稿
Oracle数据库创建表空间及为用户指定表空间
 
SYS用户在CMD下以DBA身份登陆: 
 
在CMD中打sqlplus /nolog 
  www.2cto.com  
然后再 
onn / as sysdba 
 
//创建临时表空间  
 
Java代码  
create temporary tablespace user_temp    
  
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'   
  
size 50m    
  
autoextend on    
  
next 50m maxsize 20480m    
  
extent management local;  
  www.2cto.com  
//创建数据表空间  
Java代码  
create tablespace test_data    
  
logging    
  
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'   
  
size 50m    
  
autoextend on    
  
next 50m maxsize 20480m    
  
extent management local;    
 
//创建用户并指定表空间 
Java代码  
create user username identified by password    
  
default tablespace user_data    
  
temporary tablespace user_temp;  
 
//给用户授予权限 
 
Java代码  
grant connect,resource to username;   
 
//以后以该用户登录,创建的任何数据库对象都属于user_temp 和user_data表空间, 
 
这就不用在每创建一个对象给其指定表空间了 
 
撤权:    www.2cto.com  
       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 INCL ING CONTENTS AND DATAFILES; 
 
一、建立表空间 
 
CREATE TABLESPACE data01 
 
DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M 
 
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 
 
二、建立UNDO表空间   www.2cto.com  
 
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.使表空间脱机   www.2cto.com  
 
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 INCL ING 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.增加数据文件   www.2cto.com  
 
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;   www.2cto.com  
 
设定后查看表空间信息 
 
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 

Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间的更多相关文章

  1. oracle数据库导入导出命令!(转)

    oracle数据库导入导出命令! Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成 ...

  2. Oracle数据库导入导出命令总结

    Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中.利用 ...

  3. Oracle数据库导入导出命令总结 (详询请加qq:2085920154)

    分类: Linux Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的 ...

  4. Oracle数据导入导出命令

    IMP 和EXP命令 Oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处 ...

  5. oracle数据库导入导出命令!

    Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢 ...

  6. oracle数据泵导入导出命令

    1.在PL/SQL的界面,找到Directories文件夹,找到目录文件的路径 2.通过SSH进入服务器 找到相应的路径 cd /u01/oracle/dpdir 输入指令 df -h   查看资源使 ...

  7. Oracle 11g导入导出命令

    首先需要进入系统的cmd: 执行导出命令,效果如下 expdp hisjk/hisjk@orcl  directory=DATA_PUMP_DIR dumpfile=hisjk.dmp SCHEMAS ...

  8. Oracle基础 exp/imp 数据泵导入/导出 命令

    一.导出方式: 使用exp/imp方式导出数据分为四种方式: 1.表方式导出:一个或多个指定的表,包括表的定义.表数据.表的所有者授权.表索引.表约束,以及创建在该表上的触发器.也可以只导出结构,不导 ...

  9. oracle 数据导入导出命令

    1.数据导出:  1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中   exp system/manager@TEST file=d:\daoc ...

  10. mysql导入导出sql文件(包括数据库和数据表的操作)

    废话不多说直接开始. 在windows命令行下登录mysql,创建一个test_01数据库,创建一个user表,并插入一条数据,如下 一.导出数据库test_01 1.退出数据库,在命令行中输入 my ...

随机推荐

  1. Jmeter用于接口测试中,关联如何实现

    Jmeter用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取. 1.打开jmeter, 使用的3.3的版本 ...

  2. 【ITOO 5】启用MSDTC后的各种问题,以及解决方案

    导读:在上篇博客中说到,通过启动微软的msdtc来实现分布式事务处理,随后,问题就来了,现在,一一总结这个过程中的问题. 一.已禁用对分布式事务管理器(MSDTC)的网络访问. 1.1,问题描述 已禁 ...

  3. [luoguP1360] [USACO07MAR]黄金阵容均衡Gold Balanced L…

    传送门 真的骚的一个题,看了半天只会个前缀和+暴力.. 纯考思维.. 良心题解 #include <cstdio> #include <cstring> #include &l ...

  4. linux 常见名词及命令(一)

    linux  PK  wondows 稳定且有效率.免费或少许费用.漏洞少且修补快.多任务多用户. 安全的用户及文件权限策略.适合小内核程序的嵌入系统.相对不耗资源. 热门的开源系统 红帽企业系统(R ...

  5. Populating Next Right Pointers in Each Node (DFS,没想到)

    Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

  6. Anagrams(hash表)

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  7. 如何使用sqlalchemy获取某年某月的数据总和

    代码如下: # 基于Flask的SQLAlchemy # models class History(db.Model): __tablename__ = 'historys' id = db.Colu ...

  8. 安装和配置Apache-tomcat

    https://tomcat.apache.org/download-90.cgi 我随便下载了一个,而且解压了 我把路径:G:\php\apache-tomcat-9.0.6\bin 放入path, ...

  9. SQL 视图(Views)

    SQL 视图(Views) 视图是可视化的表. 本章讲解如何创建.更新和删除视图. SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列 ...

  10. Java中常见的排序算法

    这是我摘取的一段英文资料.我认为学习算法之前,对各种排序得有个大致的了解: Sorting algorithms are an important part of managing data. At ...