您的位置:首页 > 数据库 > Oracle

Oracle回顾--序列、事务、锁、表空间、角色、概要文件、备份

2015-09-29 14:08 423 查看
这两天受伤了……好心塞,还是来写点博客缓缓吧……

一、序列

对于已经创建的序列,应该首先使用序列名称.nextval,然后,才能使用序列名称.currval。

序列可以被多个用户共享,但序列中的序号是不能共享的。

对序列中序号的操作是作为一个单独的事务实现的,这个事务的执行与其他事务的执行与否无关。若包含一条DML语句的事务被回滚了,那么对序列的操作是无法回滚的。

1、创建序列

create sequence 序列名称

increment by n ------------属性,增长步长

start with n ------------属性,开始数字

maxvalue n | nomaxvalue ------------属性,最大值默认为10*27

minvalue n | nominvalue ------------属性,最小值默认为1

cycle | nocycle -----------属性,循环

cache | nocache -----------属性,缓存,

如果把序列中的序号放在内存中进行缓冲,那么用户获得序号的速度将大大加快,默认缓存的大小为20,主键列的序列最好不要用缓存,序列缓存的大小必须小于一次循环所能获得的数目。

2、删除序列

drop sequence 序列名;

3、修改序列

alter sequence 序列名 属性名 值

二、事务

是数据库操作序列,一个不可分割的整体,这些操作要么全做,要么全不做;是对数据库进行操作的最基本的逻辑单位,可以是一组SQL语句或整个程序,一般情况下,一个应用程序里包含多个事务,事务是恢复和并发控制的基本单位。

事务和程序不同,一条语句或者多条语句甚至一段程序都可能在一个事务中,而一段程序又可以包含多个事务。

事务在没有提交之前可以回滚,而且在提交前,当前用户可以查看已经修改的数据,但其他用户看不到该数据,一旦事务提交,就不能再撤销修改。

1、oracle数据库的事务基本控制语句有如下几种:

a、set transaction:设置事务的属性

b、commit:提交事务

c、savepoint:设置保存点

d、rollback:回滚事务

e、rollback to savepoint:回滚至保存点

2、事务类型:

显示操作方式:对事务的提交或回滚,事务会自动开启(登录或执行DML语句时)。

隐式管理方式:由数据库自动开启,程序正常结束或执行DDL语句时自动提交。(利用语句设置事务是否自动提交:set autocommit on/off)

3、事务的状态:

a、已决事务:

提交状态

中止状态:事务回滚,数据库已恢复到事务执行前的状态

b、未决事务:

活动状态

部分提交状态

失败状态:不能正常执行(硬件原因或逻辑错误)的状态,事务要回滚,就进入了中止状态。

3、事务的四大特性(ACID):

atomic(原子性)、cosistent(一致性)、isolated(隔离性)、durable(持久性)

为了实现事务的原子性,对于事务中写操作的数据项,数据库系统在磁盘上需要记录其旧值,事务若没有完成,就将旧值恢复回来。

原子性,保证了数据的完整性(域完整性、实体完整性、依赖完整性)和一致性。

隔离性:保证了并发执行的各个事务之间不能互相干扰。

4、事务的保存点

当回滚到指定的保存点时,它以后的保存点会被删除,而指定的保存点会被保留。

事务回滚时,只回滚保存点之后的操作

保存点之后的锁将被释放,之前的将会被保留。

a、创建保存点:savepoint 保存点名称;

应用:rollback to 保存点名称;

三、锁

锁的分类:

按权限分:

排他锁(X锁),写

共享锁(S锁),读

按所用对象分

DML锁,(数据锁):

行级锁(TX)属于排他锁

表级锁(TM)

DDL锁:保护模式中对象的结构

内部闩锁:保户数据库的内部结构,完全自动调用

及时的结束事务是解决锁等待情况发生的有效方法。

死锁是在我用户或多进程的情况下,为使用同一个资源而产生的无法解决的争用状态,可以利用OEM管理器查看阻塞情况。

四、表空间

1、创建表空间

create tablespace tablespace_name

datafile filename size sizenum

