Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91331
  • 博文数量: 20
  • 博客积分: 1450
  • 博客等级: 上尉
  • 技术积分: 270
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-14 10:43
文章存档

2010年(20)

我的朋友

分类: Oracle

2010-04-30 11:31:39

文件: Oracle 10g for RH LinuxAS4(32位)安装文档.rar
大小: 3487KB
下载: 下载
Oracle 10g for RH LinuxAS4(32位)安装文档
文档来源:方正 李守亮  2007年9月
 
本文档分为简略文档和详细(傻瓜式)文档,详细文档分txt版本和doc版本(含图),含常见问题和解决与方案,请按需选择。
 
一、以下是简略文档:
文档来源:方正 李守亮  2007年9月
 
我在两个时期写过简略安装文档,请选择或综合参考采用。
一)简略文档版本一
#unzip 10201_database_linux32.zip
 
1、配置内核
#cp /etc/sysctl.conf /etc/sysctl.conf.init
#vi /etc/sysctl.conf
###在文件末尾追加
kernel.core_uses_pid = 1
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.tcp_sack=0
net.ipv4.tcp_timestamps=0
net.ipv4.ip_local_port_range = 1024 65000 
kernel.sem = 500 64000 100 128
kernel.shmmax = 2147483648
kernel.shmmni = 4096 
kernel.shmall = 2097152 
fs.file-max = 65536
 
2、增加交换分区
#free -m
#dd if=/dev/zero of=/home/swap bs=1024 count=4194304
#mkswap /home/swap
#swapon /home/swap
#free -m
 
3、修改为静态ip
/etc/sysconfig/network-scripts/ifcfg-eth
 
4、内核参数生效
#sysctl -p
 
5、创建组和用户
#groupadd oinstall
#groupadd dba
#useradd -d /opt/oracle -g oinstall -G dba -m oracle
#passwd oracle

6、配置环境变量
[oracle@lhfcms01 ~]$ vi .bash_profile
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_SID=nis
export ORACLE_TERM=xterm
export NLS_LANG="simplified chinese_china.ZHS16GBK";
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin
export LANG=zh_CN.GBK
 
安装,略
$./runInstaller
$dbca
$netca
 
二)简略文档版本二
1、创建组
#groupadd oinstall
#groupadd dba
 
2、创建用户
#useradd -d /opt/oracle -g oinstall -G dba oracle
 
3、配置内核参数
[root@lhfcms01 pub]# cat /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.tcp_sack=0
net.ipv4.tcp_timestamps=0
net.ipv4.ip_local_port_range = 1024 65000 
kernel.sem = 500 64000 100 128
kernel.shmmax = 2147483648
kernel.shmmni = 4096 
kernel.shmall = 2097152 
fs.file-max = 65536
 
4、内核参数生效
#sysctl -p
 
