Oracle课程档案。第十一天

读一致性:oracle通过多版本与闪回机制保证读一致性。保证从某个时间点开始查询是一致的。在Oracle中主要通过SCN版本号来控制系统修改的版本,典型的例子是我们可以通过在同一个查询中得到同一个对象在“两个时间点”上的结果:

select * from (select count(*) from emp),(select count(*) from emp as of scn :scn)

多个用户同时访问数据库

consistency:一致性

非阻塞查询:当修改数据时,Oracle只看数据是否改变,并不关心数据当前是否锁定,Oracle只从回滚段中取回原来的值,并继续处理下一个数据块

1.读一致性:对于一个时间点(point in time),查询会产生一致的结果;

2.非阻塞查询:查询不会被写入器阻塞,但在其他数据库中并非如此(SQL Server)

读写冲突通过读一致性解决:
sys准备工作:
SQL> create user user01 identified by password;
SQL> grant dba to user01;
以下都用user01:
SQL> conn user01/password
Connected.
SQL> create table t1(x int);
SQL> insert into t1 values (1);
SQL> commit;
session1:
SQL> update t1 set x=11 where x=1;
SQL> select * from t1;
session 2:
SQL> select * from t1;
session 1:
SQL> commit;
session 2:
SQL> select * from t1;
测试serializable:
session1:
SQL> alter session set isolation_level=serializable;
重复上面的步骤

写与写的冲突通过锁机制解决:
session 1:
SQL> update t1 set x=11 where x=1;
浏览器中查看锁信息
session 2:
SQL> update t1 set x=111 where x=1; 被阻塞
浏览器中查看锁信息
session 1:
SQL> rollback;
浏览器中查看锁信息

时间: 2024-11-05 20:42:39

Oracle课程档案。第十一天的相关文章

Oracle课程档案,第八天

存储管理 查询块的大小:show parameter db_block_size database:数据库 tablespace:表空间 datafile:数据文件 segments:段 extents:扩展(范围) dba_extents:每一个扩展的信息 dba_segments:段的信息 add datafile:添加数据文件 rollback:回滚(做完一个命令后悔了可以用回滚回到上一个命令) objects:对象 user_tables:用户的表 dba:数据库所有 including

Oracle课程档案,第一天。

sys是Oracle最高权限者 DBSNMP:简单网络管理系统 ctrl+d回到oracle目录 在SQL中输入 exit也可以 select:列 where:行 sqlplus / as sysdba 进入SQL conn hr/hr 使用hr用户 lower:把大小写自动改为小写 SQL> select last_name from employees :显示所有成员表 desc user_tables:字典表 employees:表 ||:链接操作符(连字符) null:空 departm

Oracle课程档案,第七天

数据库管理 关闭数据库有4中方式: 1.shutdown modes 关机模式 2.shutdown normal 关机正常 3.shutdown immediate 立即关闭 ★★ 常用命令 4.shutdown abort 直接关闭数据库 startup:重启 dbstart:启 dbshut: 关 有三种关闭方式:1.shutdown normal 正常方式关闭数据库. 2.shutdown immediate 立即方式关闭数据库. 在SVRMGRL中执行shutdown immediat

Oracle课程档案,第九天

lsnrctl status:查看监听状态 Oracle网络配置三部分组成:客户端,监听,数据库 配置文件:$ vi $ORACLE_HOME/network/admin/listener.ora vi listener.ora 和上面这个命令一样 netstat -tln|grep 1521 通过netca添加新的监听服务Listener15210,端口使用15210 lsnrctl status listener15210 查看15210的监听状态(指定监听状态的名称) netca进入一个系

Oracle课程档案,第十天

用户管理 Authentication: 身份验证 AAA:Authentication: 身份验证 Authorization: 权限管理 Audition: 审计 grant:授权 unset:撤销(消除) SQL>echo $ORACLE_SID ORCL 查询数据库的名字为ORCL SQL>vnset ORACLE_SID 删除数据库名字为ORCL SQL>export ORACLE_SID=ORCL 重新添加变量数据库的名字为ORCL 管理员的身份验证:本地连接:本地连接,预先

Oracle课程档案,第六天

体系结构: instance:实例 database:数据库 RAC:多实例对一个数据库 SGA:最大总数 (系统全局区域)缓存区 PGA:其中的一块, 也是一个缓存区 server process:服务器进程 shared pool:共享值(最大SQL语句的执行计划)★★ SQL> show parameter 显示参数 ★ SQL> show sga 显示sga的设置★ SQL> select * from v$sgainfo :动态性能视图 ★ butter cache:缓冲区缓存

Oracle课程档案,第十四天

备份数据文件:SQL> select file_id, file_name from dba_data_files; backup:备用(备份) datafile:数据文件 backup tablespace:备份表空间 backup database:备份数据库RMAN> backup datafile 4;RMAN> backup datafile 4, 5;RMAN> backup datafile '/u01/app/oracle/oradata/orcl/users01.

Oracle课程档案,第十二天

死锁是由于两个对象在拥有一份资源的情况下申请另一份资源, 而另一份资源恰好又是这两对象正持有的,导致两对象无法完成操作,且所持资源无法释放. 阻塞是由于资源不足引起的排队等待现象. unso:撤销 commit:提交 contents:内容 management:管理 session:一个连接就是一个会话(session)代表着一个作用域.也就是某些修改可以只限于此会话,在其他会话中不生效 AM:上午 11:59 PM:下午 12:00 全球化支持 unset:未设置 profile:轮廓 死锁

Oracle课程档案,第二天

salary:工资 order by:排序 desc:降序 hire:雇佣 单行函数 一周有七天 一月不一定只有30天 trunc:截取 dual:空表 last:最后 month:月份 round:四舍五入法 substr:字符串截取 length:字符串长度 replace:字符串内容替换 upper:把小写字母转换成大写字母 lower:把大写字符转换成小写字母 initcap:把单词转换成首字母大写的形式 日期 - 日期 = 数字 (表示天数) 日期 - 数字 = 日期 日期 + 数字