第1章 检查系统配置
本文主要讲解在AS4上安装Oracle 10g,它对硬件和操作系统有一定要求,同时还依赖一系列的软件包,因此必须以Root身份登录AS4,逐步进行如下准备和更新软件包的工作。
1.1检查cpu信息
# grep "model name" /proc/cpuinfo
model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz
# dmesg | grep CPU
Initializing CPU#0
CPU 0 irqstacks, hard=c03d3000 soft=c03d2000
CPU: After generic identify, caps: 0febfbff 00100000 00000000 00000000
CPU: After vendor identify, caps: 0febfbff 00100000 00000000 00000000
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: After all inits, caps: 0febf3ff 00100000 00000000 00000040
Intel machine check reporting enabled on CPU#0.
CPU: Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz stepping 08
ACPI: Processor [CPU0] (supports C1, 8 throttling states)
# rpm -q --queryformat "%{ARCH}\n" kernel
i686
1.2检查内存
# grep MemTotal /proc/meminfo –-内存大小
memTotal: 256044 kB
# grep SwapTotal /proc/meminfo --交换分区大小swap
SwapTotal: 524280 kB
# free -m
total used free shared buffers cached
Mem: 250 240 9 0 13 129
-/+ buffers/cache: 96 153
swap: 511 0 511
# ls -lh /proc/kcore
-r-------- 1 root root 257M 4月 7 23:16 /proc/kcore
# top
# df -h /dev/shm --共享内存
Filesystem 容量 已用 可用 已用% 挂载点
none 126M 0 126M 0% /dev/shm
1.3查看计算机的硬件信息(包括主板等)
# dmidecode
1.4查看硬盘信息
# df
Filesystem 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
15417264 5723388 8910724 40% /
/dev/sda1 505604 14014 465486 3% /boot
none 128020 0 128020 0% /dev/shm
/dev/hdc 614270 614270 0 100% /media/cdrom
# hdparm -i /dev/hda --查看型号
1.5检查操作系统型号
# cat /etc/issue
Red Hat Enterprise Linux AS release 4 (Nahant)
Kernel \r on an \m
1.6检查内核版本
# uname -rv
2.6.9-5.EL #1 Wed Jan 5 19:22:18 EST 2005
1.7检查/tmp分区(要求/tmp >=400MB)
# df -m /tmp
Filesystem 1M-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
15056 5590 8702 40% /
1.8检查依赖软件包
若没安装就会报 Error in invoking target ’all_no_orcl ihsodbe of make file’所以以下的包是全部要安装完。
检查软件包是否安装的命令如:rpm –q gcc
AS5要求软件包:
libXp-1.0.0-8.i386.rpm
openmotif22-2.2.3-18.i386.rpm
compat-db-4.2.52-5.1.i386.rpm
compat-gcc-34-3.4.6-4.i386.rpm
compat-gcc-34-c++-3.4.6-4.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
libaio-0.3.106-3.2.i386.rpm
AS4(大部分都在第三个光盘可以用rpm -Uvh compat* 安装):
binutils-2.15.92.0-10.EL4
compat-db-4.1.25-9
compat-gcc-32-3.2.3-47.3
compat-gcc-32-c++-3.2.3-47.3
compat-libstdc++-33-3.2.3-47.3
control-center-2.8.0-12
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.L4
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90EL4
libstdc++-3.4.3-9.EL4
libstdc++-devel-3.4.3-9.EL4
libaio-0.3.102-1
openmotif21-2.1.30-11
make-3.80.5
pdksh-5.2.14.30
sysstat-5.0.5-1
setarch-1.3-1
xscreensaver-4.18-5.rhe4.2
注意:
1)建议系统配置:内存>=1G,SWAP>=内存*2,硬盘>=4G(如果内存>=2G,SWAP>=内存即可)
2)oracle分64位和32位和OS要一致(orcale10不支持RHEL5,需要修改/etc/redhat_realease 将 Red Hat Enterprise Linux Server release 5 (Tikanga)改为Red Hat Enterprise Linux Server release 4 (Tikanga))
3)修改/etc/hosts 文件将127.0.0.1改为你的ip 否则网络检查通不过
第2章 安装oracle 10g 前的准备工作
以下将以root的身份完成安装oracle 10g前的准备工作。
2.1创建用户和组
$ su root
Password:
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
2.2创建目录
创建Oracle的安装目录,并把权限付给oracle用户:
# mkdir -p /u01/app/oracle/product/10.2.0/db_1
# chown -R oracle.oinstall /u01
2.3 修改内核参数
编辑文件 /etc/sysctl.conf,修改以下项目(如果没有可以自己添加):
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 # 应用程序可使用的IPv4端口范围。
net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值
net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值
注:内核参数并非必须修改,可以根据自己实际情况而定。
运行下面的命令使得内核参数生效:
/sbin/sysctl –p
然后,应该检查一下上面的操作是否正确:
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
也可以在运行时通过执行下列命令更改内核参数:
#echo 250 32000 100 128 > /proc/sys/kernel/sem
#echo 268435456 > /proc/sys/kernel/shmmax # 1/2 * mem_size(M) * 1024 *1024
#echo 4096 > /proc/sys/kernel/shmmni
#echo 524288 > /proc/sys/kernel/shmall # mem_size(M) * 1024
#echo 65536 > /proc/sys/fs/file-max
#echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
2.4设置oracle对文件的要求
修改/etc/security/limits.conf 文件中:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
也可:
#echo oracle soft nofile 65536 >> /etc/security/limits.conf
#echo oracle hard nofile 65536 >> /etc/security/limits.conf
#echo oracle soft nproc 16384 >> /etc/security/limits.conf
#echo oracle hard nproc 16384 >> /etc/security/limits.conf
增加下面的内容到文件 /etc/pam.d/login 中:
#插入式认证模块
session required /lib/security/pam_limits.so
session required pam_limits.so
2.5 防火墙设置
因为SELINUX对oracle有影响,所以把secure linux设成无效,编辑文件 /etc/selinux/config:
# 取消SELINUX对ORACLE的强制访问控制限制
SELINUX=disabled
当然你也可以用图形界面下的工具 (系统 > 管理 > 安全级别和防火墙). 选择SELinux页面并且设为无效.
2.6设置环境变量
登录到oracle 用户并且配置环境变量(增加下面的内容到文件.bash_profile
#Oracle Settings
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_OWNER=oracle; export ORACLE_OWNER
PATH=$PATH:$ORACLE_HOME/bin; export PATH
DISPLAY=192.168.0.105:0,0; export DISPLAY #如果本机有Xserver图形界面的话以下这段可以不写
ORACLE_TERM=xterm; export ORACLE_TERM #如果本机有Xserver图形界面的话以下这段可以不写
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib; export CLASSPATH export CLASSPATH
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
export LANG=AMRICAN
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
注意:也可用命令设置:export ORACLE_BASE="/u01/app/oracle"
$oracle_home 可以自己定;为效率有的人单独为oracle 分配磁盘空间 主目录自己定的情况下。
配置好后用命令使配置生效:
#source .bash_profile
检查环境变量是否生效:
#set |grep ORACLE_HOME
#env |grep ORACLE_HOME
#unset ORACLE_HOME #清除环境变量
对 Bourne、Bash、Korn shell,用编辑器 qedit 在文件/etc/profile 中加入下面的行:(备注以下的命令添加后,会提示ulimit 出错:
-bash: ulimit: pipe size: cannot modify limit: Invalid argument)
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2.7安装依赖的软件包
# 从RedHat AS5 光盘1
cd /media/cdrom/Server
rpm -Uvh setarch-2* U为更新软件包。
rpm -Uvh make-3*
rpm -Uvh glibc-2*
rpm -Uvh libaio-0*
cd /
eject
# 从RedHat AS5 光盘2
cd /media/cdrom/Server
rpm -Uvh compat-libstdc++-33-3*
rpm -Uvh compat-gcc-34-3*
rpm -Uvh compat-gcc-34-c++-3*
rpm -Uvh gcc-4*
rpm -Uvh libXp-1*
cd /
eject
# 从RedHat AS5 光盘3
cd /media/cdrom/Server
rpm -Uvh openmotif-2*
rpm -Uvh compat-db-4*
cd /
eject
对于AS4大部分软件包都在路径:/media/cdrom/RedHat/RPMS 下
cd /media/cdrom/RedHat/RPMS
rpm –Uvh gcc
……
cd /
eject
2.8创建备份文件系统
查找工具
ls -l /sbin/mkfs*
-rwxr-xr-x 1 root root 6912 2004-12-22 /sbin/mkfs
-rwxr-xr-x 1 root root 15300 2004-12-22 /sbin/mkfs.cramfs
-rwxr-xr-x 3 root root 34836 2004-12-23 /sbin/mkfs.ext2
-rwxr-xr-x 3 root root 34836 2004-12-23 /sbin/mkfs.ext3
-rwxr-xr-x 3 root root 28484 2004-10-13 /sbin/mkfs.msdos
-rwxr-xr-x 3 root root 28484 2004-10-13 /sbin/mkfs.vfat
创建EXT2文件系统:mkfs.ext2 /dev/sda2
创建EXT3文件系统:mkfs –t ext3 /dev/sda2
创建ReiserFS文件系统:mkfs.reiserfs /dev/sda2
将EXT2文件系统升级为EXT3文件系统:tune2fs -j /dev/sda2
注意:在某些情况下,不应当把EXT2文件系统升级为EXT3文件系统,特别是EXT2文件系统存放Oracle等数据库文件时。这种数据库文件自身内置日志机制,对同一个文件运行两个日志机制可能引起数据损坏或引起数据库系统崩溃。
第3章 安装oracle 10g
登录到oracle用户,到刚才解压出来的目录用下面的命令,启动Oracle智能安装向导(Oracle Universal Installer ),就出现了图形界面,再按照提示一步一步安装。
3.1 运行runInstaller进行安装
注意:
1)#如出现Xlib: connection to “:0.0″ refused by server错误,可以运行xhost + ,如果不是在本地安装,可能还需要指定DISPLAY=IP:0.0 & export DISPLAY
2)安装时根据说明操作即可,在选择字符集时,可选Unicode standard utf-8 al32utf8,并选择”Create database with sample schemas”; 另外在Specify database schema passwords处,选择Use the same password for all the accounts(根据需要)
3)#如出现/usr/lib/libstdc++.so.5: No such file or directory错误,可以安装compat-libstdcxxx.rpm
3.2 查看以下三个.ora文件中的主机与端口
cd /u01/app/oracle/product/10.2.0/db_1/network/admin
listener.ora sqlnet.ora tnsnames.ora
安装快完成好的时候,会出现提示,必须以root 的身份执行两个脚本。
最后,单击完成按钮,完成安装。
第4章 安装后续工作
完成安装Oracle 后,还要进行一系列的初始化与配置工作,另外为了方便以后管理还需编写系列的SHELL程序。
4.1 Oracle系统初始化
用root用户登录,然后运行$ORACLE_HOME/root.sh进行Oracle的系统初始化工作,通常一路按回车用默认值即可。
4.2登陆并启动数据库的操作
检查:$oracle_home/ network/admin/listener.ora 的配置是否正确
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.0 - Production on Sat Mar 12 22:58:53 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> shutdown immediate 关闭数据库 (OR "dbshut" command)
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup; 启动数据库
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
4.3 dbstart脚本修改
首先修改vi /etc/oratab,把orcl:/opt/oracle/oracle/product/10g:N那一行最后的N改成Y
然后执行dbstart启动admin数据库数据库可能无法启动,报告Can’t find init file …的错误,需要复制一个初始化文件:
cp /opt/oracle//ge01/pfile/init.ora.* /opt/oracle/product/10.2.0/dbs/initge01.ora
重新执行dbstart就可以了。
修改 vi /opt/oracle/product/10g/bin/dbstart
或 vi /u01/app/oracle/product/10.2.0/db_1/bin/ dbstart
ORACLE_HOME_LISTNER=/opt/oracle/oracle/product/10g/
最后vi /etc/rc.local 加入下面一行起动ORACLE ON system boot
/opt/oracel/product/10g/bin/dbstart
4.4 编写启动脚本(OPTION)
为了方便管理,可以写一个启动脚本ora10g:
以root身份进入,编写以下脚本:
#!/bin/bash
# chkconfig: 2345 91 19
# description: starts the oracle listener and instance
status() {
pid=`ps -ef | grep ora_pmon | grep -v grep | awk '{print $8}'`
if [ "X$pid" = "X" ]
then
echo "oracle10g is not running."
exit 1
else
echo "oracle10g is running."
exit 0
fi
}
case "$1" in
start)
#startup the listener and instance
echo -n "oracle begin to startup: "
su - oracle -c "lsnrctl start"
su - oracle -c dbstart
echo "oracle10g started"
;;
stop)
# stop listener, apache and database
echo -n "oracle begin to shutdown:"
su - oracle -c "lsnrctl stop"
su - oracle -c dbshut
echo "oracle10g shutdowned"
;;
reload|restart)
$0 stop
$0 start
;;
'status')
status
;;
*)
echo "Usage: ora10g [start|stop|reload|restart]"
exit 1
esac
exit 0
存为ora10g后,然后chmod a+x ora10g
ln -s /opt/oracle/product/10.2.0/bin/ora10g /etc/rc.d/init.d/
即可在以后以root身份运行/etc/rc.d/init.d/ora10g start |stop 来管oracle的启动和停止了。
如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:
chkconfig --level 345 ora10g on
或者可在/etc/rc.d/rc.local中加入如下:
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"
4.5 修改Oracle10g数据库字符集
SQL> connect sys/oracle as sysdba
SQL> startup mount
SQL> alter session set sql_trace=true;
Session altered.
SQL> alter system enable restricted session;
System altered.
SQL> alter system set job_queue_processes=0;
System altered.
SQL> alter system set aq_tm_processes=0;
System altered.
SQL> alter database open;
Database altered.
SQL> set linesize 120;
SQL> alter database character set zhs16gbk;
alter database character set zhs16gbk
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk;
# 使用INTERNAL_USE可以跳过超集的检查,ALTER DATABASE character set INTERNAL_USE
Database altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
SQL> select name,value$ from props$ where name like '%NLS%';
NLS_CHARACTERSET
ZHS16GBK
4.6 oracle database简单备份与恢复(使用数据泵)
vi bachupDb.sh
#!/bin/sh
#oracle用户下
#crontab -e 增加 "35 4 * * * /home/oracle/dbbackup/backupDb.sh",保存后自动安装
#或echo "35 4 * * * /home/oracle/dbbackup/backupDb.sh" > backupDb.cron
#crontab backupDb.cron
###########################################################################
#@tip 修改为本机数据库home目录
export ORACLE_HOME=/opt/oracle/product/10g
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
# 注意字符集必须和数据库的字符集一致,以避免字符集转化失败
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
#@tip 125修改为要备份的oracle的ip地址的最后一段
dmpfile="`echo ~/`dbbackup/gedb_`date +%w`.dmp"
logfile="`echo ~/`dbbackup/gedb_`date +%w`.log"
if [ -w $dmpfile ]
then
echo "rm -f $dmpfile"
rm -f "$dmpfile"
fi
#@tip ip地址修改为要备份的oracle的主机地址
exp USERID=gedb/gedb@10.248.1.5/ge01 file=$dmpfile log=$logfile wner=gedb grants=y
对bachupDb.sh赋权
cp bachupDb.sh 到slave oracle srever目录
chown oracle.oinstall bachupDb.sh
chmod 744 bachupDb.sh
vi bachupDb.sh 以符合安装情况
以oracle user role
crontab –e 35 4 * * * /home/oracle/dbbackup/backupDb.sh
restore oracle backup(恢复数据)
su - oracle
imp USERID=gedb/gedb file=gedb_6.dmp log=implogfile commit=y grants=y full=y
第5章 卸载Oracle 10g
5.1卸载Oracle 10g
只须运行:
$./runInstaller -silent -deinstall -removeallfiles -removeAllPatches "REMOVE_HOMES={$ORACLE_HOME}" -responseFile <安装时使用的应答文件>
注意:关于数据库删除重新安装的问题:
把ORACLE安装目录删除及/etc/ora*.*删除就行了
#rm –f /etc/ora*.*
#rm –rf /u01来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21126685/viewspace-660699/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21126685/viewspace-660699/