5、配置环境变量
[oracle@lhfcms01 ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_SID=cms31
export ORACLE_TERM=xterm
export NLS_LANG="simplified chinese_china.ZHS16GBK";
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin
export LANG=zh_CN.GBK
 
6、安装oracle并建库
 
7、运行orainstRoot.sh和root.sh
以root身份运行
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/10g/root.sh
 
8、修改oratab
/etc/oratab
cms31:/opt/oracle/product/10g:Y
如命令行不熟悉,请运行vncserver,使用vnc连接通过界面安装
 
二、以下是详细安装文档txt版,doc版参见附件。
 
Oracle 10g for RH LinuxAS4(32位)安装文档
文档来源:方正 李守亮  2007年9月
 
目录
一、安装前环境准备 
1、安装Redhat LinuxAS4操作系统
2、调整必须的LINUX核心参数 
3、建立oracle用户和属组 
4、配置oracle环境变量 
二、安装数ORACLE据库 
1、安装Oracle10g  Product 
2、建库
3、配置网络 
4、启动和停止数据库 
5、开机自动启动oracle服务 
三、交互程序数据库初始化(运行脚本) 
四、数据库自动备份方案(可选,供参考) 
五、初步优化(供参考)
SGA和PGA优化 
六、附加内容 
1、如果IP为dhcp的,需修改为静态ip 
2、如果交换分区过小,需要增大交换分区 
3、内核参数不符合要求 

一、安装前环境准备
所需软件
操作系统 Redhat Linux AS4 X86 32位(按照Linux文档部署,有gcc环境)
Oracle服务端 10201_database_linux32.zip
Oracle客户端 win32_10gR2b3_client.zip
初始化脚本 isystem_1.sql  isystem_2.sql   isystem_3.sql
1、安装Redhat LinuxAS4操作系统
安装LINUX时最好选择全部包,因为在安装ORACLE时要GCC
#rpm –qa | wc –l 如果>1000基本上是包都装全了
#rpm –qa| grep gcc
gcc-objc-3.4.5-2
compat-gcc-32-3.2.3-47.3
libgcc-3.4.5-2
gcc-g77-3.4.5-2
gcc4-java-4.0.2-14.EL4
gcc-gnat-3.4.5-2
gcc4-c++-4.0.2-14.EL4
compat-libgcc-296-2.96-132.7.2
gcc-3.4.5-2
gcc-java-3.4.5-2
gcc4-gfortran-4.0.2-14.EL4
gcc-c++-3.4.5-2
gcc4-4.0.2-14.EL4
compat-gcc-32-c++-3.2.3-47.3
如果没有列出GCC,则要补充安装GCC
用LINUX安装盘,mount /dev/cdrom /mnt,然后用rpm –i命令安装/mnt下的GCC软件包
2)所有网卡都是静态IP
3)swap交换分区为4G以上,通过命令查看
#free –m
4)各分区合理,例如就分了一个/区和swap区,或者说 / 和 /opt区足够大
#df -h
2、调整必须的LINUX核心参数
1)备份原始配置文件
#cd /etc
#cp sysctl.conf sysctl.conf.init
2)修改sysctl.conf
#vi /etc/sysctl.conf
Vi编辑器的具体操作说明请参阅有关文档
###在文件末尾追加
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.tcp_sack=0
net.ipv4.tcp_timestamps=0
net.ipv4.ip_local_port_range = 1024 65000 
kernel.sem = 500 64000 100 128
kernel.shmmax = 2147483648
kernel.shmmni = 4096 
kernel.shmall = 2097152 
fs.file-max = 65536
3)使新加入的核心参数立即生效
#sysctl –p
3、建立oracle用户和属组
#groupadd oinstall
#groupadd dba
#useradd -d /opt/oracle -g oinstall -G dba -m oracle (/opt/oracle为oracle用户的主目录)
设置oracle口令
#passwd oracle
4、配置oracle环境变量
#su - oracle
通常增加以下变量:
[oracle@lhfcms01 ~]$ vi .bash_profile
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_SID=nis
export ORACLE_TERM=xterm
export NLS_LANG="simplified chinese_china.ZHS16GBK";
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin
#export LANG=zh_CN.GBK
其中ORACLE_HOME为oracle的安装目录
export ORACLE_SID为oracle的实例名,后用dbca命令建立实例时要和这个名称一致
重新进入oracle,以加载刚才.bash_profile配置
#exit
#su – oracle
二、安装数ORACLE据库
1、安装Oracle10g  Product
1)上传、解开ORACLE安装包
1-1)用oracle账号在/opt/oracle目录下创建一个disk目录
#su  -  oracle
$cd /opt/oracle
$mkdir disk
$cd disk
1-2)通过rz、ftp或scp命令上传oracle安装包
例如,
通过rz方法(rz命令适合Windows下客户端登录,如SecureCRT, SSH Secure Shell Client等):
$rz  
会弹出上传的对话框
上传10201_database_linux32.zip
1-3)解包:
$unzip 10201_database_linux32.zip
Archive:  10201_database_linux32.zip
   creating: database/
   creating: database/doc/
   creating: database/doc/dcommon/
   creating: database/doc/dcommon/css/
  inflating: database/doc/dcommon/css/blafdoc.css 
  inflating: database/doc/dcommon/css/darbbook.css 
  inflating: database/doc/dcommon/css/darbbook.css~ 
  inflating: database/doc/dcommon/css/doccd.css 
 
2)安装oracle
2-1)从控制台注销当前用户
2-2)以oracle用户登录控制台
2-3)进入安装盘目录运行安装程序
$ cd /opt/oracle/disk/database
$ ./runInstaller
出现如下安装画面
 
根据需要,选择Enterprise Edition安装类型,默认缺省安装路径
不选创建库(create database)
下一步
 
下一步
 
这个地方是关??Vに?屑觳舛纪ü??绻?啡鲜蔷蔡琁P,则选择下一步。
 
 
 
另外启动一个命令窗口,切换到root用户,根据提示,以root身份执行两个脚本:
$su –
#/home/oracle/oraInventory/orainstRoot.sh
#/opt/oracle/product/10g/db_1/root.sh
对于提示的问题直接回车即可
2、建库
运行dbca命令
#su - oracle
$dbca
 
选择Gernerral Purpose
 
填入实例名:nis
 
下一步
 
缺省选文件系统,下一步
 
下一步
 
下一步
 
选择数据库字符集,字符集选utf8,国际字符集选utf8,简体中文,中文;如图所示
注意default language和date format
 
