第一章 Oracle8i 系统管理 第一节 参数设置 1、 为LINUX设置Oracle环境变量 参数 说明 解说 EPC_DISABLED 功能: 取消Oracle跟踪 语法 true /false NLS_LANG 功能: 指明输出的语言字符集 语法 language_territory.characterset ORA_NLS33 功能: 指明语言、字符集的储存路径 语法 $ORACLE_HOME/ocommon/nls/admin/data
ORACLE_BASE 功能: 指明Oracle的基本路径 语法 directory_path 例子: /u1/oracle ORACLE_HOME 功能: 指明Oracle包含的软件目录 语法 directory_path 例子: $ORACLE_BASE/product/8.1.6 ORACLE_PATH 功能: 指明Oracle应用程序的搜索路径 语法 directory1:directory2:directory3 例子: /u01/oracle/adhoc/8.1.6/bin:. ORACLE_SID 功能: Oracle系统标志符 例子: ORCL ORACLE_TRACE 功能: 跟踪数据库安装的标志 值域 T/其他 ORAENV_ASK 功能: 控制是否提示ORACLE_SID和ORACLE_HOME 值域 NO/其它 SQLPATH 功能: 设置SQL*Plus搜索文件login.sql的路径 例子: /home:/home/oracle:/u01/oracle TNS_ADMIN 功能: 设置Net8的环境路径 例子: $ORACLE_HOME/network/admin TWO_TASK 功能: 设置在tnsnames.ora中定义Net8连接的缺省字符串 例子: PRODDB_TCP 2、 使用Oracle8I的LINUX环境变量 参数 说明 解说 CLASSPATH 功能: 使用Java功能 例子: JRE_Location,$ORACLE_HOME/product/jlib, $ORACLE_HOME/product/jlib. DISPLAY 功能: 使用X_工具 例子: hostname:display(单色为0)/135.287.222.12:0 HOME 功能: 用户的主目录 LANG or LANGUAGE 功能: 指明输出的语言字符集 LD_LIBRARY_PATH 功能 设置共享目标库 例子 /usr/dt/lib:$ORACLE_HOME/lib PATH 功能 设置可执行程序的路径,必须包括$ORACLE_HOME/bin. 例子 /bin:/usr/bin:/usr/local/bin: /usr/bin/X11:$ORACLE_HOME/bin:$HOME/bin:. SHELL 功能 说明所采用的命令编辑器 例子 /bin/sh TERM 功能 Oracle工具包和Linux工具及终端类型 例子 vt100 TMPDIR 功能 指明临时文件空间 例子 /u02/oracle/tmp XENVIRONMENT 功能 设置X-WINDOWS环境 3、 缺省的初始化参数 可以启动SQL*Plus执行SHOW PARAMETERS就可以查询系统参数。 参数 缺省值 值域 BACKGROUND_DUMP_DEST ?/rdbms/log 有效路径名
BITMAP_MERGE_AREA_SIZE 1048576 65536 - unlimited COMMIT_POINT_STRENGTH 1 0-255 CONTROL_FILES ?/dbs/cntrloracle_sid.dbf Valid file names CREATE_BITMAP_AREA_SIZE 8388608 65536 - unlimited DB_BLOCK_BUFFERS 48MB of buffers 50 - unlimited DB_BLOCK_SIZE 2048 2KB - 16KB DB_FILES 200 1 - 2000000 DB_FILE_DIRECT_IO_COUNT 64(maximum 1048576) 0 ? 1048576/block size DB_FILE_MULTIBLOCK_READ_COUNT 8 1 - min(DB_BLOCK_BUFFERS/4, 104 DISTRIBUTED_TRANSACTIONS 1/4 TRANSACTIONS 0 - unlimited HASH_AREA_SIZE 2*SORT_AREA_SIZE 0 - unlimited HASH_MULTIBLOCK_IO_COUNT 0 (self-tuned) 0 - min(127, DB_BLOCK_BUFFERS/4, JAVA_POOL_SIZE 20000000 between 1000000 and 1000000000 LOCK_SGA FALSE TRUE, FALSE LOG_ARCHIVE_DEST Valid directory names
LOG_ARCHIVE_FORMAT "%t_%s.dbf" Valid file names LOG_BUFFER max(512KB,128KB*CPU_COUNT) 66560 - unlimited LOG_CHECKPOINT_INTERVAL 0 0 - unlimited
MTS_LISTENER_ADDRESS ADDRESS=address MTS_MAX_DISPATCHERS 5 BetweenMTS_DISPATCHERS and PROCESSES MTS_MAX_SERVERS 2*MTS_SERVERS,if MTS_SERVERS> 20, else 20 between MTS_SERVERS and PROCESSES MTS_SERVERS 1,if MTS_DISPATCHERS is specified, else 0 between 1 and NLS_LANGUAGE AMERICAN Valid language names
NLS_TERRITORY AMERICA Valid territory names OBJECT_CACHE_MAX_SIZE_PERCENT 10 0 - unlimited OBJECT_CACHE_OPTIMAL_SIZE 100KB 10KB - unlimited OPEN_CURSORS 50 1 - unlimited OS_AUTHENT_PREFIX ops$ Arbitrary string
PROCESSES 30, if notPARALLEL_AUTOMATIC_TUNING 6 - unlimited SHARED_POOL_SIZE 64MB on 64-bit, 8MB on 32-bit 300,000 - unlimited SORT_AREA_SIZE 65536 0 - unlimited 4、 制定数据库的参数 参数 缺省值 最大值 MAXDATAFILES 30 65,534 MAXINSTANCES 1 63 MAXLOGFILES 16 255 MAXLOGMEMBERS 2 5 MAXLOGHISTORY 100 65,534 5、 管理专门的帐号及组 1)、Linux帐号: oracle :具有CREATE, STARTUP, SHUTDOWN, and CONNECT as INTERNAL权限。 root : 具有Linux最大权限。 2)、Oracle服务器帐号 SYS: Oracle8I标准DBA权限。是数据字典的所有基本表的用户。 SYSTEM:Oracle8I标准DBA权限 ,可以创建表和视图。 3)、特殊的Linux用户组: dba group :Oracle软件的拥有者,这一组的成员具有SQL*Plus的特殊权限功 能 oinstall:所有能在ORACLE_HOME下安装的用户必须属于这一组。 Oper: 这是可选的Linux用户组,所有成员具有OPERATOR权限。 Root: 只有ROOT用户才属于这一组。 6、 安全管理 1)、用户组与安全 l 在Oracle8I安装之前,必须创建具有特殊权限的数据库管理员Linux用户组。建议把 oinstall设置为Oracle8I的主要组,而DBA为次要组。使用Linux 的groupadd命令创建DBA组。 l 创建oinstall用户组,该组拥有oraInventory的安装而且可以安装和升级Oracle8I系统 l 虽然所有具有DBA权限可以属于DBA组,但是oracle帐号必须属于oinstall 2)、服务器管理命令安全 下列命令不要轻易授权给ORACLE和DBA组之外的任何用户组: STARTUP SHUTDOWN CONNECT INTERNAL 3)、数据文件的安全 安装Oracle8I的用户ID拥有Oracle文件,必须把这些文件设置成0600,而且该ID拥有包含 Oracle Universal Installer自动的设置oracle执行权限: -rwsr-s--x 1 oracle dba 443578 Mar 10 23:03 oracle 也可以用手动的方法设置: $ chmod 6751 $ORACLE_HOME/bin/oracle 4)、远程密码及安全 本地密码文件在$ORACLE_HOME/dbs目录下的一个包含用户名/密码信息的单一数据库。如 果在机器上有重复的$ORACLE_HOME和一些分散的密码文件,必须设置initsid.ora参数 l 运行orapwd orapwd命令存在于$ORACLE_HOME/bin目录,可以由oracle软件拥有者运行: $ orapwd file=filename password=password entries=max_users filename 文件名必须是orapwsid包括全路径 password INTERNAL和 SYS的初始化密码 max_users 连接SYSDBA 或 SYSOPER用户的最大数. 例如: $ orapwd file=/u01/app/oracle/product/8.1.6/dbs/orapwV816 password=V816pw entries=30 l 从远程PC机连接数据库 用户可以通过PC机按下列操作进行 SQL> connect internal/dba_password@alias as {sysdba|sysoper} l 远程认证 根据下列的initsid.ora参数可以控制远程登录的行为。 OS_AUTHENT_PREFIX 使用ops$帐号 REMOTE_OS_AUTHENT Enables/disables ops$帐号连接 REMOTE_OS_ROLES 远程连接时Enables/disables角色。 第二节 估计Oracle8I的内存使用 用以下公式估计内存使用量: + + n * ( + + <8192 bytes for the stack> + <2048 bytes for the processes user area>) (n为后台背景量) 对于C/S连接,可以用下列公式估计内存使用量, + + <8192 bytes for the stack> + <2048 bytes for processes user area> + 控制SGA 1、 计算SGA (DB_BLOCK_BUFFERS x DB_BLOCK_SIZE) + SORT_AREA_SIZE + SHARED_POOL_SIZE + LOG_BUFFER + JAVA_POOL_SIZE + LARGE_POOL_SIZE 2、 重新布置SGA A、 确定共享内存量 $ tstshm B、 检查tstshm输出的"Segment boundaries"确定虚拟地址的共享内存段 C、 进入$ORACLE_HOME/rdbms/lib目录执行genksms产生file ksms.s:文件: $ cd $ORACLE_HOME/rdbms/lib $ORACLE_HOME/bin/genksms -b sgabeg > ksms.s sgabeg 表示SGA开始地址 ,如果减少该值时会产生如下错误: ORA-4030: out of process memory when trying to allocate %s bytes (%s,%s) or ORA-7324: smpall: malloc error while allocating pga D、 关闭当前数据库 E、 在$ORACLE_HOME/rdbms/lib目录下使oracle可执行化 $ make -f ins_rdbms.mk ksms.o $ make -f ins_rdbms.mk ioracle 可以使用ioracle进行: l backs up the old executable (oracle0)
l assigns the correct privileges to the new oracle executable l moves the new executable into the $ORACLE_HOME/bin directory 第三节 建立和运行范例 1、SQL*Loader范例 SQL*Loader范例的要求: l 用户scott/tiger必须有CONNECT 和RESOURCE 角色 l 表EMP 和 DEPT存在并且清空 第四节 使网络从新连接 当系统升级或改变操作系统路径时必须重新连接网络: $ relink parameter 参数值 内容 all 已经安装的所有部件 client net_client, otrace, plsql, client_sharedlib interMedia ctx, ordimg, ordaud, ordvir, md network net_client, net_server, nau, cman, cnames oemagent oemagent, odg oracle Oracle database executable only precomp 所有已经安装的预编译程序 utilities 应用 第二章 调整Oracle8i 第一节 、调整的重要性 Oracle8I是一个高度优化的软件产品,不断的调整可以使系统执行优化、减少数据瓶颈。 1、 Linux工具 l Vmstat 该命令可以汇报Linux的进程、虚拟内存、内存分页、I/O块、阀值以及CPU活动。下面例 vmstat 1 8 l Free 该命令汇报交换区使用状态。 2、 SQL脚本 SQL 脚本utlbstat 和 utlestat可以检测数据库执行并调整SGA的数据结构。这些脚本存 第二节 、调整内存管理 1、 分配足够的交换空间 在Linux(ROOT用户)状态下用下面显示交换区使用情况: swapon -s 或 vmstat 用swapon ?s确定已经使用多少空间,用swapon ?a 增加系统交换空间。 2、 控制分页 用vmstat检测分页 3、 把SGA保留在单共享内存段 如果没有足够的内存,就不能运行数据库。可以从新编译Linux内核以增加共享内存。 第三节 、调整磁盘I/O 1、 调整数据库写入器和写入带宽 Oracle提供解决防止DBWR阻塞的方案: l 使用异步I/O l 使用I/O处理 1)、I/O处理 I/O处理专门用于处理I/O操作的进程, Table 2-1 Initialization Parameters for I/O Slaves 参数 范围 缺省值 DISK_ASYNCH_IO TRUE/FALSE TRUE TAPE_ASYNCH_IO TRUE/FALSE TRUE BACKUP_TAPE_IO_SLAVES TRUE/FALSE FALSE
DBWR_IO_SLAVES 0 - 999 0 DB_WRITER_PROCESSES 1-10 1 DISK_ASYNCH_IO 和 TAPE_ASYNCH_IO允许磁盘和磁带设备进行异步I/O转换。 当DISK_ASYNCH_IO或TAPE_ASYNCH_IO被设置为无效时,DBWR_IO_SLAVES必须大于0。否则 DBWR_IO_SLAVES的优化值是4 DB_WRITER_PROCESSES表示在实例中数据库写入器中的初始化数量,当使用 DBWR_IO_SLAVES时,则不管DB_WRITER_PROCESSES被设置多大,仅有一个写入器进程有效。 2)、选择适当的文件系统类型 A、 .ext :Linux扩展文件系统 B、 .ext2 :Linux第二扩展文件系统 第四节 、检测磁盘运行 第三章 管理SQL*Plus 第四章 使用Oracle预编译器和OCI 第一节、前言 Oracle预编辑器是结合数据库的SQL语言和高级语言的应用设计工具。 1、 预编译器环境文件 Product Configuration File Object Type Translator 8.1.6 ottcfg.cfg Pro*C/C++ 8.1.6 pcscfg.cfg 2、Pro*C/C++ 为了获得更为详细的资料,参考:$ORACLE_HOME/precomp/doc/proc2/readme.doc. 1)、管理Pro*C/C++ A、系统配置文件: $ORACLE_HOME/precomp/admin/pcscfg.cfg. 1)、使用Pro*C/C++ A、 范例程序 ORACLE提供三种范例程序:C/C++和面向对象程序: $ORACLE_HOME/precomp/demo/proc $ORACLE_HOME/sqlplus/demo/demobld.sql 使用makefile, $ORACLE_HOME/precomp/demo/proc/demo_proc.mk创建范例程序,例如: $ make -f demo_proc.mk sample1 B、 也可以使用下面命令达到相同效果: $ make -f demo_proc.mk build OBJS=sample1.o EXE=sample1 通过缺省值,所有程序将动态的连接到客户共享库。 $ORACLE_HOME/lib/libclntsh.so C、 为了让Pro*C/C++能够创建所有C范例程序,输入下面命令: $ make -f demo_proc.mk samples D、 为了让Pro*C/C++能够创建所有C++范例程序,输入下面命令: $ make -f demo_proc.mk cppsamples E、 为了让Pro*C/C++能够创建所有面向对象的范例程序,输入下面命令: $ make -f demo_proc.mk object_samples 有些范例程序要求从$ORACLE_HOME/precomp/demo/sql.运行SQL脚本。必须在命令行上加 $ make -f demo_proc.mk object_samples RUNSQL=run 2)、用户程序 makefile, $ORACLE_HOME/precomp/demo/proc/demo_proc.mk,也可以创建用户程序: $ make -f demo_proc.mk target OBJS="objfile1 objfile2 ..." EXE=exename 例如:为了从Pro*C/C++ 原程序myprog.pc 创建程序, myprog , 按照下面某个命令执行 A、对于C原程序,动态连接客户段共享库: $ make -f demo_proc.mk build OBJS=myprog.o EXE=myprog B、对于C原程序,静态连接: $ make -f demo_proc.mk build_static OBJS=myprog.o EXE=myprog C、对于C++原程序,动态连接客户段共享库: $ make -f demo_proc.mk cppbuild OBJS=myprog.o EXE=myprog C, 对于C++原程序,静态连接 $ make -f demo_proc.mk cppbuild_static OBJS=myprog.o EXE=myprog 第二节、OCI 一、范例程序 有两种OCI范例程序:C/C++,他们都存在于:$ORACLE_HOME/rdbms/demo目录下。这些都 是由SCOTT/TIGER用户的脚本程序$ORACLE_HOME/sqlplus/demo/demobld.sql创建。 1、 利用makefile,$ORACLE_HOME/rdbms/demo/demo_rdbms.mk创建范例程序,例如: $ make -f demo_rdbms.mk cdemo1 2、 可以用下面命令运行同样效果: $ make -f demo_rdbms.mk build OBJS=cdemo1.o EXE=cdemo1 3、 所有缺省情况下的程序都自动的连接到共享库: $ORACLE_HOME/lib/libclntsh.so. 4、 按下面命令可以创建所有的C语言OCI程序 $ make -f demo_rdbms.mk demos 5、 按下面命令可以创建所有的C++语言OCI程序 $ make -f demo_rdbms.mk c++demos 二、用户程序 利用makefile, $ORACLE_HOME/rdbms/demo/demo_rdbms.mk可以创建用户程序 例如:$ make -f demo_rdbms.mk target OBJS="objfile1 objfile2 ..." EXE=exename 1、 对于C语言,动态连接客户端共享库 $ make -f demo_rdbms.mk build OBJS=myprog.o EXE=myprog 2、对于C语言,静态连接: $ make -f demo_rdbms.mk build_static OBJS=myprog.o EXE=myprog 3、对于C++语言,动态连接客户端共享库 $ make -f demo_rdbms.mk buildc++ OBJS=myprog.o EXE=myprog 4、对于C++语言,静态连接: $ make -f demo_rdbms.mk buildc++_static OBJS=myprog.o EXE=myprog 二、Oracle预编译器及OCI连结编译文件 1、自定义编译 建议在使用demo_product.mk makefiles创建用户程序时,必须按下面步骤修改makefile l 不要修改Oracle的库顺序 2、不明确的符号 Oracle提供帮助工具symfind来确定符号是否已经定义,例如: $ symfind sqlcex SymFind - Find Symbol in <**>.a, .o, .so ------------------------------------------------------ Command: /u01/app/oracle/product/8.1.6/bin/symfind sqlcex Local Directory: /u01/app/oracle/product/8.1.6 Output File: (none) Note: I do not traverse symbolic links Use '-v' option to show any symbolic links Locating Archive and Object files ... 000003c4 T sqlcex ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ./lib/libsql8.a 00119354 T sqlcex ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ./lib/libclntsh.80 3、支持线程 Oracle提供多线程连接库: 二、Oracle静态及动态连接库 Set LD_LIBRARY_PATH as follows: $ setenv LD_LIBRARY_PATH $ORACLE_HOME/lib 二、Oracle的信号处理 Table 4-2 Signals for Two-Task Communications SIGCONT 利用two-task驱动管道处理用户进程到oracle进程的异常中断事件 SIGINT 利用two-task驱动管道中断请求,他仅有用户进程引发,与oracle进程无关 SIGPIPE 用管道驱动检测通信间的文件结束,又用户进程和oracle进程共同引发 SIGCLD 与SIGPIPE相似,但仅作用于用户进程, SIGTERM 由用户到oracle之间的中断管道处理,但用户按[Ctrl]+[c]时发生,仅由 SIGIO 由Net8协议指出网络事件来源 SIGURG 通过Net8 TCP/IP 驱动从客户进程到oracle进程发送out-of-band中断。 信号处理例子 /* user side interrupt set */ word osnsui( /*_ word *handlp, void (*astp), char * ctx, _*/) /* ** osnsui: Operating System dependent Network Set **User-side ** Interrupt. Add an interrupt handling procedure **astp. ** Whenever a user interrupt(such as a ^C) occurs, **call astp ** with argument ctx. Put in *handlp handle for this **handler so that it may be cleared with osncui. ** Note that there may be many handlers; each should ** be cleared using osncui. An error code is
**returned if an error occurs. */ /* user side interrupt clear */ word osncui( /*_ word handle _*/ ); /* ** osncui: Operating System dependent Clear User-side **Interrupt. ** Clear the specified handler. The argument is the **handle obtained from osnsui. An error code is ** returned if an error occurs. */ The following is a template for using osnsui() and osncui() in an application /* ** My own user interrupt handler. */ void sig_handler() { ... } main(argc, argv) int arc; char **argv; { int handle, err; ... /* set up my user interrupt handler */ if (err = osnsui(&handle, sig_handler, (char *) 0)) { /* if the return value is non-zero, an error has occurred Do something appropriate here. */
... } ... /* clear my interrupt handler */ if (err = osncui(handle)) { /* if the return value is non-zero, an error has occurred Do something appropriate here. */
... } ... } 第四章 Net8配置 第一节、前言 参考帮助文档: Product README File Net8 $ORACLE_HOME/network/doc/README.Net8
Advanced Security Option $ORACLE_HOME/network/doc/README.ASO Oracle Intelligent Agent $ORACLE_HOME/network/doc/README.oemagent 第二节、Net8的核心及特性 一、 Net8文件及应用 1、Net8文件的位置 在Linux缺省位置为:/etc Net8按下列顺序查询: A、TNS_ADMIN指定的位置 B、 /etc C、$ORACLE_HOME/network/admin 在安装文件时利用TNS_ADMIN指定Net8位置 例如: 在C shell: % setenv TNS_ADMIN directory_name 在Bourne或Korn shell: $ TNS_ADMIN=directory_path $ export TNS_ADMIN 2、样本配置文件 cman.ora, listner.ora, names.ora, sqlnet.ora, and tnsnames.ora等配置在 二、 配适器(adapters)应用 Net8提供多种网络协议和命名方法, 1、为了显示Net8协议,输入命令: $ adapters 2、为了显示可执行的配适器,输入下列命令: $ adapters executable 例如: 显示带Net8协议的oracle执行过程: $ adapters oracle 三、 Oracle的连接管理 1、多线程服务器 2、Oracle命名 3、Net8辅助配置 第二节、Net8协议支持 地址说明: 在initsid.ora文件中,MTS_LISTENER_ADDRESS的数据库初始化参数为Net8设置了IPC 和 Table 5-2 ADDRESS Specification Summary Supported Protocol ADDRESS Specification BEQ (ADDRESS = (PROTOCOL = BEQ)(PROGRAM = ORACLE_HOME/bin/oracle)(ARGV0 = oracleORACLE_SID)(ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL =BEQ)))')(ENVS = 'ORACLE_HOME=ORACLE_HOME,ORACLE_SID=ORACLE_SID')) IPC (ADDRESS = (PROTOCOL=IPC)(KEY=key))
RAW N/A 一、BEQ协议 BEQ协议只能当客户机和服务器在相同的机器的情况下使用: 1、指定BEQ协议地址: (ADDRESS = (PROTOCOL = BEQ) (PROGRAM = ORACLE_HOME/bin/oracle) (ARGV0 = oracleORACLE_SID) (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))') (ENVS = 'ORACLE_HOME=ORACLE_HOME,ORACLE_SID=ORACLE_SID') ) Table 5-3 Syntax for BEQ Protocol Connection Parameters PROTOCOL 说明协议类型,值为BEQ,大小写不影响 PROGRAM Oracle执行的全路径 ARGV0 在ps清单的进程名. 建议值为oracleORACLE_SID. ARGS '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))' ENVS ORACLE的环境变量 Example 5-1 BEQ ADDRESS Specifying a Client (ADDRESS = (PROTOCOL = BEQ) (PROGRAM = /u01/app/oracle/product/8.1.6/bin/oracle) (ARGV0 = oracleV816) (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))') (ENVS = 'ORACLE_HOME=/u01/app/oracle/product/8.1.6,ORACLE_SID=V816') ) 二、IPC协议 IPC协议与BEQ协议类似,只能当客户机和服务器在相同的机器的情况下使用,不同的是: IPC可以检测服务器的多线程环境。 1、 指定IPC地址 (ADDRESS= (PROTOCOL=IPC) (KEY=key) ) Table 5-4 Syntax for IPC Protocol Connection Parameters PROTOCOL 说明协议类型,值为IPC,大小写不影响 KEY 数据库服务器的标志符 (ORACLE_SID). Example 5-2 IPC ADDRESS Specifying a Client
(ADDRESS= (PROTOCOL=IPC) (KEY=PROD) ) 三、RAW协议 TCP/IP协议 Oracle公司建议在/etc/services 文件中为每个接点保存一个端口,通常为1521, 如: listener 1521/tcp 它定义在listener.ora文件中。 1、指定TCP/IP协议地址 (ADDRESS= (PROTOCOL=TCP) (HOST=hostname) (PORT=port_id) ) Table 5-5 Syntax for TCP/IP Protocol Connection Parameters PROTOCOL 说明协议类型,值为TPC,大小写不影响 HOST 主机名或IP地址 PORT TCP/IP 端口,数据或/etc/services中指定名,建议值为1521. Example 5-3 TCP/IP ADDRESS Specifying a Client
(ADDRESS= (PROTOCOL=TCP) (HOST=MADRID) (PORT=1521) ) 第五章 运行Oracle数据选项 第一节、Oracle8i interMedia Oracle8i interMedia包括下面组件: l Text l Audio, Video, and Image l Locator l Web 代理 一、 Text 连接: $ORACLE_HOME/ctx/sample/api/index.html 二、Audio, Video, and Image 样本程序在下列目录: $ORACLE_HOME/ord/aud/demo/ $ORACLE_HOME/ord/img/demo/ $ORACLE_HOME/ord/vid/demo/ 1、Audio样本脚本 l auddemo.sql:audio范例,包括下面对象: A、 检查interMedia对象 B、 为audio文件创建样本表 C、 在audio插入NULL行 D、 检查行界限 E、 直接检查所有audio属性 F、 检查所有audio的调用属性 G、 使用文件fplugins.sql 和fpluginb.sql,安装内置格式 l fplugins.sql l fpluginb.sql 参考$ORACLE_HOME/ord/aud/demo下的README.txt文件 二、 修改和测试Images的样本程序 interMedia Image演示文件在$ORACLE_HOME/ord/img/demo目录下: l 演示范例的安装步骤: 1、Oracle8i interMedia Image使用SCOTT/TIGER数据库用户,如果没有,必须按下列创 % svrmgrl SVRMGRL> connect internal; SVRMGRL> create user SCOTT identified by tiger; SVRMGRL> grant connect,resource to SCOTT; l 创建image演示路径: % svrmgrl SVRMGRL> connect internal; SVRMGRL> create or replace directory imgdemodir as `$ORACLE_HOME/ord/img/ demo'; l 把目录权限授予PUBLIC SVRMGRL> grant read on directory imgdemodir to public with grant option; l 如果需要创建imgdemo程序 % cd $ORACLE_HOME/ord/img/demo % make -f demo_ordimg.mk imgdemo 运行演示范例 Example 6-1 Execute the Demo from the Command Line $ imgdemo optional-image-filename Dropping table IMGDEMOTAB... Creating and populating table IMGDEMOTAB... Loading data into cartridge... Modifying image characteristics... Writing image to file imgdemo.out... Disconnecting from database... Logged off and detached from server. Demo completed successfully. 2、 Video样本脚本 l viddemo.sql l fplugins.sql l fpluginb.sql JAVE 样本 3、 Locator 该演示范例存在于$ORACLE_HOME/md/demo/geocoder目录下: geohttp.sql geoindex.sql geolocate.sql 4、 Web Agent 5、 Oracle8i时间序列演示: Description Directory Quick-start demo: quick and easy start using Oracle8i Time Series (See Chapter 1 in Oracle8i Time Series User's Guide.) demo/tsquick Usage demo for end users and product developers who want to use existing Oracle8i Time Series features (See Chapter 1 in Oracle8i Time Series User's Electric utility application demonstrating how to compute peak and off-peak summaries of 15-minute data demo/usageutl Java-based retrieval of time series data, using the prototype Oracle8i Time Series Java API and designed to run in a Web browser (See Chapter 1 in Oracle8i Time Series User's Guide.) demo/applet Simple Java code segments that perform time series operations and print the results (See Chapter 1 in Oracle8i Time Series User's Guide.) demo/java Demo showing the use of administrative tools procedures to "retrofit" existing time series detail tables; also, how to support time series queries for multiple qualifier columns in the time series detail table. demo/retrofit Advanced-developer demo for those who want to extend Oracle8i Time Series OCI demo showing how to call Oracle8i Time Series functions using the Oracle PRO*C/C++ demo showing how to call Oracle8i Time Series functions in applications created using the Oracle Pro*C/C++ Precompiler demo/proc Oracle Developer demo showing how to call Oracle8i Time Series functions in 第六章 优化Oracle结构(OFA) Oracle公司建议在安装及配置NET8前先优化结构。 一、OFA的数据库特征: 1、文件系统结构: A、 向数据库增加数据 B、 增加用户 C、 创建数据库 D、 增加硬件 2、 平衡I/O负担 3、 硬件支持 4、 驱动失效的安全保护 5、 登录Home路径的完整性 6、 Linux目录的独立性 7、 支持当前应用软件的执行 8、 辨别每个数据库的管理信息 9、 使用一致的数据库文件名 A、 数据库文件能够易于与其他文件区别 B、 不同数据库文件之间容易区别 C、 控制文件、重做日记文件、数据文件有各自的标志 D、 必须指明数据文件与表空间之间的连接 10、 表空间之间的内容必须各字分开 A、 最小化表空间的闲置空间百分比 B、 最小化I/O请求 C、 最大化管理柔性 11、 协调所有I/O驱动的负载 12、 OFA在平行服务器上的优点 A、 管理数据储存在中心位置,以便管理所有数据库 B、 一个实例的管理数据通过文件名与实例相连 二、在Linux上OFA的执行 1、装载点 A、 创建装载点:Oracle8i要求至少两个装载点,一个给软件,一个给数据库,如果 执行OFA,要求至少四个,一个给软件,三个给数据库。 B、 装载点的表达式为:/u01 ,/u01 等 C、 为巨型数据库(VLDBs)命名装载点,表达式:/q/dm q Oracle数据储存的地方 dm 初始化参数DB_NAME的值 例如:/u01/oradata/test 2、 命名目录 A、 Home路径表示法 pm 装载点名 h 标准路径名 u 目录拥有者的名称 例如:, /u01/app/oracle, 通常采用/*/app/*.格式 B、 参考路径名 l 软件目录: 目录模式 /pm/h/product/v, h 标准路径名 v 软件版本 例如: export ORACLE_HOME=/u01/app/oracle/product/8.1.6 3、 命名文件 A、管理文件 为了方便组织管理数据,建议根据h/admin/d/a/方法储存数据库指定的管理文件的子目录 adhoc ad hoc SQL scripts for a given database adump audit files(Set AUDIT_FILE_DEST in configdb_name.ora to point here. arch archived redo log files bdump background process trace files cdump core dump files create programs used to create the database exp database export files logbook files recording the status and history of the database pfile instance parameter files udump user SQL trace files 例如:, /u01/app/oracle/admin/sab/adhoc/ C、 数据文件 l 控制文件 ,用 /pm/q/d/control.ctl l 重做日记文件 , 用/pm/q/d/redon.log l 用户数据文件,用/pm/q/d/tn.dbf Table A-5 Syntax for Naming Database Files pm a mount point name described earlier in this chapter q a string distinguishing Oracle data from all other files (usually named d The DB_NAME of the database t An Oracle tablespace name n a two-digit string D、 根据不同的需要分解数据段 Table A-6 Special Tablespace SYSTEM data dictionary segments TEMP temporary segments RBS rollback segments USERS miscellaneous user segments INDX index associated with data in USERS tablespace OEM_REPOSITORY repository for Oracle Enterprise Manager DRSYS Oracle interMedia segment 4、 命名表空间 虽然ORACLE8i可以允许用长达30个字符长度来命名表空间,但建议用标准的数据库文件名 注解:不要在数据文件名中包含“tablespace“ 5、在Oracle文件中使用OFA结构 Table A-7 Directory Structure Syntax for Identifying Classes of Files /u[0-9][0-9] user data directories /*/home/* user home directories /*/app/* user application software directories /*/app/applmgr Oracle apps software subtrees /*/app/oracle/product Oracle Server software subtrees /*/app/oracle/product/8.1.6 Oracle Server 8.1.6 distribution files /*/app/oracle/admin/sab sab database administrative subtrees /*/app/oracle/admin/sab/arch/* sab database archived log files /*/oradata Oracle data directories /*/oradata/sab/* sab database files /*/oradata/sab/*.log sab database redo log files 6、OFA文件地图 / root mount point u01/ 'Oracle software' mount point #1 app/ subtree for app software
oracle/ home for oracle software owner admin/ subtree for database admin files TAR/ subtree for Support logs
db_name1/ admin subtree for db_name1 database bdump/ background_dump_dest
cdump/ core_dump_dest udump/ user_dump_dest create/ database creation SQL scripts pfile/ database init parameter file db_name2/ admin subtree for db_name2 database doc/ online documentation local/ subtree for local Oracle software aps6/ an Oracle6 admin package
aps7/ an Oracle7 admin package product/ distribution files 8.0.5/ ORACLE_HOME for 8.0.5 instances 8.1.6/ ORACLE_HOME for 8.1.6 instances oraInventory subtree for Oracle8i inventory logs installation log files home subtree for login home directories ltb/ home for a user sbm/ home for a user u02/ 'user data' mount point #2 home/ subtree for login home directories cvm/ home for a user vrm home for a user oradata/ subtree for Oracle data db_name1/ subtree for db_name1 database files db_name2/ subtree for db_name2 database files u03/ 'user data' mount point #3 oradata/ subtree for Oracle data db_name1/ subtree for db_name1 database files db_name2/ subtree for db_name2 database files u04/ 'user data' mount point #4
oradata/ subtree for Oracle data db_name1/ subtree for db_name1 database files db_name2/ subtree for db_name2 database files /var opt/ /etc location of oratab and oraInst.loc /usr local/ bin/ oraenv/coraenv/dbhome scripts 6、 多实例的OFA数据库文件地图 u01/ app/oracle/admin/sab/ administrative directory for sab database adhoc/ directory for miscellaneous scripts arch/ log archive dest for all instances redo001.arc archived redo log file
bdump/ directory for background dump files inst1/ background dump dest for inst1 instance inst2/ background dump dest for inst2 instance cdump/ directory for core dump files inst1/ core dump dest for inst1 instance inst2/ core dump dest for inst2 instance create/ directory for creation scripts 1-rdbms.sql SQL script to create inst database exp/ directory for exports 19990120full.dmp January 20, 1999 full export dump file export/ directory for export parfiles import/ directory for import parfiles logbook/ directory for inst logbook entries inst1/ directory for inst1 instance reports params.lst v$parameter report for inst1 instance inst2/ directory for inst2 instance reports params.lst v$parameter report for inst2 instance user.lst dba_users report pfile/ directory for instance parameter files inst1/ directory for inst1 instance parameters init instance parameters for inst1 instance inst2/ directory for inst2 instance parameters init instance parameters for inst2 instance udump/ directory for user dump files inst1/ user dump dest for inst1 instance inst2/ user dump dest for inst2 instance 8 、目录结构 l ORACLE_BASE目录 admin administrative files doc online documentation local subtree for local Oracle software product Oracle software l ORACLE_HOME目录 Table A-11 ORACLE_HOME Directory Structure and Content assistants configuration Assistants bin binaries for all products ctx interMedia Text options dbs initsid.ora, lksid install install related files lib Oracle product libraries javavm Java Virtual Machine jdbc JDBC drivers jlib Java classes md Spatial options mlx Xerox Stemmer (for interMedia Text options) network Net8 nlsrtl NLS runtime loadable data ocommon common files for all products odg data gatherer opsm Parallel Server Manager Components oracore core libraries orb Object Request Broker ord data options otrace Oracle TRACE plsql PL/SQL precomp precompilers rdbms server files and libraries required for the database slax SLAX parser sqlplus SQL*Plus svrmgr Server Manager sysman System Management
|