怎样安装Oracle9iforHP-UX双机
发表于:2007-07-04来源:作者:点击数:
标签:
系统 需求 : -》内存 最小256MB。 使用以下命令确认系统内存容量: #/usr/sbin/demesg | grep “Physical:” -》交换空间 两倍于物理内存 以下命令确认交换空间容量: # /usr/sbin/swapinfo –a (需要root权限) -》磁盘容量 数据库软件需要2.5GB,种子
系统
需求:
-》内存
最小256MB。
使用以下命令确认系统内存容量:
#/usr/sbin/demesg | grep “Physical:”
-》交换空间
两倍于物理内存
以下命令确认交换空间容量:
# /usr/sbin/swapinfo –a (需要root权限)
-》磁盘容量
数据库软件需要2.5GB,种子数据库需要额外的1GB
-》临时硬盘空间
在/tmp 目录下需要最小400MB。如果在/tmp 目录下没有400MB 以上的空间,在另一个文件系统下建立一个/tmp目录,然后设置环境变量TEMP(由Oracle使用)和TMPDIR(由操作系统程序使用)使其指向这个位置。具体如下:
$ mkdir /u03/tmp
$TEMP=/u03/tmp ; export TEMP
$TMPDIR=/u03/tmp ; export TMPDIR
-》操作系统
HP-UX 版本11.0。
利用以下命令获取当前操作系统信息:
$ uname –a
-》操作系统补丁(详细补丁要求,看oracle 的install guide)
使用以下命令确认系统上安装了哪些系统补丁:
$ /usr/sbin/swlist -l patch
使用以下命令确认系统上是否安装了特定的系统补丁:
$ /usr/sbin/swlist -l patch patch_number
使用以下命令确认系统上安装了哪些系统补丁包:
$ /usr/sbin/swlist -l bundle
-》JDK
JDK1.2.2.07以上
预安装工作:
-》确认Shell的文件大小限制
Oracle9i 缺省支持超过2GB 的文件。但是您的操作系统shell可能会强行进行文件大小限制。
使用以下命令确认您的shell是否强行进行文件大小限制:
$ ulimit –f
将文件(块)的值乘以512 可以得到shell 的最大文件大小限制(以byte 为单位)。例如:如果文件(块)设置为2097148,可以访问的最大文件大小则为1GB。
-》更改内核参数
使用SAM配置HP 内核。
使用ipcs命令获得关于系统当前共享内存和信号量的值的列表,以及它们的ID号与所有者。
下表中的参数是运行带有一个数据库实例的Oracle9i所要求的最小值。
内核参数设置目的
KSI_ALLOC_MAX (NPROC * 8)
Defines the system wide limit of queued signal that can be allocated.
MAXDSIZ 1073741824 bytes
Refers to the maximum data segment size for 32-bit systems. Setting this value
too low may cause the processes to run out of memory.
MAXDSIZ_64 2147483648 bytes
Refers to the maximum data segment size for 64-bit systems. Setting this value
too low may cause the processes to run out of memory.
MAXSSIZ 134217728 bytes
Defines the maximum stack segment size in bytes for 32-bit systems.)
MAXSSIZ_64BIT 1073741824
Defines the maximum stack segment size in bytes for 64-bit systems.
MAXSWAPCHUNKS (available memory)/2
Defines the maximum number of swap chunks where SWCHUNK is the swap
chunk size (1 KB blocks). SWCHUNK is 2048 by default.
MAXUPRC (NPROC + 2)
Defines maximum number of user processes.
MSGMAP (NPROC + 2)
Defines the maximum number of message map entries.
MSGMNI NPROC
Defines the number of message queue identifiers.
MSGSEG (NPROC * 4)
Defines the number of message headers.
MSGTQL NPROC
Defines the maximum number of pending timeouts
NCALLOUT (NPROC + 16)
Defines the maximum number of pending timeouts.
NCSIZE ((8 * NPROC +2048)+VX_NCSIZE)
Defines the Directory Name Lookup Cache (DNLC) space needed for inodes.
VX_NCSIZE is by default 1024.
NFILE (15 * NPROC+2048)
Defines the maximum number of open files.
NFLOCKS NPROC
Defines the maximum number of files locks available on the system.
NINODE (8 * NPROC + 2048)
Defines the maximum number of file locks.
NKTHREAD (((NPROC * 7) / 4)+16)
Defines the maximum number of kernel threads supported by the system.
NPROC 4096
Defines the maximum number of processes.
SEMMAP ((NPROC * 2) + 2)
Defines the maximum number of semaphore map entries.
SEMMNI (NPROC * 2)
Defines the maximum number of semaphore sets in the entire system.
SEMMNS (NPROC * 2) * 2
Sets the number of semaphores in the system. The default value of SEMMNS
is 128, which is, in most cases, too low for Oracle9i software.
SEMMNU (NPROC - 4)
Defines the number of semaphore undo structures.
SEMVMX 32768
Defines the maximum value of a semaphore.
SHMMAX Available physical memory
Defines the maximum allowable size of one shared memory segment.
The SHMMAX setting should be large enough to hold the entire SGA in one
shared memory segment. A low setting can cause creation of multiple shared
memory segments which may lead to performance degradation.
SHMMNI 512
Defines the maximum number of shared memory segments in the entire
system.
SHMSEG 32
Defines the maximum number of shared memory segments one process can
attach.
VPS_CEILING 64
Defines the maximum System-Selected Page Size in kilobytes.
-》root 用户设置任务
用SAM创建数据库管理员组。
》OSDBA组,典型的为dba
》可选的OSOPER组,典型的为oper
》可选的ORAINVENTORY组,典型的为oinstall
授予OSDBA组RTSCHED,RTPRIO和MLOCK特权,作为root用户,按如下步骤操作:
》创建/etc/privgroup文件(如果它不存在),添加下面的一行到文件里:
dba MLOCK RTSCHED RTPRIO
》使用下面的命令格式指派这些特权:
#setpriv groupname privileges
在上述命令中,groupname 是接受特权的组的名字,privileges是将要授予给组的特权。
例如,要为OSDBA组(称为dba)授予特权,运行如下命令:
#setprivgrp dba MLOCK RTSCHED RTPRIO
使用SAM 创建oracle和APACHE用户。
》oracle 账户应具有以下特性:
primary 组为ORAINVENTORY 组。
secondary 组为OSDBA组。
账户仅用于安装与升级Oracle软件。
》APACHE账户应具有如下特性:
primary 组为ORAINVENTORY 组。
secondary组为一个只包含APACHE一个成员的组。
账户具有最小特权。
创建Oracle软件与数据库的挂载点。
》基本安装至少需要两个挂载点:一个用于软件,另一个(至少一个)用于数据库文件。
设置系统环境变量。
》创建本地bin 目录(如果没有的话),例如/usr/local/bin 或/opt/bin.。设置并且确认这个目录在每个用户的PATH声明中,并且用户对这个目录有执行的权限。
设置.profile的Oracle环境变量,如下:
―――――――――――――――――――――――――――――――――――――――
# Oracle Environment
ORACLE_HOME=/opt/oracle/product/9.0.1; export ORACLE_HOME
ORACLE_SID=dia2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
TNS_AD
MIN=/export/home/oracle/config/9.0.1; export TNS_ADMIN
#NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
#NLS_LANG=AMERICAN_AMERICA.UTF8
#NLS_LANG="ZHS16GBK"
export NLS_LANG
ORA_NLS33=$oracle_home/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
SHLIB_PATH=ORACLE_HOME/lib32:$ORACLE_HOME /rdbms/lib32
export LD_LIBRARY_PATH
export SHLIB_PATH
# Set shell search paths:
PATH=/bin:/usr/bin:/usr/sbin:/etc:/opt/bin:/usr/
clearcase/" target="_blank" >ccs/bin:/usr/local/bin:$ORACLE_HOME/bin
export PATH
#CLASSPATH must include the following JRE locations:
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME
.network/jlib
―――――――――――――――――――――――――――――――――――――
创建/var/opt/oracle 目录,由oracle账户所有。
安装后,这个目录将含有一些小的文本文件,简要描述了
服务器上的Oracle软件安装与数据库。
这些命令将创建目录并赋予其适当的许可:
$ mkdir /var/opt/oracle
$ chown oracle:dba /var/opt/oracle
$ chmod 755 /var/opt/oracle
安装任务
注意事项:
①需要使用虚拟图形终端来安装,我们使用的是EXTRA!X 软件;
②用pfs_moun
td &和pfsd &启动pfs进程,使用pfs_mount命令将安装盘挂到HP-UX上; 建
议先把光盘上的文件先拷贝到硬盘上,再安装,速度会快一点。
#su – root
#pfs_mountd $
#pfsd $
#pfs_mount /SD_CDROM
-》root 登录。
# xhost +
-》以oracle账户登录。su – oracle
-》export DISPLAY=<your ip>:0.0
export LC_ALL=
-》运行runInstaller
a、如果这是在数据库服务器上第一次安装Oracle9i 产品,Inventory Location 窗口将出现。指定一个基础目录来安装文件。
b、
UNIX Group Name 窗口。指定系统上具有升级Oracle 软件的许可的组。输入ORAINVENTORY组,或OSDBA 组(如果您没有创建ORAINVENTORY组的话)。
c 、File Locations 窗口。不要更改源域中的文本。目标域中将出现您在预安装过程中指定的Oracle Home 目录。指定系统上具有升级Oracle 软件的许可的组,应该是ORAINVENTORY。如果您以前在系统上安装过Oracle9i产品,installer 将从它的记录中获得UNIX组的名字,这是存储在/var/opt/oracle/oraInst.loc 文件中的。
d、Available Products窗口。选择“Oracle9i Database”
e、Installation Types 窗口。选择“Oracle9i Enterprise Edition”或“Standard Edition”安装。
f、Component Locations窗口。
g、如果您指配给OSDBA 组给一个不同于dba组的名字,将提示您确定OSDBA组的名字。
h、Database Configuration窗口。选择“General Purpose”。
i、如果您的服务器上存在以前版本的Oracle9i的数据库,installer 将提示您是否想在安装结束后立即运行Oracle Data Migration Assist
ant。
j、Database Identification 窗口。输入即将创建的种子数据库的全局数据库名和SID。全局数据库名为SID附加上您的域名。例如:域名为acme.com,您的数据库将用于销售,则适当的全局数据库名为sales.acme.com,SID为sales。
k、Database File Location 窗口。输入保存数据库的挂载点。种子数据库将被安装在这个挂载点下的一个目录里。
l、Database Character Set窗口。
m、Summary窗口。
n、Install窗口。
o、Setup Privileges窗口。提示您运行root.sh脚本。安装期间,Installer在$ORACLE_HOME目录下建立此脚本,并提示您在产品安装后运行此脚本,为Oracle产品设置必要的文件许可,并运行其他与root有关的配置操作。另开一个窗口,以root用户登录,输入下面的命令;
# cd $ORACLE_HOME
# ./root.sh
出现提示后,指定本地bin命令。这个目录是您在预安装的第5 步创建的。如果您在这一步忽略了此操作,root.sh脚本将为您创建一个。
p、Configuration Tools, Apache Web Server Configuration Assistant, and Oracle Net Configuration Assistant窗口将在运行root.sh脚本后出现。这些配置助理将帮助您创建并配置您的数据库与
网络环境。Configuration Tools 窗口显示运行这些助理的结果。在这些安装步骤中不需要提供任何信息。
q、Database Configuration Assistant窗口。
r、End of Installation 窗口。
数据库字符集的问题
数据库的服务器端和客户端的字符集必须是相同的,否则显示出来的双字节字符会出现乱码.导出的数据,也只能导入到相同字符集的数据库中.
1.服务器端字符集的设置和修改:
1.1 创建数据库的时候直接选择正确的字符集(显示汉字的字符集主要有ZHS16CGB231280,US7ASCII,WE8ISO8859P1,ZHS16GBK等)
1.2如果创建的时候没有选择字符集,那么字符集将使用默认的字符集.可以使用如下命令查看数据库的字符集.用oracle的合法用户登录.select * from V$NLS_PARAMETERS.
SQL > select * from V$NLS_PARAMETERS
parameter value
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
…. ….
NLS_CHARACTERSET WE8ISO8859P1
NLS_SORT BINARY
NLS_NCHAR_CHARACTERSET WE8ISO8859P1
---- 从上述信息看出ORACLE 数据库的字符集为' WE8ISO8859P1'。
可以用update 命令修改数据库的字符集,但是注意:修改字符集可能会对原有数据造成破坏,修改之前一定要先备份数据库.命令如下:
用户sys 以sysdba的身份登录oracle.
SQL>update props$ set value$=’ZHS16GBK’ where name=’NLS_CHARACTERSET’
如果客户端的字符集和服务器端不相同,就必须修改字符集.否则不能正确的显示汉字.一般建议修改客户端的字符集.
1.3不同字符集数据库之间的数据导入
a)重新安装数据库或者是用update命令修改字符集。
b)强行修改oracle数据库当前字符集。以sysdba的身份登录oracle
SQL > create database character set ZHS16GBK (注:这里的字符集为导出数据的字符集)
* create database character set ZHS16GBK
ERROR at line 1:
ORA-01031: insufficient privileges
不用理会这个错误,用imp 装入数据。数据装完后,重启动oracle 数据,select * from V$NLS_PARAMETERS 此时,你会发现,数据库字符集又回到原来的字符集。
c)用第三方工具绕开字符集。如powerbuild的pipeline,delphi的datadump,MS access的数据导入导出工具。
2.客户端修改字符集。
2.1 sql*net2.0以下版本编辑oracle.ini 文件。
2.2 sql*net2.0以上版本。在注册表中查找NLS_LANG,修改该字符串的值就可以。
Oracle 9i 的双机群集。
用root 用户登录到主机。用一台主机先按上面步骤安装oracle。安装完成后,把安装好的oracle整个复制到另外一台主机的相应位置。数据库必须安装在裸设备中,oracle才能做群集。安装oracle的过程中可以先不建数据库。安装完成后,用dbca把数据库建到裸设备中。
建立裸设备
lvcreate –L (大小M) -n (名字) /dev/卷组名(将同时创建块设备和字符设备)
chown oracle:dba 字符设备名(字符设备就是块设备名前加r)
chmod 660 字符设备名
建立一个ASCII 文件确认以上的裸设备卷对象。DBCA 需要这些对象在安装与数据库创建期间已经存在。文件格式如下:
database_object=rdevice_file_path(指向字符设备)
文件内容和相应裸设备分配的空间如下.
文件内容(系统表空间)例如:
文件内容(例如文件为/home/oracle/ora ) 空间
system=/dev/vgora/rsystem
spfile=/dev/vgora/rspfile
users=/dev/vgora/rusers
temp=/dev/vgora/rtemp
undotbs1=/dev/vgora/rundo1
example=/dev/vgora/rexample
cwmlite=/dev/vgora/rcwmlite
xdb=/dev/vgora/rxml
odm=/dev/vgora/rodm
4000m
52m
1200m
1024m
3120m
1600m
1000m
500m
2500m
indx=/dev/vgora/rindex
tools=/dev/vgora/rtools
drsys=/dev/vgora/rdrsys
control1=/dev/vgora/rcontrol1
control2=/dev/vgora/rcontrol2
control3=/dev/vgora/rcontrol3
redo1=/dev/vgora/redo1.log
redo2=/dev/vgora/redo2.log
redo3=/dev/vgora/redo3.log
700m
200m
900m
1000m
1000m
1000m
1200m
1200m
1200m
# xhost +
# su – oracle
$ export DBCA_RAW_CONFIG=<filename>
$ echo $ORACLE_SID(记下显示值,如:or9i)
$ export DISPLAY= <client ip>:0.0
$ export LC_ALL=
$ dbca(进入数据库配置助理)
1、选择“删除数据库”(删除现有数据库)
2、结束后退出
$ dbca(进入数据库配置助理)
1、选择“创建数据库”
2、数据库类型选择“通用”
3、全局数据库名:or9i($ORACLE_SID)
4、选择“专用服务器模式”
5、选择安装到裸设备中
6、下一步
7、在“存储”页面,填写控制文件、数据文件、日志文件的位置
8、创建数据库
启动和停止脚本
start.sh
lsnrctl start
sqlplus /nolog << -
connect / as sysdba
startup
-
stop.sh
sqlplus /nolog << -
connect / as sysdba
shutdown immediate
-
lsnrctl stop
这是在群集软件中加入的脚本:su – oracle “/home/oracle/start.sh”
原文转自:http://www.ltesting.net