Electronic Joint Business

Solution for E-Business

database

Oracle 启动过程

通常所说的 Oracle 服务器主要由两个部分组成: 数据库实例 Instance 和数据库 Database。数据库实例是指一组后台进程(在 Windows 上是一组线程)和一块共享内存区域;数据库是指存储在磁盘上的一组物理文件。通过 Instance 与 Database 协同,Oracle 数据库服务器才能形成一个动态的可访问关系型数据库系统。

数据库管理员最常见的工作之一就是启动或者停止 Oracle 数据库。通常来说,我们并不希望经常让数据库停机,因为:

  • * 会给用户群造成不便
  • * 每次重启数据库,就得冒它无法启动的风险
  • * 关闭数据库会清空 Oracle 内存区域,比如数据库缓冲 cache

重启之后的数据库的性能总会慢一点,这种状况会持续到数据库内存区域被“预热”了。不过有时候我们不得不关闭数据库,例如:

  • * 需要打补丁或者升级
  • * 进行某些应用维护
  • * 进行离线数据库备份-冷备份 (通常推荐热备份这样可以避免关闭数据库)
  • * Oracle 软件存在的某个 bug 要求在某些情况下重启数据库

当需要再次启动数据库的时候(使用 shutdown 和 startup 命令),我们用 SQL*Plus 来发出这些指令。下面详细了解一下这些命令。

Oracle Startup 命令
用 startup 命令可以启动 Oracle 数据库。首先要用有 sysdba 或 sysoper 权限的帐号登录,比如 SYS 用户。下面的例子演示了 DBA 是如何连接到数据据库,并启动 instance :

>>> 阅读全文

 

, , ,

Redhat 6 下安装 Oracle 11G R2

文章评分:
Oracle 数据库 11g(构建在 Oracle 独有的网格计算能力上)使 Oracle 客户能够更快地响应不断变化的业务状况,通过技术创新获得竞争优势,同时降低成本。

使用 Oracle 数据库 11g,您可以:

  • * 利用 Real Application Testing 使得新技术更快得以采用
  • * 先进的 Oracle 数据压缩和分区技术(Partitioning) 能够以更少存储空间管理更多的数据
  • * 利用 Oracle SecureFiles 将所有数据存储在 Oracle 数据库中从而简化系统
  • * 利用 Oracle Active Data Guard 使灾难资源恢复的投资回报率 (ROI) 最大化
  • * 通过管理自动化使关键人员能将精力投入到战略性任务中
  • * 等等..

在 Linux 系统上部署 Oracle
我们选用 Redhat 企业版来作为 Oracle 的操作系统。目前最新的版本是 RedHat 6.1,你可以根据 CPU 的架构选择32位或者64位的 Linux,通常来说64位版本可以管理更大的内存和硬盘空间,应该作为企业应用的首选。

Oracle 11g R2数据库安装硬件配置要求:

  • * 至少要有 1GB 以上的内存。
  • * 企业版要求 3.95 GB 的硬盘空间,同时需预留至少 1.7G 的空间来保存数据文件。

根据系统内存的大小,你需要合理设置交换分区的大小:内存为256-512M的时候 交换分区大小应该为内存2倍; 512-2G的时候, 交换分区大小应该为内存1.5倍;2-8G时, 交换分区大小和内存相同;8G以上,交换分区是内存大小的0.75倍。此外还需预留 10GB 左右的硬盘空间给操作系统,建议硬盘空间至少有 20GB 以上的剩余空间。

>>> 阅读全文

 

, ,

初识 Sinatra (三)

文章评分:
在本教程的第二部分,我们利用 DataMapper 将任务保存到后台数据库,同时我们还用 Sinatra 创建了 web 前端以便显示、添加、删除和结束任务。现在这个 Just do it 应用功能齐备,但是样子还有点丑陋。

在本章中,我们继续对这个应用做些美化修饰,并增加一些功能,让你能够创建多个任务列表。

添加样式
现在我们用样式表来对应用进行美化修饰。在你的 “layout.slim” 中添加下面这行代码:

<link rel="stylesheet" media="screen, projection" href="/styles.css">

现在创建一个名为” styles.css”的文件,并保存在”public”文件夹中,将下面 CSS 内容添加到该文件中:

.completed{
  text-decoration: line-through;
  }
.tasks{
  padding:0;
  list-style:none;
  width:400px;
  }
.task{
  position:relative;
  padding:2px 0 2px 28px;
  border-bottom: dotted 1px #ccc;
}
form.update{
  position:absolute;
  bottom:2px;
  left:0;
  }
form.update input{
  background:white;
  color:white;
  padding:0 2px;
  border:solid 1px gray;
  cursor:pointer;
}
.tasks li.completed form.update input{
  color:#47FD6B;
  }
form.delete{
  display:inline;
  }
