Chinaunix首页 | 论坛 | 博客
  • 博客访问: 979942
  • 博文数量: 184
  • 博客积分: 10030
  • 博客等级: 上将
  • 技术积分: 1532
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-27 18:32
文章分类

全部博文(184)

文章存档

2009年(1)

2008年(63)

2007年(39)

2006年(79)

2005年(2)

我的朋友

分类: Oracle

2008-03-13 08:10:06

红帽企业版4.6,没有的话,去 去下载,要注册。
Oracle10g
最新的版本Oracle Database 10g Release 2 (10.2.0.1.0)
Enterprise/Standard Edition for Linux x86  
OTN 下载地址:
这里还有一篇参考文档,不过是在红帽3和一些早期的系统上安装Oracle(10.1):
 
针对10201的文档在这里:

 
首先,安装红帽企业版4.6,安装桌面环境,和开发包,和兼容的遗留开发包
准备就绪后:
(1)检查软件包完整性:
binutils-2.15.92.0.2-24
compat-db-4.1.25-9
compat-libstdc++-33-3.2.3-47.3
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12.rhel4.5
gcc-3.4.6-9
gcc-c++-3.4.6-9
glibc-devel-2.3.4-2.39
glibc-headers-2.3.4-2.39
glibc-kernheaders-2.4-9.1.100.EL
glibc-2.3.4-2.39
glibc-common-2.3.4-2.39
gnome-libs-1.4.1.2.90-44.1
libstdc++-3.4.6-9
libstdc++-devel-3.4.6-9
libaio-0.3.105-2
make-3.80-6.EL4
pdksh-5.2.14-30.6
sysstat-5.0.5-16.rhel4
xscreensaver-4.18-5.rhel4.14
setarch-1.6-1
把缺少的软件包补上。
(2)Oracle10.2配置要求:
1:1G以上物理内存
2:swap空间,使用2G
3:/tmp 空间,不少于400M
4:Oracle软件占用 1.5-3.5GB 空间
5:Oracle数据库占用 1.2GB以上空间

(3)检查系统配置
# grep MemTotal /proc/meminfo
MemTotal:      1034564 kB
# grep SwapTotal /proc/meminfo
SwapTotal:     2031608 kB
 
# df -h /tmp
Filesystem            容量  已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                       18G  2.5G   15G  15% /
我这里没有单独分区。
 
# df -h
Filesystem            容量  已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                       18G  2.5G   15G  15% /
/dev/sda1              99M   13M   81M  14% /boot
none                  506M     0  506M   0% /dev/shm
/dev/hdc              2.2G  2.2G     0 100% /media/cdrom
检查上述系统配置,做必要的修改。
 
检查/etc/hosts 文件确保设置正确
比如:
#cat /etc/hosts
127.0.0.1               db101 localhost.localdomain localhost

(4)创建Oracle 组和用户帐户
Oracle安装组  (oinstall)
OSDBA组  (dba)
Oracle软件拥有者  (oracle)
普通用户  (nobody)
判断是否已有Oracle安装
#cat /etc/orInst.loc
如果该文件不存在,则表示没有已有安装。
检查用户组是否已经存在
#grep dba /etc/group
#grep oinstall /etc/group
如不存在,则创建:
#/usr/sbin/groupadd oinstall
#/usr/sbin/groupadd dba
然后,创建用于安装和维护Oracle 10.2 软件的Linux组和用户帐户oracle
oracle的用户组为oinstall 和 dba
#/usr/sbin/useradd -m -g oinstall -G dba oracle
检查结果:
#id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
设置oracle口令: passwd oracle
#id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)

(5)创建必要的目录和设置相关权限
有关 OFA 标准参考
mkdir -p /u01/app/oracle
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01/app/oracle /u02/oradata
chmod -R 775 /u01/app/oracle /u02/oradata

(6)配置 Linux 内核参数
cat >> /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
net.core.rmem_default=1048576
net.core.rmem_max=1048576
net.core.wmem_default=262144
net.core.wmem_max=262144
EOF
/sbin/sysctl -p
以 root 用户身份运行以下命令来验证您的设置:
/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range
例如:
# /sbin/sysctl -a | grep shm
kernel.shmmni=4096
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shm-use-bigpages=0
# /sbin/sysctl -a | grep sem
kernel.sem = 250        32000   100     128
# /sbin/sysctl -a | grep file-max
fs.file-max=65536
# /sbin/sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range=1024     65000
如果系统的参数设置的比上述参数值小,则编辑 /etc/sysctl.conf 文件,添加或更改这些参数。
完成后,运行以下命令激活更改:
#/sbin/sysctl -p
(7)为 oracle 用户设置 Shell 限制
Oracle 建议对每个 Linux 帐户可以使用的进程数和打开的文件数设置限制。要进行这些更改,以 root 用户的身份执行下列命令:
cat >> /etc/security/limits.conf <oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536
EOF
cat >> /etc/pam.d/login <session    required     /lib/security/pam_limits.so
EOF
修改/etc/profile
cat >> /etc/profile <if [ \$USER = "oracle" ]; then 
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF

