正在连接可用性组 错误_5种常见的可用性错误以及避免这些错误的解决方案

正在连接可用性组 错误

I'm sort of a grumpy web user, but I think that's part of what drives me to be a good Web Developer.  I get so annoyed at things that make using a website difficult, things that should be basic.  Here's a list of five common usability mistakes and solutions for avoiding them.  Do yourself and your users a favor and make sure you aren't breaking any of these rules.

我有点脾气暴躁,但我认为这是促使我成为一名优秀的Web开发人员的部分原因。 我对那些使网站使用困难的事情感到恼火,这些事情应该是基本的。 以下列出了五个常见的可用性错误以及避免这些错误的解决方案。 请您和您的用户帮个忙,并确保您没有违反任何这些规则。

使用submit而不是click事件; 使用<Form>标签! (Use submit Instead of click Events; Use <Form> Tags!)

I can't tell you the number of times I've tried to submit a (perceived) form with the ENTER key (or mobile arrow/enter key) and watched absolutely nothing happen.  I then click or tap the submit button and the form finally does something.  This is my single biggest usability peeve and a sure sign of amateur hour.  Tabbing to the submit button and closing the mobile keyboard and scrolling to the submit button are incredibly annoying extra steps that don't need to exist.  Simply use submit like you should and we'll be friends again:

我无法告诉您我尝试使用ENTER键(或移动箭头/输入键)提交(感知)表单的次数,但看着没有任何React。 然后,我单击或点击“提交”按钮,表单最终完成了一些操作。 这是我最大的可用性烦恼,也是业余时间的肯定信号。 切换到“提交”按钮,关闭移动键盘并滚动到“提交”按钮是令人讨厌的不必要的多余步骤。 只需像您应该使用的那样使用submit ,我们将再次成为朋友:


document.getElementById("myForm").addEventListener("submit", function(e) {
	e.preventDefault();
	
	// ... Do processing here.  Yay for "enter" key submission!

	return false;
});


If you're committing this atrocity anywhere, please fix it immediately.  Sincerely, every kitten that's died due to your sins.

如果您在任何地方犯下这种暴行,请立即解决。 真诚地,每只因您的罪过而死的小猫。

