2024年10月数据库如何做测试?什么是数据和数据库完整性测试

 更新时间:2024-10-12

  ⑴数据库如何做测试?什么是数据和数据库完整性测试

  ⑵输入相同或不同的查询条件系统响应是否及时...什么是数据和数据库完整性测试数据完整性:存储在数据库中的所有数据值均正确的状态,每页最多包含多少记录()查询结果是否匹配()查询结果是否与数据库一致()查询结果是精确查询还是模糊查询UI验证()文字显示是否正确()页面是否有错别字()输入框大小、文字大小是否合适()页面是否美观()查询结果字段显示是否与需求一致性能方面()查询处理时间是否能接受()数据库中存在大数据量数据时,本文目录数据库如何做测试什么是数据和数据库完整性测试三招助你做好Oracle数据库备份测试数据库如何做测试查询输入:()分别对单条件进行精确查询()输入长度的检验,输入部分查询条件()输入系统中不存在与之匹配的条件查询结果检查()查询结果按什么顺利排序()查询结果是否根据字段显示排序功能()查询结果是否有分页,来回选择是否出现页面错误()输入字符()输入特殊字符()输入数字()输入汉字()输入关系表达式与、或、异或、非、等于()输入空格()条件中含有空格()输入超长字符()输入全角字符()输入单引号()输入单引号引起来的数据()输入双引号()输入双引号引起来的数据()如果支持模糊查询,常用的测试方法:边界值、等价值法三招助你做好Oracle数据库备份测试数据库备份是保障数据库安全的重要手段之一绝大部分数据库管理员都已经发现对数据库进行备份的重要性甚至对其具有很大的依赖性为此数据库管理员必需肯定备份策略确实可靠一个没有经过测试的备份策略其实比没有进行备份更加糟糕因为它会给各位数据库管理员一种假的安全感但是笔者发现不少的数据库管理员在遇到服务器故障时却不时的会遇到无法顺利利用故障文件恢复数据库或者数据库备份文件不完整等问题这主要是因为大家只注重数据库的备份策略但是却忽视了数据库备份文件的测试策略如果备份文件不完整或者出现错误的话那么及时备份策略制定的再好也是竹篮子打水一场空为此笔者在这里郑重建议大家数据库备份测试策略与数据库备份策略一样的重要那么做为Oracle数据库管理员该如何做好这方面的测试工作呢?对此笔者有一家几个招数或许能够帮助大家解决这方面的问题招数一模拟各种现实中可能出现的问题很多原因会导致数据库服务器罢工而这些罢工很有可能造成数据库中现有数据的损坏为此数据库管理员必需凭借自己的经验列举出现实中可能出现的故障情况然后针对这些可能发生的故障去测试现有备份策略能否有效的应对如笔者给企业部署完Oracle数据库之后一般都会模拟各种现实中可能出现的问题然后针对这些问题进行一一测试如笔者会在一个更新事务处理的过程中突然关闭电源然后再重新启动数据库服务器查看这次断电事故对服务器可能造成哪些影响?能否利用现有的备份文件与日志文件把数据库中的数据恢复到断电的那一个点上?如笔者还会测试用户错误的更新了大量的数据并且已经递交了事务此时需要测试看看能否利用重做日至文件来恢复更新之前的数据?如企业如果采用了磁盘阵列的话那么笔者还需要测试磁盘阵列的有效性如把某一块硬盘拿掉添加上一块新的硬盘看看其数据库服务器能否正常恢复数据总之一句话通过模拟各种失败以及从这些失败中进行恢复看看能否恢复到故障发生时的点这些测试工作将会给数据库管理员获得书本上没有的无价经验具体来说笔者认为数据库管理员在模拟失败时以下几个失败的原因不能够放过一是服务器突然断电这可能导致配置文件的错误导致无法访问或者数据的丢失;二是重做日志发生损坏这可能导致数据库管理员无法把数据恢复到故障发生时的点;三是硬盘发生故障而导致数据丢失这主要是要测试备份文件异地存放的有效性;四是数据批量更新的错误处理这主要是测试数据库管理员在进行批量更新之前是否有先对数据库进行备份的习惯等等数据库管理员只有预先模拟现实中各种可能出现的问题并得到解决方案只有如此在真正遇到这些问题的时候数据库管理员才能够临危不乱迅速解决故障当然这些测试最好是能够在另外一台主机上进行测试在生产服务器上进行这些破坏性测试的话可不是一个明智的做法招数二需要详细记录备份与还原测试的数据笔者建议数据库管理员无论你做了哪些测试测试的工作是否充分都需要一五一十的记录下相关的备份与还原测试数据因为这些故障可能随时发生到那个时候可没有时间让数据库管理员去研究分析该如何处理那时如果数据库管理员有类似文档的话那么只要按照相关文档去处理就可以减少中间思考的时间可以迅速利用备份文件与日志文档进行数据库恢复作业具体来说笔者认为数据库管理员在测试的时候需要记录如下内容一是需要记录遇到故障时还原所需要用到的文件以及基本的操作步骤如当发生硬盘故障时此时需要恢复故障硬盘中的数据需要用到哪些文件(可能需要用到保存在其他硬盘上的备份文件与重做日志文件)以及一些操作步骤记录这些内容有利于数据库管理员在遇到问题的时候迅速找到这些文件并且熟练的应用这些文件进行数据库的恢复作业二是需要记录备份或者恢复过程中遇到的意外事件虽然只是模拟失败但是这个故障以及解决故障过程中出现的意外事件在实际工作中很有可能会出现而数据库管理员在遇到这些意外事件时能否轻松应对则是考验数据库管理员能力的地方笔者在日常工作中对于这些意外事件无论大小都会一一的进行记录并且对于如何解决这些意外也会做相关的说明要知道这些内容可是数据库管理员的无价之宝因为这些东西在任何教科书上或者讲座上都是学不到的只要在模拟过程中经历了一次失败数据库管理员就应该把当时的情况以及如果处理这种意外事件的解决方案加入到你的工作笔记中必须切记意外事件往往不会只发生一次它很有可能在未来的某个时刻再次发生养成及时更新自己的工作笔记的习惯有利于数据库管理员提高自身的水平提高应对意外事件的能力三是要勤于跟其他这方面的专家进行交流如笔者经常会逛各种论坛在论坛上有些数据库管理员会把自己遇到的问题在上面列出来有不少就是在备份或者恢复过程中出现的一些意外事件这些意外事件有些是数据库管理员以前遇到过的而有些则是由于工作经验限制没有碰见过的但是很有可能在以后的工作中为碰到为此数据库管理员需要预先去了解收集这些别人碰到的问题并在可能的情况下模拟这些意外事件并寻求解决方案因为别人遇到的意外情况很可能我们自己在下次也可能会遇到防范与未然提早想好解决措施有利于我们在遇到这些问题时迅速采取有力的措施解决招数三测试测试再测试俗话说熟能生巧如果数据库管理员了解了意外事件也知道该如何处理但是如果因为不熟悉相关的操作则很可能会因为操作不当而造成新的意外事件或者造成不可挽回的损失所以数据库管理员在工作比较空的时候需要对这些解决方案进行测试一来是看看随着数据库版本的升级这些解决方案是否仍然有效;二是提高自己操作的熟练程度确保以后在遇到类似故障时能够万无一失的进行操作为了达到这个目的笔者对自己提出了如下几个要求一是当数据库新版本出来之后需要对工作笔记中记录下的解决方案进行测试以判断这些解决方案是否过期没有过期最好如果过期了的话则必须解决它如需要考虑这些意外事件在新版中是否仍然会出现如果仍然会出现的话则就要在新版本功能的基础上寻找新的解决方案有些意外事件则可能会随着数据库版本的升级而被解决掉故数据库管理需要随着数据库版本的升级而不断的进行测试以提高相关解决方案的时效性二是给企业部署完成新的解决方案之后需要挑选一些重要的内容进行测试如笔者给企业部署完成Oracle数据库(采用磁盘阵列)如果要模拟所有的失败情况并测试相关对解决方案是否可行是不现实的因为这需要花费很长的时间得不偿失此时笔者会挑选一些重要的或者经常发生的意外情况并测试相关的解决方案是否可行同时这也是对企业用户的一种培训以提高他们独立自主解决问题的能力如对于上面这个案例笔者会跟数企业用户一起进行磁盘阵列有效性的测试如换一块新的硬盘之后看看数据库服务器是否会自动恢复相关的数据把企业用户培养起来了那么我们数据库管理员也可以轻松很多三是对于一些新的解决方案也需要进行测试如笔者平时比较喜欢逛论坛在论坛上有人提出一个问题后面有很多数据库管理员会把相关的方案写出来这些方案有些可能是数据库管理员已经知道了的;有些则是他们还没有想到的此时数据库管理员需要对新的方案进行测试因为也许这个新的解决方案能够在更短时间内解决故障lishixinzhi/Article/program/Oracle//,如果数据库中存储有不正确的数据值,该列存储职员的部门编号。

  ⑶查询输入:()分别对单条件进行精确查询()输入长度的检验,输入允许的最长值进行查询,是否支持()两个查询条件是否为选,来回选择是否出现页面错误()输入字符()输入特殊字符()输入数字()输入汉字()输入关系表达式与、或、异或、非、等于()输入空格()条件中含有空格()输入超长字符()输入全角字符()输入单引号()输入单引号引起来的数据()输入双引号()输入双引号引起来的数据()如果支持模糊查询,输入部分查询条件()输入系统中不存在与之匹配的条件查询结果检查()查询结果按什么顺利排序()查询结果是否根据字段显示排序功能()查询结果是否有分页,如果有,每页最多包含多少记录()查询结果是否匹配()查询结果是否与数据库一致()查询结果是精确查询还是模糊查询UI验证()文字显示是否正确()页面是否有错别字()输入框大小、文字大小是否合适()页面是否美观()查询结果字段显示是否与需求一致性能方面()查询处理时间是否能接受()数据库中存在大数据量数据时,查询时间是否能接受()当多个用户同时查询时,输入相同或不同的查询条件系统响应是否及时...

  ⑷什么是数据和数据库完整性测试

  ⑸数据完整性:存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。可确保数据库中的数据质量。例如,如果输入了employee_id值为的职员,那么该数据库不应允许其他职员使用同一ID值。如果计划将employee_rating列的值范围设定为从到,则数据库不应接受。如果表有一dept_id列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。常用的测试方法:边界值、等价值法

  ⑹三招助你做好Oracle数据库备份测试

  ⑺数据库备份是保障数据库安全的重要手段之一绝大部分数据库管理员都已经发现对数据库进行备份的重要性甚至对其具有很大的依赖性为此数据库管理员必需肯定备份策略确实可靠一个没有经过测试的备份策略其实比没有进行备份更加糟糕因为它会给各位数据库管理员一种假的安全感

  ⑻但是笔者发现不少的数据库管理员在遇到服务器故障时却不时的会遇到无法顺利利用故障文件恢复数据库或者数据库备份文件不完整等问题这主要是因为大家只注重数据库的备份策略但是却忽视了数据库备份文件的测试策略如果备份文件不完整或者出现错误的话那么及时备份策略制定的再好也是竹篮子打水一场空为此笔者在这里郑重建议大家数据库备份测试策略与数据库备份策略一样的重要那么做为Oracle数据库管理员该如何做好这方面的测试工作呢?对此笔者有一家几个招数或许能够帮助大家解决这方面的问题

  ⑼招数一模拟各种现实中可能出现的问题

  ⑽很多原因会导致数据库服务器罢工而这些罢工很有可能造成数据库中现有数据的损坏为此数据库管理员必需凭借自己的经验列举出现实中可能出现的故障情况然后针对这些可能发生的故障去测试现有备份策略能否有效的应对

  ⑾如笔者给企业部署完Oracle数据库之后一般都会模拟各种现实中可能出现的问题然后针对这些问题进行一一测试如笔者会在一个更新事务处理的过程中突然关闭电源然后再重新启动数据库服务器查看这次断电事故对服务器可能造成哪些影响?能否利用现有的备份文件与日志文件把数据库中的数据恢复到断电的那一个点上?如笔者还会测试用户错误的更新了大量的数据并且已经递交了事务此时需要测试看看能否利用重做日至文件来恢复更新之前的数据?如企业如果采用了磁盘阵列的话那么笔者还需要测试磁盘阵列的有效性如把某一块硬盘拿掉添加上一块新的硬盘看看其数据库服务器能否正常恢复数据总之一句话通过模拟各种失败以及从这些失败中进行恢复看看能否恢复到故障发生时的点这些测试工作将会给数据库管理员获得书本上没有的无价经验

  ⑿具体来说笔者认为数据库管理员在模拟失败时以下几个失败的原因不能够放过一是服务器突然断电这可能导致配置文件的错误导致无法访问或者数据的丢失;二是重做日志发生损坏这可能导致数据库管理员无法把数据恢复到故障发生时的点;三是硬盘发生故障而导致数据丢失这主要是要测试备份文件异地存放的有效性;四是数据批量更新的错误处理这主要是测试数据库管理员在进行批量更新之前是否有先对数据库进行备份的习惯等等数据库管理员只有预先模拟现实中各种可能出现的问题并得到解决方案只有如此在真正遇到这些问题的时候数据库管理员才能够临危不乱迅速解决故障

  ⒀当然这些测试最好是能够在另外一台主机上进行测试在生产服务器上进行这些破坏性测试的话可不是一个明智的做法

  ⒁招数二需要详细记录备份与还原测试的数据

  ⒂笔者建议数据库管理员无论你做了哪些测试测试的工作是否充分都需要一五一十的记录下相关的备份与还原测试数据因为这些故障可能随时发生到那个时候可没有时间让数据库管理员去研究分析该如何处理那时如果数据库管理员有类似文档的话那么只要按照相关文档去处理就可以减少中间思考的时间可以迅速利用备份文件与日志文档进行数据库恢复作业

  ⒃具体来说笔者认为数据库管理员在测试的时候需要记录如下内容

  ⒄一是需要记录遇到故障时还原所需要用到的文件以及基本的操作步骤如当发生硬盘故障时此时需要恢复故障硬盘中的数据需要用到哪些文件(可能需要用到保存在其他硬盘上的备份文件与重做日志文件)以及一些操作步骤记录这些内容有利于数据库管理员在遇到问题的时候迅速找到这些文件并且熟练的应用这些文件进行数据库的恢复作业

  ⒅二是需要记录备份或者恢复过程中遇到的意外事件虽然只是模拟失败但是这个故障以及解决故障过程中出现的意外事件在实际工作中很有可能会出现而数据库管理员在遇到这些意外事件时能否轻松应对则是考验数据库管理员能力的地方笔者在日常工作中对于这些意外事件无论大小都会一一的进行记录并且对于如何解决这些意外也会做相关的说明要知道这些内容可是数据库管理员的无价之宝因为这些东西在任何教科书上或者讲座上都是学不到的只要在模拟过程中经历了一次失败数据库管理员就应该把当时的情况以及如果处理这种意外事件的解决方案加入到你的工作笔记中必须切记意外事件往往不会只发生一次它很有可能在未来的某个时刻再次发生养成及时更新自己的工作笔记的习惯有利于数据库管理员提高自身的水平提高应对意外事件的能力

  ⒆三是要勤于跟其他这方面的专家进行交流如笔者经常会逛各种论坛在论坛上有些数据库管理员会把自己遇到的问题在上面列出来有不少就是在备份或者恢复过程中出现的一些意外事件这些意外事件有些是数据库管理员以前遇到过的而有些则是由于工作经验限制没有碰见过的但是很有可能在以后的工作中为碰到为此数据库管理员需要预先去了解收集这些别人碰到的问题并在可能的情况下模拟这些意外事件并寻求解决方案因为别人遇到的意外情况很可能我们自己在下次也可能会遇到防范与未然提早想好解决措施有利于我们在遇到这些问题时迅速采取有力的措施解决

  ⒇招数三测试测试再测试

  ⒈俗话说熟能生巧如果数据库管理员了解了意外事件也知道该如何处理但是如果因为不熟悉相关的操作则很可能会因为操作不当而造成新的意外事件或者造成不可挽回的损失所以数据库管理员在工作比较空的时候需要对这些解决方案进行测试一来是看看随着数据库版本的升级这些解决方案是否仍然有效;二是提高自己操作的熟练程度确保以后在遇到类似故障时能够万无一失的进行操作

  ⒉为了达到这个目的笔者对自己提出了如下几个要求

  ⒊一是当数据库新版本出来之后需要对工作笔记中记录下的解决方案进行测试以判断这些解决方案是否过期没有过期最好如果过期了的话则必须解决它如需要考虑这些意外事件在新版中是否仍然会出现如果仍然会出现的话则就要在新版本功能的基础上寻找新的解决方案有些意外事件则可能会随着数据库版本的升级而被解决掉故数据库管理需要随着数据库版本的升级而不断的进行测试以提高相关解决方案的时效性

  ⒋二是给企业部署完成新的解决方案之后需要挑选一些重要的内容进行测试如笔者给企业部署完成Oracle数据库(采用磁盘阵列)如果要模拟所有的失败情况并测试相关对解决方案是否可行是不现实的因为这需要花费很长的时间得不偿失此时笔者会挑选一些重要的或者经常发生的意外情况并测试相关的解决方案是否可行同时这也是对企业用户的一种培训以提高他们独立自主解决问题的能力如对于上面这个案例笔者会跟数企业用户一起进行磁盘阵列有效性的测试如换一块新的硬盘之后看看数据库服务器是否会自动恢复相关的数据把企业用户培养起来了那么我们数据库管理员也可以轻松很多

  ⒌三是对于一些新的解决方案也需要进行测试如笔者平时比较喜欢逛论坛在论坛上有人提出一个问题后面有很多数据库管理员会把相关的方案写出来这些方案有些可能是数据库管理员已经知道了的;有些则是他们还没有想到的此时数据库管理员需要对新的方案进行测试因为也许这个新的解决方案能够在更短时间内解决故障lishixinzhi/Article/program/Oracle//

您可能感兴趣的文章:

相关文章