Oracle 11g R2 安装

本文详细介绍了如何在RHEL 5.5系统上安装和配置Oracle 11g R2数据库的过程,包括安装前的准备、系统需求检查、环境变量配置、安装步骤以及数据库的基本设置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1   下载并安装RHEL5.5

系统下载地址:http://rhel.ieesee.net/uingei/

 

RHEL5.5的安装,在此不再详述,下面是几点需要注意的问题:

a、  完全安装开发包

b、  规划好分区(oracleswaptmp有要求,需要引起注意)

c、  建议安装时设置好主机名和IP

d、  安装时去除不必要的应用程序

 

系统启动级别,建议设置为3,需要使用xWindow时再考虑启动

[root@]#vi /etc/inittab

Id:3:initialization

1.2   下载oracle 11g R2安装包

Oracle下载地址:

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/

 

下载的安装包为两个文件

linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

将以上两个文件传到服务器上,可以使用ftp

 

2       安装前的配置

2.1   root用户登录系统

2.2   检测硬件需求

2.2.1       内存需求

a、  至少4G RAM

 

键入以下命令查看内存大小

[root@]# grep MemTotal /proc/meminfo

 

如果不够4G,建议你添加内存到4G,然后在继续安装,这是oracle的建议,我个人装的时候,内存为2G

 

b、  下面的表是oracle官方的建议

   

Available RAMSwap Space Required
Between 4 GB and 8 GB2 times the size of RAM
Between 8 GB and 32 GB1.5 times the size of RAM
More than 32 GB32 GB

c、  自动内存管理

Oracle 11g 提供了一个新特性,内存的自动化管理,但是要求更大的共享内存(/dev/shm)和文件描述符,对与每一个数据库实例,/dev/shm的大小至少要为MEMORY_MAX_TARGET MEMORY_TARGET中较大者

 

查看/dev/shm的大小

 

[root@]#df –h /dev/shm

编辑/etc/fstab文件,修改/dev/shm的大小,红色部分设为你要指定的大小

tmpfs              /dev/shm        tmpfs      defaults,size=1024M      0     0

重新挂载/dev/shm

[root@]#mount –o remount /dev/shm

2.2.2       系统架构

检查系统架构,确保oracle可以运行

[root@]# uname –m

2.2.3       磁盘空间需求

a、  /tmp至少1G 空间

 

检查/tmp空间命令

[root@]#df –h /tmp

 

如果/tmp空间不满足需求,可以配置TMP TMPDIR两个环境变量来指定一个满足要求的目录

 

b、  检查磁盘空间

[root@]# df –h

下面的表是安装空间的需求

 

 

Installation TypeRequirement for Software Files (GB)
Enterprise Edition4.35
Standard Edition3.73

Installation TypeRequirement for Data Files (GB)
Enterprise Edition1.68
Standard Edition1.48

c、  如果你配置了自动备份的话,oracle自动存储管理还需要额外的磁盘空间

2.3   检测软件需求

2.3.1       操作系统需求

a、  以下系统可以安装oracle 11g R2

Asianux Server 3 SP2

Oracle Linux 4 Update 7

Oracle Linux 5 Update 2

Oracle Linux 5 Update 5 (only if using Oracle Unbreakable Enterprise Kernel)

Red Hat Enterprise Linux 4 Update 7

Red Hat Enterprise Linux 5 Update 2

Red Hat Enterprise Linux 5 Update 5 (only if using Red Hat compatible kernel)

SUSE Linux Enterprise Server 10 SP2

SUSE Linux Enterprise Server 11

b、  检查系统版本

[root@]# cat /proc/version

2.3.2       内核需求

a、  以下是内核需求列表

对于 Oracle Linux 4 Red Hat Enterprise Linux 4:

2.6.9 或者更高

对于 Asianux 3, Oracle Linux 5 Update 2, Red Hat Enterprise Linux 5 Update 2:

2.6.18 或者更高

对于 Oracle Linux 5 Update 5 Red Hat Enterprise Linux 5 Update 5:

- The Unbreakable Enterprise Kernel based on the 2.6.32 stable kernel

- The Red Hat compatible kernel for strict Red Hat compatibility

对于SUSE Linux Enterprise Server 10:

2.6.16.21 或者更高

对于SUSE Linux Enterprise Server 11:

2.6.27.19 或者更高

b、  检查内核版本

[root@]# uname –m

2.3.3       软件包需求

a、  需要的RPM

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

compat-libstdc++-33-3.2.3 (32 bit)

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-24

glibc-2.5-24 (32 bit)

glibc-common-2.5

glibc-devel-2.5

glibc-devel-2.5 (32 bit)

glibc-headers-2.5

ksh-20060214

libaio-0.3.106

