在一个transaction发生的过程中,online redo log首先记录transaction中修改的数据块相关信息,修改的数据块会被缓存在database buffer cache中。由于database buffer cache写满或者checkpoint等等条件触发dbwn进程,会导致这些缓存的数据块写入数据文件,但此时可能该transaction仍然还没有提交。所以在数据文件中,可能会有commited 和 uncommited 的数据块。而原有的数据块镜像会存放在undo segment。IXDBANET社区论坛然而,dbwn写脏数据时不管这个要写的transaction是否提交,也没有必要去管。这样就发生了所谓的已经提交的数据,但是还没有写入数据文件的现象。还有一种情况,数据没有提交,但是已经被写入数据文件,此时发生回退,撤销没有提交的数据。根本原因是commit后写redo buffer和触发lgwr写 redo buffer的区别。事务在执行完毕后,随即会被写入redo buffer和undo中,同时在redo buffer和undo中对该事务都有一个是否提交的标记。两者的默认状态都是active的,即没有提交时刻处于激活状态。commit *** 作执行时刻把此前的所有事务 *** 作全部写入redo log file,commit成功后,redo buffer信息全部写入redo file,同时修改两者中的事务提交标识为inactive,表示此前事务已经递交。oracle的前滚和回退根据就是依据事务是否提交而进行的。在触发lgwr进程后,oracle同样把此前的redo buffer信息写入redo file,但是与commit触发写日志不同的是,redo file本身对lgwr写日志 *** 作不记录任何信息标识,lgwr写到那里就是那里,就算此时掉电也无妨,redo file就记录到掉电时刻的信息。lgwr是一个Oracle后台执行的进程,具体的日志写 *** 作都有oracle去控制,这对于oracle来说是透明的,因此不用在redo file中写入任何标记信息,这也是正常的。于是,Oracle崩溃恢复步骤如下:首先rolling forward 前滚:由于oracle failure,sga中的内存信息丢失了,但是online redo log中还是存储了transaction信息,包括commited or uncommited data。可能这些修改信息并没有被oracle正确的来处理,包含两种情况:已经提交的还没有写入数据文件,或者没有提交的却被写入了数据文件。针对已经提交的还没有写入数据文件就要发生前滚,在前滚过程中,smon会根据online redo log中的记录来完成对datafile的修改。保证已经提交的数据已经写入数据文件。接下来,前滚结束后,数据库正常open,此时用户可以正常连接,可以访问已经recover的commited data,但是对于那些属于unrecoverable transaction的uncommited data,会被oracle 加锁,是不可以访问的。
131 数据库对象
Dba_xxx 数据库所有对象
All_xxx 用户可访问的所有对象
User_xxx 用户所拥有的所有对象
User_tables
User_objects
User_catalog;
132 注释数据字典
All_col_comments
User_col_comments
All_tab_comments
User_tab_comments
133 约束数据字典
User_constraint
User_cons_columns
134 序列数据字典
User_sequences
135 视图数据字典
User_views
136 索引数据字典
User_indexes
User_ind_columns
大庆油田设计院地理信息中心 单文冬
74
137 权限数据字典
Role_sys_privs 授予角色的系统权限
Role_tab_privs 授予角色的对象权限
User_role_privs 用户可以访问的角色
User_tab_privs_made 在用户的对象上授予的权限
User_tab_privs_recd 授予用户的对象权限
User_col_privs_made 在用户对象的列上授予的对象权限
User_col_privs_recd 授予用户的在指定列上的对象权限
138 触发器数据字典
User_triggers
Dba_triggers
All_triggers
139 体系结构数据字典
V$sga
V$sgainfo
V$sga_dynamic_components
V$sga_dynamic_free_memory
V$parameter
V$instance
1310 数据库视图
V$database
V$controlfile
V$datafile
V$logfile
V$bgprocess
V$parameter
V$sga
1311 控制文件视图
V$controlfile
V$controlfile_record_section
V$logfile
V$datafile
大庆油田设计院地理信息中心 单文冬
75
V$tempfile
V$tablespace
1312 分析日志的信息
V$logmnr_dictionary
V$logmnr_parameters
V$logmnr_contents
1313 查看检查点的信息
查看控制文件中的scn
V$datafile: checkpoint_change#, name
查看数据文件中的scn
V$datafile_header: checkpoint_change#, name
查看重做日志中的scn
V$log: group#, status, first_change#
1314 归档信息
V$database: name, log_mode
V$instance: archiver
1315 日志信息
日志组
V$thread: groups, current_group#, sequence#
日志组和成员
V$log: group#, members, status, sequence#, bytes
V$logfile: group#, status, member
1316 归档日志信息
Select name, sequence# from v$archived_log;
Select destination from v$archive_dest;
1317 表空间视图及数据文件视图
临时表空间
V$sort_segment
大庆油田设计院地理信息中心 单文冬
76
V$tempseg_usage
表空间组
Dba_tablespace_groups
表空间信息
Dba_tablespaces
V$tablespace
数据文件信息
Dba_data_files
V$datafile
临时文件信息
Dba_temp_files
V$tempfile
1318 用户信息及权限
Dba_users
V$pwfile_users
Dba_ts_quota
V$session
System_privilege_map 显示所有系统权限
Dba_sys_privs 显示用户所具有的系统权限
User_sys_privs 显示当前用户的系统
Session_privs 显示当前会话的系统权限
Dba_tab_privs 显示用户所具有的对象权限
Dba_col_privs 显示用户所具有的列权限
User_tab_privs 显示当前用户的对象权限
User_col_privs 显示当前用户的对象权限
1319 角色信息
显示角色所具有的系统权限 role_sys_privs
显示角色所具有的对象权限 role_tab_privs
显示用户的默认角色 dba_role_privs
显示当前用户的所有角色 user_rol_privs
显示当前会话激活的角色 session_roles
大庆油田设计院地理信息中心 单文冬
77
1320 Profile 信息
Dba_users 显示用户的profile
Dba_profiles 显示profile 的口令限制和资源限制
1321 审计信息
显示审计记录 dba_audit_trail
显示已经设置的审计 dba_stmt_audit_opts
显示权限审计 dba_priv_audit_opts
还有很多。不列举了。
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
特点
1、完整的数据管理功能:[2]
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
2、完备关系的产品:
1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
2)保证访问的准则
3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
4)数据物理性和逻辑性独立准则
3、分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sqlNet、SQLCONNECT和其他非ORACLE的关系型产品构成。
4、用ORACLE能轻松的实现数据仓库的 *** 作。
这是一个技术发展的趋势,不在这里讨论。
优点
■ 可用性强
■ 可扩展性强
■ 数据安全性强
■ 稳定性强
以上就是关于Oracle数据库中为什么会产生回滚与前退全部的内容,包括:Oracle数据库中为什么会产生回滚与前退、简单了解oracle数据库具有哪些数据字典和动态性能视图、数据库oracle简介等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)