下一步
 
正在建库(创建实例)
 
以上,缺设置数据库sys\system等口令的步骤和图。
3、配置网络
先运行netca命令(这个命令可以生成或修改listener.ora),再用客户端工具创建tnsnames.ora,
运行netca
#su - oracle
$netca
下一步
 
下一步
 
输入监听名,(默认)
 
选择协议类型(TCP/IP)
 
选择服务端口号(默认为1521)
 
下一步
 
下一步
 
下面为生成的listener.ora文件,也可以根据具体情况手工修改红色部分配置(不修改的情况待验证)
其中最主要的是SID_NAME数据库实例名
#cat /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = nistest)  //数据库全局名称
      (SID_NAME = nistest)  //数据库实例名
      (ORACLE_HOME = /opt/oracle/product/10g/db_1)
      #(PROGRAM = extproc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.0.2)(PORT = 1521))  //主机名或IP地址
    )
  )

下图为客户端配置,再次运行netca命令(生成或修改tnsnames.ora)
选第三项(本地服务名配置)
 
下一步
 
下一步
 
选择协议类型为TCP
 
输入客户机IP,端口要和服务端统一(默认都是1521)
 
下一步
 
可以测试一下能否正常连接服务器,或者用客户端程序来连接测试
下面为tnsnames.ora文件的内容,也可根据需要手工调整
# Generated by Oracle configuration tools.
NIS=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.24.18.202)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = nis)
      (SERVER = DEDICATED)
    )
  )
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

4、启动和停止数据库
#su - oracle
$sqlplus /nolog
conn / as sysdba
(特殊情况,需要用sys帐号和口令,写法如下)
conn
shutdown immediate(当shutdown immediate无法停止时采用shutdown abrot)停止
startup 启动
$lsnrctl start/stop 启动停止监听
5、开机自动启动oracle服务
如果想在开机后自动运行oracle,则进行如下修改
1)修改dbstart脚本,修改
/ade/vikrkuma_new/oracle

/opt/oracle/product/10g
2)修改/etc/rc.local(启动脚本)
#vi /etc/rc.local  追加
.   /etc/oraenv
su - oracle -c "dbstart >/dev/null"
su - oracle -c "lsnrctl start >/dev/null"
3)修改/etc/oraenv(启动时加载的环境变量)
#vi /etc/oraenv
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_SID=nis
export ORACLE_TERM=xterm
export NLS_LANG="simplified chinese_china.ZHS16GBK";
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin
#export LANG=zh_CN.GBK
4)设置为执行权限
#chmod +x /etc/oraenv
5)修改oracle配置文件
#su - oracle
$vi /etc/oratab
修改其中的N为Y
nis:/opt/oracle/product/10g:N  ->  nis:/opt/oracle/product/10g:Y

6)测试启动和停止
#su - oracle
$dbstart
$dbshut
三、交互程序数据库初始化(运行脚本)
可通过两种方式来初始化交互程序数据库,由于字符集原因,在linux下操作不当时,插入库中的汉字会出现乱码,所以推荐采用第一种方法。
1、方法一:通过windows客户端
1-1)安装Oracle的Windows客户端
解开win32_10gR2b3_client.zip包,运行setup.exe
 
 
 
 
 
1-2)配置Oracle的Windows客户端
运行net manager,增加一个服务命名:
 
 
 
 
 
 
 
1-3)交互数据库初始化
确认isystem_1.sql中表空间的路径(/opt/oracle/oradata/NIS)是否存在?
确认该路径oracle是否有写权限?
1-4)从sqlplus里运行脚本
假设脚本已经存放在客户端c:\sql目录下,运行
Cmd
Sqlplus
@c:\sql\isystem_1.sql
@c:\sql\isystem_2.sql
@c:\sql\isystem_3.sql
exit
passwd请改为system的实际口令;
在运行cmd当前目录下会生成日志文件isystem_1.log  isystem_2.log  isystem_3.log。
2、方法二:在linux上初始化脚本
当条件不允许在windows客户端操作时,可直接在linux上初始化数据库,由于操作不当会,请严格按照如下步骤操作:
2-1)上传初始化脚本
用oracle账号,通过ftp或rz等方法上传isystem_1.sql、isystem_2.sql、isystem_3.sql到linux服务器。例如上传到/opt/oracle目录下
2-2)确认环境变量NLS_LANG
#su - oracle
$cat  .bash_profile
$echo $NLS_LANG
确认NLS_LANG为"simplified chinese_china.ZHS16GBK"
3-3)初始化
$sqlplus
@/opt/oracle isystem_1.sql
@/opt/oracle isystem_2.sql
@/opt/oracle isystem_3.sql
exit
passwd请改为system的实际口令;
在运行shell的当前目录下会生成日志文件isystem_1.log  isystem_2.log  isystem_3.log。
注:
在linux下初始化脚本不会出现乱码的关键是, sql脚本的编码和NLS_LANG 的字符集对应,即sql脚本为GBK编码,对应的NLS_LANG为simplified chinese_china.ZHS16GBK;如果sql脚本编码为UTF-8,则需要NLS_LANG为simplified chinese_china.UTF8。
四、数据库自动备份方案(可选,供参考)
以下方案实现数据库自动七天循环备份,自动备份从每夜0点开始。
(1)备份脚本
#mkdir /orabackup
#chown -R oracle:oinstall /orabackup
# vi /orabackup/autoback_ora.sh
#!/bin/sh
export bakpath=/orabackup
mv -f ${bakpath}/isystem06.dmp ${bakpath}/isystem07.dmp
mv -f ${bakpath}/isystem05.dmp ${bakpath}/isystem06.dmp
mv -f ${bakpath}/isystem04.dmp ${bakpath}/isystem05.dmp
mv -f ${bakpath}/isystem03.dmp ${bakpath}/isystem04.dmp
mv -f ${bakpath}/isystem02.dmp ${bakpath}/isystem03.dmp
mv -f ${bakpath}/isystem01.dmp ${bakpath}/isystem02.dmp
mv -f ${bakpath}/isystem.dmp   ${bakpath}/isystem01.dmp
NOW=`/bin/date '+%Y%m%d%H%M%S'`
su - oracle -c "exp file=${bakpath}/isystem.dmp log=${bakpath}/backup${NOW?}.log DIRECT=y buffer=6553500"
以上,请保证”对应的“用户/口令@数据库”准确无误。
(2)赋予执行权限
#chmod +x /orabackup/autoback_ora.sh
(3)以 root创建任务
#vi /orabackup/myjob
0 0 * * *  /orabackup/autoback_ora.sh
#crontab /orabackup/myjob
#crontab -l
五、初步优化(供参考)
SGA和PGA优化
SAG、PGA区的调整与用户的内存大小相关,要根据具体情况来具体调整。
 
(1)调整原则
SAG + PGA 尽量小于等于 1/2 物理内存M
sga_target 小于等于 sga_max_size
32位系统的SAG + PGA 小于2GB

(2)调整方法
a、创建pfile
#su - oracle
$sqlplus /nolog
>conn / as sysdba
>create pfile='./myinit.ora' from spfile;
b、备份原始pfile
$cp ./myinit.ora ./myinit.ora.init
c、根据调整原则修改myinit.ora中的参数
只修改或增加以下项,其中,sga_max_size、sga_target、pga_aggregate_target根据实际内存和调整原则进行调整,其他项照抄。
*.sga_max_size=1024M
*.sga_target=1000M
*.pga_aggregate_target=800M
*.workarea_size_policy=auto
*.sort_area_size=2097152
*.cursor_sharing=similar
*.processes=300
*.open_cursors=600
d、创建spfile、重启服务
#su - oracle
$sqlplus /nolog
>conn / as sysdba
>shutdown immediate   (如果很长时间停止不掉则运行shutdown abort)
>create spfile from pfile='./myinit.ora';
>startup
六、附加内容
附加一些环境不符合要求的弥补措施
1、如果IP为dhcp的,需修改为静态ip
用netconfig命令,输入IP地址或手工修改如下文件
#vi /etc/sysconfig/network-scripts/ifcfg-eth
例子:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:17:08:54:45:44
ONBOOT=yes
TYPE=Ethernet
DHCP_HOSTNAME=outdb-bak
IPADDR=10.10.1.1
NETMASK=255.255.0.0
USERCTL=no
IPV6INIT=no
PEERDNS=yes
修改完成后重新启动网络服务:
#service network restart
2、如果交换分区过小,需要增大交换分区
增加交换分区
#free -m
#dd if=/dev/zero of=/home/swap bs=1024 count=4194304制作swap文件
#mkswap /home/swap 制作swap设备
#swapon /home/swap 激活swap文件
#free  -m 重新检查swap大小
3、内核参数不符合要求
用/sbin/sysctl –a命令列出目前全部核心参数值,用grep命令找到不符合的项,进行调整

sysctl-a | grep kernel.shmmax
kernel.shmmax = 33554432
不符合要求,编辑/etc/sysctl.conf文件,改为kernel.shmmax = 2147483648,保存
然后用sysctl –p命令让刚才的修改立即生效
这时在执行sysctl-a | grep kernel.shmmax,显示的结果为
kernel.shmmax = 2147483648
阅读(1131) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~