[auto extend [on/off]] next size

[maxsize size]

[permanent | temporary]

[extent management --------指表空间的管理

[dictionary | local --------字典管理方式 |本地管理方式(默认为此种)

[auto allocate | uniform

[size integer

[k|m]

]

]

]

]

eg:

create tablespace schema2

datafile 'c:\app\oradata\a.dbf' size 5M

auto extend on next 128K

maxsize 2048M

2、重命名表空间:alter tablespace oldname rename to newname;

不是所有的表空间可以重命名,system和sysaux表空间不能重命名,当空间处于offline状态时,表空间是不可以重命名的。

3、设置表空间的状态(读写/可用状态)

alter tablespace tablespace_name read only | write;

alter tablespace tablespace_name online | offline;

4、删除表空间:

drop tablespace tablespace_name

including contents -----是否删除表空间的对象和其他内容,包含此参数,则删除

cascade constraints; ------当此空间与其他空间的对象关联使用时,将此关联取消,包含此参数,则关联取消,正常删除表空间,否则出现错误 ,停止删除表空间操作

若表空间中的一个表当前正在使用,就不能删除该表空间,则,应先使表空间处于脱机 (offlin)状态,再将其删除。

5、查看表空间

select tablespace_name,contents from user_tablespaces;

6、查看某一用户的默认表空间

select default_tablespace,username from dba_users where username like 'sys%';

7、查看表空间的使用情况:

select * from user_free_space;

五、角色

角色有:connect:给普通用户的权限,连接数据库

resource:编写过程和函数的权限

dba:系统权限(dba角色的人才能给这种权限)

用户管理和权限管理是确保数据安全的主要手段

--------创建角色

create role role_name

[not identified | ----------------------不需要验证

identified by [password] | ----------------------口令验证

identified by extenally | ----------------------外部验证

identified by globally ] ---------------------全局验证

eg : create role second_role not identified;

---------为角色授权

grant create session to second_role;;

--------将一个角色授予另一个角色

grant role_cus to second_role with admin option;

--------禁用角色

alter user user_name default role none;

--------设置角色

set role role_name; ------但是用户不能设置自己不具有的角色信息

1、创建/修改用户

create/alter user username

identified by password

default tablespace 默认表空间名称

temporary tablespace 临时表空间名称

quota size -----------------------设置当前用户使用表空间的最大值

profile 概要文件名称 ----------------------设置当前用户使用的概要文件名称

account lock|unlock ----------------------设置用户的锁定状态,默认为unlock

2、删除用户

drop user username [cascade] ----------------------表示删除用户下的所有对象

3、权限

权限分为系统权限和对象权限,系统权限表示的是对数据库级的操作,对象权限表示的是对表对象、视图、存储过程、触发器等操作的权限。

授予权限给某个用户:

grant 权限名 to username

权限的传递使用: with admin option | with grant option

六、概要文件

1、创建概要文件

create pfofile profile_name

LIMIT

{resource_parameters | -------------设置资源限制参数

password_parameters} -------------设置口令参数

eg:create profile profile_13

LIMIT

password_life_time 30 ------------表示密码的失效天数设置为30

failed_login_attempts 3; ------------表示用户密码错误的次数是3次

----------修改用户的概要文件

alter user username profile profile_13;

2、查看概要文件

select * from dba_profiles where profile='PROFILE_13‘;

3、修改概要文件

alter profile profile_13

limit

password _life_time 60

4、删除概要文件

drop profile profile_name [cascade] ------------------cascade,在使用的概要文件,要通过该关键字进行撤销。

七,使用expdp工具导出数据(备份)

1、creat directory directory_name as '目录'; -------------------directory_name文件名

2、grant write,read on direcory directory_name to 用户名

eg:

create directory dir2015 as 'E:\dirback';

grant write,read on directory dir2015 to scott;

3、导出表

exdpd username/password directory=directory_name

dumpfile=filename -----------导出数据存放的文件名

tables=table_name; -----------准备导出的数据表,存在多个表时,用逗号隔开。

eg:expdp scott/a directory=dir2015 dumpfile=file1 tables=emp;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: