1. 支特的系统
On Linux x86 and Linux x86-64:
■ Asianux 2.0
■ Asianux 3.0
■ Oracle Enterprise Linux 4.0
■ Oracle Enterprise Linux 5.0
■ Red Hat Enterprise Linux 4.0
■ Red Hat Enterprise Linux 5.0
■ SUSE Linux Enterprise Server 10.0
支持的内核
The following are the Kernel requirements for Oracle Database 11g Release 1:
■ On Asianux 2.0, Oracle Enterprise Linux 4.0, and Red Hat Enterprise Linux 4
2.6.9
■ On Asianux 3.0, Oracle Enterprise Linux 5.0, and Red Hat Enterprise Linux 5
2.6.18
■ On SUSE Linux Enterprise Server 10:
2.6.16.21
内存要求最少1G,硬盘最少3.5G
2. 安装前准备
1. 固定IP
2. 修改/etc/hosts文件,修改本机IP 指向本机的计算机名
如:192.168.5.38 oracle2 oracle2
查看内核版全是否对
# uname –r
2.1. 安装软件包检查,没安装的进行安装
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bi
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.1
gcc-c++-4.1.1
glibc-2.5-12
glibc-2.5-12 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5-12 (32 bit)
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libgcc-4.1.1
libgcc-4.1.1 (32 bit)
libstdc++-4.1.1
libstdc++-4.1.1 (32 bit)
libstdc++-devel 4.1.1
make-3.81
sysstat-7.0.0
2.1.1. 检查命令
# rpm -qa compat-libstdc++-33 elfutils-libelf-devel glibc-devel-2.5 gcc gcc-c++ libaio-devel libstdc++-devel unixODBC unixODBC-devel sysstat binutils elfutils-libelf glibc glibc-common libaio libgcc libstdc++ make
或 # rpm –qa |grep (+包名)一个一个的查
没安装的,rpm –ivh (+包名)
运行下面的命令,验证所需的包已安装
#rpm -q –queryformat “%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n” binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel-2.5 libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat
2.2. 内核参数问题
此为ORACLE安装程序所提供的参数名.
#后为ORACLE期望值
OS Kernel parameter:sem opm #100
OS Kernel parameter:file-max #6815744
OS Kernel parameter:ip_local_port_range #between 9000 & 65500
OS Kernel parameter:rmem_default #262144
OS Kernel parameter:rmem_max #4194304
OS Kernel parameter:wmem_default #262144
OS Kernel parameter:wmem_max #10488576
OS Kernel parameter:aio-max-nr #1048576
修改/etc/sysctl.conf文件.添加如下语句:
kernel.sem= 250 32000 100 128
fs.file-max=6815744
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 = 10488576
fs.aio-max-nr = 10488576
kernel.shmmax = 2147483648
完成后保存退出.
sysctl – p 使修改立即生效
PS:如果ORACLE对你的内核需求和我不一样.操作如下
1.sysctl
–a | grep 参数关键字 查找出系统当前设置.
2.
把他复制到sysctl.conf 中去.
3.
值修改为ORACLE所期望的.
4.
保存退出.并使修改立即生效.
2.3. 交换空间的问题
添加交换空间
PS:关于redhat linux 添加交换空间.网上查找有2种方式.
2.3.1. 直接添加交换分区
mkswap /dev/sda3 #sda3为硬盘分区.可以替换成你需要使用的分区
swapon /dev/sda3 #立即启用交换空间
2.3.2. 添加交换文件
mkdir /swap #此处我新建了一个目录
cd /swap #进入目录
dd if=/dev/zero of=swapfile bs=1024 count=3500000
#dd指令用来转换文件并用于复制目的;
#if指的是要被转换的输入文件格式
#of指的是输出文件
#bs指的是一个分区占用多少KB;
#count指的是要用多少个bs
mkswap /swap/swapfile
swapon /swap/swapfile #立即启用交换空间
————————————————————————–
PS:此处提供一个添加交换分区的脚本
[root@RHEL5-1 /]# cat swap.sh
mkdir /swap
cd /swap
touch swapfile
dd if=/dev/zero of=/swap/swapfile bs=1024k count=1024
mkswap /swap/swapfile
swapon /swap/swapfile
[root@RHEL5-1 /]# source swap.sh
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 15.7558 seconds, 68.1 MB/s
Setting up swapspace version 1, size = 1073737 kB
2.4. Oracle 建议对每个 Linux 帐户可以使用的进程数和打开的文件数设置限制
要进行这些更改,以 root 用户的身份执行下列命令:
2.4.1. /etc/security/limits.conf
文件/etc/security/limits.conf添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
命令:
#vi /etc/security/limits.conf
或
#cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
2.4.2. /etc/pam.d/login
文件/etc/pam.d/login 添加
session required pam_limits.so
命令
# vi /etc/pam.d/login
或
#cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF
2.5. 修改 bash 和 ksh 的默认配置文件以及 cshell 的默认登录脚本
2.5.1. /etc/profile
文件/etc/profile添加
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
命令
#vi /etc/profile
或
#cat >> /etc/profile <<EOF
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
2.5.2. /etc/csh.login
文件/etc/csh.login添加
if ( $USER == “oracle” ) then
limit maxproc 16384
limit descriptors 65536
endif
3. 创建oracle用户,用户组,用户目录
# groupadd oinstall
# groupadd dba
# useradd –g oinstall –G dba oracle
# passwd oracle
查oracle是否正确创健
#id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
以oracle用户登陆,进入oracle用户目录,查看是否有用户文件
#su – oracle
#ls -al
-rw——- 1 oracle oinstall 1153 May 16 09:07 .bash_history
-rw-r–r– 1 oracle oinstall 33 May 15 01:34 .bash_logout
-rw-r–r– 1 oracle oinstall 335 May 15 03:51 .bash_profile
-rw-r–r– 1 oracle oinstall 124 May 15 01:34 .bashrc
4. 查看 nobody用户是否存在
# id nobody
5. Oracle DB 11.2.0.3 安装
步骤1)准备工作
用远程登录工具MobaXterm 连接OEL并建立用户,
连接虚机 Liunx 的时候采用 ssh root@192.168.80.135
进入后运行
bash_profile
vi /home/oracle/.bash_profile
添加下列语句
export ORACLE_BASE=/
home/oracle/db
export ORACLE_HOME=$ORACLE_BASE/pro
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
并建立临时目录
[root@ericsun ~]# su – oracle
[oracle@ericsun ~]$ mkdir temp
用FTP 工具 FileZilla Client 连接OEL,FTP 连接的时候端口号为 22 ;
上传介质
- DB_112030_Linux-x86-64_1of7.zip
- DB_112030_Linux-x86-64_2of7.zip
并在上传目录中进行解压
unzip DB_112030_Linux-x86-64_1of7.zip;unzip DB_112030_Linux-x86-64_2of7.zip
进入database目录,用oracle用户运行./runInstaller 进行安装。
步骤2)【配置安全更新】页面
不选择:我希望通过 My Oracle Support 接收安全更新;
其他保持默认值,在该页面直接点击“下一步”。
图表1
图表2
步骤3)【下载软件更新】页面
选择:跳过软件更新;
图表3
步骤4)【选择安装选项】页面
选择:仅安装数据库软件;
其他保持默认值,在该页面直接点击“下一步”。
图表4
步骤5)【网格安装选项】页面
选择:单实例数据库安装;
其他保持默认值,在该页面直接点击“下一步”。
图表5
步骤6)【选择产品语言】页面
选择:简体中文/英文;
其他保持默认值,在该页面直接点击“下一步”。
图表6
步骤7)【选择数据库版本】页面
选择:企业版;
其他保持默认值,在该页面直接点击“下一步”。
图表7
步骤8)【指定安装位置】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表8
步骤9)【创建产品清单】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表9
步骤10)【特权操作系统组】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表10
步骤11)【先决条件查询】页面
到检查阶段,再次点击“修补并再次检查”会有脚本框弹出,并按其执行。
[root@ericsun ~]# /tmp/CVU_11.2.0.3.0_oracle/runfixup.sh;
图表11
图表12
对需要的程序包补打,这个时候需要安装目录;
例如F:\00-Erics\01-Current\Oracle – 92-tools\Oracle\01-Linux\Linux X86-64\V27570-01_Oracle Linux Release 5 Update 7 for x86_64 (64 Bit)
必须要连接在/media/OL5.7\ x86_64\ dvd\ 20110728/ 下
以 root 的身份进入/media/OL5.7\ x86_64\ dvd\ 20110728/Server/
运行
rpm -ivh libaio-devel-0.3.106-5.x86_64.rpm
rpm -ivh sysstat-7.0.2-11.el5.x86_64.rpm
然后选择“重新检查”。
图表13
步骤12)【概要】页面
本页面保留默认值,在该页面直接点击“安装”。
图表14
步骤13)【安装产品】页面
安装过程中 94% 的时候会提示用 root 身份运行如下脚本。
/home/oracle/app/oraInventory/orainstRoot.sh
/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
图表15
图表16
图表17
步骤14)【完成】页面
本页面保留默认值,在该页面直接点击“关闭”。
安装完毕!
图表18
6. Oracle DB oemdb数据库建立
步骤1)运行配置脚本
以 oracle 身份进入/home/oracle/db/pro/bin
并执行命令 ./dbca
步骤2)【欢迎使用】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表19
步骤3)【选择执行操作】 页面
本页面保留默认值,在该页面直接点击“下一步”。
图表20
步骤4)【数据库模板】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表21
步骤5)【数据库标识】页面
输入
全局数据库名:oemdb;
SID:oemdb;
其他保留默认值,在该页面直接点击“下一步”。
图表22
步骤6)【管理选项】页面
不选择:
配置Enterprise Manager;
其他保留默认值,在该页面直接点击“下一步”。
图表23
步骤7)【数据库身份证明】页面
选择:
所有账户使用统一管理口令;
输入:
口令: welcome1;
确认口令 welcome1;
其他保留默认值,在该页面直接点击“下一步”。
图表24
步骤8)【数据库文件所在位置】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表25
步骤9)【恢复配置】页面
不选择:
指定快速恢复区;
其他保留默认值,在该页面直接点击“下一步”。
图表26
步骤10)【数据库内容】 页面
本页面保留默认值,在该页面直接点击“下一步”。
图表27
步骤11)【初始化参数】 页面
Tab[内存] 选择:
内存大小(SGA和PGA):900MB;
Tab[字符集] 选择:
使用Unicode(AL32UTF8);
其他保留默认值,在该页面直接点击“下一步”。
图表28
图表29
步骤12)【数据库存储】 页面
本页面保留默认值,在该页面直接点击“下一步”。
图表30
步骤13)【创建选项】 页面
本页面保留默认值,在该页面直接点击“完成”。
图表31
步骤14)【创建数据库-概要】页面
本页面保留默认值,在该页面直接点击“确定”。
图表32
步骤15)【完成】页面
本页面保留默认值,在该页面直接点击“退出”。
图表33
图表34
7. Oracle DB listener 配置
步骤1)运行配置脚本
以 oracle 身份进入/home/oracle/db/pro/bin
并执行命令 ./netca
步骤2)【欢迎使用】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表35
步骤3)【监听程序配置】 页面
本页面保留默认值,在该页面直接点击“下一步”。
图表36
步骤4)【监听程序名】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表37
步骤5)【选择协议】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表38
步骤6)【端口设置】页面
本页面保留默认值,在该页面直接点击“下一步”。
图表39
步骤7)【更多监听程序】 页面
本页面保留默认值,在该页面直接点击“下一步”。
图表40
步骤8)【监听程序配置完成】页面
本页面保留默认值,在该页面直接点击“下一步”;
图表41
后页面保留默认值,在该页面直接点击“完成”。
图表42
Linux下启动Oracle服务和监听程序
- $ su – oracle
- $ sqlplus /nolog
- sql> conn /as sysdba
- sql> startup (一般不需要加参数,只要设置好环境变量)
- sql> quit (退出sql模式)
- $ lsnrctl start (启动监听器)
- 关闭oracle
- $ lsnrctl stop(关闭监听器,在这之前,应该先关闭应用程序)
- $ sqlplus /nolog
- sql>shutdown 其参数:shutdown有四个参数,四个参数的含义如下:
Normal 需要等待所有的用户断开连接
Immediate 等待用户完成当前的语句
Transactional 等待用户完成当前的事务
Abort 不做任何等待,直接关闭数据库
normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接
immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。
transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。
abort 执行强行断开连接并直接关闭数据库。
前三种方式不回丢失用户数据。第四种在不的已的情况下,不建议采用!
经常遇到的问题:
1)权限问题,解决方法,切换到oracle用户;
2)没有关闭监听器,解决方法:关闭监听器
3)有oracle实例没有关闭,解决办法:关闭oracle实例
4)环境变量设置不全,解决办法:修改环境变量
oracle 11g的企业管理器的使用
启动企业管理器: emctl start dbconsole(在linux服务器上执行)
停止企业管理器:emctl stop dbconsole
查看企业管理器是否启动
#emctl status dbconsole
oracle@loracle2 ~]$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.1.0.6.0
Copyright (c) 1996, 2007 Oracle Corporation. All rights reserved.
https://oracle2:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control …………….. started.
——————————————————————
Logs are generated in directory /opt/oracle/product/11.1.0/localhost.localdomain_myora/sysman/log
那么我们看到https://oracle2:1158/em/console/aboutApplication就是企业管理器的访问地址了。大多数情况下,需要把:1158前面的主机名换成IP地址进行访问,如果你的网络中没有dhcp服务器,那么通过主机名在很多时候是不能访问的。
在linux服务器上你也可以通过查看ORACLE_HOME/install/portlist.ini文件来获取em的端口号,然后用这个端口进行访问。
访问oracle企业管理器需要有SELECT_CATALOG_ROLE角色的权限。
如果你新创建了一个用户,需要执行grant SELECT_CATALOG_ROLE to user_name;才能使该用户访问企业管理器。但是不需要你单独的执行这个语句,通常dba角色也包含了这些权限。