centos6.5安装oracle11G R2
Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4 | The following packages (or later versions) must be installed:
binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3-69.el6.i686 gcc-4.4.4-13.el6 (x86_64) gcc-c++-4.4.4-13.el6 (x86_64) glibc-2.12-1.7.el6 (i686) glibc-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6.i686 ksh libgcc-4.4.4-13.el6 (i686) libgcc-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6.i686 libstdc++-devel-4.4.4-13.el6 (x86_64) libstdc++-devel-4.4.4-13.el6.i686 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.107-10.el6.i686 libaio-devel-0.3.107-10.el6 (x86_64) libaio-devel-0.3.107-10.el6.i686 make-3.81-19.el6 sysstat-9.0.4-11.el6 (x86_64) |
On Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4:
unixODBC-2.2.14-11 (32 bit) or later unixODBC-devel-2.2.14-11 (32 bit) or later
安装依赖
# mount /dev/cdrom /media
# cd /etc/yum.repos.d/
# mv CentOS-Base.repo CentOS-Base.repobak
# cat CentOS-Media.repo | tail -8 #修改成如下
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 #yum install -y binutils compat-libcap1 compat-libstdc* elfutils-libelf* elfutils-libelf-devel* gcc gcc-c++ glibc.i686 glibc glibc-devel glibc-devel.i686 ksh libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 make sysstat
#yum install -y unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686
或者
yum -y install binutils-* compat-libstdc* elfutils-libelf* elfutils-libelf-devel* gcc-* glibc* glibc-common* glibc-devel* \
glibc-headers* ksh* libaio-* libaio-devel* libgcc* libstdc++* libstdc++-devel* make* sysstat* unixODBC*
添加用户 groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle echo rootabcd | passwd --stdin oracle 修改内核参数 cat >> /etc/sysctl.conf <<EOF
#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 EOF
注释如下两行
#kernel.shmmax = 68719476736
#kernel.shmall = 4294967296
#sysctrl –p == error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key error: "net.bridge.bridge-nf-call-iptables"
is an unknown key error: "net.bridge.bridge-nf-call-arptables" is an unknown key
# modprobe bridge
各参数详解:
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,
这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低
(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。
32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。
例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。
kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,
那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求
(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,
还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
fs.file-max:
该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。
kernel.sem:以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。
net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。
net.core.rmem_max:表示套接字接收缓冲区大小的最大值。
net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。
net.core.wmem_max:表示套接字发送缓冲区大小的最大值。
修改系统限制 cat >> /etc/security/limits.conf <<EOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle hard stack 10240 EOF 创建相关目录 mkdir -p /u01/app/oracle/product/11.2.0/db_1 chown -R oracle:oinstall /u01 chmod -R 755 /u01 su - oracle
修改用户环境变量 cat >> /home/oracle/.bash_profile <<EOF # for oracle
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_UNQNAME=ecology
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ecology
export PATH=/usr/sbin:$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib EOF
$ source /home/oracle/.bash_profile
设置好hosts指向后转到图形界面进行安装
切换到oracle用户进行安装
[oracle@data1 ~]$ ls -l /u01 drwxr-xr-x. 3 oracle oinstall 4096 Sep 23 22:24 app -rwxr-xr-x. 1 oracle oinstall 1239269270 Aug 31 00:43 linux.x64_11gR2_database_1of2.zip -rwxr-xr-x. 1 oracle oinstall 1111416131 Aug 31 00:39 linux.x64_11gR2_database_2of2.zip
依次解压后,生成database
[oracle@data1 u01]$ ls -l /u01
total 2295624
drwxr-xr-x. 3 oracle oinstall 4096 Sep 23 22:24 app
drwxr-xr-x. 8 oracle oinstall 4096 Aug 21 2009 database
-rwxr-xr-x. 1 oracle oinstall 1239269270 Aug 31 00:43 linux.x64_11gR2_database_1of2.zip
-rwxr-xr-x. 1 oracle oinstall 1111416131 Aug 31 00:39 linux.x64_11gR2_database_2of2.zip
drwxr-xr-x. 2 oracle oinstall 16384 Sep 23 21:44 lost+found
开始安装
$ . /u01/database/runInstaller

图形安装完成后,需要root下运行相关脚本
su - root
sh /u01/app/oraInventory/orainstRoot.sh
sh /u01/app/oracle/product/11.2.0/db_1/root.sh
yum install readline*
tar -xf rlwrap-0.42.tar.gz
cd rlwrap-0.42
./configure
make
make install
cat >> /home/oracle/.bash_profile <<EOF
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
EOF
使用dbca创建数据库
$dbca
使用netca配置监听
$netca
查看监听状态
$ lsnrctl status | tail -6
Services Summary...
Service "ecology" has 1 instance(s).
Instance "ecology", status READY, has 1 handler(s) for this service...
Service "ecologyXDB" has 1 instance(s).
Instance "ecology", status READY, has 1 handler(s) for this service...
The command completed successfully
$sqlplus / as sysdba
SQL> select name from v$datafile; 查看数据库文件存放位置
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ecology/system01.dbf
/u01/app/oracle/oradata/ecology/sysaux01.dbf
/u01/app/oracle/oradata/ecology/undotbs01.dbf
/u01/app/oracle/oradata/ecology/users01.dbf
SQL> select open_mode from v$database; 查看数据库状态
OPEN_MODE
--------------------
READ WRITE
[root@ora1 ecology]# pwd
/u01/app/oracle/oradata/ecology
[root@ora1 ecology]# ls -lh
total 1.5G
-rw-r----- 1 oracle oinstall 9.3M Feb 19 00:04 control01.ctl
-rw-r----- 1 oracle oinstall 101M Feb 18 23:03 example01.dbf
-rw-r----- 1 oracle oinstall 51M Feb 18 23:03 redo01.log
-rw-r----- 1 oracle oinstall 51M Feb 18 23:03 redo02.log
-rw-r----- 1 oracle oinstall 51M Feb 19 00:04 redo03.log
-rw-r----- 1 oracle oinstall 491M Feb 19 00:03 sysaux01.dbf
-rw-r----- 1 oracle oinstall 681M Feb 19 00:03 system01.dbf
-rw-r----- 1 oracle oinstall 30M Feb 18 21:38 temp01.dbf
-rw-r----- 1 oracle oinstall 86M Feb 19 00:03 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5.1M Feb 18 23:03 users01.dbf
[oracle@ora1 ~]$ ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 32768 oracle 660 4096 0
0x00000000 65537 oracle 660 4096 0
0x78406424 98306 oracle 660 4096 0
------ Semaphore Arrays --------
key semid owner perms nsems
0xa6910d4c 163842 oracle 660 154
------ Message Queues --------
key msqid owner perms used-bytes messages
创建表空间
SQL> create tablespace ecology datafile '/u01/app/oracle/oradata/ecology/ecology.dbf' size 2000M AutoExtend On Next 10M segment space management auto;
创建用户并关联表空间
SQL> create user ecology identified by ecology default tablespace ecology temporary tablespace temp;
授权
SQL> grant connect,resource to ecology;
SQL> grant create view to ecology;
SQL> grant DATAPUMP_EXP_FULL_DATABASE,DATAPUMP_IMP_FULL_DATABASE to ecology;