手动建O r a c l e9i数据库的步骤与相关注意事项手动建置 Oracle9i 数据库的步骤与相关注意事项。
本文内容将涵盖下列主题:•n 建立数据库的前置工作•n 起始参数档的重要参数•n 手动建立 Oracle9i 数据库的步骤•n 如何移除 Oracle9i 数据库不管原因为何,当您准备自行建立 Oracle9i 数据库时,都必须事先做好妥善准备。
因为手动建立 Oracle9i 数据库并不是件容易的事,可能的话应该尽量使用 Oracle9i 提供的「数据库建置辅助精灵」来建立新数据库。
但是要想成为一个合格的 Oracle DBA,您也必须熟稔手动建立数据库的方式,才能面对建置 Oracle9i 数据库所可能碰到的任何问题。
首先我们先看看建立 Oracle9i 数据库之前应注意那些事情。
建立 Oracle9i 数据库的前置处理工作在开始建立新的 Oracle9i 数据库之前,建议您先做好下列准备工作:•n 评估资料表与索引的存放位置,并预估其所需空间(如果可能的话)。
•n 规划操作系统下数据库实体档案的部署方式—良好的档案配置将大幅改善资料存取效能。
不管是安装 Oracle 服务器软件或是建置新数据库时,都必须特别注意这点。
例如说,您可以将重置日志文件 (Redo Log files) 置于其它磁盘或是 RAID 1磁盘阵列上;而将数据文件置于 RAID 5磁盘阵列上。
•n 选定「全域数据库名称」(global database name) —它是在网际网络上识别 Oracle9i 数据库的方式,由数据库名称与网域名称组成,分别设定在起始参数档的DB_NAME与DB_DOMAIN参数内。
•n 熟悉起始参数档内较重要的参数,甚至「服务器参数档」(server parameter file)的使用时机与其功用。
•n 选定适当的数据库字符集。
所有字符资料都是依照特定字符集存入数据库,因此您必须在建立数据库时指定适当字符集(注/dede/add_news_view.php?typeid=0 - _ftn1[1])。
•n 选定「标准资料区块」大小—设定在起始参数档的DB_BLOCK_SIZE参数。
除了 SYSTEM 资料表空间,其它资料表空间也可以遵循「标准资料区块」的设定。
此外,在 Oracle9i 数据库中,您可以设定额外四种「非标准资料区块」。
需要注意的是,「标准资料区块」大小在数据库建立完成后即无法更改。
•n 针对未来数据库的运作情况,订立一份良好的数据库备份计划,以便数据库毁损时能在最短时间内予以修复。
•n 熟悉 Oracle9i 数据库的激活/关闭方式,与其搭配的各种选项(如 STARTUP 指令的 nomount、mount、open 选项)。
•n 确认物理内存是否足以激活 Oracle9i Instance。
•n 确认 Oracle9i 服务器机的磁盘空间足够,以建置新数据库。
除了本文提及的注意事项,您也可以查阅各种操作系统专属的 Oracle9i 安装指南,以获取更详尽的信息。
选择数据库建置方式Oracle9i 数据库建置过程包含下列三项主要工作:•n 建置新的数据库实体档案,包含资料文件、重置日志文件。
•n 建立控制档,并予以初始化。
•n 建置 Oracle9i 存取数据库系统时必要的数据字典(data dictionary)。
实际上,您可能经由下列三种方式之一来建置新的 Oracle9i 数据库时:•n 使用 Oracle「数据库建置组态精灵」(Database Configuration Assistant,DBCA)。
Oracle Universal Installer 在安装过程中会适时激活 DBCA 协助您建立数据库,视您选择的安装种类而定。
DBCA 将以图形接口方式引导您逐步完成Oracle9i 数据库的建置工作。
若是安装过程未激活 DBCA,您也可以事后单独激活 DBCA 建立新数据库,甚至建立第二个 Oracle9i 数据库。
•n 执行指令文件(script)手动建立 Oracle9i 数据库如果您手边恰好保存着上次建立 Oracle9i 数据库所用的指令文件,那么您可以直接编修该指令文件,并予以执行。
否则,建议您使用 Oracle9i 提供的范例指令文件进行编修。
Oracle9i 不仅提供了数据库建置范例指令文件,也提供了起始参数范例文件。
您可视实际需要进行必要调整。
•n 移转(migrate)或升级(upgrade)既有数据库。
如果您的应用系统正在存取既有 Oracle 数据库,除非您需要一个全新的数据库或是测试用环境,否则应该不需要建立新数据库。
在此情况下,您所面临的将是数据库移转或升级议题。
有关这方面的详尽信息,请参阅《Oracle9i Database Migration》手册。
再谈起始参数档还记得上一期曾经提过的起始参数档吗?因为手动建立 Oracle9i 数据库之前必须先激活 Oracle9i Instance,因此您必须先建立一个起始参数档。
建立新的起始参数档时,最快速的方式就是编辑 Oracle9i 提供的范例档案,然后另存新档。
我较习惯的方式是直接编辑既有起始参数档之复本,然后视实际需要进行调整。
因为起始参数档可供设定的参数非常多,如果某些参数未经过明确设定,Oracle9i 会自动代入默认值。
第一次以手动方式建立 Oracle 数据库时,建议您尽可能不要修改各起始参数值。
等到您熟悉每个参数的意义与使用时机之后,再利用文字编辑器调整或新增其它参数。
除此之外,Oracle9i 允许您建立服务器参数文件(以二进制格式存放)。
该档案内的参数可在 Oracle9i Instance 激活后执行 ALTER SYSTEM 指令予以修改。
以下是建置新数据库之前必须新增或编辑的起始参数,包括:•n 全域数据库名称•n 控制文件名称与路径•n 资料区块大小•n 影响 SGA 容量的起始参数•n 设定处理程序最大数目•n 设定空间回复(Undo)管理方法设定全域数据库名称Oracle9i 的全域数据库名称由「数据库名称」与「网域名称」所组成,其中「数据库名称」设定于 DB_NAME 起始参数,而「网域名称」则是设定于DB_DOMAIN 参数。
这两个参数合并之后就可以在网际网络上唯一识别每一个Oracle9i 数据库。
举例来说,假设我们欲建立的 Oracle9i 数据库之全域数据库名称为 ,那么可在起始参数档内设定下列两参数:DB_NAME = mydbDB_DOMAIN = Tips:您可以执行 ALTER DATABASE RENAME GLOBAL_NAME 指令更改 Oracle9i 数据库的全域数据库名称;在您更改 DB_NAME 与 DB_DOMAIN 这两个起始参数后必须将 Oracle9i 数据库重新激活才会生效。
此外,控制档也必须重新建立。
关于 DB_NAME 起始参数DB_NAME必须是文字字符串,且不能超过 8 个字符。
在建立数据库的过程中,DB_NAME设定值会记录在资料文件、控制文件、以及重置日志文件之中。
如果您激活 Oracle9i Instance 的时候,起始参数档内设定的DB_NAME不同于控制文件内所纪录的,那么数据库将无法激活。
关于 DB_DOMAIN 起始参数DB_DOMAIN通常是数据库主机所在位置的网域名称。
如果您欲建立的数据库将加入分布式数据库运算环境,请特别注意此参数的设定。
设定控制档如前所述,控制文件是 Oracle9i 数据库内相当重要的档案。
因此您必须在新的起始参数档内加入CONTROL_FILE参数以设定控制文件之文件名与路径。
当您执行 CREATE DATABASE 时,列在CONTROL_FILE之中的控制档将随之建立。
如果起始参数档忽略了此项参数,则 Oracle9i 会在执行 CREATE DATABASE 指令时自动建立控制文件并命名之,然后放在系统预设路径下。
那么,如果CONTROL_NAME内设定的控制文件已经存在于操作系统下该怎么办呢?此时 Oracle9i 会自动覆盖既有的控制档。
如果您想建立全新的控制档,请确定CONTROL_NAME设定的控制文件名不会与操作系统下任何文件名重复。
依照过去经验,Oracle 强烈建议您为每个数据库至少规划两个控制档,并分散在两个实体磁盘上。
如此可避免任一控制文件毁损时造成系统停摆。
注[1]:有关 Oracle 9i 数据库的字符集种类与名称,请参阅《Oracle9i Globalization Support Guide Release 1》设定资料区块大小Oracle9i 数据库内存放资料的最小单位为「资料区块」(data block)。
数据库内「标准资料区块」大小是设定在起始参数档之DB_BLOCK_SIZ E 参数。
Oracle9i 数据库内最重要的 SYSTEM 资料表空间就是以DB_LOCK_SIZE设定值为基础所建立。
此外DB_BLOCK _SIZE也是建立新资料表空间时预设的资料区块大小。
除了标准资料区块大小之外,Oracle9i 支持额外 4 种「非标准资料区块」大小。
关于 DB_BLOCK_SIZE 起始参数从 Oracle9i 开始,DB_BLOCK_SIZE所设定的仅是标准资料区块大小;绝大多数的数据库环境只需要设定该参数即可。
一般来说,DB_BLOCK_SIZE可设定为4K 或 8K。
如果此参数未经设定,则 Oracle9i 会自动依照数据库所在操作系统平台自行决定适当的资料区块大小。
需要注意的是,标准资料区块大小在数据库建立之后就无法改变—除非重建数据库。
如果数据库的「资料区块」大小不同于「操作系统区块」大小,那么建议您将DB_BLOCK_SIZE设为「操作系统区块」大小之整数倍。
假定操作系统区块大小为 4K,则不妨设定DB_BLOCK_SIZE = 8192。
在某些情况下,这样的组态方式将会显著地提升资料存取效能。
何谓「非标准资料区块」?由「非标准资料区块」构成的资料表空间可经由 CREATE TABLESPACE 指令搭配BLOCKSIZE子句建立之;其区块大小设定值可为 2K、4K、8K、16K、32。
需注意的是此类型资料区块将受到操作系统环境限制,不是所有操作系统都可以设定上述所有区块大小。
欲使用「非标准资料区块」时,您还必须适当组态 SGA 内数据库缓冲区的子缓冲区,方式是藉由DB_n K_CACHE_SIZE参数所设定(此参数容后说明)。
此项机制是 Oracle9i 提出的新功能,在转移数据库时特别好用。
举例来说,您的 OLTP 数据库也许将资料区块大小设定为 4K,但是资料仓储系统使用的数据库却将资料区块大小设定为 8K。