libaio-0.3.106 (32 bit)

libaio-devel-0.3.106

libaio-devel-0.3.106 (32 bit)

libgcc-4.1.2

libgcc-4.1.2 (32 bit)

libstdc++-4.1.2

libstdc++-4.1.2 (32 bit)

libstdc++-devel 4.1.2

make-3.81

numactl-devel-0.9.8.x86_64

sysstat-7.0.2

b、  查询是否安装

[root@]# rpm –qa|grep 包名称

查询到未安装的软件包,可以从系统的安装镜像中获取,然后安装到系统中

安装命令

[root@]# rpm –ivh 包名称

小技巧:

可以将所有需要的RPM包放置在一个文件夹中,然后使用命令rpm –ivh *.rpm安装

 

2.3.4       编译器需求

见软件包需求中

 

2.3.5       额外软件需求

ODBC驱动,同样可以在系统安装镜像文件中找到

 

On Asianux Server 3, Oracle Linux 5, and Red Hat Enterprise Linux 5:

unixODBC-2.2.11 (32-bit) or later

unixODBC-devel-2.2.11 (64-bit) or later

unixODBC-2.2.11 (64-bit) or later

2.4    创建用户和组

依次键入以下命令,创建oracle用户、组等

[root@]# groupadd oinstall

[root@]# groupadd dba

[root@]# mkdir –p /u01/app

[root@]# useradd –m -g oinstall -G dba –d /u01/app/oracle oracle

[root@]# passwd oracle

Changing password for user oracle.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@]# chown -R oracle:oinstall /u01

[root@]# chmod -R 775 /u01

2.5   配置内核参数

2.5.1       内核检查及配置

如果没有相应的参数就添加,如果相应参数值比下面给出的值大,就不要修改了,检查当前配置使用命令

[root@]# sysctl –a |grep 参数名称

 

[root@]# vi /etc/sysctl.conf

内容如下:

# For Oracle

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

 

运行sysctl -p命令使内核参数生效

[root@]# sysctl -p

 

2.5.2       资源限制检查及配置

将下面的几项添加文件/etc/security/limits.conf的结尾处

 

[root@]# vi /etc/security/limits.conf

内容如下:

# For Oracle

oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

oracle              soft    stack   10240

 

2.5.3       用户登录限制配置

检查文件/etc/pam.d/login,如果没有下面几项,那么添加到文件结尾处

 

[root@]# vi /etc/pam.d/login

内容如下:

# For Oracle

session           requried          /lib64/security/pam_limits.so

session           requried          pam_limits.so

 

注意,64位机器上要使用64位的库,否则登录会出现问题

 

2.5.4       全局环境变量配置

检查文件/etc/profile,将以下内容添加到文件结尾处

 

[root@]# vi /etc/profile

内容如下:

# For Oracle

if [ $USER = "oracle" ]; then

            if [ $SHELL = "/bin/ksh" ]; then

                     ulimit -p 16384

                     ulimit -n 65536

           else

                     ulimit -u 16384 -n 65536

           fi

fi

2.6   Oracle用户环境变量配置

切换到oracle用户下,检查文件~/.bash_profile,将以下内容添加到文件结尾处

[root@]#su – oracle

[oracle@=]$ vi .bash_profile

内容如下:

# For Oracle

ORACLE_BASE=/u01/app

ORACLE_HOME=$ORACLE_BASE/oracle

ORACLE_SID=orcl

PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

 

export EDITOR=vi

export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

 

#以下命令为了删除控制字符,以便SQLPLUS中可以正常使用退格键等,在你的系统

#上可能为^H^h或者^?,请自行设置,输入方式位ctrl+v+字符

stty erase ^?

 

准备工作到此结束

 

3       安装步骤

3.1   启动安装

oracle安装包移动到/u01目录下并解压,解压后产生一个database目录

[root@]# cd /u01

[root@]# unzip linux.x64_11gR2_database_1of2.zip

[root@]# unzip linux.x64_11gR2_database_2of2.zip

 

重新确认用户组及权限

[root@]# chown –R oracle:oinstall /u01

[root@]# chmod –R 775 /u01

 

切换到oracle用户,并启动xWindow,然后进入安装目录,执行安装

[root@]# su – oracle

[oracle@=]$ startx

[oracle@=]$ cd /u01/database

[oracle@=]$ ./runInstaller

3.2   安装oracle软件

接下来进入界面安装步骤,根据界面提示,选择安装数据库即可,其中的目录都可以使用默认的,一步一步安装

需要注意的几个问题

a、  只安装数据库软件

b、  选择企业版

c、  如果不满足先决条件检查,请仔细检查原因

3.3   配置网络

[oracle@=]$ netca

