说明:这里的经验是多次重装Oracle--建库--WebDB,细心总结的,而安装软件是很费时费事的,每次要不止6个小时。
这里先谈对几个术语的解释。
在线事务处理OLTP/决策支持,前者用于小而多实时处理,后者用于大而少的统计查询。
并发用户/并发连接, 同时连接的用户数/相同用户同时连接数。
日志文件,redolog,用于重做数据库
控制文件, control,记载运行状态。
表空间/文件/表/数据,表示oracle的数据库结构。
创建数据库
按照Oracle的说法,创建数据库有3种方法:
1) 安装时生成
2) 安装后使用DBCA创建
3) 使用手工命令
具体过程(个人经验):
■方法1 不行,
Oracle也说安装过程不创建数据库,只是在最后启动数据库创建助理DBCA,但你不要相信它,那也行不通,因为你必须在数据库创建之前,安装补丁,那个讨厌又必须的东西。
■方法3 太难;
■方法2最好!
方法2使用图形化的工具:数据库创建助理DBCA, 你可以一步步 输入或选择参数,最小化安装的时间40分钟,标准规模完全安装的时间90分钟(奔3-500/192MB内存),通常需要2个多小时。
工具用法:启动DBCA
[oracle@lin /ora] bin/dbas*
注意:自定义数据库的参数
■数据库文件的位置、大小、增长方式。例如:
system = /u01/app/oracle/oradata/ora8/orasys01.dbf 188M next 100K
Users = /home/oracle/oradata/ora8/orausr01.dbf 20M next 128K
■重置字符集
缺省值 = US7ASCII, 要求Windows客户端注册表与之对应, 否则乱码,
Hkey_Local_machine \Software\Oracle\NLS_Lang=American.America.US7ASCII
实际上,Oracle客户端大多是支持中文的,甚至作为了缺省值。并且,如果Oracle WebDB开发一个中文电子商务站点,你的英文不成问题;但要向一个小公司Oracle DBA新手推广WebDB作为管理工具,不能总是English面孔吧,所以应该选择中国中文国标字字符集 ZHS16GBK (中国简化汉字16位国标字库),相应的客户端配置为:
Hkey_Local_machine\Software\Oracle\NLS_Lang = SIMPLIFIED CHINESE_CHINA.ZHS16GBK ,
National Chartset 是国家语言,为Nchar等N 类型准备的。
服务器成功案例
■服务器最小化安装,兼容=8.0.5,不要任何选件(Option);
■最小化安装完毕,更改兼容=8.1.0,启动DBCA修改数据库,添加除了interMedia之外的4个部件(因为interMedia需要在\ora\ord\adu,..\vid中预先装入单独产品,否则提示*.sql,*.plb找不到,如果你有了这些interMedia产品,可以使用DBCA修改数据库,添加这些选项,并且要事先更改兼容=8.1.5),安装成功;
■自定义安装,软件系统和数据库文件分别装在不同硬盘上,并改变文件大小、增长方式, 字符集=ZHS16GBK, (Oracle 建议的中文字符集=ZHS16cGB231280), 安装成功;
WebDB成功案例
■服务器字符集=US7ASCII,客户端是ZHS16GBK或WE8ISO8859P1,WebDB也算安装成功,但只能用OPERA3.6操作,附加的Simplified Chinese在微软 IE5 浏览器显示为?????乱码,我因此判断是因为 Windows.ZHS16GBK == Oracle.US7ASCII7bit)出错。
■最小化安装,即兼容8.0.5,语言都是ZHS16GBK, 但是,不要选择任何附加语言,这时的浏览器只能显示English,不会根据浏览器缺省语言显示中文;
■
WebDB最理想的境界:服务器中等安装(即兼容8.1.0),C/S语言都是ZHS16GBK, 为浏览器添加附加语言Simplified Chinese, 浏览器语言显示中/英文完全正常。
一些经验
■字符集要求一致,要么都是US7ASCII,要么都是ZHS16GBK。
■记住:Oracle for Windows的英文字符集是WE8ISO8859P1, 而不是Oracle Server for Linux/Unix的缺省字符集US7ASCII。同样地,Oracle for Windows的重文字符集是ZHS16GBK, 而不是Oracle Server for Linux/Unix的缺省字符集ZHS16CGB231280, 但是ZHS16GBK 兼容 ZHS16CGB231280。
■中文/英文字符集转换将会影响效率,最好选择完全中文。
■安装WebDB时,一定要新建目录和Home,选择附加语言(Simplified Chinese)时要求字符集一致。比如你的WebDB for WinNT4英语是 WE8ISO8859P1,那么你就无法向Oracle.US7ASCII服务器添加附加语言Simplified Chinese,因为US7ASCII和WE8ISO8859P1之间只能正确交换7位字符集比如英语或法语。
■下面这个想法也是行不通的:定制安装WebDB2.1,装完SqlPlus, SupportFiles, 和 Net8 后,修改字符集与数据库服务器一致,再来安装 WebDB2.1 和 Listener, 以便添加附加语言Simplified Chinese. 但是,每次当你启动安装程序时,都得设定一个字符集并同时作为变量供整个安装过程使用,所以不可能中途改变字符集并使之生效。
■移植一个产品:你的Windows NT4有WebDB2.1了,但是Personal Oracle里有一个Navigator很好用, 那么你可以找到 Nav8.exe, Nav8cmd.dll, Navrsus.dll(英语支持), Navrszhs.dll(汉语支持)共4个文件复制到当前的 [OraWeb21]\bin 里来,即可使用“Oracle8导航器”了:在桌面或菜单目录中添加Nav8.exe的快捷方式。
■想想看:你的Windows NT4有了Personal Oracle(只是部分产品或其他), 能不能在它的目录里再装载 WebDB服务? 哪怕不选择附加语言支持。
手工建库
重点讨论方法3:
你需要 较好的Linux和Oracle基础,或者要鼓足勇气,增加信心才行。
请参考帮助文献: [oracle@lin oracle]$ more /ora/rdbms/install/create/READ*
■首先定义好 ORACLE_SID,ORACLE_HOME等参数,
■编写参数文件$ORACLE_HOME/dbs/init.ora
■对db_name, instance_name and service_name 稍微做修改
■set compatible ="8.1.5"
依次执行以下命令脚本:
crdb1.sh |
crdb2.sh |-- To create database files, data dictionary views
crdb3.sh | and add PL/SQL support
replicate.sh --- Advanced replication option
ordinst.sh |__ Oracle Intermedia
imedia.sh |
drsys.sh |__ Oracle interMedia Text
context.sh |
java.sh --- Oracle Jserver
spatial.sh --- Oracel Spatial
timeseries.sh --- Oracel TimeSeries
virage.sh --- Oracle Visual Information Retrieval
sqlplus1.sh |
sqlplus2.sh |-- Demos and SQL*Plus help tables
sqlplus3.sh |
你不必依次全部执行,我在数据库创建助理DBCA里也只是1) 2)
1)The first three scripts (crdb1.sh, crdb2.sh and crdb3.sh) would create a database and
2)the scripts sqlplus1.sh, sqlplus2.sh and sqlplus.sh would create some demo tables.
Once the database is created, you could run other scripts mentioned above to use the respective 8i feature,
3) e.g., for Jserver, run the java.sh script.
4)To enable Oracle Intermedia Text, run the scripts - drsys.sh and context.sh, in this order only.
5) Similarly, for Oracle Intermedia, run ordinst.sh followed by imedia.sh.
下面是我用 "数据库创建助理DBCA" 生成的参数文件几个参数:
[oracle@lin /ora]$ more dbs/initora8.ora
instance_name = ora8
control_files = ("/u01/app/oracle/oradata/ora8/control01.ctl", "/u01/app/oracle/oradata/ora8/control02.ctl")
processes = 50
log_buffer = 163840
# audit_trail = false # 审计和interMedia 的软件系统有漏洞
rollback_segments = (r01, r02, r03, r04) // 记住去掉“#”
compatible = "8.0.5" //
根据选件内容,compatible可以是 8.1.0,8.1.5,
修改数据库方法:同样启动DBCA
[oracle@lin /ora] bin/dbas*