(8)oracle 用户的环境变量
要使用 Oracle 产品,应该或必须设置几个环境变量。对于数据库服务器,建议设置以下环境变量:
ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH
如果您在同一服务器上安装了多个 Oracle 产品或数据库,则 ORACLE_HOME、ORACLE_SID 和 PATH 变量可能会更改。ORACLE_BASE 变量不应更改,并可以在需要时在您的登录配置文件中设置它。Oracle 提供了一个称作 oraenv 的实用程序来设置其他变量。
以 oracle 身份登录,并通过在 .bash_profile 或 .profile(bash 或 ksh)中添加以下行,将 ORACLE_BASE 添加到登录配置文件:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
修改家下的用户配置文件:
#vi .bash_profile
添加一下内容
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
ORACLE_SID=orcl
export ORACLE_BASE ORACLE_HOME ORACLE_SID
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
保存推出
导入环境使用: . .bashrc_profile

(9)安装Oracle10g
使用图形登录以 oracle 身份登录
创建一个目录以存放 Oracle 10g 发行套件:
mkdir 10g_db
进入10g_db目录
下载并解压安装文件(10201_database_linux32.zip)
unzip 10201_database_linux32.zip
##{
cpio format  
  Download the Complete Files
  10201_database_linux_x86_64.cpio.gz (758,433,170 bytes) (cksum - 2921604215)
   
  Directions
  1. Unzip the file: gunzip
  2. Extract the file: cpio -idmv <
##}
进入database目录,运行 ./runInstaller 进入图形界面。
如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:
# export DISPLAY=:0.0
# xhost + 
 
(10)自启动设置
Oracle 10g需要启动以下服务(在oracle用户下)
    $ lsnrctl start
    $ dbstart
    $ emctl start dbconsole
    $ isqlplusctl start
所以需要做以下配置:
默认dbstart是不起作用的。需要以下配置
1.修改/etc/oratab
    $ vi /etc/oratab
oradb:/opt/ora10/product/10.2.0.1:Y(原来是N改为Y)
2.拷贝一个系统配置好的 PFILE 到 dbs 目录下
# cp /u01/app/oracle/admin/raddb/pfile/init.ora.2292007201045 $ORACLE_HOME/dbs/init.ora   ($ORACLE_HOME路径要看安装路径而定)
现在你可以测试一下
$ dbstart
注:如果安装版本是10201,可能会出现这个错误:
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
修改dbstart的第78行 ($ORACLE_HOME/bin/dbstart)
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
为ORACLE_HOME_LISTNER=$ORACLE_HOME
$ dbshut
最后在/etc/rc.d/rc.local中加入如下代码:
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"
su - oracle -c "emctl start dbconsole"
su - oracle -c "isqlplusctl start"
这样重启动服务器后Oracle就会自动启动了。
或者建立一个服务启动程序:

#!/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 "Oracle is not Running."
        exit 1
    else
        echo "Oracle 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 "Oracle started"
        ;;
    stop)
        # stop listener, apache and database
        echo -n "Oracle begin to shutdown:"
        su - oracle -c "lsnrctl stop"
        su - oracle -c dbshut
        echo "Oracle is shutdown"
        ;;
    reload|restart)
        $0 stop
        $0 start
        ;;
    'status')
        status
        ;;
     *)
        echo "Usage: $0  [start|stop|reload|restart]"
        exit 1
esac
exit 0
 

(11) Oracle 设置
iSQL*Plus URL:连接地址:
iSQL*Plus DBA URL:连接地址:
Enterprise Manager 10g Database Control URL:连接地址:
用户名:sys
口令:******
连接身份:SYSDBA
继续登陆请单击 “我同意”按键;
#su – oracle
$ startx
$netca启动配置网络配置助手
$sqlplus /nolog启动sqlplus
$dbca 启动数据库配置助手(DCA),建oracle数据库

其他参考网址:
在 Linux x86 上安装 Oracle 数据库 10g
Oracle? Database Quick Installation Guide
10g Release 2 (10.2) for Linux x86-64
Installing Oracle Database 10g Release 1 and 2 (32-bit/64-bit) on Red Hat Enterprise Linux AS 4, 3, 2.1, Red Hat Fedora Core
4, 3, 1, RH 9 on x86 and x86-64 (AMD64/EM64T) Architecture
 
 
(12) 无法启动图形界面
还有一个和oracle无关的问题:图形界面无法启动。我这里是因为禁用的服务太多了,忘了是哪个。
 
修改这里:
vi /etc/X11/xorg.conf
在下面这个段里:
Section "Files"
# RgbPath is the location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.
# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Red Hat 6.0 and later now use a font server independent of
# the X server to render fonts.
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        FontPath     "unix/:7100"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc" 《- 添加这一行
EndSection
startx 试试,可以了。
 
 
 
(13)于数据库删除重新安装的问题:
把ORACLE安装目录删除及/etc/ora*.*删除就行了
#rm –f /etc/ora*.*
7.修改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
 

(14)racle database备份
(1)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
#############
修改为本机数据库home目录
export ORACLE_HOME=/opt/oracle/product/10g
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
# 注意字符集必须和数据库的字符集一致,以避免字符集转化失败
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
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
ip地址修改为要备份的oracle的主机地址
exp file=$dmpfile log=$logfile  owner=gedb grants=y
  (2)copy bachupDb.sh 到slave oracle srever 相应目录,
     chown oracle.oinstall bachupDb.sh
     chmod 744 bachupDb.sh   
     vi bachupDb.sh 以符合安装情况
(3)以oracle user role
    crontab -e
    35 4 * * * /home/oracle/dbbackup/backupDb.sh
9. restore oracle backup
su - oracle
imp USERID=gedb/gedb file=gedb_6.dmp log=implogfile  commit=y  grants=y full=y
-----------------------------------------------------------------------------
 
contact:yszll#hotmail.com,leooys#gmail.com
阅读(2458) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~