大家好,欢迎来到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