原标题:在不更换表空间的情况下,重建oracle数据库(用户),并重新导入数据
1. 删除前的准备工作:
(1) 连接数据源,导出备份数据
exp tianzhi_smart/tianzhi_smart@1localhost:1521/orcl file='E:\tianzhi_smart.dmp';
(2) 登录即将被删除的用户,查看当前连接用户缺省表空间:
SQL>select username,default_tablespace from user_users;
2. 删除工作:
(1) 以sysdba管理员登录,
sqlplus /nolog
conn /as sysdba;
(2) 删除数据库(用户),并没有删除对应的表空间
drop user tianzhi_smart cascade;
3. 创建用户:
(1) 创建用户,并指定表空间,还是原来的表空间,前面已经查询到
create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users;
(2) 授予权限
grant all privileges to tianzhi_smart;
4. 导入数据
imp tianzhi_smart/tianzhi_smart@localhost:1521/orcl file='C:\tianzhi_smart.dmp' full=y;
说明:
在硬盘盘符下看到的文件是数据库存放数据的数据文件,执行完drop user xxx cascade;后,会把用户及用户所属的表删除掉,但表空间还是存在的,只是里面的数据已被删除掉了。
最后说一点,删除了用户和数据后是不会自动释放表空间的,表空间容量是建立数据库的时候初始化的,比方说XXX tablespace 容量为1G,你删除数据是不影响这个容量的,它在硬盘上仍然占用1G空间。