释放表空间更新数据库
注:需要重新创建用户直接从第3步开始,需要释放以前的表空间和删除用户从步骤1开始
释放表空间
drop tablespace orderweb including contents and datafiles;
注:orderweb 填写的是表空间名字
注:表空间以及数据文件会一起删除
级联,就把这个用户下的所有东西都给删掉
级联删除用户
drop user orderweb_zzzzyy cascade;
遇到的问题:
如果执行上面的删除命令出现“oracle无法删除当前连接用户方法”
解决1:主要是这个用户的帐号有应用程序在连接; 把这个应用程序暂时关闭即可;
解决2:
(1)查看用户的连接状况
select username,sid,serial# from v$session
如下结果:
username sid serial#
----------------------------------------
NETBNEW 513 22974
NETBNEW 514 18183
NETBNEW 516 21573
NETBNEW 531 9
WUZHQ 532 4562
(2)找到要删除用户的sid,和serial,并删除
如:你要删除用户'WUZHQ',可以这样做:
alter system kill session '532,4562'
(3)删除用户
drop user username cascade
如果在drop 后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill 了,用如下语句查看:
select saddr,sid,serial#,paddr,username,status from v$session where username is not null
结果如下(以我的库为例):
saddr sid serial# paddr username status
564A1E28 513 22974 569638F4 NETBNEW ACTIVE
564A30DC 514 18183 569688CC NETBNEW INACTIVE
564A5644 516 21573 56963340 NETBNEW INACTIVE
564B6ED0 531 9 56962D8C NETBNEW INACTIVE
564B8184 532 4562 56A1075C WUZHQ KILLED
status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。
由此可见,ts这个用户的session已经被杀死。此时可以安全删除用户。
注意:你要删除的这个用户,有项目启动在连接此账号,你可以先把tomcat关了,不然会有很多个 session 连接这个账号 ,无法将此账号 killed
导出线上的数据库
(注:先cmd -->再敲下面的命令)
exp用户名/密码@数据库实例owner=用户名file=文件存储路径
例如:exp MM/123456@ORCL owner=MM file=F\abcd.dmp
注: 导出哪个数据库哪个账号下的数据
exp orderwebst/orderwebstzzzxyy@ORCL owner=orderwebst
file=E:\export_dmp_file\lmgd.dmp log=E:\export_dmp_file\lmgd.txt;
导出远程的数据库:
exp ASSET/ASSET@192.168.6.660:1521/ORCLPDB owner=ASSET file=D:\lmgd\asset.dmp
创建表空间
create tablespace orderweb -- 表空间名
datafile 'E:\lmgd\tablespace\20190916\orderweb.dbf' --表空间放的路径 路径+文件名
size 500M autoextend on next 200M --表空间的大小,
创建用户
create user orderweb_zzzzyy identified by orderweb_zzzzyy
default tablespace orderweb --默认分配到这个表空间里
分配权限
grant dba to orderweb_zzzzyy; -- 用这个最高权限
grant connect,resource to zs [with grant option]; -- 连接权,角色权
导入数据
(注:先cmd -->再敲下面命令!!!!!!)
步骤1:
将E:\lmgd\orderweb20190901\orderweb20190901.dmp 中的数据导入 ORCL数据库中的
orderweb_zzzzyy 账号下。
步骤2 导入:
Imp orderweb_zzzzyy/orderweb_zzzzyy@ORCL ignore=y full=y file=E:\lmgd\orderweb20190916\orderweb20190916.dmp log=E:\lmgd\orderweb20190916\20190916.txt
/* 说明: 注:你需要导入到哪个数据库的账号密码下,填写的是哪个数据库实例
orderweb_zzzzyy/orderweb_zzzzyy@ORCL --->用户名/密码@数据库实例
file="需要导入的dmp文件所在位置" log="日志文件" FULL=y; */
注: 把上面的命令 复制到文本里面,每个词组命令之间只留下一个空格即可
报错整理
导出时报密码错误(密码正确也提示密码错误)
解决:执行修改密码SQL即可
-- 修改密码
alter user 用户名 identified by 密码;
--账户解锁
alter user 用户名 account unlock