Linux下安装Oracle11.2.0.1小结

前言

*网上关于Linxu下安装Oralce的资料数不尽数,但是总找不到适合自己,用起来拿心应手的;以前数据库安装无数次,也没有总结、特参照网上其它大牛资料及结合自己应用经验小结,以示牢记! *

安装注意事项

  1. 尽量选择英语环境,中文环境下有时候会出现乱码的情况。
  2. 磁盘分区建议采用系统默认方式LVM管理,比较方便后续扩展。如果需要设置指定的分区/s01,就稍微修改下分50G给/,其他分给/s01
  3. 安装时设置好时区,取消UTC时钟。
  4. 设置主机名和网络IP地址.
  5. 选择默认安装模式时选择第一个Desktop即可。oracle安装的包问题后面准备是依依指定,新版本没法偷懒,没有选所有rpm包的地方。
  6. 系统安装后进入桌面环境,默认不建议在桌面系统登录root用户。

环境准备

以下操作未明确说明都在在root用户下操作

环境

OS: VBox + Oracle Linux Server release 6.5
DB Version: Oracle-11.2.0.1

准备环境

配置yum

1
2
3
4
5
6
7
$ cd /etc/yum.repos.d
[base]
name=Oracle linux 6.5 base
enabled=1
gpgcheck=0
baseurl=file:///media/cdrom
$ mount /dev/cdrom /media/cdrom --映射光盘到对应的目录下:

利用oracle-rdbms-server-11gR2-preinstall实现快速部署

  • 自动安装oracle所需的RPM包
  • 自动创建oracle用户和group组
  • 自动配置/etc/sysctl.conf内核参数
  • 自动配置/etc/security/limits.conf参数
  • 关闭NUMA=OFF (关闭非一致内存访问)

可跳过”安装依赖包”-“设置环境变量”前的手工配置步骤

1
$yum install oracle-rdbms-server-11gR2-preinstall     

安装依赖包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
*The following or later version of packages for Asianux 3, Oracle Linux 5, and Red 
Hat Enterprise Linux 5 must be installed:*

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
sysstat-7.0.2

*The following or later version of packages for Oracle Linux 6, and Red Hat
Enterprise Linux 6 must be installed:*

binutils-2.20.51.0.2-5.11.el6
compat-libcap1-1.10-1
compat-libstdc++-33-3.2.3-69.el6
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6
gcc-c++-4.4.4-13.el6
glibc-2.12-1.7.el6.i686
glibc-2.12-1.7.el6
glibc-devel-2.12-1.7.el6
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6.i686
libgcc-4.4.4-13.el6
libstdc++-4.4.4-13.el6
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6

$ yum install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc.i686 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 unixODBC unixODBC.i686 unixODBC-devel unixODBC-devel.i686

建立Oracle用户和组

1
2
3
4
$ groupadd oinstall
$ groupadd dba
$ useradd -g oinstall -G dba oracle
$ passwd oracle

建立目录和属主

1
2
3
$ mkdir -p /s01/oracle/11g
$ chown -R oracle:oinstall /s01
$ chmod -R 755 /s01

配置系统内核参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ vi /etc/sysctl.conf
fs.suid_dumpable = 1
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 --立即刷行配置

设置/etc/security/limits.conf

1
2
3
4
5
6
$ vi /etc/security/limits.conf
#For Oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

设置环境变量

1
2
3
4
5
6
7
8
9
10
11
$ su - oracle
$ cd ~
$ vim .bash_profile
ORACLE_HOME=/s01/oracle/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/s01/oracle
ORACLE_SID=XWY
PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:$HOME:PATH
export PATH ORACLE_HOME ORACLE_BASE ORACLE_SID
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export NLS_LANG=american_america.AL32UTF8
export DISPLAY=IP:0.0

/etc/hosts文件中加入主机名的解析,防止监听配置有问题。

1
2
$ vim /etc/hosts
127.0.0.1 OEL6.5 localhost.localdomain localhost

关闭SELINUX和防火墙

可以在界面上操作防火墙,system–>Administration–>firewall–>Disable apply

1
2
3
4
$ chkconfig iptables off
$ service iptables stop
$ chkconfig ip6tables off
$ service ip6tables stop

vi /etc/selinux/config

1
2
$ vim /etc/selinux/config
SELINUX=enforced 修改为SELINUX=disabled后重启

本机安装或设置Xmanager远程图形界面安装

本机安装请确认xhost可以正常显示即可。而客户端配置需启动Xmanager- Passive模式

1
2
3
4
5
6
$ export DISPLAY=IP:0.0
$ xhost
access control disabled, clients can connect from any host
INET:172.30.16.254
INET:192.168.1.66
INET:192.168.2.66

数据库安装及升级

安装Oracle软件

