oralce数据库用户创建,表空间,授权,导入导出以及表被锁的处理方式

oralce数据库用户创建,表空间,授权,导入导出以及表被锁的处理方式oracle 数据库用户创建 授权 表空间创建 导入导出操作 oralce 创建用户

大家好,欢迎来到IT知识分享网。

创建用户操作

先使用dba权限登录到sqlplus

sqlplus / as sysdba 

连接数据库

conn system/数据库密码 conn 登录指定的用户/登录指定的用户密码 

创建用户并为用户指定密码

create user 用户名 identified by "密码"; 

修改用户密码

alter user 用户名 identified by "密码"; 

删除用户及用户下所有数据

drop user 用户名 cascade; 

删除表中所有数据,并释放表空间,但是数据无法进行回滚

truncate table 表名 

为用户授权

grant connect,resource to 用户; grant create session to 用户;--赋予create session的权限 grant unlimited tablespace to 用户; --授权使用表空间 grant create table,create view,create trigger, create sequence,create procedure to 用户;--分配创建表,视图,触发器,序列,过程 权限 
grant dba to 用户名; 

撤销dba权限

REVOKE dba FROM 用户名; 

为用户解锁

alter user 用户 account unlock; 

创建表空间

使用CREATE TABLESPACE语句可以创建一个数据表空间。下面是创建数据表空间的示例语句:

CREATE TABLESPACE test DATAFILE '/u01/app/oracle/oradata/orcl/test01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M; 

上述示例语句表示创建一个名为test的数据表空间,它包含一个大小为100M的物理文件test01.dbf。当该物理文件空间不足时,将自动扩展10M,并且最大扩展到500M。

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

CREATE USER userName IDENTIFIED BY password -- 12c之后的版本,可以试试在用户名前加上c DEFAULT TABLESPACE test_name --表空间 TEMPORARY TABLESPACE temp_name; -- 临时表空间,关联任意一个都行 

修改用户使用表空间

ALTER USER 用户名 DEFAULT TABLESPACE 表空间名 

查询表空间文件位置

select name from v$datafile; 

增加表空间

alter tablespace 表空间名 add datafile '表空间文件路径' size 10G; 

缩减表空间

alter database datafile '表空间文件位置.DBF' resize 100M; 

查询表空间文件大小及位置

select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space --表空间最大值 ,(SELECT MAX(block_id)*8/1024 FROM dba_extents WHERE tablespace_name = 'TS_DATA') max_space --已使用表空间的最大值 from dba_data_files f order by tablespace_name; 

oracle 服务端.dmp文件的导入导出

  • 导出
exp 用户名/密码@数据库IP/orcl owner=用户名 file=输出存档.dmp文件路径 .dmp INDEXES=n STATISTICS=none 

例如

exp username/password@192.168.1.110/orcl owner=username file=/home/oracle/Downloads/username.dmp INDEXES=n STATISTICS=none 
  • 导入
imp file=你要导入的.dmp文件 tablespaces=表空间名称 touser=用户名 userid=用户名/密码@数据库IP/orcl 

例如:

imp file=/u01/app/backup/username.dmp tablespaces=ceshispace touser=username userid=username/password@192.168.1.120/orcl 
  • 单表导出可以使用
exp 用户名/密码@数据库IP/orcl owner=用户名 file=输出存档.dmp文件路径 .dmp tables=(表1,表2,表3,表4) INDEXES=n STATISTICS=none 

注意:导入的时候,需要先创建对应用户和表空间,然后再进行导入操作

ignore=y 相当于,如果没有的表,创建并倒入数据,如果已经有的表,忽略创建的,但不忽略倒入 full=y 是导入文件中全部内容,有可能有多个用户的内容。 rows=y rows:表示导出数据行。 ull=y,是导入文件中全部内容,有可能有多个用户的内容。如果连接的用户默认使用的表空间设置成system,则导入文件的内容会导到system上 

导出

statistics=none 忽略统计信息 FULL=Y 是导入文件中全部内容,有可能有多个用户的内容 INDEXES=n 

数据泵方式的导入导出可参考:https://blog.csdn.net/weixin_/article/details/

Oracle数据库表被锁了,如何解锁

首先查看数据库中哪些表被锁了

select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id; 

注释:

OWNER :数据表的所有者用户 OBJECT_NAME: 被锁住的表名 SESSION_ID: 会话ID LOCKED_MODE: 锁级别 

锁级别分为6级:

1级锁有:Select 2级锁有:Select for update,Lock For Update,Lock Row Share 3级锁有:Insert, Update, Delete, Lock Row Exclusive 4级锁有:Create Index, Lock Share 5级锁有:Lock Share Row Exclusive 6级锁有:Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive 

再执行该语句,查看会话id

select b.username,b.sid,b.serial#,logon_time  from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time; 

杀会话

alter system kill session 'sid,serial#'; 

例子:

alter system kill session '20,30100'; -----这个是我刚才杀死会话前的执行语句 如果有ora-00031错误,则在后面加immediate; alter system kill session '20,30100' immediate; 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121370.html

(0)
上一篇 2025-10-24 07:15
下一篇 2025-10-24 07:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信