单击事件:不要同时按下[CONTROL]或[META] (Click Events:  Don't Prevent When [CONTROL] or [META] is also pressed)

I'm a serial new-tab-opener and while I've been recently looking for a new house, I've been looking at listing websites.  I'll get to a list page and command-click a few houses I'd like to view photos of, only to get redirected to a page in the same tab;  victim of a click listener and a window.location change.  Horrible.  Before you preventDefault on any link, be sure to check for meta and control properties:

我是一个连续的新标签发布者,虽然我最近一直在寻找新房子,但我一直在寻找上市网站。 我将进入列表页面,然后用命令单击一些要查看其照片的房屋,然后将其重定向到同一标签中的页面; 单击侦听器和window.location更改的受害者。 可怕。 在任何链接上阻止default之前,请确保检查meta和控件属性:


document.getElementById("myLink").addEventListener("click", function(e) {
	// e.preventDefault();  (bad)

	if(e.meta || e.ctrlKey) return; // Don't block user if they want to open a new tab
	e.preventDefault();
});


I currently make this check on this blog so that users can open new tabs without issue.  Don't make your users play the click-back-click-back game on your site!

我目前在此Blog上进行了检查,以便用户可以打开新选项卡而不会出现问题。 不要让您的用户在您的网站上玩点击-点击-点击-返回游戏!

将标题属性添加到具有文本溢出的元素:省略号 (Add Title Attributes To Elements with text-overflow: ellipsis)

The (somewhat) new CSS text-overflow: ellipsis property and value are awesome.  Developers used to go through hell trying to duplicate this effect.  I'm all for using text-overflow: ellipsis, but if I hover over an element that utilizes this, you better throw a title attribute on it so I can quickly see the entire text:

(有点)新CSS text-overflow: ellipsis属性和值很棒。 开发人员曾经经历过地狱,试图复制这种效果。 我全都使用text-overflow: ellipsis ,但是如果将鼠标悬停在使用此元素的元素上,则最好在其上放置title属性,以便快速查看整个文本:


<div class="ellipsizeMe" title="I am some really, really long text that's going to be ellipsized">
I am some really, really long text that's going to be ellipsized
</div>


If you don't want to output the content twice, you can use JS to set the title dynamically.  Whatever you do...please hook your users up.

如果您不想两次输出内容,则可以使用JS动态设置标题。 无论您做什么...都请吸引您的用户。

不要忘记:focus:active(Don't forget :focus and :active!)

Too many people forget these states when styling elements, assuming the user has a mouse -- bad form.  Use the :focus and :active states too:

假设用户的鼠标形状不好,太多的人会在设置元素样式时忘记这些状态。 也使用:focus:active状态:


a:hover, a:active, a:focus { /* change _all_ the pseudos! */
	color: #900;
}


Do yourself a favor:  next time you create a site, tab all the way through the page;  if you hit tab and have no idea what got focus, check out your stylesheet and see if you forgot to add one of these states!

帮自己一个忙:下次创建网站时,请在整个页面中逐个标签; 如果您按了Tab键,却不知道焦点是什么,请查看样式表,看看是否忘记添加以下状态之一!

使用输入类型搜索/电子邮件 (Use Input type search / email)

When I'm trying to complete the hell that is a form on a mobile device, I get incredibly frustrated when I have to swap between keyboard screens to get to a "@".  Be a grownup and use the correct input type:

当我试图完成移动设备上的表单这一幕时,当我不得不在键盘屏幕之间切换以获取“ @”时,我感到非常沮丧。 长大成人并使用正确的输入类型:


<input type="search" value="" />

<input type="email" value="" />


One quick update, huge usability boost for your mobile users.

快速更新,为您的移动用户带来巨大的可用性。

There are hundreds of common usability mistakes a developer can make, so expect more of these posts in the future.  The promising thing is that most usability issues are very simple to correct, as you probably noticed above.  Let me know if you have usability faux pas and solutions you'd like to make people aware of, and I'll compile another post sharing them!

开发人员可能会犯数百种常见的可用性错误,因此将来会期望更多此类错误。 很有希望的是,正如您在上面可能注意到的那样,大多数可用性问题都非常容易纠正。 让我知道您是否希望使人们知道可用性的实用性和解决方案,我将在另一篇文章中与他人分享!

翻译自: https://davidwalsh.name/common-usability-mistakes

正在连接可用性组 错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深信服科技 AD服务器负载方案 深信服科技有限公司 目录 第1章 概述 1 第2章 需求分析 1 第3章 解决方案 2 3.1 网络拓扑 2 3.2 方案描述 2 3.2.1 方案设计 2 3.2.2 方案实现 3 3.3 产品彩页 4 1. 概述 随着织机构的不断发展,为了节省业务运营成本和提升工作效率,织对信息化系 统的依赖程度越来越高。为了避免业务中断所带来极大损失,织该如何保障业务系统 的系统可用性和稳定性? 由于业务系统的人数日益增多,单一的网络服务设备的性能已经不能满足众多用户访 问的需要,由此需要引入服务器的负载平衡,实现客户端可访问多台同时工作的服务器 ,动态分配每一个应用请求到后台的服务器,并即时按需动态检查各个服务器的状态, 根据预设的规则将请求分配给最有效率的服务器。 服务器负载均衡技术在现有网络结构之上能够提供一廉价、有效、透明的方法来扩 展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性 和可用性。它主要能够带来两方面的价值: 1、能够建立有效的负载均衡机制 传统的负载机制是建立在较简单负载均衡机制和较简单的健康检查机制上的,不能根 据服务器提供服务的具体情况向其转发有效的访问流量。而通过构建新的负载均衡系统 ,可以采用多负载均衡机制,将大量的并发访问或数据流量分担到多台设备上分别处 理,进而减少用户等待响应的时间,提升系统处理能力。 2、能够建立有效的健康检查机制 负载均衡系统可以对服务器的运行状况做出准确判断,确保提供服务的正确。全面的 健康检查机制不仅可以有效的监控到服务进程的有效性,即对应用端口提供服务的能力 进行健康检查,而且对于应用程序运行错误也同样可以提供有效的检查机制,从而避免 了客户端可以访问到服务器,但得不到响应的情况的出现。 2. 需求分析 1、通过负载均衡设备将用户访问请求分配到多台之上,提升应用系统的处理能力。 2、当某台服务器发生故障时能被及时检测到,并且故障服务器将会被自动隔离,直 到其恢复正常后自动加入服务器群,实现透明的容错,保证服务器整体性能得到大幅提 升 3、由于是对外发布的应用,存在部门用户的网络质量差、跨运营商访问的情况,造 成访问速度变慢,希望通过一对用户端透明方式(不需要在用户端安装任何的插件或 者客户端)来提升用户的访问体验。 4、希望能够通过相应优化机制来节省服务器的性能消耗,减少硬件投资成本,提升 服务器相应能力。 3. 解决方案 网络拓扑 通过和XX单位的工程师沟通,按照其单位网络架构和需求情况,我们推荐使用深信服 AD服务器负载均衡解决方案。本方案设计采用SANGFOR AD应用交付设备来实现网络中多台服务器的智能负载;具体部署情况如下: 方案描述 方案设计 本方案设计充分考虑网络的稳定性以及后续的扩展性,采用深信服AD- 1600设备实现服务器负载均衡。深信服AD设备包含了链路负载均衡、全局负载均衡和服 务器负载均衡三大功能,对后续网络和应用系统的扩建、稳定性保障以及优化建设都有 很好的扩展性。 1、两台SANGFOR AD以单臂方式接入网络,在实现流量的负载均衡的同时,保证整个系统的稳定和高可用 性,而且没有改变原有的网络结构。 2、当用户请求到SANGFOR AD设备的时候,根据预先设定好负载策略能够合理的将每个连接快速的分配到相应的服 务器。 3、通过对服务器健康状况的实时监控,能够实时的发现故障服务器,及时将用户的 访问请求切换到其他正常服务器之上。 4、配合深信服独特的单边加速技术,能够是现在用户端不安装任何插件和客户端的 情况下提升用户的访问速度。 5、通过深信服AD设备具备的缓存、压缩、ssl卸载、连接复用等功能进一步降低服务 器性能消耗。 方案实现 深信服AD将所有真实服务器配置成虚拟服务来实现负载均衡,对外直接发布一个虚拟 服务IP。同时深信服AD可持续检查服务器的健康状态,一旦发现故障服务器,则将其从 负载均衡中移除。 方案具体实现方式(修改源IP方式)如下: 1. 客户通过访问虚拟IP,发出服务请求到深信服 AD设备。 2. 深信服AD接收到请求,通过预先设定好的负载均衡算法,将数据包中目的IP地址改为选 中的后台服务器IP地址,然后将数据包发出到后台选定的服务器。 3. 后台服务器收到后,将应答包按照其路由发回深信服AD。 4. 深信服AD设备收到应答包后将其中的源地址改回成虚拟IP地址,发回客户端,由此就完 成了一个标准的服务器负载平衡的流程。 产品彩页 "深信服AD产品作为专业的应用交付设备,能够为用户的应用发布提供包括多" "数据中心负载均衡、多链路负载均衡、服务器负载均衡的全方位解决方案。" "配合性能优化、单边加速以及多重智能管理等技术,实现对各个数据中心、" "链路以及
《mysql管理之道:性能调优、高可用与监控》由资深mysql专家撰写,以最新的mysql版本为基础,以构建高性能mysql服务器为核心,从故障诊断、表设计、sql优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、mysql高可用集群搭建与管理、mysql服务器性能和服务监控等方面多角度深入讲解了如何去管理与维护mysql服务器。 书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员、dba等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。不论你目前有没有遇到过此类问题,相信对你以后处理相关问题都会有所借鉴。本书适合所有希望构建和管理高性能、高可用性的mysql数据库系统的开发者和dba阅读。 目录 · · · · · · 前言 第一部分 mysql5.5 新特性篇 第1章 mysql5.5介绍 2 1.1 性能上的显著改变 2 1.1.1 mysql5.5默认存储引擎的调整 2 1.1.2 充分利用cpu多核的处理能力 7 1.1.3 提高刷新脏页数量和合并插入数量,改善磁盘i/o处理能力 8 1.1.4 增加自适应刷新脏页功能 9 1.1.5 让innodb_buffer_pool缓冲池中的热数据存活更久 9 1.1.6 innodb的数据恢复时间加快 11 1.1.7 innodb同时支持多个bufferpool实例 15 1.1.8 可关闭自适应哈希索引 17 1.1.9 在innodb中可选择使用内存分配程序 18 1.1.10 提高默认innodb线程并发数 21 1.1.11 预读算法的变化 22 1.1.12 首次在linux上实现了异步i/o 23 1.1.13 恢复提交 24 1.1.14 innodb使用多个回滚段提升性能 26 1.1.15 改善清除程序进度 26 .1.1.16 添加删除缓冲和清除缓冲 27 1.1.17 控制自旋锁spin lock轮训间隔 28 1.1.18 快速创建、删除、更改索引 29 1.1.19 innodb支持创建压缩数据页 30 1.1.20 可动态关闭innodb更新元数据的统计功能 37 1.2 安全性、稳定性的显著改变 38 1.2.1 复制功能加强 38 1.2.2 中继日志relay-log可自我修复 39 1.2.3 开启innodb严格检查模式 39 1.3 动态更改系统配置参数 39 1.3.1 支持动态更改独立表空间 39 1.3.2 支持动态更改innodb锁超时时间 40 1.4 innodb新参数汇总 40 1.5 同步复制新参数汇总 48 1.6 sql语句写法的改变 53 1.6.1 delete表连接语法改变 53 1.6.2 mysql5.5存储过程支持limit变量 54 1.7 mysql5.1升级为mysql5.5 55 1.7.1 采用mysql_upgrade升级授权表方式升级 55 1.7.2 直接安装mysql5.5,采用数据导出/导入方式升级 59 1.8 性能测试:mysql5.5与mysql5.1 60 第2章 半同步复制 62 2.1 半同步复制简介 62 2.2 半同步复制安装配置 63 2.3 参数说明 63 2.4 功能测试 64 2.4.1 如何验证半同步复制是否正常工作 64 2.4.2 半同步复制与异步复制的切换 65 2.5 性能测试 68 2.6 小结 70 第二部分 故障诊断与性能优化篇 第3章 故障诊断 72 3.1 影响mysql性能的因素 72 3.2 系统性能评估标准 73 3.2.1 影响linux服务器性能的因素 73 3.2.2 系统性能评估指标 74 3.2.3 开源监控和评估工具介绍 76 3.3 故障与处理 79 3.3.1 连接数过多导致程序连接报错的原因 79 3.3.2 记录子查询引起的宕机 84 3.3.3 诊断事务量突高的原因 87 3.3.4 谨慎设置binlog_format=mixed 90 3.3.5 未设置swap分区导致内存耗尽,主机死机 94 3.3.6 mysql故障切换之事件调度器注意事项 95 3.3.7 人工误删除innodb ibdata数据文件,如何恢复 97 3.3.8 update忘加where条件误操作恢复(模拟oracle闪回功能) 99 3.3.9 delete忘加where条件误操作恢复(模拟oracle闪回功能) 108 第4章 同步复制报错故障处理 112 4.1 最常见的3故障 112 4.1.1 在master上删除一条记录时出现的故障 112 4.1.2 主键重复 114 4.1.3 在master上更新一条记录,而slave上却找不到 115 4.2 特殊情况:slave的中继日志relay-log损坏 116 4.3 人为失误 118 4.4 避免在master上执行大事务 119 4.5 slave_exec_mode参数可自动处理同步复制错误 120 4.6 如何验证主从数据一致 121 4.7 binlog_ignore_db引起的同步复制故障 123 4.8 mysql5.5.19/20同步一个bug 124 4.9 恢复slave从机上的某几张表的简要方法  126 4.10 如何干净地清除slave同步信息 127 第5章 性能调优 129 5.1 表设计 129 5.2 字段类型的选取 133 5.2.1 数值类型 134 5.2.2 字符类型 139 5.2.3 时间类型 141 5.2.4 小技巧:快速修改表结构 148 5.2.5 pt-online-schema-change在线更改表结构 152 5.2.6 mysql5.6在线ddl更改表测试 158 5.3 采用合适的锁机制 161 5.3.1 表锁的演示 161 5.3.2 行锁的演示 164 5.3.3 innodb引擎与myisam引擎的性能对比 166 5.4 选择合适的事务隔离级别 168 5.4.1 事务的概念 168 5.4.2 事务的实现 169 5.4.3 事务隔离级别介绍 171 5.5 sql优化与合理利用索引 177 5.5.1 如何定位执行很慢的sql语句 177 5.5.2 sql优化案例分析 178 5.5.3 合理使用索引 188 5.6 my.cnf配置文件调优 198 5.6.1 per_thread_buffers优化 198 5.6.2 global_buffers优化 200 5.6.3 query cache在不同环境下的使用 201 5.6.4 tuning-primer.sh性能调试工具的使用 205 5.6.5 72 gb内存的my.cnf配置文件 208 5.6.6 谨慎使用分区表功能 211 5.7 mysql5.6同步复制新特性详解 213 第6章 备份与恢复 223 6.1 冷备份 224 6.2 逻辑备份 224 6.2.1 mysqldump增加了一个重要参数 225 6.2.2 取代mysqldump的新工具mydumper 226 6.2.3 逻辑备份全量、增量备份脚本 229 6.3 热备份与恢复 230 第三部分 高可用集群管理篇 第7章 目前流行的4高可用架构 236 7.1 采用mysql自带的replication架构 237 7.1.1 keepalived+mysql replication架构的搭建演示 237 7.1.2 mmm+mysql replication架构的搭建演示 241 7.2 heartbeat+drbd+mysql架构的搭建演示 249 7.3 红帽rhcs共享存储架构的搭建演示 254 7.3.1 安装过程 257 7.3.2 红帽rhcs集群的维护 265 7.4 mysql高可用集群ha解决方案的测试评估 267 第8章 批量管理服务器 270 8.1 开源工具pssh的使用方法 270 8.2 自己编写的ssh服务器批量管理工具 273 第四部分 监控篇 第9章 性能监控 278 第10章 服务监控 283 10.1 nagios搭建与维护 283 10.2 mysql数据库的监控脚本 288 第五部分 项目案例 第11章 项目案例讲解 292 11.1 数据碎片整理方案 292 11.2 用户信息表水平拆表方案 296 11.3 阿里巴巴中间件cobar水平拆表方案 299
前 言 虽然存储区域网络(SAN)为日益增长的信息存储和管理提供了光明的前景,但在这迅速变化的市场上选择适合的解决方案却令人苦恼。很少公司有内部专家能够从这些纷繁的产品中择其所需。Marc Farley的这本书从各个集成件出发,为读者理解和评价存储网络提供了一个综合指导。 存储的传统、趋势及未来 传统的存储和管理方法主要强调限制花费和信息的访问。因此,使用传统的存储管理原则,信息存储量受到极大的限制,甚至存储的积累数据量不超过百天;同时,信息的访问也局限于单个的服务器。 近来的记录技术发展很快,可以用相对低廉的价格实现大量的存储。网络时代正在产生新的应用和新的商业模型,它们不仅要求信息在公司内部共享,也要求在其合作伙伴及用户之间共享。这挑战已经不再是存储信息的花费,而是寻求合算的管理巨量存储资源的方案,以及使可供访问的数据变成有价值的信息。 随着存储量的持续增长,熟练的存储管理员也变得越来越短缺。因而,传统的存储与管理方案面临着日益增长的数据、信息访问的需求以及管理人才缺乏的挑战,这促进了存储区域网络的发展。这个方案将提供对最广泛的服务器平台、操作系统和应用的支持,事实上,在容量、连接性、性能和可用性等方面,它也有着广阔的发展空间。 存储价格:容量增长的催化剂 国际数据公司(IDC)预言:若按磁盘的每兆字节价格计算,在2003年之前,磁盘存储系统的价格平均每年将下降40%。事实上,不考虑其他的因素,仅考虑新的硬盘驱动器一项,就能得出上述结论,因为磁盘的记录密度每12~18个月就增加一倍。这些价格的下降使公司能够提供更广泛的商业需要,包括企业资源计划、销售自动化、数据仓库、数据市场等。同时,存储价格的下降也加速了信息的数字化,而在过去,许多信息仅能以模拟形式或书写的形式存在,如出版物以及从各视频和音频应用产生的输出。这些变化导致每年需要新增存储容量达到90%。既然所有这些信息都以数字化形式存在,那么我们每一个人都想享用它们。 网络世界的商业 现在,几乎没有人对网络互联的价值提出什么疑问了,可是在几年前,公司都牢牢地控制存储信息的容量及其访问范围。Internet的出现增强了公司的联网意识,也使公司认识到采取信息保护主义态度的危险,同时,Internet和电子商务模型也带来了不可预测的挑战。 Internet决定了交易时间和地点由顾客决定。在Internet世界中,存储总是开放的,而且商业的拥有者完全不能控制潜在的顾客数量,Internet已经成为客户服务的越来越重要的通信手段,受到新增用户极大的青睐,而传统的电话却被大为冷落。 除此之外,Internet也消除了阻挡用户选择供应商的许多壁垒,地理距离的远近概念正在消失。竞争者们容易发现,他们之间的惟一差别就是应用的可用性,因此,应用显示出新的重要意义。 集成方法驱动数据共享 可连接性的大规模增长是发生在公司信息系统中的最重大变化之一。越来越多的传统计帐系统正与销售定单处理、库存系统和账单系统连接起来,不仅提高了效率,而且可以支持急剧增长的事务处理量,使系统之间的数据移动和共享的需要巨增。 然而,更为重要的是,公司与其供应商及客户间的集成和连接大规模地增加。历史上,公司尽力限制对系统的访问和保护有价值的信息。但现在公司认识到如果不能提供范围更广阔的系统和信息的访问,将更加危险。 在Internet世界中,过去花费数年建设的基础设施现在必须一夜之间完成,对于那些正在加入Internet、电子商务策略的公司,面临的挑战更为严峻,它们要么紧密地将Internet与传统的系统连接在一起,要么就有倒闭的危险。 存储增长及其对员工的影响 存储的爆炸性增长使存储管理面临巨大的挑战,应用和服务器要求更多的数据,因而,也需要更多的存储。每一个应用可能需要不同的存储要求。存储管理员必须面临管理各不同存储方案的挑战。随着重要应用的扩展,管理这些环境的熟练IT资源却很短缺;事实上,今天对于CIO的主要挑战之一是发现和留住熟练的IT员工。 然而,主要的存储供应商正不断向市场推出新的方案,这些方案可以提供存储的基础设施,由此实现多服务器和多应用间的共享,也使在分立的应用间移动和共享数据更容易。通过集中化的管理,管理的花费将大幅度下降,同时,它也提供对容量和性能变化的快速响应能力。通过使用企业级的存储管理方案,公司可以更有效地利用现有的员工。通过新方案的智能化,可以解放员工,以至于他们能集中精力处理应用价值的策略问题,而不是数据可用性、容量计划、性能管理等繁琐和重复性的问题。 建设存储区域网络 存储区域网络是一个不断发展的技术,能够为今天的IT管理带来快速的效益。存储区域网络能够提供存储和服务器的统一,以及不受干扰的备份,同时也消除了传统技术的距离限制。此外,与许多传统技术比较,SAN还能大大地改善应用的性能。 1999年末,已经出现几个企业级的SAN方案。现在,各工业织正在努力消除早期SAN实现存在的互操作性问题,希望提供更广泛的SAN存储和信息管理应用。企业SAN方案必须能够简化繁杂的和重复性的存储管理任务,或者使这些工作完全自动化。至少,这些解决方案必须支持广泛的服务器平台,包括传统的支持办公用的服务器,因此,把存储管理员从兼容性的担忧中解放出来。 方案也必须在容量、性能和可用性方面具有可扩展性。虽然每个用户都可能说,他们需要最高级的可用性和性能,但却没有一个愿意为此付出代价;因此,方案必须灵活地提供多服务。 SAN方案必须提供自管理能力,尤其在错误恢复、数据可用性以及性能管理方面,纠错和失败恢复也是企业存储的关键问题,RAID使存储管理员从由于硬盘失败而引起的数据丢失的担心中解脱出来。自动的负载平衡减轻了对存储管理员的管理要求。 数据复制和数据移动正变得越来越重要,通过数据复制、数据共享和数据移动,企业SAN方案也必须在分立的应用之间容易地交换信息。为了提供花费适中的应用恢复和容灾,企业的SAN必须提供存储系统间数据拷贝的能力,既可以是本地的,也可以是远程的;既可以是同步的,也可以是异步的。最后,由于备份、应用测试以及其他经安排的或未经安排的活动等影响,使应用、系统和数据可用性的持续性的最终目标受到冲击,因此,企业SAN方案必须具有接近即时的瞬间数据拷贝,以减少应用的停止时间。 最后的思考 今天,各公司正面临着信息管理和存储爆炸的挑战,而传统的存储管理方案只能支持单一的应用、服务器和操作系统,仅适合公司最为静态的部分。由于电子商务和变化的客户需求,公司正在经受着巨大的挑战,为了有效的信息管理,必须要有一套新的方案。企业存储系统能够支持多个应用、服务器和操作系统,是一个完备的信息管理解决方案,代表了未来10年支持公司需求的有效方案。SAN满足公司的信息传输需求,提供了网络时代理想的存储与管理方案。 译者序 前言 引言 第一部分 网络存储介绍 第1章 网络存储概述 1 1.1 作为商用价值数据角色的改变 1 1.1.1 建立数据的相对价值 2 1.1.2 大量的流体数据 4 1.2 传统存储方法概述 8 1.2.1 开放系统客户/服务器存储 8 1.2.2 开放系统服务器的数据存储 10 1.2.3 大型机系统中的数据 12 1.3 SCSI:开放系统服务器的主要I/O路径 技术 14 1.3.1 I/O路径 14 1.3.2 SCSI的起源 15 1.3.3 SCSI的局限性 15 1.4 扩展I/O路径的新的存储连接 16 1.4.1 网络连接存储 17 1.4.2 光纤路径 19 1.4.3 存储区域网络 20 1.5 小结 23 第2章 建立存储I/O路径 24 2.1 认识物理I/O构件 24 2.1.1 系统内存总线 24 2.1.2 主机I/O总线 26 2.1.3 主机I/O控制器 30 2.1.4 I/O总线和网络连接 34 2.1.5 存储设备和子系统 36 2.1.6 介质 40 2.2 SCSI总线集成的可变因素 40 2.3 I/O路径的逻辑成分 44 2.3.1 应用软件 45 2.3.2 操作系统 45 2.3.3 文件系统和数据库系统 46 2.3.4 卷管理器 47 2.3.5 设备驱动程序 49 2.4 合硬件和软件的I/O“栈” 49 2.5 小结 50 第3章 图解客户/服务器网络中从应用到 存储的I/O路径 52 3.1 本地存储的I/O路径 52 3.1.1 工作站的本地I/O 52 3.1.2 本地I/O路径详解 53 3.1.3 网络服务器的本地I/O 60 3.1.4 本地I/O路径的讨论及变化 62 3.2 客户/服务器I/O 65 3.2.1 I/O重定向 65 3.2.2 服务器端的网络I/O 67 3.3 在I/O路径中实现设备虚拟化 70 3.4 小结 73 第二部分 建立网络存储应用 第4章 数据保护、可用性及性能的磁盘 镜像 75 4.1 用磁盘镜像保护数据 75 4.2 选择磁盘镜像方案 79 4.2.1 软件镜像 79 4.2.2 外部磁盘子系统中的镜像 81 4.2.3 主机I/O控制器镜像 82 4.2.4 使用双主机I/O控制器增强数据保护 83 4.3 使用磁盘镜像获得最大的性能 84 4.3.1 磁带驱动器和磁盘镜像混用时避免 性能问题 85 4.3.2 使用磁盘镜像增加I/O性能 87 4.3.3 安排镜像配置 90 4.4 镜像外部磁盘子系统 91 4.4.1 数据快照 91 4.4.2 校园环境的镜像 94 4.4.3 广域网环境的镜像 96 4.5 存储和网络速度的比较 99 4.6 小结 100 第5章 使用高速缓存及其他技术增 强性能 101 5.1 缓存的更多讨论 101 5.1.1 缓存命中和缓存未命中 102 5.1.2 缓存与缓冲间的差异 103 5.1.3 磁盘缓存的性能估计 104 5.1.4 磁盘缓存的算法 105 5.1.5 磁盘缓存的件 111 5.1.6 通过定位优化磁盘缓存 112 5.1.7 存储网络中的独立缓存 117 5.1.8 配置缓存 118 5.2 固态磁盘 119 5.2.1 SSD的优越性及使用 119 5.2.2 SSD的局限性 120 5.2.3 非易失SSD 120 5.3 标记命令排队 120 5.3.1 在磁盘驱动器中使用智能处理器 121 5.3.2 标记命令排队的效果 122 5.4 I/O路径对系统性能提高的重要性 122 5.5 小结 126 第6章 使用RAID和磁盘子系统增强 可用性和性能 127 6.1 使用RAID的三个原因 127 6.2 RAID的容量和可管理性 128 6.2.1 容量的扩展 128 6.2.2 RAID在管理上的优势 129 6.3 RAID带来的性能增长 130 6.4 RAID的可靠性和可用性优势 133 6.4.1 通过冗余提高数据可靠性 133 6.4.2 电源保护 135 6.4.3 热备用和热交换 138 6.4.4 RAID子系统中的内部I/O路径 139 6.5 织RAID阵列中的数据:分区、分块 和分条 142 6.6 校验分块数据 146 6.6.1 使用XOR函数建立校验数据 146 6.6.2 并行访问RAID的校验 149 6.6.3 独立访问RAID的校验 149 6.7 各级RAID的比较 152 6.7.1 RAID咨询委员会 152 6.7.2 RAID 0:分块 153 6.7.3 RAID 1:镜像 154 6.7.4 RAID 2:专有磁盘的并行访问 154 6.7.5 RAID 3:使用专有校验磁盘的 同步访问 154 6.7.6 RAID 4:使用专用校验磁盘的 独立访问 155 6.7.7 RAID 5:使用分布式校验的 独立访问 156 6.7.8 RAID 6:使用双校验的独立访问 158 6.7.9 合不同级的RAID 160 6.7.10 多层RAID阵列的目标 160 6.7.11 分块和镜像的合—RAID 0+ 1/RAID 10 161 6.8 RAID功能在I/O路径上的位置 163 6.9 小结 165 第7章 网络备份:存储管理的基础 166 7.1 网络备份构成的分析 166 7.1.1 硬件 166 7.1.2 介质 171 7.1.3 软件 175 7.2 备份 182 7.2.1 备份操作类型 182 7.2.2 备份运行中的系统 183 7.2.3 映像备份特例 185 7.3 数据恢复 186 7.3.1 恢复与文件系统和数据库的集成 186 7.3.2 恢复操作类型 187 7.3.3 介质管理对恢复的重要性 188 7.4 备份和恢复安全数据 189 7.5 磁带循环 194 7.5.1 磁带循环的必要性 194 7.5.2 常用的磁带循环模型 195 7.6 备份和恢复存在的问题 199 7.6.1 备份失败的六个原因 199 7.6.2 恢复失败的六个原因 200 7.6.3 管理备份的挑战 201 7.6.4 备份可测问题 202 7.7 小结 204 第三部分 网络存储的访问技术 第8章 SAN和NAS技术的比较 205 8.1 自由的I/O 205 8.2 NAS和SAN的差异 207 8.2.1 文件系统处的分隔 207 8.2.2 NAS 和SAN的软件模型 208 8.2.3 NSA和SAN的硬件差异 209 8.2.4 NAS和SAN的协议差异 209 8.2.5 存储网络中的多协议应用 212 8.3 NAS和SAN的实现 213 8.4 术语SAN的使用 215 8.5 小结 216 第9章 SAN设计 217 9.1 开放系统存储技术回顾 217 9.2 基于总线连接的被动存储 218 9.3 SAN 的结构和拓扑 227 9.3.1 点到点SAN 227 9.3.2 交换式SAN 228 9.3.3 环状SAN 229 9.3.4 在I/O路径中放置SAN 229 9.3.5 基本SAN结构的变化 232 9.3.6 使用SAN创建可靠的管理系统 235 9.3.7 SAN的主要应用 236 9.3.8 备份 236 9.3.9 存储池 237 9.3.10 数据共享 239 9.3.11 I/O 寻径 240 9.3.12 数据移动器 247 9.3.13 远程存储 248 9.4 建造SAN面临的挑战 249 9.4.1 访问SAN存储所面临的混乱状态 249 9.4.2 兼容性 250 9.5 小结 250 第10章 用SAN实现更好的备份系统 252 10.1 SCSI总线连接备份面临的问题 252 10.2 使用SAN进行备份 254 10.3 SAN备份发展的3个阶段 255 10.3.1 第一阶段:LAN-free,虚拟专有 备份网络 255 10.3.2 第二阶段:集成存储介质 和设备 261 10.3.3 第三阶段:无服务器备份 264 10.3.4 在集成SAN备份中使用无服务器 技术 268 10.4 子系统端备份 269 10.5 虚拟磁带 270 10.5.1 虚拟磁带和物理磁带 271 10.5.2 存储网络备份的前景 272 10.6 小结 273 第11章 SAN网络中的光纤路径网络 技术 274 11.1 区别SAN和光纤路径网络 274 11.1.1 再谈SAN 274 11.1.2 光纤路径的历史 275 11.2 物理光纤路径网络 275 11.2.1 光纤路径网络中端口的地位 276 11.2.2 线缆连接 276 11.3 光纤路径的协议 278 11.4 光纤路径网络的结构 279 11.4.1 光纤路径网络的拓扑结构 279 11.4.2 光纤路径通信的句法 283 11.4.3 节点和端口 284 11.5 服务类型 292 11.5.1 类型1服务 292 11.5.2 类型2服务 293 11.5.3 类型3服务 293 11.6 光纤路径中的寻址和命名 294 11.6.1 光纤路径中的网络名字和地址 元素 295 11.6.2 环初始化 296 11.6.3 光纤路径交换机中的分区 297 11.7 光纤路径中的协议层和串行SCSI 298 11.7.1 FCP映射的独立性 298 11.7.2 以太网上的存储I/O 299 11.8 小结 300 第四部分 NAS设备及其他高级话题 第12章 支持即插即用的存储技术 ——NAS 303 12.1 NAS的起源 303 12.2 专用于存储的设备 303 12.2.1 NAS产品的特性 304 12.2.2 NAS技术的应用 307 12.2.3 NAS装置的实现 309 12.2.4 NAS产品潜在的局限性 312 12.3 网络文件系统和协议 318 12.3.1 桌面客户系统的作用 318 12.3.2 NFS与CIFS访问的比较 319 12.3.3 NFS服务器的CIFS仿真 321 12.4 网络存储的新技术:NASD与OBS 323 12.4.1 OBS 323 12.4.2 NASD 324 12.5 小结 325 第13章 SAN中的智能分布与数据 共享 327 13.1 集成在智能存储子系统中的处理 能力 327 13.1.1 存储池和卷管理 328 13.1.2 智能后端存储子系统中的数据 共享 328 13.2 数据共享的价值 330 13.3 数据共享的空间分配 331 13.4 解决锁定和语义差异 334 13.5 对共享数据使用缓存 336 13.6 可安装的文件系统 338 13.7 小结 346 第14章 从SAN上存取IBM S/390 MVS 大型机数据 347 14.1 大型机I/O系统总图 347 14.1.1 大型机I/O处理 347 14.1.2 ESCON: S/390存储网络 351 14.1.3 从ESCON到FICON 353 14.2 开放系统与大型机存储网络之间的 互联 353 14.3 大型机与开放系统间的数据传输 357 14.4 跨平台数据共享的未来 361 14.5 小结 363 第15章 集群存储及I/O定向 364 15.1 集群服务 364 15.1.1 SAN的含义 364 15.1.2 集群的理由 364 15.1.3 集群的特点 365 15.2 集群通信 370 15.3 InfiniBand I/O路径的介绍 374 15.3.1 对InfiniBand技术的期望 374 15.3.2 InfiniBand与存储网络的集成 376 15.4 小结 377 第16章 在Internet上存储和检索数据 379 16.1 Internet基础存储 379 16.1.1 服务器端的存储需求 379 16.1.2 客户端的Web缓存 386 16.2 在Internet上存储数据 389 16.2.1 Internet存储增长的5个理由 389 16.2.2 存储与处处存储 391 16.2.3 与浏览无关的Internet存储 391 16.2.4 基于Web的存储 393 16.2.5 Internet文件传送技术的比较 396 16.2.6 Internet备份软件及服务 398 16.3 Internet与存储及I/O的集成 401 16.3.1 Internet存储集成的可能性 401 16.3.2 用于Internet存储集成的另一些 技术 403 16.4 小结 405
### 回答1: JDBC(Java数据库连接)是Java程序与数据库之间进行交互的重要工具。JDBC 8.0.11是JDBC的一个版本,但在使用过程中,可能会遇到一些常见错误。以下是几常见错误: 1. ClassNotFoundException(类未找到异常):这通常是由于未找到JDBC驱动程序引起的。在使用JDBC时,需要确保正确配置了驱动程序的类路径,并且驱动程序的jar文件已经导入到项目中。 2. SQLException(SQL异常):这是由于SQL语句执行或连接数据库过程中出现的问题。常见的原因有:错误的SQL语法、连接数据库时的用户名或密码错误、数据库服务器关闭等。在遇到SQLException时,我们需要仔细检查SQL语句的正确性,并确保数据库连接参数的正确性。 3. ConnectException(连接异常):这是由于无法连接到数据库服务器引起的。可能的原因包括:数据库服务器地址或端口号配置错误、网络连接故障、数据库服务器未启动等。在遇到连接异常时,我们需要确保数据库服务器处于正常运行状态,并检查连接参数的准确性。 4. DataConversionException(数据转换异常):这是由于数据类型转换错误引起的。在使用JDBC时,Java和数据库之间的数据类型需要正确匹配。在进行数据操作时,需要确保正确的数据类型转换,以避免此类异常。 5. BatchUpdateException(批处理异常):这是由于批处理操作中某一项失败,导致整个批处理操作失败引起的。在进行批处理操作时,需要逐一检查每一条SQL语句的执行结果,并处理其中的异常情况。 总之,JDBC 8.0.11在使用过程中可能会遇到上述常见错误,我们需要仔细检查代码、确保配置正确、处理异常情况,以保证程序与数据库的正常交互。 ### 回答2: JDBC 8.0.11是Java数据库连接(JDBC)的一个版本,用于在Java程序和数据库之间进行通信。在使用这个版本时,可能会遇到一些常见错误。下面是一些可能会出现的错误和解决方法: 1. ClassNotFoundException:这个错误通常发生在Java程序无法找到JDBC驱动程序时。解决方法是确保已经将JDBC驱动程序的jar文件添加到项目的类路径中。 2. SQLException:这是一个在与数据库交互时常见错误。这个错误可能会发生在连接数据库、执行查询或更新语句时。解决方法是检查数据库连接URL、用户名和密码是否正确,并确保数据库服务器运行正常。 3. NullPointerException:这个错误通常表示代码中的空指针引用。在使用JDBC时,可能会发生这个错误,比如在尝试使用已关闭的连接或未初始化的变量时。解决方法是仔细检查代码并确保所有的对象都被正确地初始化和关闭。 4. BatchUpdateException:在批量执行更新操作时可能会出现这个异常。这个异常表示在执行一批更新语句时,其中一个或多个语句执行失败。解决方法是检查每个更新语句的语法和逻辑,并确保它们正确地执行。 5. DataTruncation:这个异常通常发生在尝试将数据插入到字段中,而字段长度不足以容纳该数据。解决方法是检查数据库表结构的设计,并确保字段长度足够容纳所需的数据。 这些是一些JDBC 8.0.11常见错误和解决方法。当使用JDBC时,遇到错误是很常见的,但通过仔细检查和调试代码,可以很容易地解决这些问题,并确保与数据库的正常通信。 ### 回答3: JDBC 8.0.11是Java连接数据库的一个版本,虽然它相对较新,但仍然有一些常见错误可能发生。以下是几个常见错误以及可能的解决方案: 1. ClassNotFoundException:这个错误意味着无法找到指定的JDBC驱动程序。解决方法是检查你的类路径中是否包含正确的驱动程序JAR文件,并确保在连接数据库之前加载驱动程序。 2. SQLException:这个错误通常表示在执行SQL查询或更新时出现问题。可能的原因包括SQL语句的语法错误、无效的表或列名称以及数据库连接问题。为了解决这个问题,首先检查你的SQL语句的正确性,并确保数据库连接的可用性。 3. ConnectionTimeoutException:这个错误意味着连接数据库的超时时间已过。这可能是由于网络问题、数据库服务器负载过高或数据库连接池配置不正确等原因引起的。要解决这个问题,可以尝试增加连接超时时间,并确保数据库服务器的正常运行。 4. IntegrityConstraintViolationException:这个错误意味着在数据库表中违反了完整性约束,例如主键或唯一键冲突。解决这个问题的方法是检查数据插入或更新的值是否满足表中的约束条件,并确保只插入或更新有效的数据。 5. ResultSetClosedException:这个错误意味着试图访问一个已经关闭的结果集。解决这个问题的方法是确保在使用结果集之前,通过调用关闭方法来正确地关闭结果集。 总之,理解和解决这些常见错误能够帮助开发人员更好地使用JDBC 8.0.11连接数据库,并减少潜在的错误和问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值