ORACLE数据库创建表空间及用户,删除表空间及用户等操作
程序员文章站
2022-05-30 17:10:35
...
一、创建表空间:
- -TEST_TEMP 临时空间名称
CREATE TEMPORARY TABLESPACE TEST_TEMP
TEMPFILE 'D:\TEST_TEMP.dbf'
SIZE 50m
AUTOEXTEND ON
NEXT 50m MAXSIZE 20480m
EXTENT MANAGEMENT LOCAL;
- - 表空间名称 TEXT_DATA
CREATE TABLESPACE TEST_DATA
LOGGING
DATAFILE 'D:\TEST_DATA.dbf'
SIZE 50m
AUTOEXTEND ON
NEXT 50m MAXSIZE 20480m
EXTENT MANAGEMENT LOCAL;
- -注:确认下上面路径还存在
二、创建用户
CREATE USER test
IDENTIFIED BY 123456
DEFAULT TABLESPACE TEST_DATA
TEMPORARY TABLESPACE TEST_TEMP;
三、授权用户
GRANT CONNECT, RESOURCE, DBA TO test;
四、数据导入
imp system/123456@127.0.0.1/orcL file=D:\test01.dmp log=D:\test01.log full=y;
五、导出数据库dmp文件
–cmd 进入 dos环境下:
exp system/123456@127.0.0.1/orcl file=D:\test01.dmp owner=TEST_DATA log=D:\test01.log full=y;
六、删除用户及表空间等其他删除操作
1、删除用户
drop user user_name cascade;
2、删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
3、删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
4、删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
5、删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
6、如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
七、以system用户登录,查找需要删除的用户
1、查找用户
select * from dba_users;
2、查找工作空间的路径
select * from dba_data_files;
在删除用户时可能会碰到无法删除当前连接的用户,这是由于还有数据库连接到该用户,有会话存在,需要先删除会话。
最暴力的做法是直接shutdown数据库,然后重启即可。。。
一般的操作是通过查询SessionID,手动杀掉会话再删除用户:
1)查询连接情况:select username,sid,serial# from v$session;
2)找到要删除用户的sid和serial并删除:alter system kill session ‘sid,serial’;
再执行删除用户的操作,如果还是无法删除说明还有连接的会话,继续执行删除会话的操作。