form.delete input{
  background:none;
  cursor:pointer;
  border:none;
  }

刷新页面,现在页面是不是看起来好多了,也更像一个真正的任务列表了。你也许注意到,该样式表中有个 ‘completed’ 类。 到目前为止,我们显示已完成的任务的方法是为它添加完成的时间,这样看起来不怎么样。我们来修改一下 task 视图,添加 ‘completed’ 类。这样利用样式表,已完成的任务看起来就是完全不同的风格。打开 “task.slim” 做如下修改:

>>> 阅读全文

 

, , , , , ,

IE 10 开发者指南之索引数据库

Internet Explorer 10 支持索引数据库API(IndexedDB), 来存储结构化数据。不同于cookie 和 DOM 存储,IndexedDB 提供了组合(group)、 遍历、搜索、过滤 Javascript 对象的功能。

IndexedDB API 由多个对象组成,每个都为特定的任务而设计:

  • 数据被保存在对象存储(object stores)里,它是 Javascript 对象的集合,这些对象的属性包含独立的数值。
  • Javascript 对象被保存在对象存储中,也称为记录 (record),每个记录都有一个共同的属性 key path。该属性的值被称为键值(key value) 或者键(key)。键值 (Key values)用于标识对象存储里的单个记录。
  • 索引按照某一属性的值来组织对象,它返回键值的集合,通过键值可以从原来的对象存储中获得独立记录。
  • 游标 (cursor) 是值的集合。当索引定义了游标时,游标代表着索引返回的键值集合。当一个对象存储定义了游标的时候,游标代表着保存在游标中的记录集合。
  • Key Range为索引或对象存储中的记录集定义了值的范围。 Key Rang可以用来过滤游标的结果。
  • 一个请求意味着对数据库中对象采取的不同动作。例如打开数据库会产生一个请求对象,你可以为这个请求对象定义事件处理器来对请求的结果产生反应。
  • 事务管理着操作的上下文,并用于维护数据库活动的一致性。例如,你可以版本变更的事务上下文中创建对象存储。如果事务被放弃,在此事务中的所有操作都被取消。

索引数据库 API 规范定义了两套 API: 同步 API 和异步 API。IE10 支持异步 API。因此,对数据库的操作不会马上被执行,而是让返回对象的操作在后台执行。因此,IndexedDB 是事件驱动 API,你首先创建请求,然后定义事件处理器来响应请求的成功或者失败的结果。

很重要的一点,这些特性在 IE10 和使用 HTML 的 Metro 风格应用是一致的。

使用请求来打开数据库
因为索引数据库 API 规范还在发展中,大部分厂商都为自己的 IndexedDB 实现添加了一个前缀,比方说webkitIndexedDB 或者 mozIndexedDB。对 IE10 来说,则是 msIndexedDB。为了得到正确的结果,我们用一小段检测代码来访问 IndexedDB API ,如例子所示:

>>> 阅读全文

 

, , , , , , ,

数据库与事务处理

介绍
数据库是与某一企业相关的数据项的集合,通常存储描述企业当前状态的信息,例如,一家银行的数据库存储每个储户当前的账户余额。当现实世界中的某一事件改变了企业的状态,存储在数据库中的信息必须做相应的改变,这些改变通常由称为事务(transaction)的程序实时地实现。事务管理是对企业应用最紧要的要求之一。在贸易、金融和电子商业领域中,多数大的企业应用依赖于递送它们的商务的事务处理功能。 鉴于当今商务对灵活性的要求,在构造、部署和维护企业级别的分布式应用中,事务处理占据的是其中最复杂的部分之一。

本文把以下内容介绍给读者:

  • 什么是事务? 什么是 ACID?
  • 建造一个事务应用的要点是什么? 事务管理中间件为什么很重要?
  • 事务处理应用的典型的体系是怎样的? 体系中的各种构件的职责是什么?
  • 事务处理系统涉及哪些概念?
  • 事务管理领域中有哪些标准和技术?

本文不特定于任何产品,力图在描述各种要点和概念时保持普遍性。本文不打算比较各种事务处理的技术/标准,只是提供对此的一个讨论。

什么是事务?
为了完成对数据的操作,企业应用经常要求并发访问在多个构件之间共享的数据。这些应用在下列条件下应该维护数据的完整性(由应用的商务规则来定义):分布式访问一个单独的数据资源,以及从一个单独的应用构件访问分布式资源。

在这种情况,可能要求在(分布式)资源上的一组操作被当作一个工作单元(unit)。在一个工作单元中, 操作的所有部分一起成功或失败并恢复。在下面的情况下这个问题更加复杂:通过一组分布式的、访问多个资源的数据的构件实现一个工作单元,和/或部分操作是被顺序执行的或在要求协调和/或同步的并行线程中。

>>> 阅读全文

 

, ,