Tag Archives: 10g

RHEL 上安装 Oracle 的注意事项

在 Red Hat Enterprise Linux Server 上安装 Oracle 的时候,如果误打误撞顺利的话可能一个错误都碰不到,如果不顺利可能每一步都有槛。以下是几个小建议,可能会让一些朋友少一点麻烦。

1. 安装 OS 时候请选择 “Install Default Software Servers”

很多朋友在安装操作系统的时候会选择 Custom 模式安装软件包, 这样看上去似乎会灵活一些,但是也带来潜在的极多麻烦。数据库软件依赖的包如果缺少的话,再次安装就麻烦了–软件之间的依赖性非常让人闹心的。RHEL 又没有对 YUM/APT 等自动解决依赖性工具的正式支持。

2. 参考 Oracle Validated Configuration

Oracle 这个服务很好。每个配置清单都是经厂商验证过可行的,参考性比较大。尤其是关于当前版本的临时 Patch 参考,更是必需要着重处理。

3. OS 安装文件 .iso 在服务器上放置一份

对数据库来说,一般都是远程操作服务器,如果临时需要安装文件,总不能跑到机房再把光盘扔里面吧? 这时这个 iso image就有用场了。如果上面说的第一条是定制安装 OS 的话,那么几乎就会用到安装光盘. 很多人要找安装包就从网上 rpmfind.net 之类的地方随便找个 RPM 包安装,强烈反对这样做。
另外:Werner Puschitz 的安装参考要超过 Oracle 的官方指导。必读。
几个小小建议,行家眼里不值一哂。
EOF

Intel EM64T 技术与 Oracle

最近尝试了一下在 Dell PowerEdge 6850 上部署 EM64T 版本的 Oracle。 Intel 的 EM64T 技术不是真正的 64 位技术,但也可以体验一些 64 位的特性。
Intel EM64T 就是 Extended Memory 64 Technology,也有误缩写做 EMT64 的,通过 EM64T 可以实现 40 位的物理内存寻址与 48 位的虚拟内存寻址。真正的 64 位技术能够实现 50 位的物理地址寻址与 64 位虚拟地址寻址。
对于 Oracle RDBMS 来说,一个显著的变化是能够使用超过 1.7G 的内存边界,SGA 可以默认支持使用 4G 的内存(实际 3.7G 左右)。数据库 Cache 可以设置大一点,这样内存使用效率会好一些。Dell 很多 PC 服务器现在都支持 EM64T , 有不少被用来跑 Oracle 数据库,据我了解,实际使用 EM64T 的用户非常少。PowerEdge 6950 是 AMD 64bit CPU,用户群好像还没有积累起来。
现在 EM64T 已经叫做 Intel64 Architecture 了。
两个参考文档:
Dell 网站的评测报告
Running Oracle on 10g on Windows Server 2003 x64 Editions
EOF

Oracle 10g 的 ORA_NLS10 环境变量

Oracle 10g 关于 NLS 的环境变量发生了一点变化:

For RDBMS 7.2.x version the variable is called ORA_NLS.
For version 7.3.x the variable is called ORA_NLS32.
For Oracle 8, 8i and 9 variable is called ORA_NLS33.
For Oracle 10g the variable is called ORA_NLS10.

ORA_NLS33 的设置值:
ORA_NLS33 = $ORACLE_HOME/ocommon/nls/admin/data
而 ORA_NLS10 只需要设置:
ORA_NLS10 = $ORACLE_HOME/nls/data
定义了 ORA_NLS10 则不需要单独定义 ORA_NLS33 等参数了。
目前应该仍然是向后兼容 ORA_NLS33 的。
更多信息参考 Metalink: Note:77442.1
EOF

Oracle 10G的Data Pump (Part I)

Oracle 10G的Data Pump技术能够在不同数据库间高速的移动数据库和元数据. 这个技术的基础是两个数据移动工具:Data Pump Export和Data Pump Import.

Oracle的Data Pump是通过一个PL/SQL包来实现的:DBMS_DataPump(也叫Data Pump API).Data Pump使用直接路径装载和外部表机制进行数据的移动. Data Pump使用DBMS_METADATA PL/Sql包进行包括ETL过程在内的所有的数据库对象操作.

Data Pump 是Oracle一些其它关键特性(如基于流的复制、逻辑Standby等、Grid)的基础。

Data Pump特性是集成到Oracle数据库10G中的,但是标准版本10G并行度只有1.

关键概念

Master Table

Master Table(MT)是Data Pump技术的核心.Master Table 用来保存整个过程中的细节信息(也可以说是一些元数据信息).有了MT,导出或者导入的重启动才变为可能.这些细节信息包括:

  • 产生Job状态的报告
  • 重新启动Job
  • 定位在Dump文件中的所有的对象.

主表在进行当前导出或者导入的操作的用户模式中被创建.该用户必须要有足够空间. 主表的名字和创建它的Job名字相同.这也就是说,你不能显式的指定一个和现有的表或者视图重名的Data Pump Job.

导出的时候,主表被创建,并在完成的时候写到Dump文件中.在启动导入的时候,主表从Dump文件集中载入到数据库中,并用来控制操作的顺序.主表也可以用一些参数来进行初始化操作.要注意的是主表不能跨文件存储.所以,指定的 Dump 文件的大小至少要能够容纳得下 MT .

主表依如下情况或被保留或者删除:

  • Job成功完成,MT 被删除.
  • 如果Job是使用STOP_JOB交互命令停掉的,MT将被保留以用来重启动Job.
  • 如果Job是使用KILL_JOB交互命令Kill掉的,MT将被删除,并且Job不能重新启动.
  • 如果Job意外中止,MT总是被保留.

继续阅读