8.2.3 事务 55
8.2.4 标准SQL语句 55
8.2.5 动态SQL语句 55
8.2.6 数组操作 56
8.3 编程框架 58
8.3.1 总体原则 58
8.3.2 单线程和多线程 59
8.3.3 开发工具 60
9 OCI-Oracle Call Interface 61
9.1 连接和断开 61
9.1.1 句柄层次 61
9.1.2 连接流程 61
9.1.3 断开流程 62
9.2 SQL语句 62
9.2.1 事务 62
9.2.2 无结果集的sql语句 63
9.2.3 有结果集的sql语句 63
9.2.4 LOB 65
9.3 编程框架 67
9.3.1 总体原则 67
9.3.2 sql语句 68
9.3.3 函数 69
10 附录-MYSQL 72
10.1 安装配置 72
10.2 管理 72
10.2.1 初始调整 72
10.2.2 建立用户对象 73
10.3 开发 73
10.3.1 连接和断开 73
10.3.2 无结果集的sql语句 74
10.3.3 有结果集的sql 74
10.3.4 错误处理 75
1 安装
所有参见内容都在附件01_install_02_create_03_init/下。
1.1 通用设置
文件系统swap
创建文件系统时应考虑Oracle对swap的需要,大约每个oracle服务进程将占用10-20Mswap空间,通常操作系统建议2倍于内存的swap空间,数据库系统可能要求更多些。
操作系统用户和环境变量
Oracle 文档要求为数据库系统的管理和使用建立3个或更多的组,但这个需求是可以忽略的,实践中并没有体现其必要性。为简化操作起见,只建立dba组,即拥有更新软件和管理最高权限(SYSDBA)的操作系统用户组,此组称为OSDBA,属于此组的用户可以SYSDBA身份登录进任何一个数据库实例,简单的,只建立一个用户,习惯上使用oracle的名称。
$ groupadd dba
$ useradd -g dba -d /home/oracle -m -s /bin/bash oracle
确定oracle 系统的根目录ORACLE_BASE,如/opt/oracle,所有的软件和配置都在这个目录下展开,虽然并非一定需要如此,但这是一个良好的习惯。同时确定软件安装的起始点ORACLE_HOME,通常在ORACLE_BASE下。
修改oracle用户的.profile,加入以下各行,或者修改/etc/profile,使每一个用户都获得环境变量设置
umask 022
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/product/{版本号}(如8.0.5,8.1.7,9.2.0等)
ORACLE_SID=oradb
ORACLE_TERM=ansi #仅与Oracle8字符界面安装有关
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data #字符集支持
NLS_LANG=American_America.{ZHS16CGB231280(Oracle8支持)|ZHS16GBK(Oracle8i支持)|ZHS16GB18030(Oracle9i支持)}
NLS_DATE_FORMAT=YYYYMMDDHH24MISS
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH #动态连接路径,Unixware中要确保/usr/ucb/lib在/usr/ccs/lib之后出现
TMPDIR=/tmp #安装中Oracle会在此目录下存储相当数量的文件,所以TMPDIR所在的磁盘分区要确保空闲空间的大小,至少在1G左右
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_TERM ORA_NLS33 NLS_LANG NLS_DATE_FORMAT LD_LIBRARY_PATH TMPDIR
参见profile。
注意:
NLS_LANG=American_America.ZHS16CGB231280(ZHS16GBK)
"American"指显示信息时所用的语言,窃以为凭大家的英语水平足够应付,如改为SIMPLIFIED CHINESE,在不带中文支持的终端上就没人能看懂了。
"America"指地区
"ZHS16CGB231280"指Client工具使用的字符集,一般使用"ZHS16CGB231280",Oracle8i已支持到"ZHS16GBK"
NLS_DATE_FORMAT=YYYYMMDDHH24MISS
Oracle的date类型过于灵活,为统一时间格式,利于编程,应将时间的输入输出格式限定为14位字符串,如"20000101235959"
据oracle文档,此参数可按照session,操作系统用户环境,init.ora由高到低的优先级顺序设置,依次覆盖。
相关系统表:
v$nls_parameters v$nls_valid_values
X-Window
Oracle 8的安装程序是光盘mount点/bin/orainst,使用字符界面,不用考虑X-Window。
Oracle 8i和9i使用光盘mount点/runInstaller进行安装,它是用Java编写的图形界面,对中文处理有问题,所以应在进入X-Window前确保语言(LANG)和地域(LC_ALL,LC_TYPE,…)环境变量不是中文。
LANG=C
LC_ALL=C
安装选项
Oracle 8i的主要软件包在安装选项Enterprise中,但并不包括proc,必须进行第二次安装,可选择安装选项Client中的programmer。
Oracle 9i 的主要软件包在安装选项Enterprise安装选项中,但并不包括proc,必须进行第二次安装,一定要选择安装选项Client中的 Administrator。runInstaller的稳定性欠佳,建议每次安装结束后,先退出,再进行下一次安装。
1.2 UnixWare7
1.2.1 Oracle 8
确认操作系统的交换分区swap不少于350M
认为该打的补丁统统打上,宁滥毋缺。UnixWare7.0.1必须打的补丁为ptf7033,ptf7051,ptf7052,ptf7068,ptf7096。
将/etc/default/login中的ulimit设为大于2113674(稍大一点即可,太大会有问题)
将/etc/conf/node.d/async中的600改为666
修改以下核心参数
核心参数 必需值 解释
SHMMAX 2147483647 共享内存段最大尺寸
SHMMNI 100 系统共享内存段标识最大数目
SHMSEG 15 每个进程所能使用最大共享内存段数目
SEMMNI 100 核心信号量标识最大数目
SEMMSL 150 每个信号量标识包含的信号量个数
SCORLIM 0X7FFFFFFF Core文件最大尺寸
HCORLIM 0X7FFFFFFF
SDATLIM 0X7FFFFFFF 进程堆最大尺寸
HDATLIM 0X7FFFFFFF
SVMMLIM 0X7FFFFFFF 进程最大映射地址
HVMMLIM 0X7FFFFFFF
SFSZLIM 0X7FFFFFFF 进程文件最大偏移量
HFSZLIM 0X7FFFFFFF
SFNOLIM 128 进程能打开的最大文件个数
HFNOLIM 2048
NPROC 20+(8*MAXUSERS) MAX:125000
ARG_MAX 1,048,576
NPBUF 100 I/O缓冲区数目
MAXUP 1000 用户同时使用的最大进程个数
STRTHRESH 0X500000 流能使用的最大字节数
为优化应用系统修改以下核心参数
核心参数 参考值 解释
MSGMAX 8192 消息最大尺寸
MSGMNB 81920 消息队列尺寸
MSGMNI 2048 系统能并存的最大消息队列数目
MSGSSZ 16384
MSGTQL 4096 系统能并用的消息头数目
SEMMNI 1024
SEMMSL 150
也可通过编辑/etc/conf/cf.d/stune达到同样效果
重新连接内核,重起或运行/etc/conf/bin/idbuild -B
修改核心参数SEMMAP时,注意要同时修改/etc/conf/mtune.d/ipc中相应的MAX值
建立/var/opt/oracle,使oracle成为此目录属主
mount oracle光盘,通常mount目录为/SD-CDROM_1
root用户,ORACLE_OWNER=oracle,执行光盘上orainst中oratab.sh,建立/var/opt/oracle/oratab
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8227599/viewspace-933013/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8227599/viewspace-933013/