1、原子性(Atomicity)
原子性是指事务包含的所有 *** 作要么全部成功,要么全部失败回滚,因此事务的 *** 作如果成功就必须要完全应用到数据库,如果 *** 作失败则不能对数据库有任何影响。
2、 一致性(Consistency)
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。
拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。
3、隔离性(Isolation)
隔离性是当多个用户并发访问数据库时,比如 *** 作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的 *** 作所干扰,多个并发事务之间要相互隔离。
即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。
4、持久性(Durability)
持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的 *** 作。
扩展资料
在数据库中,关于读数据的概念:
1、脏读(Dirty Reads):所谓脏读就是对脏数据(Drity Data)的读取,而脏数据所指的就是未提交的数据。也就是说,一个事务正在对一条记录做修改,在这个事务完成并提交之前,这条数据是处于待定状态的(可能提交也可能回滚)。
这时,第二个事务来读取这条没有提交的数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。这种现象被称为脏读。
2、不可重复读(Non-Repeatable Reads):一个事务先后读取同一条记录,但两次读取的数据不同,我们称之为不可重复读。也就是说,这个事务在两次读取之间该数据被其它事务所修改。
3、幻读(Phantom Reads):一个事务按相同的查询条件重新读取以前检索过的数据,却发现其他事务插入了满足其查询条件的新数据,这种现象就称为幻读。
参考资料:
当数据库需要处理 *** 作量大、复杂度高的数据的时候需要用到事务。用事务是为了保证数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
一个数据库事务通常包含了一个序列的对数据库的读/写 *** 作。它的存在包含有以下两个目的:
1、为数据库 *** 作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
2、当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的 *** 作互相干扰。
当事务被提交给了数据库管理系统,则数据库管理系统需要确保该事务中的所有 *** 作都成功完成且其结果被永久保存在数据库中,如果事务中有的 *** 作没有成功完成,则事务中的所有 *** 作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。
扩展资料:
数据库事务ACID性质:
1、原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的 *** 作要么全部被执行,要么都不执行。
2、一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态,一致状态的含义是数据库中的数据应满足完整性约束。
3、隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
4、持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
参考资料来源:
百度百科-数据库事务
百度百科-数据库
冷备份没什么太多可说的,这种备份就是简单的在数据库关闭状态下,用os的cp命令把数据文件,控制文件,以及日志文件复制到存储上,然后就可以了,这种备份的缺点就是等下次恢复的时候是一种不完全恢复,也就是说会有数据丢失,那么在生产库上如果用这种模式是非常危险的。热备份是说在数据库运行的模式下通过运行Begin backup xxx cp end backup这种命令 *** 作来实现的,当运行Begin backup命令的时候系统会冻结这种指定的数据文件的头部scn,但是并不会停止对该数据文件的dml *** 作,但这就会产生一个问题就是由于在begin backup 与end backup命令之间运行了cp命令,这个是 *** 作系统的命令,那么他复制的单位一般是2k,但是一般oracle数据库的库文件的最小单位是oracle block 一般这个块大小事8k,这就造成了数据块拷贝的时候可能会发生不一致现象,就是当你cp的前2k后,进行对整个数据块都修改了,那么你cp的后6k就与前2k数据不一致了,所以oracle 为了防止这种问题的产生那么就会把所有每个只要发生dml的oracle block的内容完全存储在日志文件中,这就造成了产生大量日志的缺点,等到下一次恢复的时候oracle 会根据日志来进行日志重演,那么可能会比较慢。当发生热备份的时候也有可能会造成很多等待事件的发生 比如log file sync,当然在热备份之前会触发检查点,使数据文件上的脏块列表写入到数据文件上。
冷备份的优点就是 *** 作简单,数据库性能比归档模式稍高
Oracle数据库管理员应按如下方式对Oracle数据库系统做定期监控
( ) 每天 对Oracle数据库的运行状态 日志文件 备份情况 数据库的空间使用情况 系统资源的使用情况进行检查 发现并解决问题
( ) 每周 对数据库对象的空间扩展情况 数据的增长情况进行监控 对数据库做健康检查 对数据库对象的状态做检查
( ) 每月 对表和索引等进行Analyze 检查表空间碎片 寻找数据库性能调整的机会 进行数据库性能调整 提出下一步空间管理计划 对ORACLE数据库状态进行一次全面检查
每天的工作
( ) 确认所有的INSTANCE状态正常登陆到所有数据库或例程 检测ORACLE后台进程: $ps –ef|grep ora
( ) 检查数据文件的状态记录状态不是 online 的数据文件 并做恢复
Select file_name status from dba_data_files where status= UNAVAILABLE ;
( ) 检查日志文件和trace文件记录alert和trace文件中的错误
连接到每个需管理的系统
使用 telnet 对每个数据库 cd到bdump目录 通常是$ORACLE_BASE//bdump 使用Unix tail 命令来查看alert_ log文件 如果发现任何新的ORA 错误 记录并解决( ) 检查数据库当日备份的有效性
对RMAN备份方式: 检查第三方备份工具的备份日志以确定备份是否成功
对EXPORT备份方式: 检查exp日志文件以确定备份是否成功
对其他备份方式: 检查相应的日志文件
( ) 检查文件系统的使用(剩余空间) 如果文件系统的剩余空间小于 % 需删除不用的文件以释放空间
$df –k
( ) 检查表空间的使用情况
SELECT tablespace_name max_m count_blocks free_blk_cnt sum_free_m to_char( sum_free_m/sum_m ) || % AS pct_free FROM (SELECT tablespace_name sum(bytes)/ / AS sum_m FROM dba_data_files GROUP BY tablespace_name) (SELECT tablespace_name AS fs_ts_name max(bytes)/ / AS max_m count(blocks) AS count_blocks sum(bytes/ / ) AS sum_free_m FROM dba_free_space GROUP BY tablespace_name ) WHERE tablespace_name = fs_ts_name;
( ) 检查剩余表空间
SELECT tablespace_name sum ( blocks ) as free_blk trunc ( sum ( bytes ) /( ) ) as free_m max ( bytes ) / ( ) as big_chunk_k count () as num_chunks FROM dba_free_space GROUP BY tablespace_name;
( ) 监控数据库性能
运行bstat/estat生成系统报告或者使用statspack收集统计数据
( ) 检查数据库性能 记录数据库的cpu使用 IO buffer命中率等等
使用vmstat iostat glance top等命令
( ) 日常出现问题的处理
每周的工作
( ) 监控数据库对象的空间扩展情况
根据本周每天的检查情况找到空间扩展很快的数据库对象 并采取相应的措施
删除历史数据
扩表空间alter tablespace add datafile size
调整数据对象的存储参数next extent pct_increase
( ) 监控数据量的增长情况
根据本周每天的检查情况找到记录数量增长很快的数据库对象 并采取相应的措施
删除历史数据
扩表空间alter tablespace add datafile size
( ) 系统健康检查
检查以下内容:
init ora controlfile redo log file archiving sort area size tablespace(system temporary tablespace fragment) datafiles(autoextend location) object(number of extent next extent index) rollback segment logging &tracing(alert log max_dump_file_size sqlnet)
( ) 检查无效的数据库对象
col owner for a col object_name for a SELECT owner object_name object_type FROM dba_objects WHERE status= INVALID ;
( ) 检查不起作用的约束
SELECT owner constraint_name table_name constraint_type status FROM dba_constraints WHERE status = DISABLED AND constraint_type = P ;
( ) 检查无效的trigger
SELECT owner trigger_name table_name status FROM dba_triggers WHERE status = DISABLED ;
每月的工作
( ) Analyze Tables/Indexes/Cluster
yze table estimate statistics sample percent;
( ) 检查表空间碎片
根据本月每周的检查分析数据库碎片情况 找到相应的解决方法;
( ) 寻找数据库性能调整的机会
比较每天对数据库性能的监控报告 确定是否有必要对数据库性能进行调整;
( ) 数据库性能调整
如有必要 进行性能调整;
( ) 提出下一步空间管理计划
lishixinzhi/Article/program/Oracle/201311/18051
数据库管理系统(database
management
system)是一种 *** 纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。它使用户能方便地定义和 *** 纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。
按功能划分,数据库管理系统大致可分为6个部分:
(1)模式翻译:提供数据定义语言(ddl)。用它书写的数据库模式被翻译为内部表示。数据库的逻辑结构、完整性约束和物理储存结构保存在内部的数据字典中。数据库的各种数据 *** 作(如查找、修改、插入和删除等)和数据库的维护管理都是以数据库模式为依据的。
(2)应用程序的编译:把包含着访问数据库语句的应用程序,编译成在dbms支持下可运行的目标程序。
(3)交互式查询:提供易使用的交互式查询语言,如sql。dbms负责执行查询命令,并将查询结果显示在屏幕上。
(4)数据的组织与存取:提供数据在外围储存设备上的物理组织与存取方法。
⑸事务运行管理:提供事务运行管理及运行日志,事务运行的安全性监控和数据完整性检查,事务的并发控制及系统恢复等功能。
(6)数据库的维护:为数据库管理员提供软件支持,包括数据安全控制、完整性保障、数据库备份、数据库重组以及性能监控等维护工具。
基于关系模型的数据库管理系统已日臻完善,并已作为商品化软件广泛应用于各行各业。它在各户服务器结构的分布式多用户环境中的应用,使数据库系统的应用进一步扩展。随着新型数据模型及数据管理的实现技术的推进,可以预期dbms软件的性能还将更新和完善,应用领域也将进一步地拓宽。
它所提供的功能有以下几项:
(1)数据定义功能。dbms提供相应数据语言来定义(ddl)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。
(2)数据存取功能。dbms提供数据 *** 纵语言(dml),实现对数据库数据的基本存取 *** 作:检索,插入,修改和删除。
(3)数据库运行管理功能。dbms提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。
(4)数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
(5)数据库的传输。dbms提供处理数据的传输,实现用户程序与dbms之间的通信,通常与 *** 作系统协调完成。
著名数据库管理系统
ms
sql
sybase
db2
oracle
mysql
access
vf
常见的数据库管理系统
目前有许多数据库产品,如oracle、sybase、informix、microsoft
sql
server、microsoft
access、visual
foxpro等产品各以自己特有的功能,在数据库市场上占有一席之地。下面简要介绍几种常用的数据库管理系统。
数据管理员是指一个负责管理和维护数据库服务器的人。数据库管理员负责全面管理和控制数据库系统。对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。及时对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。对表和索引等进行Analyze,检查表空间碎片,寻找数据库性能调整的机会,进行数据库性能调整,提出下一步空间管理计划。对ORACLE数据库状态进行全面检查。
证的话主要有两个
1OCPDBA是ORACLE公司颁布并实施的一项权威的专业技术标准,获得该证书需要通过5门认证考试。
2MCDBA是微软认证系列中极为重要的专业认证之一,能够证明持有者已具备较高的专业技术水平,可以围绕微软SQLServer数据库系统开展实施与管理工作。
在Microsoft SQL Server 系统中 数据库管理员(Database Administration 简称为DBA)是最重要的角色 DBA的工作目标就是确保Microsoft SQL Server 系统正常高效地运行 DBA的工作也是最繁忙的工作 无论是性能调整 还是灾难恢复 都离不开DBA的支持
一般地 作为一个DBA 至少应该做好以下 项任务
&# ;任务一 安装和配置;&# ;任务二 容量规划;&# ;任务三 应用架构设计;&# ;任务四 管理数据库对象;&# ;任务五 存储空间管理;&# ;任务六 安全管理;&# ;任务七 备份和恢复;&# ;任务八 性能监视和调优;&# ;任务九 调度作业;&# ;任务十 网络管理;&# ;任务十一 高可用性和高可伸缩性管理;&# ;任务十二 故障解决;
下面简单描述这些DBA的任务
任务一 安装和配置
DBA的第一项任务是安装和配置Microsoft SQL Server 软件系统 为顺利使用Microsoft SQL Server 软件创建良好的环境 无论是安装还是配置 都应该根据实际需要来进行 使得系统满足用户的实际需求 需要注意的是 系统配置不是一劳永逸的 应该随时根据需求的变化和环境的需要 进行监视和适当地调整
任务二 容量规划
容量规划是对整个Microsoft SQL Server 系统进行一个总体的规划 规划的重点应该放在解决瓶颈问题上 可以从内容和期限两个方面考虑系统的容量规划
从内容上来看 应该考虑的主要内容包括 硬件容量规划 软件规划 网络规划 硬件容量规划包括磁盘空间 CPU I/O等规划 软件规划包括 *** 作系统的安装和配置规划 数据库规划 数据库对象内容和数量规划等 网络规划包括网络硬件 网络软件和协议 网络客户数量流量和分布 网络拓扑结构等规划
从期限上来看 应该考虑短期 中期和长期规划 短期规划的目的是满足当前日常业务的需要 中期规划主要是满足业务发展和扩大的需要 长期规划主要是满足业务极限需要等 例如 如果预测某个系统的当前并发用户数量是 年后的用户可能达到 万 那么这时既不能按照 用户的需求来设计 也不能一下子按照 万用户的需求来设计 一定要采取一个折中的形式
任务三 应用架构设计
应用架构设计包括数据库设计 应用程序设计和相应的技术架构设计
数据库设计应该考虑数据库的逻辑需求 数据库的创建方式和数量 数据库数据文件和日志文件的物理位置等 一般情况下 可以在Microsoft SQL Server 系统成功安装之后 根据规划的目标 手工创建数据库
应用设计应该考虑开发工具的选择 API技术 内部资源和外部资源的结合 应用架构的分布等 需要强调是在应用设计时 DBA应该与开发人员共同工作 确保他们编写出优化的代码 尽可能地使用服务器的资源
技术架构设计主要包括表示层 逻辑层和数据层的分布 这些分布不应该考虑到硬件资源和用户需求 既不能片面地追求过高的硬件资源 也不能仅仅局限于当前的环境 一定要按照可扩展的观点来综合考虑
任务四 管理数据库对象
管理数据库对象是使用数据库的最基本 最重要的工作 这些对象包括表 索引 视图 存储过程 函数 触发器 同义词等 为了完成管理数据库对象的工作 DBA应该能够很好地回答诸如下面的这些问题
&# ;系统应该包括哪些数据&# ;应该怎样存储这些数据&# ;应该在系统中创建哪些表&# ;应该在这些表中创建哪些索引 以便加速检索&# ;是否应该创建视图为什么要创建这些视图&# ;应该创建哪些存储过程 函数 CLR对象&# ;应该在哪些表上创建触发器应该针对哪些 *** 作创建触发器&# ;是否应该创建同义词
任务五 存储空间管理
存储空间管理任务就是怎样为数据分配空间 怎样保持空间可以满足数据的不断增长 随着业务量的继续和扩大 数据库中的数据也会逐渐地增加 事务日志也不断地增加 存储空间管理任务主要围绕下面几个问题
&# ;当前的数据库由那些数据文件组成&# ;事务日志的大小应该如何设置&# ;数据的增长速度是多大&# ;如何配置数据文件和日志文件的增长方式&# ;数据库中的数据何时可以清除或转移到其他地方
任务六 安全管理
安全性是DBA重要的日常工作之一 安全管理的主要内容包括账户管理和权限管理 账户管理就是在数据库中应该增加哪些账户 这些账户应该组合成哪些角色等等 权限管理是对象权限和语句权限的管理 应该回答下面这些问题
&# ;这些账户或角色应该使用哪些对象&# ;这些账户或角色应该对这些对象执行哪些 *** 作&# ;这些账户或角色应该在数据库中执行哪些 *** 作&# ;如何设置架构如何建立架构和对象 架构和用户的关系
任务七 备份和恢复
无论系统运行如何 系统的灾难性管理是不可缺少的 天灾 人祸 系统缺陷都有可能造成系统的瘫痪 失败 怎样解决这些灾难性问题呢办法就是制订和实行备份和恢复策略 备份就是制作数据的副本 恢复就是将数据的副本复原到系统中 备份和恢复工作是DBA的一项持续性的重要工作 其执行频率根据数据的重要程度和系统的稳定程度来确定
任务八 性能监视和调优
根据企业的经营效益评价企业的管理水平 根据学生的考试成绩评价学生的学习好坏 作为一个大型软件系统 Microsoft SQL Server 系统的运行好坏必须得到正确地监视 评价和相应的调整 这是DBA的一项高级工作 借助一些工具和运行性能指标 DBA应该能够监视系统的运行 如果某些运行指标出现了问题 DBA应该及时地采取补救措施 使得系统始终保持高效运行状态
任务九 调度作业
DBA不可能一天 小时不停地盯住系统的运行 及时地执行某些指定的 *** 作 Microsoft SQL Server 系统提供了许多工具 DBA应该充分利用这些工具和机制 解决下面一些问题
&# ;调度哪些作业应该由系统执行&# ;这些作业应该在何时执行&# ;如何确保这些作业可以正确地执行&# ;如果自动执行的作业执行失败时 应该如何处理&# ;如何使得系统可以均衡地执行相应的 *** 作
任务十 网络管理
作为一种分布式的网络数据库 网络管理的任务更加的重要 Microsoft SQL Server 系统提供了网络管理工具和服务 DBA应该借助这些工具进行服务规划和管理网络 *** 作
任务十一 高可用性和高可伸缩性管理
作为一个DBA 必须保持系统具有高可用性和高可伸缩性 可用性是一项度量计算机系统正常运行时间的指标 可伸缩性描述应用程序可以接受的并发用户访问的数量问题 影响系统可用性的主要因素包括 网络可靠性 硬件故障 应用程序失败 *** 作系统崩溃 自然灾害等 无论是数据库系统管理员 还是应用程序设计人员 都应该最小化系统破坏的几率 最大化系统的可用性 在设计系统的可用性时 应该确定采取什么样的可用性策略来满足可用性的需求
可用性的需求可以通过 个方面描述 即运行的时间 连接性需求和数据的紧密和松散要求 在确定可用性的需求时 首先考虑系统的运行时间 一般地 数据库应用程序有两种运行时间 即在工作时间是可用的和在任何时间都是可用的 如果只是要求在工作时间是可用的 那么可以把系统的维护等工作安排在周末进行 但是 有许多应用程序要求每天运行 小时 每周运行 天 例如 在线超市等 这时必须采取措施保证系统总是运行的 不同的应用程序有不同的连接性要求 大多数的应用程序和电子商务解决方案要求采用可靠的网络连接 这时 要求永久性的在线连接 必须最小化各种异常现象的发生 有些应用程序允许用户离线使用 这时 系统的可用性要求降低了 大多数应用程序要求数据是同步使用的 用户对数据的请求 系统必须立即做出回应 这是紧密型的数据要求 这种情况必须保证系统的高可用性 有些应用程序不需要数据是同步的 对用户的请求可以延迟回应 这种要求是数据松散型的要求 这时系统的可用性需求比较低
任务十二 故障解决
lishixinzhi/Article/program/SQLServer/201405/30725
以上就是关于数据库事务四大特性是什么全部的内容,包括:数据库事务四大特性是什么、数据库 *** 作的时候,什么情况下需要用到事务、什么是冷/热备份他们各自有什么优点和缺点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)