1
2
3
4
$ cd /home/oracle/database
$ ./runInstaller
$ sh /s01/oracle/oraInventory/orainstRoot.sh
$ sh /s01/oracle/10g/root.sh

配置监听

1
2
$ su - oracle
$ netca

安装数据库

图形化安装
1
2
$ su - oracle
$ dbca
手动创建
  • 创建参数文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $ vi $ORACLE_HOME/dbs/initxwy.ora
    db_name='xwy'
    memory_target=800M
    processes = 150
    audit_file_dest='/s01/admin/xwy/adump'
    audit_trail ='db'
    db_block_size=8192
    db_domain='oracle.com' db_recovery_file_dest='/s01/flash_recovery_area'
    db_recovery_file_dest_size=10G
    diagnostic_dest='/s01'
    dispatchers='(PROTOCOL=TCP)(SERVICE=xwy)'
    open_cursors=300
    remote_login_passwordfile='EXCLUSIVE'
    undo_tablespace='UNDOTBS1'
    -- You may want to ensure that control files are created on separate physicaldevices
    control_files = (/s01/oradata/xwy/control1.ctl,/s01/oradata/xwy/control2.ctl)
    compatible ='11.2.0'
  • 建立所需目录

    1
    2
    3
    $ mkdir -p $ORACLE_BASE/admin/xwy/adump
    $ mkdir -p $ORACLE_BASE/flash_recovery_area
    $ mkdir -p $ORACLE_BASE/oradata/xwy
  • 创建数据库脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $ vi create_db.sql
    CREATE DATABASE xwy
    USER SYS IDENTIFIED BY xwy
    USER SYSTEM IDENTIFIED BY xwy
    LOGFILE GROUP 1 ('/s01/oradata/xwy/redo01.log') SIZE 10M BLOCKSIZE 512,
    GROUP 2 ('/s01/oradata/xwy/redo02.log') SIZE 10M BLOCKSIZE 512,
    GROUP 3 ('/s01/oradata/xwy/redo03.log') SIZE 10M BLOCKSIZE 512
    MAXLOGFILES 5
    MAXLOGMEMBERS 5
    MAXLOGHISTORY 1
    MAXDATAFILES 100
    MAXINSTANCES 1
    CHARACTER SET AL32UTF8
    NATIONAL CHARACTER SET AL16UTF16
    EXTENT MANAGEMENT LOCAL
    DATAFILE '/s01/oradata/xwy/system01.dbf' SIZE 50M REUSE AUTOEXTEND ON
    SYSAUX DATAFILE '/s01/oradata/xwy/sysaux01.dbf' SIZE 50M REUSE AUTOEXTEND ON
    DEFAULT TABLESPACE USERS DATAFILE '/s01/oradata/xwy/users01.dbf' SIZE 50M REUSE AUTOEXTEND ON
    DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/s01/oradata/xwy/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON
    UNDO TABLESPACE UNDOTBS1 DATAFILE '/s01/oradata/xwy/undotbs01.dbf' SIZE 20M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
  • 建立密码文件

    1
    2
    $ cd $ORACLE_HOME/dbs
    $ orapwd file=orapwxwy password=xwy
  • 启动数据库到nomount模式并执行创建数据脚本

    1
    2
    3
    4
    $ export ORACLE_SID=xwy
    $ sqlplus / as sysdba
    startup nomount
    @create_db
  • sys执行

    1
    2
    3
    4
    spool cat.log
    @?/rdbms/admin/catalog.sql
    @?/rdbms/admin/catproc.sql
    @?/rdbms/admin/utlrp.sql
  • system执行

    1
    2
    3
    spool pupbld.log
    @?/sqlplus/admin/pupbld.sql
    spool off

    创建em

    1
    2
    $ su - oracle
    $ emca -config dbcontrol db -repos create

    安装中出现的问题

运行./runInstaller出现中文汉字为方框

在/usr/lib/jvm/java-1.6.0/jre/lib/目录下建以下目录fonts/fallback,copy一种中文字体到些目录,并命名为zysong.ttf,安装提加参数
./runInstaller –jreLoc /usr/lib/jvm/java-1.6.0/jre即可解决中文方框问题。

运行netca时中文字体出现方框

拷贝zysong.ttf到$ORACLE_HOME/ jdk/jre/lib/fonts/fallback目录下解决乱码。

利用dbca创建数据库时提示ORA-12532

ORA-12532: TNS:invalid argument错误代码,是iptables没有开放1521端口,在iptables中添加以下条目-A INPUT -p tcp –dport 1521 -j ACCEPT解决问题。

运行sqlplus时中文为?错误

设置相应的环境变量NLS_LANG
export NLS_LANG=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK”
并将写入oracle目录下的.bash_profile文件中。

参考

基于VirtualBox在Linux 6.5上安装Oracle 11.2.0.4 第二讲 安装Oracle数据库并创建数据库 | Oracle数据库安装课程 | Oracle | dbDao