进入界面形式,默认就可以,配置网络,首先配置网络,可以避免下一步创建数据库的警告

配置完成,监听器即会自动开启

3.4   创建Oracle数据库

[oracle@=]$ dbca

接下来进入界面安装步骤,根据界面提示,选择安装数据库即可,其中的目录都可以使用默认的,一步一步安装

需要注意的几个问题

a、  注意字符集的选择

b、  设置口令为tdr123

c、  自动内存管理会要求/dev/shm大小,如果报错请检查设置

4       数据库设置

4.1   设置数据库为归档模式

SQL> shutdown immediate;
SQL> startup restrict;

SQL> shutdown;
SQL> startup mount;
SQL> alter database archivelog;

SQL>alter database open;

 

确定oracle数据库运行在archive模式

确认方法:

sqlplus /nolog

SQL>Conn / as sysdba

SQL>Archive log list

 

4.2   设置oracle数据库随机启动

a、  修改/etc/oratab文件

[oracle@=]$ #vi /etc/oratab
找到orcl:/u01/app/oracle:N这一行

改为:
orcl:/u01/app/oracle:Y

 

b、  修改ORACLE自带的启动与关闭脚本

分别是dbstart dbshut。执行这两个脚本就可以实现ORACLE脚本的启动与关闭。在oracle账户下修改$ORACLE_HOME/bin/dbstart文件
[root@]# su -oracle
[oracle@=]$ cd $ORACLE_HOME/bin
[oracle@=]$ vi dbstart
找到ORACLE_HOME_LISTNER=$1这一行
改为:ORACLE_HOME_LISTNER=$ORACLE_HOME

[oracle@=]$ vi dbshut
找到ORACLE_HOME_LISTNER=$1这一行

改为:ORACLE_HOME_LISTNER=$ORACLE_HOME

 

c、  /etc/init.d目录下创建文件oracle

[root@]# vi /etc/init.d/oracle
内容如下:

#!/bin/sh

# chkconfig: 345 61 61

# description: Oracle 11g AutoRun Services

# /etc/init.d/oracle

#

# Run-level Startup script for the Oracle Instance, Listener, and

# Web Interface

 

export ORACLE_BASE=/u01/app

export ORACLE_HOME=$ORACLE_BASE/oracle

export ORACLE_SID=orcl

export PATH=$PATH:$ORACLE_HOME/bin

 

ORA_OWNR="oracle"

 

# if the executables do not exist -- display error

 

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]

then

     echo "Oracle startup: cannot start"

     exit 1

fi

 

# depending on parameter -- startup, shutdown, restart

# of the instance and listener or usage display

 

case "$1" in

 start)

     # Oracle listener and instance startup

     su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart

 touch /var/lock/subsys/oracle

     echo "Oracle Start Succesful!OK."

     ;;

 stop)

     # Oracle listener and instance shutdown

     su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut

 rm -f /var/lock/subsys/oracle

     echo "Oracle Stop Succesful!OK."

     ;;

 reload|restart)

     $0 stop

     $0 start

     ;;

 *)

     echo $"Usage: `basename $0` {start|stop|reload|reload}"

     exit 1

esac

exit 0

编辑完成并保存

 

d、  权限、链接及服务

 

赋予执行权

[root@]# chmod 750 /etc/init.d/oracle

链接
[root@]# ln –s /etc/init.d/oracle /etc/rc1.d/K61oracle

[root@]# ln –s /etc/init.d/oracle /etc/rc3.d/S61oracle

添加服务

[root@]# chkconfig --devel 345 /etc/init.d/oracle on

[root@]# chkconfig --add /etc/init.d/oracle

4.3   密码过期问题

查看用户的proifle是哪个,一般是default

SQL>SELECT username,PROFILE FROM dba_users;

 

查看指定概要文件(如default)的密码有效期设置:

SQL>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

 

将密码有效期由默认的180天修改成“无限制”:

SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

 

修改之后不需要重启动数据库,会立即生效。

4.4   账户锁定问题

查看用户的proifle是哪个,一般是default

SQL>SELECT username,PROFILE FROM dba_users;

 

查看指定概要文件(如default)的密码有效期设置:

SQL>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='FAILED_LOGIN_ATTEMPTS';

 

将尝试登录失败次数由默认的10次修改成“无限制”:

SQL>ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

 

修改之后不需要重启动数据库,会立即生效。

4.5   字符集的修改

SQL>conn / as sysdba;

若此时数据库服务器已启动,则先执行SHUTDOWN IMMEDIATE命令关闭数据库服务器,然后执行以下命令:

SQL>STARTUP MOUNT;

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL>ALTER DATABASE OPEN;

SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE WE8ISO8859P1

 

4.6   RMAN数据库备份

一周备份计划

周日 0全备

周一 2

