Itpub电子杂志第七期

3,789 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,789
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Itpub电子杂志第七期

  1. 1. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 ITPUB 电子杂志 Oracle 10g 专刊 2004 年 9 月号 (总第七期) ITPUB――信息技术新动力! ITPUB 第 1 页 信息技术新动力
  2. 2. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 本期内容导读 Oracle 10g 安装 在 RHEL AS 3 上安装 Oracle 10g 参考手册 by Fenng Oracle10g 在 Linux 上的安装相比起 9i 来已经简单了很多,但是对于 Linux 的初学者来 说仍然有一些步骤需要注意, 本文描述了在 Red Hat Enterprise Linux Advanced Server 3 (RHEL 3)上安装 Oracle 10g 必要的步骤和相关知识。 应用与评测 Data Pump 使用和评测 by eygle 本文对于 Oracle10g 的一大亮点-Data Pump 进行了较为详尽的评测,同时也可以作为 使用 Data Pump 的手册。 技巧与实践 多个默认的临时表空间支持 by prada_gu 在 10g 中,可以创建多个临时表空间,并把它们组成一个临时表空间组,对于临时表空间的管理 提供了一些方便的特性,本文对此特性进行了一些解读。 跨平台传输表空间 by eygle 9i 中的传输表空间必须要双方的操作系统一致,而 10g 对此作出了突破性的扩展,现在我们已 经可以在不同的平台之间进行传输表空间的操作了。 10g 新特性 flashback database ITPUB 第 2 页 信息技术新动力
  3. 3. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 by piner flashback 概念在 9i 中开始提出,10g 中进行了大幅度的增强,这个特性可以让我们方便简单 地进行数据库的恢复。 Oracle10g 的 ASM 数据库 by Kamus 对于越来越庞大的数据库系统,10g 的 ASM 特性让数据库管理员可以从繁琐的磁盘管理工作中 解脱出来,本文描述了通过 vmware 虚拟机安装 ASM 数据库的方法以及相应的评测。 借鉴与提高 互联网上的 10g 文章 列举了互联网上比较经典的有关 Oracle10g 文章的链接。 ITPUB 第 3 页 信息技术新动力
  4. 4. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 ITPUB 数据库技术丛书第一册 《Oracle 数据库 DBA 技术精粹》 热售中 ITPUB 数据库技术从书之一《Oracle 数据库 DBA 技术精粹》已由冶金工业出版社出版, 欢迎大家在 ITPUB 上订购,大家对本书的支持是对 ITPUB 这两年来的工作的最好鼓励。 订购网页在:http://www.1soccer.com/itpub/ 或点击ITPUB首页的飞行广告进入。感谢广州第一足球网(http://www.1soccer.com/ ) 为ITPUB提供网上支付平台。 购买方式有送货上门货到付款(目前开通北京地区)、银行卡在线支付和邮局汇款三种,欢 迎大家选择最便利的方式进行购买,详情参见上述网页。 本书基本信息: 内容简介: 本书从DBA的角度阐述了Oracle数据库的结构内幕、管理经验和优化技巧,并列举了很多 非常有用的实际案例。全书分为五大部分,基本篇主要包括一些基础技术,介绍了与OCP认证 相关的一些内容,在各种平台上安装与建库的技巧,也介绍一些在 9i里面出现的新特性。体系 架构篇包括对回滚段,存储结构等的深入讨论,并彻底阐清困扰许多用户的字符集问题。备份与 恢复篇列举了大量实际案例,讲述了在不同的需求环境下所应采取的备份方案,以及进行灾难恢 复的方法。性能篇深入分析了statspack等常用的调整工具的原理与使用方法、判断依据,并从 索引、内存、执行计划、锁等各个角度讨论了各种优化技巧。网络篇讲述了透明网关、监听器、 数据迁移等方面的内容。本书各专题的作者主要来自网上著名的数据库技术社群 www.itpub.net网站,大多是具有丰富实践经验的资深技术工作者,有些技术专题曾经在该网 站上长时间深入讨论,并引起很多的关注和回响,本书具有很好的深度与广度,相信对于从事数 据库工作、特别是使用Oracle数据库产品的读者,在提高自己的技术水平方面会有极大的裨益。 ITPUB 第 4 页 信息技术新动力
  5. 5. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 对于大专院校师生,本书也是极佳的参考书,对入门者可以起到窥一斑而观全豹的作用 版权信息: 冯春培 盖国强 冯大辉 叶梁 主编 北 京 冶金工业出版社 2004 图书在版编目(C I P)数据 Oracle 数据库 DBA 专题技术精粹 / 冯春培等著. —北京:冶金工业出版社,2004.1 ISBN 7–5024–3450–X I. O… II. 冯… III. 关系数据库—数据库管理系统,Oracle IV. TP311.138 中国版本图书馆 CIP 数据核字(2003)第 120108 号 出版人 曹胜利 责任编辑 戈兰 湛江蓝星南华印务公司印刷;冶金工业出版社发行;各地新华书店经销 2004 年 2 月第 1 版,2004 年 2 月第 1 次印刷 69.00 元 End ITPUB 第 5 页 信息技术新动力
  6. 6. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 ITPUB 数据库技术丛书第二册 《Oracle 数据库优化》 征稿 ITPUB 计划在今年 8-9 月间出版数据库系列丛书的第二册,经商定主题定为“Oracle 数据 库优化”。 主要内容 1. Oracle 数据库优化理论,包括各种内部结构探讨,工具运用技巧,优化框架模式等等 2. Oracle 数据库优化案例,这是本书的重点,占的比例较大,我们有意把本书写成“Oracle 的聊斋志异”,专门收集一些 DBA 在平常不容易接触到的实际例子,以求读者在阅读本书 后,在知识面与技术见闻上有大的促进。 主编 第二册继续邀请以下 4 位斑竹担任主编: biti_rainy、eygle、Fenng、Coolyl。 主编的主要职责包括: (1) 丛书内容的整体策划 (2) 接受稿件 (3) 审稿 (4) 分类整理稿件,并作适当的技术总结,使之最后成书 (5) 本身也为丛书提供稿件 (6) 向特约的会员约稿 投稿 投稿和所有出版事宜的联系信箱: magazine@itpub.net 所有采用的稿件都是付酬的,稿费在丛书出版之日以现金形式支付,决不拖欠。具体报 酬标准请与主编或 tigerfish 本人联络咨询。 ITPUB 第 6 页 信息技术新动力
  7. 7. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 印出后书的封面将由 4 位主编署名,里面的文章由文章作者署名,著作权归作者所有。 (参考已经出版的第一册) 第二册《Oracle 数据库优化的截稿日期是 2004 年 6 月 20 日,请投稿者务必在上述时 间之前把稿件送达我们的联系邮箱或直接交达主编。预计第二册的出版时间是今年 9 月份, 我们将不断地在 ITPUB 上向大家汇报进展状态,有了第一册的经验,我们有决心与自信把 第二册做的更好,目标是要做成 ITPUB 的经典之作。欢迎大家踊跃投稿,对作者个人来说, 这也是在 ITPUB 上和业界扬名的很好机会。 要求 稿件格式要求如下: (1) 交 word 文档,不用排版(有专人负责排版),文字统一用 5 号字(除有特 别需要以外) 插图不用加图文框, , 但要标明图的顺序号(图 1, 2, 。 。 ) 图 。。。 以及插图的名称,所附的表格与程序也要加顺序号和名称 (2) 使用的语言要朴实,因为是印刷的,所以一些网上的语言最好不要使用;表达 要清晰,操作过程如果比较复杂,最好配图,插图要清晰(最好自己先打印一 下观察效果,不要有马赛克)。自觉尊重知识产权,不能有抄袭内容。如果没 有特别必要,一般在文中不要涉及具体的公司或个人真实名称,使用代号即可, 以免引起纠纷。翻译的文章必须先取得原作者的授权。文章最好是在 ITPUB 上没发表过的,或已经发表过但有比较大改动的,以保持内容的新鲜感和可读 性。 (3) 交稿时,除了正文外,在最后,应有作者本人的个人介绍,例如工作单位(可 选)、联系 email(可选)、技术特长、在 ITPUB 上的活动等,具体格式大 家可参照已出版的第一册。要列出参考文献(包括网上资源) (4) 对于案例性的稿件,希望能清晰交代问题的背景,现象,处理的过程,并且在 最后作适当的技术总结,做到实践与理论相结合。 (5) 文章开始的地方应有简短“开篇语”,作为对整个文章内容的总结与介绍。 (6) 提交稿件的时候应附带个人详细的联系方式,包括电话、手机、电邮等,以方 便我们和您联系 最后,再次感谢所有朋友对 ITPUB 的一贯支持,我们必将努力工作,把最好的东西奉 献给大家! End ITPUB 第 7 页 信息技术新动力
  8. 8. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 目录 ITPUB数据库技术丛书第一册 《Oracle数据库DBA技术精粹》 热售中.........................4 本书基本信息:...............................................................................................................4 ITPUB数据库技术丛书第二册 《Oracle数据库优化》 征稿............................................6 主要内容...........................................................................................................................6 主编...................................................................................................................................6 投稿...................................................................................................................................6 要求...................................................................................................................................7 在RHEL AS 3 上安装Oracle10g参考手册 .........................................................................10 一 配置RedHat AS 3 .....................................................................................................10 二 开始安装 10g............................................................................................................13 三 FAQ (在Linux平台安装Oracle比较常见) ...............................................................15 四 参考信息...................................................................................................................17 solaris8 下不起图形界面安装oracle 10g.........................................................................19 前言.................................................................................................................................19 1. 打系统补丁................................................................................................................19 2. 配kernel 参数............................................................................................................20 3. 创建用户和组............................................................................................................20 4. 解压oracle 10g安装包 ...............................................................................................21 5. 创建oraInst.loc文件...................................................................................................21 6. 编辑Response 文件 ..................................................................................................21 7. 执行runInstaller安装 10g ..........................................................................................23 8. 后续工作....................................................................................................................23 在 10g不支持的Linux发行版上安装 10g的解决方法 .......................................................25 1. 跳过检查....................................................................................................................25 2. 修改redhat-release文件 .............................................................................................25 Data Pump使用和评测.......................................................................................................26 1. expdp/impdp的使用....................................................................................................26 2. expdp与传统exp的速度比较 .....................................................................................27 1.使用并行 expdp ........................................................................................................28 2.使用正常 expdp ........................................................................................................29 3.常规路径exp...............................................................................................................30 4.直接路径exp...............................................................................................................31 5.文件大小 .....................................................................................................................31 6. 使用imp.....................................................................................................................32 7. 使用impdp ................................................................................................................33 多个默认的临时表空间支持.................................................................................................34 Flashback database .........................................................................................................36 Oracle10g跨平台传输表空间 ............................................................................................41 创建Oracle10g ASM数据库Step by Step.......................................................................52 ITPUB 第 8 页 信息技术新动力
  9. 9. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 概述.................................................................................................................................52 硬件配置.........................................................................................................................52 软件配置.........................................................................................................................52 安装VMware ..................................................................................................................53 在VMware中安装RHEL3 ..............................................................................................53 安装Oracle ASMLib .......................................................................................................57 安装Oracle10g ................................................................................................................60 创建ASM实例 ................................................................................................................60 创建ASM数据库 ............................................................................................................63 启动ASM数据库的步骤 ................................................................................................64 ASM数据库的简单测试 ................................................................................................65 总结.................................................................................................................................68 互联网上的 10g文章.............................................................................................................69 关于杂志 ............................................................................................................................71 ITPUB 第 9 页 信息技术新动力
  10. 10. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 在 RHEL AS 3 上安装 Oracle10g 参考手册 作者:Fenng 不久前,Oracle(甲骨文)公司在美国加州的总部宣布, Oracle 10g 数据库 与 Oracle RAC 在 TPC-H 基准测试中创造了新的世界纪录.这是个令人震惊的消息.因为这个测试是在 Linux ( Red Hat Enterprise Linux Advanced Server 3) 的平台上进行的.这充分显示了 Oracle 在低成本 Linux 集群服务器上高效管理大规模数据仓库的能力, 也表明 Linux 在性能价格 比上的优势,标志着 Linux 在大规模企业应用上已经成熟. 相信很多朋友已经对 10g 跃跃欲试了,现在从这里让我们开始 10g 之旅. 本文描述了在 Red Hat Enterprise Linux Advanced Server 3 (RHEL 3)上安装 Oracle 10g 必 要的步骤和相关知识. 本文假定你的 Linux 操作系统已经安装完毕,并且您应该具有一定的 Unix 操作系统背景知识. 一 配置 RedHat AS 3 操作系统版本:Red Hat Enterprise Linux AS release 3 (Taroon) Kernel 2.4.21-4.EL on an i686 按照常规来安装操作系统,记得要安装开发工具(gcc 等必要工具). 1.1 检查必要的硬件信息 表 1: 必要的硬件信息检查: 检查内容 最小值 检查命令参考 物理内存 512M # grep MemTotal /proc/meminfo 交换空间 1.0 GB 或者 2 倍内存大小 # grep SwapTotal /proc/meminfo /tmp 空间 400 MB # df -k /tmp 软件所需空间 2.5 GB # df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) 数据库文件 1.2 GB # df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) 检查完如上各项之后, 应该修改核心参数.执行如下命令: #vi /etc/sysctl.conf #注释:#表示使用 root 用户操作,$表示使用 oracle 用户进行操作.提示符后面的蓝色 部分表示需要输入的命令,以下同。 在该文件末尾加入如下内容: ITPUB 第 10 页 信息技术新动力
  11. 11. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 #-----------Begin from here-------------------------------------- kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 #--------------End here-------------------------------------------- 编辑完之后,保存,执行 # /sbin/sysctl -p 命令操作来使我们所做的变更生效. 注:上面 kernel.shmmax/kernel.sem 等是典型的核心参数配置.您可能需要根据您的 实际环境进行适当的变动. 关于这些核心参数的说明在Oracle的(Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems)中有很详细的说明. ( http://download-west.oracle.com/docs/html/A96167_01/toc.htm ) 然后,应该检查一下上面的操作是否正确: # /sbin/sysctl -a | grep sem # /sbin/sysctl -a | grep shm # /sbin/sysctl -a | grep file-max # /sbin/sysctl -a | grep ip_local_port_range 1.2 为 Oracle 用户设定 Shell 的限制 一般来说,出于性能上的考虑,还需要需要进行如下的设定,以便改进 Oracle 用户的有 关 nofile(可打开的文件描述符的最大数)和 nproc(单个用户可用的最大进程数量) # vi /etc/security/limits.conf # 添加如下的行 * soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536 添加如下的行到/etc/pam.d/login 文件: session required /lib/security/pam_limits.so 编辑 /etc/profile 文件,添加如下部分: ITPUB 第 11 页 信息技术新动力
  12. 12. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 之后,执行$ unlimit 验证一下. 1.3 检查并安装相关补丁 在这个版本的 RHEL 上安装 Oracle,必须要有几个软件包. 确认以下 rpm 包都已经安装: make-3.79 binutils-2.11 openmotif-2.2.2-16 setarch-1.3-1 compat-db-4.0.14.5 compat-gcc-7.3-2.96.122 compat-gcc-c++-7.3-2.96.122 compat-libstdc++-7.3-2.96.122 compat-libstdc++-devel-7.3-2.96.122 # rpm -qa | grep compat # 在我的机器上输出如下: compat-gcc-c++-7.3-2.96.122 compat-libstdc++-7.3-2.96.122 compat-libstdc++-devel-7.3-2.96.122 compat-glibc-7.x-2.2.4.32.5 compat-db-4.0.14-5 compat-gcc-7.3-2.96.122 # rpm -qa | grep openmotif openmotif-devel-2.2.2-16 openmotif-2.2.2-16 # rpm -qa | grep setarch setarch-1.3-1 上面显示的内容是在笔者已经安装了具体的 RPM 包之后的结果.一般情况下,你的系统 上的输出结果和这个不同.如果个别包没有安装,把系统安装光盘 mount 上,找到具体的软件 包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包: # rpm -ivh compat.....rpm ITPUB 第 12 页 信息技术新动力
  13. 13. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好.否则会报告不能安装 的错误. 此外,最好验证一下 gcc 和 glibc 的版本(要求是 gcc-3.2.3-2 或者更高) #gcc -v #rpm -q glibc 1.4 创建用户和相关的组 # /usr/sbin/groupadd oinstall # /usr/sbin/groupadd dba # /usr/sbin/useradd -g oinstall -G dba oracle 如果只是测试目的的话,不创建 oinstall 组也没什么. 不过还是规范一点比较好.如果 oracle 用户和 dba 组等已经存在,作适当的调整即可. 1.5 检查并调整环境变量 登录为 oracle 用户 # su – oracle $ cd $ vi .bash_profile #添加如下内容,你的具体值应该不会和这个完全相同. export ORACLE_BASE=/u/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1 export ORACLE_SID=TEST export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export LC_CTYPE=en_US.UTF-8 然后执行 $ source .bash_profile 使环境变量生效. /u/app/oracle 等目录应该建立好并做合适的授权. 二 开始安装 10g mount 你的安装盘.(我一般都是把文件拷贝到系统中一个具体的位置,比如/u/install ) . 执 行 ITPUB 第 13 页 信息技术新动力
  14. 14. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 $ sh /u/install/runInstaller 如果不能出现安装画面,查看本文后面的 FAQ。 非 常 值 得 称 道 的 是 ,10g 的 安 装 相 比 以 前 的 多 了 一 个 Checking operating system certification 的步骤。特别实用。 安装文件会自动检测所需的条件。如果有不符合的地方,安装程序会报告给你.并会给出 具体原因。大大减少了出错的可能.下面是检查成功输出的内容 : Checking operating system certification Expected result: One of redhat-2.1,redhat-3,UnitedLinux-1.0 Actual Result: redhat-3 Check complete. The overall result of this check is: Passed ============================================== Checking kernel parameters Checking for VERSION=2.4.9.25; found VERSION=2.4.21. Passed Checking for shmall=2097152; found shmall=2097152. Passed Checking for shmseg=10; found shmseg=4096. Passed Checking for semmsl=250; found semmsl=250. Passed Checking for semmni=128; found semmni=128. Passed Checking for filemax=65536; found filemax=65536. Passed Checking for shmmni=4096; found shmmni=4096. Passed Checking for semmns=32000; found semmns=32000. Passed Checking for semopm=100; found semopm=100.Passed Checking for shmmin=1; found shmmin=1. Passed Checking for shmmax=2147483648; found shmmax=2147483648. Passed Check complete. The overall result of this check is: Passed ============================================== Checking recommended operating system packages Checking for make-3.79; found make-3.79.1-17. Passed Checking for binutils-2.11.90.0.8-12; found binutils-2.14.90.0.4-26. Passed Checking for gcc-2.96; found gcc-3.2.3-20. Passed Checking for openmotif-2.1.30-11; found openmotif-2.2.2-16. Passed Check complete. The overall result of this check is: Passed ============================================== Checking recommended glibc version Expected result: 2.2.4.31.7 Actual Result: 2.3.2.95.3 Check complete. The overall result of this check is: Passed ============================================== ===================== ITPUB 第 14 页 信息技术新动力
  15. 15. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Validating ORACLE_BASE location (if set) Check complete. The overall result of this check is: Passed ============================================== 其他的步骤比较清晰,不再赘述. 最后系统会提示你运行 root.sh 文件.按照提示做即可. 三 FAQ (在 Linux 平台安装 Oracle 比较常见) 3.1 不能启动安装界面 运行 runInstaller 提示信息类似如下: xlib:connection to "localhost:0.0" refused by server xlib:client is not authorized to connect to server Exception in thread "main" java.lang.InternalError:can't connect to x11 window server using "localhost:0.0" at ....... 解决办法: 设定你的 DISPLAY 环境参数. # export DISPLAY= your_IPaddress :0.0 把 your_IPaddress 换成你的 IP. 或者用 root 简单的执行一下 # xhost + (要注意这样会有安全上的隐患) 3.2 安装界面显示很多"口口"样子的乱码 解决办法: 查看 locale 输出 # locale LANG=en_US.UTF-8 LC_CTYPE=zh_CN.GB18030 ITPUB 第 15 页 信息技术新动力
  16. 16. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 执行 #export LC_CTYPE=en_US.UTF-8 然后重新调用安装程序. 3.3 用 IE 登录 Linux 服务器上的 em 出现乱码 在 Linux(Unix) 环境下成功安装了 Oracle 10g,从 windows 下用 IE 浏览器登录 10g 的 em, 按钮是"口口"这样的方框. 解决办法: 参考 http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm 或者是参考这个 http://www.linuxsir.org/bbs/showthread.php?s=&threadid=98591 后者比较彻底,前者比较"Quick & Dirty ". 3.4 创建数据库的时候出现 ORA-03113 的错误 解决办法: 查看核心参数是否调整正确.参考http://www.dbanotes.net/Oracle/ORA-03113.htm 3.5 RedHat 9 / FC1 等系统 10g 不支持如何安装? 解决办法: 在 10g 不支持的 Linux 发行版上安装 10g 的解决方法 ITPUB 第 16 页 信息技术新动力
  17. 17. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 1). 运行runInstaller -ignoreSysPrereqs,这样会跳过检查 2). 摘自 www.puschitz.com 修改/etc/redhat-release文件: #su - root #cp /etc/redhat-release /etc/redhat-release.backup #cat > /etc/redhat-release << EOF Red Hat Enterprise Linux AS release 3 (Taroon) EOF 安装完毕,执行如下操作: #su - root #cp /etc/redhat-release.backup /etc/redhat-release 3). http://www.dbanotes.net/Oracle/10G-Beta-Install-Bug.htm 同样的思路,我们可以修改 Oracle 的 install/oraparam.ini 文件达到目的 3.6 如何关掉那些 ocssd.bin 进程? 解决办法: 编辑/etc/inittab 文件(做好备份) 注释掉这一行: h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null 四 参考信息 Werner Puschitz 的 10g 安装指南 http://www.puschitz.com/InstallingOracle10g.shtml Werner Puschitz 的站点的文章很翔实,如果您遇到了本文没有说清的问题,可以去看看那里.本文借鉴了该 站点不少内容。 ITPUB 论坛 10g 版块 Kamus 等的大作 http://www.itpub.net/forumdisplay.php?s=&forumid=70 关于核心参数等信息请查找 Google http://www.google.com ITPUB 第 17 页 信息技术新动力
  18. 18. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Oracle Database Quick Installation Guide 10 g Release 1 (10.1) for Linux x86 http://download-west.oracle.com/docs/html/B10813_01/toc.htm Oracle Database Installation Guide 10 g Release 1 (10.1) for UNIX Systems http://download-west.oracle.com/docs/html/B10811_02/toc.htm DBAnotes.net 我的站点 包括不少和 Oracle 有关的信息 http://www.dbanotes.net [原文出处] http://www.dbanotes.net/Oracle/Install-Oracle10g-RHEL3.htm End ITPUB 第 18 页 信息技术新动力
  19. 19. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 solaris8 下不起图形界面安装 oracle 10g 作者:shangym 前言 从 oracle 8i 开始,大多数情况下我们是通过 OUI 图形工具来安装 oracle 的,不过在某些 特殊情况下(比如由于网络,防火墙等原因),我们无法使用图形终端连接到待安装的服务 器上进行操作。Oracle 10g 中考虑到了这一点,在 runInstaller 中增加了 silent 参数,使得不 起图形界面(纯字符界面)也能安装数据库。当然,silent 方式的实现和 10g 只有一张盘也 有很大关系。 1. 打系统补丁 到 sun 官方网站上把 solaris 8 的最新系统补丁 J2SE Solaris Patch Clusters,网址: http://sunsolve.sun.com/pub-cgi/sho...es/patch-access 下载文件为 8_Recommended.zip,用 unzip 解压: unzip 8_Recommended.zip 设解压在/orainst/8_ Recommended 目录下 #cd /orainst/8_ Recommended #./install_cluster 除了这个 J2SE Solaris Patch Clusters 之外,装 10g 的时候还需要 4 个单独的补丁: 108921-16 108940-53 108773-18 111308-03 在上面那个网址上可以搜索到上述 4 个 patch 号,并把他们 down 下来,是 4 个 jar 文件 用 unzip 解压,例:unzip 108921-16.jar 设解压在/orainst/108921-16 目录下 #patchadd /orainst/108921-16 108921-16 依次将这 4 个 patch apply 后重启机器 ITPUB 第 19 页 信息技术新动力
  20. 20. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 2. 配 kernel 参数 #vi /etc/system set shmsys:shminfo_shmmax=2147483648 (给 oracle 最大内存设为 2G) set shmsys:shminfo_shmmin=1 set shmsys:shminfo_shmmni=512 set shmsys:shminfo_shmseg=128 set semsys:seminfo_semmap=64 set semsys:seminfo_semmni=4096 set semsys:seminfo_semmns=4096 set semsys:seminfo_semmsl=4096 set semsys:seminfo_semmnu=4096 set semsys:seminfo_semume=64 set semsys:seminfo_semopm=100 重启机器 3. 创建用户和组 # groupadd dba #useradd –g dba –d /export/home/oracle –m oracle #passwd oracle (改 oracle 用户密码) 设定 oracle 用户的环境参数 #su – oracle $vi .profile 加入如下内容并存盘: ORACLE_BASE=/oracle ORACLE_HOME=/oracle/product/10g ORACLE_SID=ora10g export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH=$ORACLE_HOME/lib PATH=$PATH:$ORACLE_HOME/bin:. CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOM E/product/jlib export LD_LIBRARY_PATH PATH CLASSPATH ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export ORA_NLS33 NLS_LANG=American_America.zhs16gbk export NLS_LANG EDITOR=vi ITPUB 第 20 页 信息技术新动力
  21. 21. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 export EDITOR $. ./.profile 使之生效 4. 解压 oracle 10g 安装包 从 Otn.oracle.com 上把 ship_rel10_sol64_db.cpio.gz down 下来传到机器上,设存放在 /orainst/ora10g/下 (这个路径后面会用到) 用 oracle 用户解压 $gzip –d ship_rel10_sol64_db.cpio.gz $cpio –idcmv < ship_rel10_sol64_db.cpio.gz 解压完毕后,会在/orainst/ora10g 下多出一个目录 Disk1,oracle 10g 的介质就在 Disk1 目录下。 5. 创建 oraInst.loc 文件 Su – root #mkdir /var/opt/oracle #cd /var/opt/oracle #vi oraInst.loc (注意文件名,不是 orainst.loc) 加入如下内容并存盘: inventory_loc=ORACLE_BASE/oraInventory 此文中 ORACLE_BASE 为/oracle inst_group=dba 改文件权限 #chown oracle:dba oraInst.loc #chmod 664 oraInst.loc 6. 编辑 Response 文件 这一步骤是字符界面装 oracle 的关键步骤 到 oracle 10g 的安装目录下编辑 response 文件 $su – oracle $cd /orainst/ora10g/Disk1/response 可以看到 oracle 准备了 6 个 response 文件,实际上这些文件就是用来安装和配置 oracle 时的模板,分别是 custom.rsp ITPUB 第 21 页 信息技术新动力
  22. 22. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 dbca.rsp emca.rsp enterprise.rsp netca.rsp standard.rsp 在这里挑了一个简单的 response 文件 enterprise.rsp,也可以根据实际情况去选用编辑其 他几个 response 文件。 $cp custom.rsp myinst.rsp $vi myinst.rsp 在 myinst.rsp 的最前面有一段说明,应该仔细看看,特别要注意它定义的几个数据变量 格式的写法,如下: Type Example String "Sample Value" Boolean True or False Number 1000 StringList {"String value 1","String Value 2"} 其后都是安装 oracle 时所需要定义的变量,其值有三种情况: 一是已经有默认值的,几乎可以不用管它。 二是值等于<Value Required>的,这种变量是非图形界面安装 10g 所必需要指定的 变量,一定要修改成合适的值。 第三种变量的值等于<Value Unspecified>,说明它的值是和别的变量值关联的,也 可以不用管它。 需要把第二类变量的值逐个修改。 更改情况如下,可根据实际情况修改其它变量的值: ORACLE_HOME="/oracle/ora10g/product/10g" ORACLE_HOME_NAME="ORA10G" s_nameForDBAGrp="dba" s_nameForOPERGrp="dba" SHOW_DATABASE_CONFIGURATION_PAGE=false b_createStarterDB=false (不创建数据库) SHOW_DATABASE_OPTIONS_PAGE=false s_dbCharacterSet="ZHS16GBK" s_globalDBName="ora10g" s_dbSid="ora10g" SHOW_DATABASE_MANAGEMENT_PAGE=false SHOW_DATABASE_FILE_STORAGE_OPTION_PAGE=false SHOW_BACKUP_RECOVERY_OPTION_PAGE=false SHOW_SCHEMA_PASSWORDS_PAGE=false ITPUB 第 22 页 信息技术新动力
  23. 23. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 改完后存盘退出 7. 执行 runInstaller 安装 10g 转到 oracle 10g 安装介质目录下,运行 runInstaller $cd /orainst/ora10g/Disk1 $./runInstaller –silent –responseFile /orainst/ora10g/Disk1/response/myinst.rsp 这样 Oracle 10g 就开始安装了 安装进程的步骤如下: a. 检测 temp 和 swap 分区的大小 b. 查系统补丁是否满足需要 c. 到 response 文件中读取信息 d. copy 相关文件 e. link and setup f. 提示运行 root.sh,根据提示,用 root 用户去运行 root.sh 就行了 一般出错的地方容易在 b、c 步骤,如果是系统补丁没打全,则根据提示把系统补丁打 好,如果是在 c 的地方出错,说明你的 response 文件信息有误,需要重新修改 response 文件。 至此,不起图形界面安装 10g 就完成了 8. 后续工作 建数据库。 此次安装中并未建库,关于用脚本建库的方法,和以前版本的 oracle 类似,这里不再具 体说明了。 配 listener $vi $ORACLE_HOME/network/admin/listener.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.39.24)(PORT = 1521)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ITPUB 第 23 页 信息技术新动力
  24. 24. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /oracle/ora10g/product/10g) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = ora10g) (ORACLE_HOME = /oracle/ora10g/product/10g) (SID_NAME = ora10g) ) ) 添加完了存盘退出 $ lsnrctl start 启动监听 $ lsnrctl stop 关闭监听 End ITPUB 第 24 页 信息技术新动力
  25. 25. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 在 10g 不支持的 Linux 发行版上安装 10g 的解决方法 作者:Kamus 到目前为止,正常安装的 10g 只支持 Red Hat Enterprise Linux 2.1 and 3, and on UnitedLinux 1.0。如果是其它的版本,比如 fedora,rh9 等,10g 将会说不支持,而不允许安 装,解决方法如下: 1. 跳过检查 运行 runInstaller -ignoreSysPrereqs,这样会跳过检查 2. 修改 redhat-release 文件 摘自www.puschitz.com 修改/etc/redhat-release 文件,让 10g 认为自己处于支持的操作系统中,运行下面的命令 即可 su - root cp /etc/redhat-release /etc/redhat-release.backup cat > /etc/redhat-release << EOF Red Hat Enterprise Linux AS release 3 (Taroon) EOF 安装完毕,再将那个文件还原: su - root cp /etc/redhat-release.backup /etc/redhat-release puschitz.com 说: I do not recommend to execute "runInstaller -ignoreSysPrereqs" since this will disable other checks you probably don't want to. 意思是:我不推荐执行"runInstaller -ignoreSysPrereqs",因为这可能会跳过其它一 些你也许并不想跳过的检查。 End ITPUB 第 25 页 信息技术新动力
  26. 26. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Data Pump 使用和评测 作者:eygle 1. expdp/impdp 的使用 Oracle10g 中,提供了全新的数据导入导出工具,通过 API 调用,把传统的 exp/imp 类交 互模式的操作转变成为数据库内部的 job 任务,从而实现了任务的可中止与重启动。 当然,重启动还依赖于另外一个数据结构:MT(master table)--任务主表,该表用于记录 导出/导入任务的进度。 以下是一些测试和说明。 1.1 主要参数说明 我们先看一下 Oracle 的帮助说明: C:>expdp –help Export: Release 10.1.0.2.0 - Production on 星期三, 19 5 月, 2004 23:27 Copyright (c) 2003, Oracle. All rights reserved. 数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输数据对象的机制。该实 用程序可以使用以下命令进行调用: 示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp 您可以控制导出的运行方式。具体方法是: 在 'expdp' 命令后输入 各种参数。要指定各参数, 请使用关键字: 格式: expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN) 示 例 : expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott 或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表,USERID 必须是命令行中的第一个参数。 1.2 执行过程中终止导出 首先启动 expdp 执行导出操作 ITPUB 第 26 页 信息技术新动力
  27. 27. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 注意,这里可以指定一个 job_name,这个名称将是你数据库中创建的 MT 表的名称,如 果忽略,Oracle 会自动命名。 $ expdp eygle/eygle directory=dpdata dumpfile=full.dmp full=y job_name=expfull Export: Release 10.1.0.2.0 - 64bit Production on Monday, 26 April, 2004 19:45 Copyright (c) 2003, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options FLASHBACK automatically enabled to preserve database integrity. Starting "EYGLE"."EXPFULL": Ok,在此,你可以通过 ctrl + c,退出当前交互模式。 退出之后,导出操作不会停止,这不同于 Oracle 以前的 exp。 以前的 exp,如果退出交互模式,就会出错终止导出任务。 在 10g,由于 expdp 是数据库内部定义的任务,已经与客户端无关,退出交互之后,会 进入 export 的命令行模式,此时支持 status 等察看命令。 如果此时,想要停止该任务,可以发出 stop_job 命令,确认后停止。 2. expdp 与传统 exp 的速度比较 测试环境: System Configuration: Sun Microsystems sun4u Sun Enterprise 450 (4 X UltraSPARC-II 296MHz) System clock frequency: 99 MHz Memory size: 2048 Megabytes 数据量: 单表测试,1363292 行记录,116.6 MB 左右数据 ITPUB 第 27 页 信息技术新动力
  28. 28. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 2.1 使用并行 expdp 花费时间: Tue Apr 27 10:21:54 CST 2004 - Tue Apr 27 10:21:10 CST 2004 = 43 秒 $ cat bak.sh date expdp eygle/eygle dumpfile=big_big_table.dmp directory=dpdata tables=big_big_table job_name=exptab parallel=4 date $ ./bak.sh Tue Apr 27 10:21:10 CST 2004 Export: Release 10.1.0.2.0 - 64bit Production on Tuesday, 27 April, 2004 10:21 Copyright (c) 2003, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Starting "EYGLE"."EXPTAB": eygle/******** dumpfile=big_big_table.dmp directory=dpdata tables=big_big_table job_name=exptab parallel=4 Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATA Total estimation using BLOCKS method: 248 MB Processing object type TABLE_EXPORT/TABLE/TABLE . . exported "EYGLE"."BIG_BIG_TABLE" 116.6 MB 1363292 rows Master table "EYGLE"."EXPTAB" successfully loaded/unloaded **************************************************** Dump file set for EYGLE.EXPTAB is: /opt/oracle/dpdata/big_big_table.dmp Job "EYGLE"."EXPTAB" successfully completed at 10:21 Tue Apr 27 10:21:54 CST 2004 ITPUB 第 28 页 信息技术新动力
  29. 29. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 2.2 使用正常 expdp 花费时间: Tue Apr 27 10:23:36 CST 2004 - Tue Apr 27 10:23:02 CST 2004 = 34 秒 看来并行的差异需要更大的数据量的测试 $ cat bak2.sh date expdp eygle/eygle dumpfile=big_big_table2.dmp directory=dpdata tables=big_big_table job_name=exptab date $ ./bak2.sh Tue Apr 27 10:23:02 CST 2004 Export: Release 10.1.0.2.0 - 64bit Production on Tuesday, 27 April, 2004 10:23 Copyright (c) 2003, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Starting "EYGLE"."EXPTAB": eygle/******** dumpfile=big_big_table2.dmp directory=dpdata tables=big_big_table job_name=exptab Estimate in progress using BLOCKS method... Processing object type TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATA Total estimation using BLOCKS method: 248 MB Processing object type TABLE_EXPORT/TABLE/TABLE . . exported "EYGLE"."BIG_BIG_TABLE" 116.6 MB 1363292 rows Master table "EYGLE"."EXPTAB" successfully loaded/unloaded ********************************************************** Dump file set for EYGLE.EXPTAB is: /opt/oracle/dpdata/big_big_table2.dmp Job "EYGLE"."EXPTAB" successfully completed at 10:23 ITPUB 第 29 页 信息技术新动力
  30. 30. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Tue Apr 27 10:23:36 CST 2004 2.3 常规路径 exp 花费时间: Tue Apr 27 10:27:00 CST 2004 - Tue Apr 27 10:24:54 CST 2004 = 2:06 这是花费时间最长的. 是 126/34 = 370.58823529411764705882352941176% expdp 明显快于 exp $ cat bak3.sh date exp eygle/eygle file=big_big_table3.dmp tables=big_big_table date $ ./bak3.sh Tue Apr 27 10:24:54 CST 2004 Export: Release 10.1.0.2.0 - Production on Tue Apr 27 10:24:54 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set About to export specified tables via Conventional Path ... . . exporting table BIG_BIG_TABLE 1363292 rows exported Export terminated successfully without warnings. Tue Apr 27 10:27:00 CST 2004 ITPUB 第 30 页 信息技术新动力
  31. 31. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 2.4 直接路径 exp 花费时间: Tue Apr 27 10:52:09 CST 2004 - Tue Apr 27 10:50:58 CST 2004 = 1.11 是 71/34 = 208.82352941176470588235294117647% 直接路径导出快于常规路径导出,但是仍然不敌 expdp $ cat bak4.sh date exp eygle/eygle file=big_big_table3.dmp tables=big_big_table direct=y date $ ./bak4.sh Tue Apr 27 10:50:58 CST 2004 Export: Release 10.1.0.2.0 - Production on Tue Apr 27 10:50:58 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set About to export specified tables via Direct Path ... . . exporting table BIG_BIG_TABLE 1363292 rows exported Export terminated successfully without warnings. Tue Apr 27 10:52:09 CST 2004 2.5 文件大小 传统方式 exp 文件要大于 expdp 的文件大小大约大出 10M 左右. $ ls –al ITPUB 第 31 页 信息技术新动力
  32. 32. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 total 741566 drwxr-xr-x 2 oracle dba 512 Apr 27 10:50 . drwxr-xr-x 23 oracle dba 1024 Apr 26 22:53 .. -rwxr-xr-x 1 oracle dba 120 Apr 27 10:21 bak.sh -rwxr-xr-x 1 oracle dba 111 Apr 27 10:22 bak2.sh -rwxr-xr-x 1 oracle dba 71 Apr 27 10:24 bak3.sh -rwxr-xr-x 1 oracle dba 80 Apr 27 10:50 bak4.sh -rw-r----- 1 oracle dba 122413056 Apr 27 10:21 big_big_table.dmp -rw-r----- 1 oracle dba 122417152 Apr 27 10:23 big_big_table2.dmp -rw-r--r-- 1 oracle dba 134604800 Apr 27 10:52 big_big_table3.dmp -rw-r--r-- 1 oracle dba 965 Apr 27 10:23 export.log 以上测试结果仅供参考. 以下是导入测试: 2.6 使用 imp 花费时间: Tue Apr 27 11:15:11 CST 2004 - Tue Apr 27 11:08:24 CST 2004 = 6:47s $ cat rev2.sh date imp eygle/eygle file=big_big_table3.dmp tables=big_big_table date $ ./rev2.sh Tue Apr 27 11:08:24 CST 2004 Import: Release 10.1.0.2.0 - Production on Tue Apr 27 11:08:24 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Export file created by EXPORT:V10.01.00 via direct path ITPUB 第 32 页 信息技术新动力
  33. 33. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 import done in ZHS16GBK character set and AL16UTF16 NCHAR character set . importing EYGLE's objects into EYGLE . . importing table "BIG_BIG_TABLE" 1363292 rows imported Import terminated successfully without warnings. Tue Apr 27 11:15:11 CST 2004 2.7 使用 impdp 花费时间: Tue Apr 27 11:07:06 CST 2004 - Tue Apr 27 11:06:40 CST 2004 = 26s 与 imp 相比这个速度实在是惊人. 407/26 = 1565.3846153846153846153846153846% 无怪乎 Oracle 说 impdp 才是 data pump 真正杰出的地方(really stands out) $ ./rev.sh Tue Apr 27 11:06:40 CST 2004 Import: Release 10.1.0.2.0 - 64bit Production on Tuesday, 27 April, 2004 11:06 Copyright (c) 2003, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Master table "EYGLE"."IMPTAB" successfully loaded/unloaded Starting "EYGLE"."IMPTAB": eygle/******** dumpfile=big_big_table.dmp tables=big_big_table directory=dpdata job_name=imptab Processing object type TABLE_EXPORT/TABLE/TABLE Processing object type TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATA . . imported "EYGLE"."BIG_BIG_TABLE" 116.6 MB 1363292 rows Job "EYGLE"."IMPTAB" successfully completed at 11:07 Tue Apr 27 11:07:06 CST 2004 End ITPUB 第 33 页 信息技术新动力
  34. 34. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 多个默认的临时表空间支持 作者:prada_gu 前言 在 10g 中,可以创建多个临时表空间,并把它们组成一个临时表空间组,这样应用数据用于 排序时可以使用组里的多个临时表空间,一个临时表空间组至少有一个临时表空间,其最大个 数没有限制,组的名字不能和其中某个表空间的名字相同。 临时表空间组是在创建临时表空间时隐式创建的,同时如果组中的临时表空间全部移去 了,那么这个组也将消失。 使用临时表空间组,我们将可以将一个表空间从一个组移动另一个组,或是从一个组中删 除,或是往组里添加新的表空间。 使用临时表空间组,有如下的优点: 避免当临时表空间不足时所引起的结果排序的问题; 当一个用户同时有多个会话时,可以使得它们使用不同的临时表空间 使得并行的服务器在单节点上,能使用多个临时表空间 1 创建临时表空间组 sql>create temporary tablespace LMTEMP1 tempfile 'D:ORACLE10ORCLtemp1_01.dbf' size 50M tablespace group GROUP1; 此时组 group1 还没有,当最初运行此语句时,创建了临时表空间组 group1,其内包括一个临 时表空间 lmtemp1; 2 往组里添加表空间: sql>create temporary tablespace lmtemp2 tempfile 'D:ORACLE10ORCLtemp1_02.dbf' size 2M tablespace group group1; 3 查询视图 dba_tablespace_groups 通过查询视图 dba_tablespace_groups 可以得到当前临时表空间组的信息: ITPUB 第 34 页 信息技术新动力
  35. 35. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 sql> select * from dba_tablespace_groups; GROUP_NAME TABLESPACE_NAME ------------------------------ ------------------------------ GROUP1 LMTEMP1 GROUP1 LMTEMP2 4 移动临时表空间 SQL> alter tablespace LMTEMP1 tablespace group GROUP2 ; SQL> select * from dba_tablespace_groups; GROUP_NAME TABLESPACE_NAME ------------------------------ ------------------------------ GROUP2 LMTEMP1 GROUP1 LMTEMP2 5 删除临时表空间 SQL> drop tablespace lmtemp1 including contents and datafiles; 如果一个组里的所有表空间被删除,则此组也将被隐式删除. 6 把临时表空间组指定给用户 SQL> alter user scott temporary tablespace GROUP1; 这样这个用户就将可以同时使用这个组里的多个临时表空间了 7 在数据库级设置临时表空间 SQL> alter database <db_name> default temporary tablespace GROUP1; Database altered. 8 检查用户使用哪个临时表空间 SQL> select username, session_num, tablespace from v$sort_usage; End ITPUB 第 35 页 信息技术新动力
  36. 36. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Flashback database 作者:piner 前言 闪回数据库可以迅速的时数据库回到误操作或人为错误的前一个时间点,如实际中的 “撤消”操作,将可以不利用备份就快速的实现时间点的恢复(有后悔药可以吃了 )。 实际上,Oracle 为了实现这一个功能,创建了另外一组日志,就是 Flashback Logs(前 滚日志),记录数据库的前滚操作。 如果希望能闪回数据库,需要设置如下参数: DB_RECOVER_FILE_DEST DB_RECOVER_FILE_DEST_SIZE 这两个参数来确定 Flashback 日志的存放地点与该恢复区的大小。 在创建数据库的时候,Oracle 将自动创建恢复区(需要注意,该恢复区可不仅仅是为了 flashback log,还可以用来归档,备份与恢复),但是默认是关闭 Flashback database 功能。 如果想要利用这一功能,DBA 就必须正确的配置该日志区的大小,如一个数据库的数 据库,每天有 10%的块发生改变,那么一天(24 小时)的 Flash Recovery Area 就是 1/10 个 数据库大小。 DBA 也可以动态的改变其大小以满足不同的需求。 另外一个参数 DB_FLASHBACK_RETENTION_TARGET 参数允许您设定闪回数据的保 存时间,单位是分。默认是一天(24*60) 如果想启动 FLASHBACK DATABASE 的功能,您必须在 MOUNT 模式下,执行 alter database flashback on 命令,或者是 alter tablespace tsname flashback on,数据库将采集 falshback log,如果需要关系该功能,则修改 On 为 OFF。 如果想执行 flashback database 命令,你可以在两种方式下执行:RMAN 与 SQLPLUS。 SQL >flashback database to time to_date(xxx); SQL >flashback database to time TO_TIMESTAMP (xxx); SQL >flashback database to scn xxx SQL >flashback database to sequence xxx thread 1 SQL>flashback database to timestamp(sysdate-1/24) ITPUB 第 36 页 信息技术新动力
  37. 37. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 我们下面看看具体的例子说明 SQL> startup mount ORACLE instance started. Total System Global Area 113246208 bytes Fixed Size 787708 bytes Variable Size 87030532 bytes Database Buffers 25165824 bytes Redo Buffers 262144 bytes Database mounted. SQL> alter database flashback on; alter database flashback on * ERROR at line 1: ORA-38706: Cannot turn on FLASHBACK DATABASE logging. ORA-38707: Media recovery is not enabled. 可以看到,flashback 还必须要归档的保证 SQL> alter database archivelog; Database altered. SQL> alter database flashback on; Database altered. SQL> alter database open; Database altered. SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 13 Next log sequence to archive 15 Current log sequence 15 ITPUB 第 37 页 信息技术新动力
  38. 38. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 经过以上步骤,我们确保了 flashback database 的功能。 我们还可以发现,10g 的自动归档是不需要手工干预的,只要开启了归档,就是自动归 档了,归档区也在 DB_RECOVERY_FILE_DEST 参数指定的地点。 通过如下的查询 SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. SQL> SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME 2 FROM V$FLASHBACK_DATABASE_LOG; OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI -------------------- ------------------- 1135440 2004-04-06 15:20:57 我们可以知道, 可以前滚恢复到的最早的 SCN 与时间点是多少,如果没有确保 flashback database,该视图将没有查询结果。 我们创建三个一样的表 SQL> create table t1 as select * from dba_objects; Table created. SQL> create table t2 as select * from t1; Table created. SQL> create table t3 as select * from t1; Table created. SQL> set time on; SQL> select sysdate from dual; SYSDATE ------------------- 2004-04-06 15:29:33 ITPUB 第 38 页 信息技术新动力
  39. 39. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 我们确定了一个时间点,现在,我们分别 truncate 一个表与 drop 一个表,模拟误操作。 15:30:10 SQL> truncate table t2; Table truncated. 15:30:43 SQL> drop table t3; Table dropped. 没有备份,我们利用 flashback 来恢复数据库到 2004-04-06 15:29:33 时间点。 15:39:02 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. 15:39:31 SQL> startup mount exclusive ORACLE instance started. 15:41:19 SQL> FLASHBACK DATABASE TO timestamp(to_date('2004-04-06 15:29:33','yyyy-mm-dd hh24:mi:ss')); Flashback complete. 之后,我们可以用 ALTER DATABASE OPEN READ ONLY 来检查结果是否正确,如果满足结果,则可以用 resetlog 来正式启动数据库。 注意,一旦 resetlogs 之后,将不能再 flashback 的 resetlogs 之前的时间点。 15:41:32 SQL> alter database open resetlogs; Database altered. 我们现在查询那三个表 15:42:10 SQL> select count(*) from t1; COUNT(*) ---------- 47708 15:42:47 SQL> select count(*) from t2; ITPUB 第 39 页 信息技术新动力
  40. 40. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 COUNT(*) ---------- 47708 15:42:50 SQL> select count(*) from t3; COUNT(*) ---------- 47708 发现 truncate 的记录或者是 drop 的表都存在,现在数据库已经前滚到前一个时间点了。 15:44:56 SQL> SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME 15:45:05 2 FROM V$FLASHBACK_DATABASE_LOG; OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI -------------------- ------------------- 1136169 2004-04-06 15:41:50 同时发现数据库的最早的 flashback 的时间与 scn 都回到 resetlog 的时间点了。 End ITPUB 第 40 页 信息技术新动力
  41. 41. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Oracle10g 跨平台传输表空间 作者:eygle 1. 准备工作: 查询源数据库平台信息 SQL> col platform_name for a40 SQL> SELECT d.PLATFORM_NAME, ENDIAN_FORMAT 2 FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d 3 WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME; PLATFORM_NAME ENDIAN_FORMAT ---------------------------------------- -------------- Solaris[tm] OE (64-bit) Big 查询目标数据库平台信息 SQL> col platform_name for a40 SQL> SELECT d.PLATFORM_NAME, ENDIAN_FORMAT 2 FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d 3 WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME; PLATFORM_NAME ENDIAN_FORMAT ---------------------------------------- -------------- Microsoft Windows IA (32-bit) Little 查询 Oracle10g 支持的平台转换 SQL> select * from v$transportable_platform; PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT ----------- ---------------------------------------- -------------- 1 Solaris[tm] OE (32-bit) Big 2 Solaris[tm] OE (64-bit) Big 7 Microsoft Windows IA (32-bit) Little 10 Linux IA (32-bit) Little 6 AIX-Based Systems (64-bit) Big 3 HP-UX (64-bit) Big 5 HP Tru64 UNIX Little ITPUB 第 41 页 信息技术新动力
  42. 42. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 4 HP-UX IA (64-bit) Big 11 Linux IA (64-bit) Little 15 HP Open VMS Little 8 Microsoft Windows IA (64-bit) Little 9 IBM zSeries Based Linux Big 13 Linux 64-bit for AMD Little 16 Apple Mac OS Big 12 Microsoft Windows 64-bit for AMD Little 2. 创建一个独立的自包含表空间 创建一个独立的自包含表空间用于测试: $ sqlplus "/ as sysdba" SQL*Plus: Release 10.1.0.2.0 - Production on Tue Apr 27 14:04:08 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL> select name from v$datafile; NAME -------------------------------------------------------------------- /opt/oracle/oradata/eygle/system01.dbf /opt/oracle/oradata/eygle/undotbs01.dbf /opt/oracle/oradata/eygle/sysaux01.dbf /opt/oracle/oradata/eygle/users01.dbf /data1/oradata/systemfile/eygle01.dbf /opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_test_03xv34ny_.dbf /opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_itpub_03xv5g66_.dbf 7 rows selected. ITPUB 第 42 页 信息技术新动力
  43. 43. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 SQL> create tablespace trans 2 datafile '/data1/oradata/systemfile/trans01.dbf' 3 size 10M; Tablespace created. SQL> create user trans identified by trans 2 default tablespace trans; User created. SQL> grant connect,resource to trans; Grant succeeded. SQL> connect trans/transConnected. SQL> create table test as select * from user_objects; Table created. SQL> select count(*) from test; COUNT(*) ---------- 1 SQL> select * from test; OBJECT_NAME -------------------------------------------------------------------- SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE ------------------------------ ---------- -------------- ------------------- CREATED LAST_DDL_TIM TIMESTAMP STATUS T G S ------------ ------------ ------------------- ------- - - - TEST 15604 15604 TABLE 27-APR-04 27-APR-04 2004-04-27:14:05:42 VALID NNN SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Dat ITPUB 第 43 页 信息技术新动力
  44. 44. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 3. 导出要传输的表空间 $ pwd /opt/oracle $ cd dpdata $ ls $ expdp eygle/eygle dumpfile=trans.dmp directory=dpdata transport_tablespace=trans LRM-00101: unknown parameter name 'transport_tablespace' $ expdp eygle/eygle dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans Export: Release 10.1.0.2.0 - 64bit Production on Tuesday, 27 April, 2004 14:07 Copyright (c) 2003, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Starting "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans ORA-39123: Data Pump transportable tablespace job aborted ORA-29335: tablespace 'TRANS' is not read only Job "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01" stopped due to fatal error at 14:08 注意:传输表空间必须置为只读状态 $ sqlplus "/ as sysdba" SQL*Plus: Release 10.1.0.2.0 - Production on Tue Apr 27 14:08:13 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. ITPUB 第 44 页 信息技术新动力
  45. 45. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options SQL> alter tablespace trans read only; Tablespace altered. SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options $ expdp eygle/eygle dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans Export: Release 10.1.0.2.0 - 64bit Production on Tuesday, 27 April, 2004 14:08 Copyright (c) 2003, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production With the Partitioning, OLAP and Data Mining options Starting "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK Processing object type TRANSPORTABLE_EXPORT/TABLE Processing object type TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK Master table "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded ******************************************************** Dump file set for EYGLE.SYS_EXPORT_TRANSPORTABLE_01 is: /opt/oracle/dpdata/trans.dmp Job "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 14:09 4. 使用 rman 转换文件格式 $ rman target / ITPUB 第 45 页 信息技术新动力
  46. 46. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 Recovery Manager: Release 10.1.0.2.0 - 64bit Production Copyright (c) 1995, 2004, Oracle. All rights reserved. connected to target database: EYGLE (DBID=1337390772) RMAN> convert tablespace trans 2> to platform 'Microsoft Windows IA (32-bit)' 3> Format '/tmp/%U'; Starting backup at 27-APR-04 using target database controlfile instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=148 devtype=DISK channel ORA_DISK_1: starting datafile conversion input datafile fno=00008 name=/data1/oradata/systemfile/trans01.dbf converted datafile=/tmp/data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 Finished backup at 27-APR-04 RMAN> exit Recovery Manager complete. 5. 确认导出文件已生成. $ ls /tmp/data* /tmp/data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg $ ls -l /tmp/data* -rw-r----- 1 oracle dba 10493952 Apr 27 14:12 /tmp/data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg $ chmod 777 /tmp/data* $ chmod 777 /opt/oracle/dpdata/* ITPUB 第 46 页 信息技术新动力
  47. 47. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 6. 通过 ftp 传输文件至目标主机 220 billing-center.hurray.com.cn FTP server (SunOS 5.8) ready. User (172.16.33.32 none)): gqgai 331 Password required for gqgai. Password: 230 User gqgai logged in. ftp> bin 200 Type set to I. ftp> cd /tmp 250 CWD command successful. ftp> mget data* 200 Type set to I. mget data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg? Y 200 PORT command successful. 150 Binary data connection for data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg (172.16.32.65,2885) (10493952 bytes). 226 Binary Transfer complete. ftp: 10493952 bytes received in 15.90Seconds 659.87Kbytes/sec. ftp> cd /opt/oracle/dpdata 250 CWD command successful. ftp> ls 200 PORT command successful. 150 ASCII data connection for /bin/ls (172.16.32.65,2889) (0 bytes). export.log trans.dmp 226 ASCII Transfer complete. ftp: 23 bytes received in 0.01Seconds 2.30Kbytes/sec. ITPUB 第 47 页 信息技术新动力
  48. 48. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 ftp> bin 200 Type set to I. ftp> mget trans.dmp 200 Type set to I. mget trans.dmp? y 200 PORT command successful. 150 Binary data connection for trans.dmp (172.16.32.65,2893) (73728 bytes). 226 Binary Transfer complete. ftp: 73728 bytes received in 0.03Seconds 2457.60Kbytes/sec. ftp> bye 221 Goodbye. 7. 使用 rman 在目标数据库转换文件 E:Oracleoradatavilendpdata>rman target / 恢复管理器: 版本 10.1.0.2.0 - Production Copyright (c) 1995, 2004, Oracle. All rights reserved. 连接到目标数据库: VILEN (DBID=1587222708) RMAN> CONVERT DATAFILE 'E:Oracleoradatavilendpdatadata_D-EYGLE_I-1337390772_TS-TRANS_F NO-8_01fk92hg' 2> DB_FILE_NAME_CONVERT 3> 'E:Oracleoradatavilendpdatadata_D-EYGLE_I-1337390772_TS-TRANS_F NO-8_01fk92hg','E:OracleoradatavilenVILENDATAFILEtrans01.dbf'; 启动 backup 于 27-4 月 -04 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 启动数据文件转换 输 出 文 件 名 =E:ORACLEORADATAVILENDPDATADATA_D-EYGLE_I-1337390772_TS -TRANS_FNO-8_01FK92HG 已 转 换 的 数 据 文 件 = ITPUB 第 48 页 信息技术新动力
  49. 49. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 E:ORACLEORADATAVILENVILENDATAFILETRANS01.DBF 通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:04 完成 backup 于 27-4 月 -04 8. 在目标数据库 plugin 数据文件 注意目标数据库中的目标用户必须存在,否则会报错。 E:Oracleoradatavilendpdata>impdp eygle/eygle dumpfile=trans.dmp directory=dpdata transport_datafiles='E:OracleoradatavilenVILENDATAFILETRANS01.DB F' Import: Release 10.1.0.2.0 - Production on 星期二, 27 4 月, 2004 15:02 Copyright (c) 2003, Oracle. All rights reserved. 连 接 到 : Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options 已成功加载/卸载了主表 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01" 启 动 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata transport_datafiles='E: OracleoradatavilenVILENDATAFILETRANS01.DBF' 处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK ORA-39123: 数据泵可传输的表空间作业中止 ORA-29342: 数据库中不存在用户 TRANS 作业 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01" 因致命错误于 15:02 停 止 E:Oracleoradatavilendpdata>sqlplus "/ as sysdba" SQL*Plus: Release 10.1.0.2.0 - Production on 星期二 4 月 27 15:03:03 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options SQL> create user trans identified by trans; 用户已创建。 SQL> grant connect,resource to trans; ITPUB 第 49 页 信息技术新动力
  50. 50. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 授权成功。 SQL> exit 从 Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options 断开 E:Oracleoradatavilendpdata>impdp eygle/eygle dumpfile=trans.dmp directory=dpdata transport_datafiles='E:OracleoradatavilenVILENDATAFILETRANS01.DB F' Import: Release 10.1.0.2.0 - Production on 星期二, 27 4 月, 2004 15:03 Copyright (c) 2003, Oracle. All rights reserved. 连 接 到 : Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options 已成功加载/卸载了主表 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01" 启 动 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata transport_datafiles='E: OracleoradatavilenVILENDATAFILETRANS01.DBF' 处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK 处理对象类型 TRANSPORTABLE_EXPORT/TABLE 处理对象类型 TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK 作业 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01" 已于 15:03 成功完成 9. 检查数据 E:Oracleoradatavilendpdata>sqlplus trans/trans SQL*Plus: Release 10.1.0.2.0 - Production on 星期二 4 月 27 15:03:50 2004 Copyright (c) 1982, 2004, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select count(*) from test; COUNT(*) ---------- ITPUB 第 50 页 信息技术新动力
  51. 51. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 1 SQL> exit 从 Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production With the Partitioning, OLAP and Data Mining options 断开 E:Oracleoradatavilendpdata> 可以选择把表空间更改为读写 SQL> alter tablespace trans read write; 表空间已更改。 10. 总结 10g 的表空间跨平台迁移, 9i 就是增加了一个使用 Rman 进行的文件格式转换的过程. 较 实际上也就是转换了数据文件头的格式信息而已. 然而这一简单改进带来的方便之处是显而易见的. End ITPUB 第 51 页 信息技术新动力
  52. 52. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 创建 Oracle10g ASM 数据库 Step by Step 作者:Kamus 概述 在真正的海量数据库环境中,DBA 可能会花费很多的时间来作磁盘管理。 比如一个表空间将占满整个磁盘,DBA 就需要再添加一块磁盘到操作系统中,然后再 在新的磁盘上创建新的数据文件。 如果是单个磁盘这倒不是很繁琐,问题是如果原先我们使用的是 RAID 或者说是 LVM, 那么现在大量的数据仍然是分布在以前的那些磁盘上,如果我们想让这些数据均匀地分布在 以前的磁盘和新增加的磁盘上,就可能就要耗费一天甚至几天的时间来作原先数据的导出导 入。 那么如果有一种方法,能实现我们就把一块磁盘加到系统里,然后告诉 Oracle 我们要用 这块盘了,剩下的工作全部由 Oracle 来完成,该是多好的一件事情! 幸 运 的 是 , Oracle10g 已 经 提 供 了 这 个 功 能 , 这 就 是 ASM ( Automatic Storage Management)。我们称为“自动存储管理”。 Oracle10g 的 ASM 不但帮助 DBA 从繁琐的磁盘空间管理中解脱出来,而且更值得关注 的是 ASM 同时提供了条带和镜像的功能,而这些功能原先需要通过单独地配置 RAID 来实 现。 本文通过 vmware 安装 RHEL3 + Oracle10g,来体验 ASM 数据库的强大功能,为什么要 使用 vmware?因为在 vmware 中我们可以随意地添加或者删除虚拟磁盘(Virtual Disk), 这样可以更方便地测试 ASM 数据库,我想不是谁都可以顺手抓出五六块硬盘来作这样的测 试的☺ 硬件配置 IBM R50 5GC 迅驰 1.5G,1G 内存,40G 硬盘 软件配置 WindowsXP Pro SP1 ITPUB 第 52 页 信息技术新动力
  53. 53. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 VMware GSX Server 2.5.1 RHEL3 Oracle10g for Linux 安装 VMware 这一步就不多说了,我安装的是 VMware GSX Server,没有测试过 VMware Workstation, 所以不保证可以实现本文中的步骤。 在 VMware 中安装 RHEL3 1. 安装 RHEL3 这个过程也不多说了, 跟实际环境中安装 RHEL3 一样。 值得注意的是, 由于通过 Vmware 所以可能在安装时无法正常启动 Xwindow,那么在字符界面下安装就可以了。安装完毕重 新启动系统,Xwindow 会自动启动的。记住安装所有的开发包即可,这将会尽量避免以后 可能出现的 link 错误。我的测试环境中给了 RHEL3 总共 384M 的内存。 2. 添加 4 块虚拟磁盘 按照如下操作,在虚拟机的属性中选择添加硬件,然后添加一个 Virtual Disk 下一步,由于我们创建的虚拟磁盘只是用来放置 Oracle 的数据文件,而且我们将使用 ASM 中的 failgroup 的条带功能,所以设置最大 size 是 1G 就足够了。 ITPUB 第 53 页 信息技术新动力
  54. 54. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 下一步,指定虚拟磁盘文件的名称和存放位置,默认存放在虚拟机的相同目录下。这里 我们指定文件名为 physical1 点击 Advanced 按钮,设置虚拟磁盘的物理挂载点,通常我们选择和虚拟机已有的系统 盘在不同的 SCSI 端口上,比如我们虚拟机的系统盘是 SCSI0:0,那么就设置这个磁盘为 SCSI1:0。即将添加的另外三块磁盘依次为 SCSI1:1、SCSI1:2 和 SCSI1:3 ITPUB 第 54 页 信息技术新动力
  55. 55. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 由于 Virtual Disk 的特点,在新创建这个磁盘文件的时候,并不会用到最大的 size,所以 即使整个分区的空闲容量没有 4G(我们要创建 4 个最大 size 是 1G 的虚拟磁盘),也不会 有问题,虚拟磁盘文件的大小是随着需要而持续增加的,最大增加到指定的 max size。 当然这种特性也就导致了使用 Virtual Disk 比使用 Plain Disk(创建时即占用 max size 大 小的磁盘空间)的 I/O 效率要低,所以如果有足够的磁盘空间,那么建议使用 Plain Disk。 创建 Plain Disk 的方法是在上面的第二步时,在“Allocate all disk space now”的复选框 前面打勾,这样将会创建一个以 pln 和 dat 为扩展名的虚拟磁盘文件。 Plain Disk 的好处还在于可以模拟 RAC 环境中的共享磁盘,这是 Virtual Disk 无法作到 的。 模拟RAC不在本文叙述的范围内。如果有兴趣,可以到www.itpub.net的数据库管理版本 精华区查找相应的发贴。 3. 更新内核 >uname -a RHEL3 默认安装的 linux 内核版本是 2.4.21-4,为了能够正确的地安装 oracleasm lib,我们需要将内核升级到 2.4.21-15.EL,否则将无法正常启用 oracleasm。 原因是我们安装的 oracleasmlib 是已经编译好的 rpm 包,而我们当前操作系统的内核 必须和编译时候的系统内核版本一样,否则即使看上去安装正常,但是在启动 oracleasm 时候会在/var/log/messages 文件中发现类似如下的报错信息: kernel-module version mismatch ^I/lib/modules/2.4.21-EL-ABI/oracleasm/oracleasm.o was compiled for kernel version 2.4.21-15.EL ^Iwhile this kernel is version 2.4.21-4.EL. ITPUB 第 55 页 信息技术新动力
  56. 56. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 从这个报错信息中我们也可以知道应该安装的内核版本,为了更确切地知道下载的 oracleasm 包需要哪个版本的内核,我们也可以先下载 oracleasm,安装,启动然后查看 这个报错信息,之后再升级内核到相应的版本。 注意:本文中提到的 2.4.21-15.EL 内核是本文编写时 oracleasm 编译使用的内核,随着 oracle 不断地推出 asmlib 的新版本,需要的内核版本可能也在不断变化。 下载新内核: kernel-2.4.21-15.EL.i686: http://public.planetmirror.com/pub/pmstuff/patches/kernel-2.4.21-15.EL.i686.rpm 安装新内核: # rpm –ivh –-nodeps kernel-2.4.21-15.EL.i686.rpm 安装完毕以后,修改/boot/grub/grub.conf,rpm 安装完毕以后,应该已经自动在 grub.conf 文件中添加了新版 kernel 启动的段落,我们需要将 default=1 修改为 default=0,这样保证每次启动都用新的内核启动,当测试没有问题之后,我们也可以直接 删除 grub.conf 文件中的 title Red Hat Enterprise Linux AS (2.4.21-4.EL)部分,防 止因错误操作而使用了原有的系统内核启动系统。 # cat /boot/grub/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,0) # kernel /boot/vmlinuz-version ro root=/dev/sda1 # initrd /boot/initrd-version.img #boot=/dev/sda default=0 timeout=10 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Red Hat Enterprise Linux AS (2.4.21-15.EL) root (hd0,0) kernel /boot/vmlinuz-2.4.21-15.EL ro root=LABEL=/ initrd /boot/initrd-2.4.21-15.EL.img title Red Hat Enterprise Linux AS (2.4.21-4.EL) root (hd0,0) kernel /boot/vmlinuz-2.4.21-4.EL ro root=LABEL=/ ITPUB 第 56 页 信息技术新动力
  57. 57. http://www.itpub.net ITPUB 电子杂志 --------------------------- 总第七期 initrd /boot/initrd-2.4.21-4.EL.img 修改完毕以后,重新启动系统,保证使用了新内核 # uname –a Linux LinuxNode1 2.4.21-15.EL #1 Thu Apr 22 00:27:41 EDT 2004 i686 i686 i386 GNU/Linux 安装 Oracle ASMLib 下载 ASMLib 需要的三个文件: asmlib: http://otn.oracle.com/software/tech/linux/asmlib/files/RPMS/rhel3/x86/oracleasmlib-1. 0.0-1.i386.rpm asm-support: http://otn.oracle.com/software/tech/linux/asmlib/files/RPMS/rhel3/x86/oracleasm-supp ort-1.0.2-1.i386.rpm asm-kernel: http://otn.oracle.com/software/tech/linux/asmlib/files/RPMS/rhel3/x86/oracleasm-2.4.2 1-EL-1.0.0-1.i686.rpm 如果是多处理器的版本,那么可以下载下面这个文件替换上面的第三个文件: asm-smp-kernel: http://otn.oracle.com/software/tech/linux/asmlib/files/RPMS/rhel3/x86/oracleasm-2.4.2 1-EL-smp-1.0.0-1.i686.rpm 安装: $su – # rpm -Uvh oracleasm-support-1.0.2-1.i386.rpm oracleasm-lib-1.0.0-1.i386.rpm oracleasm-2.4.21-EL-1.0.0-1.i686.rpm ITPUB 第 57 页 信息技术新动力

×