周二 2

周三 1

周四 2

周五 2

周六 2

首先,确定四个脚本:

建立存放备份目录

[oracle@=]$ mkdir –p /u01/app/oracle/backup

 

建立存放脚本目录

[root@]# mkdir –p / u01/app/oracle/tryrman

drwxr-xr-x  root  root    tryrman

 

/u01/app/oracle/tryrman目录下创建4个脚本

 

-rwxr-xr-x  oracle root  rman_back0.sh

-rwxr-xr-x  oracle root  rman_back1.sh

-rwxr-xr-x  oracle root  rman_back2.sh

-rwxr-xr-x  oracle root  rman_restore.sh

 

0级备份脚本(rman_back0.sh

 

#! /bin/bash

ss=`date +%Y%m%d%H%M%S`

source $ORACLE_HOME/.bash_profile

cd $ORACLE_HOME/bin

 

./rman target / msglog=$ORACLE_HOME/log/rman_bk_L0_"$ss".log<<EOF

run{

    allocate channel c1 type disk;

    allocate channel c2 type disk;

    allocate channel c3 type disk;

    backup incremental level 0 tag 'db0' format '$ORACLE_HOME/backup/db0%u_%s_%p' database skip readonly;

    sql 'alter system archive log current';

    backup filesperset 3 format '$ORACLE_HOME/backup/arch%u_%s_%p' archivelog all delete input;

    release channel c1;

    release channel c2;

    release channel c3;

}

list backup;

EOF

 

1级备份脚本(rman_back1.sh

 

#! /bin/bash

ss=`date +%Y%m%d%H%M%S`

source $ORACLE_HOME/.bash_profile

cd $ORACLE_HOME/bin

 

./rman target / msglog=$ORACLE_HOME/log/rman_bk_L1_"$ss".log<<EOF

run{

    allocate channel c1 type disk;

    allocate channel c2 type disk;

    allocate channel c3 type disk;

    backup incremental level 1 tag 'db1' format '$ORACLE_HOME/backup/db1%u_%s_%p' database skip readonly;

    sql 'alter system archive log current';

    backup filesperset 3 format '$ORACLE_HOME/backup/arch%u_%s_%p' archivelog all delete input;

    release channel c1;

    release channel c2;

    release channel c3;

}

list backup;

EOF

 

2级备份脚本(rman_back2.sh

 

#! /bin/bash

ss=`date +%Y%m%d%H%M%S`

source $ORACLE_HOME/.bash_profile

cd $ORACLE_HOME/bin

 

./rman target / msglog=$ORACLE_HOME/log/rman_bk_L2_"$ss".log<<EOF

run{

    allocate channel c1 type disk;

    allocate channel c2 type disk;

    allocate channel c3 type disk;

    backup incremental level 2 tag 'db2' format '$ORACLE_HOME/backup/db2%u_%s_%p' database skip readonly;

    sql 'alter system archive log current';

    backup filesperset 3 format '$ORACLE_HOME/backup/arch%u_%s_%p' archivelog all delete input;

    release channel c1;

    release channel c2;

    release channel c3;

}

list backup;

EOF

 

恢复脚本(rman_restore.sh

 

#! /bin/bash

ss=`date +%Y%m%d%H%M%S`

source $ORACLE_HOME/.bash_profile

cd $ORACLE_HOME/bin

 

./rman target / msglog=$ORACLE_HOME/log/rman_restore_"$ss".log<<EOF

set dbid=$1;

startup nomount;

restore controlfile from '$ORACLE_HOME/backup/controlfile/c-$1-$2';

alter database mount;

restore database;

recover database;

sql 'alter database open resetlogs';

exit

EOF

 

linux计划

oracle 用户下:

 

crontab –e

00 01 * * 0 /home/tryrman/rman_back0.sh

00 02 * * 3 /home/tryrman/rman_back1.sh

00 02 * * 1-2,4-6 /home/tryrman/rman_back2.sh

 

修改服务器IP

 

5       数据库使用

5.1   创建表空间

 [oracle@=]$ sqlplus system/123456

 

SQL>create bigfile tablespace TESTSPACE

logging

datafile ‘/u01/app/oradata/orcl/TESTSPACE.dbf’  Size 2000m 

autoextend on next 2000m maxsize unlimited;

 

SQL>create bigfile temporary tablespace tdrtemp

tempfile ‘/u01/app/oradata/orcl/testtemp.dbf’ size 1024m

autoextend on next 1024m maxsize unlimited;

 

SQL>create user test identified by 888888

default tablespace TESTSPACE

quota unlimited on TESTSPACE

temporary tablespace testtemp;

 

SQL>grant sysdba to test;

 

注意:指定bigfile属性,可以避免表空间不足的问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值