Linux下oracle数据库安装教程

准备工作:

1.关闭Linux的防火墙和SELinux,在/etc/hosts中加入本机IP和主机名;

2.由于oracle10g并没有支持centos7的安装,所以在安装oracle之前首先要配置centos-release文件

vim /etc/centos-release

将文件内容修改为redhat-4

3.安装oracle的依赖包,按顺序安装时可能有些会安装失败,这是由于他们之间相互依赖造成的,可以在所有的依赖包安装完后再次安装那些失败的依赖即可。

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

unixODBC-2.2.14-11.el6 (x86_64) or later

unixODBC-2.2.14-11.el6.i686 or later

unixODBC-devel-2.2.14-11.el6 (x86_64) or later

unixODBC-devel-2.2.14-11.el6.i686 or later

libXp

4.检查安装Oracle的硬件要求:使用命令df h,检查内存,交换区,硬盘空间等,要求安装目录要大于2G

5.添加用户组和用户并修改目录权限

groupadd dba

useradd -g dba oracle

mkdir -p /data/oracle

mkdir -p /data/oracle

mkdir -p /data/database

chown oracle:dba /data/oracle -R

chown oracle:dba /data/database -R

chown oracle:dba /data

6.修改环境变量

系统环境变量:在/etc/sysctl.conf文件加入以下配置,并执行/sbin/sysctl -p使之生效。

#use for oracle

net.ipv4.icmp_echo_ignore_broadcasts = 1

net.ipv4.conf.all.rp_filter = 1

#设置最大打开文件数

fs.file-max = 6815744

fs.aio-max-nr = 1048576

#共享内存的总量,8G内存设置:2097152*4k/1024/1024

kernel.shmall = 2097152

#最大共享内存的段大小

kernel.shmmax = 2147483648

#整个系统共享内存端的最大数

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

#可使用的IPv4端口范围

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= 1048576

vm.hugetlb_shm_group = 1001

用户环境变量:编辑 /home/oracle/.bash_profile,在后面追加以下环境变量值

export LANG=zh_CN.UTF-8

export LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

export ORACLE_HOME=/data/oracle/product/10g

export ORACLE_SID=centos

export ORACLE_BASE=/data/oracle

export PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/data/oracle/product/10g/bin

export LD_LIBRARY_PATH=/data/oracle/product/10g/lib:/opt/oracle/product/10g/network/lib

export CLASSPATH=/data/oracle/product/10g/product/jlib:/data/oracle/product/10g/jlib:/data/oracle/product/10g/jre

export ORA_NLS33=/data/oracle/product/10g/ocommon/nls/admin/data

export NLS_LANG=AMERICAN_AMERICA.UTF8

export ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH ORA_NLS33 NLS_LANG

export PATH=$PATH:$ORACLE_HOME/bin

执行如下指令,使其生效:

source /home/oracle/.bash_profile

7.vim /etc/security/limits.conf文件行末添加以下内容

# End of file

* soft nofile 65536

* hard nofile 65536

* soft nproc 65535

* hard nproc 65535

* soft sigpending 65535

* hard sigpending 65535

8.设置Oracle用户的profile文件:使用如下命令,root用户执行

su - root

vim /etc/profile

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

此外检查该配置文件中的ORACLE_HOME.bash_profile是否一致。

Oracle安装:

1.上传和解压软件包:oracle10g的基础包:x-10201.cpio.gz

gzip -d x-10201.cpio.gz  解压缩

cpio -idmv < x-10201.cpio  打开包

注:在/data/database/中进行解压和打开包

2.配置enterprise.rsp文件:注意,文件里标为 的地方都是必填项。标为 的都是可选项,一律跳过不看。

UNIX_GROUP_NAME="dba"

ORACLE_HOME="/data/oracle/product/10g"

ORACLE_HOME_NAME="OraDbHome1"

ORACLE_HOSTNAME="centos"

COMPONENT_LANGUAGES={"en","zh_CN"}

s_nameForDBAGrp="dba"

s_nameForOPERGrp="dba"

n_configurationOption=3

3.enterprise.rsp文件配置好后,开始oracle的静默安装

./runInstaller -ignoreSysPrereqs -silent -responseFile /data/database/database/response/enterprise.rsp

注:如果安装过程中出现乱码,可在当前窗口下执行如下指令(仅临时生效)

export LANG=en_US.UTF-8

4.使用root用户执行

/data/oracle/oraInventory/orainstRoot.sh

/data/oracle/product/10g/root.sh

5.实例环境的确认

export ORACLE_SID=centos

6.创建oracle需要的目录

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/adump

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/bdump

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/dpdump

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/udump

mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/pfile

7.建立密码文件

$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwcip password=manager force=y

8.使用oracle用户创建目录

/data/oracle/oradata/flash_recovery_area

/data/oracle/oradata/archlog

9.修改参数initcentos.ora文件

vim /data/oracle/product/10g/dbs/initcentos.ora

initcentos.ora配置文件配置如下:

db_name=centos

db_block_size= 8192

sga_max_size= 160M

control_files=”/data/oracle/oradata/control1.ctl”,”/data/oracle/oradata/control2.ctl”,”/data/oracle/oradata/control3.ctl”

undo_management=AUTO

undo_tablespace=UNDOTBS1

user_dump_dest=/data/oracle/admin/centos/udump

open_cursors=500

processes=20

job_queue_processes=10

db_files =2048

db_recovery_file_dest=/data/oracle/oradata/flash_recovery_area

db_recovery_file_dest_size=2048M

log_archive_dest_1=”LOCATION=/data/oracle/oradata/archlog”

log_archive_format=centos_%t_%s_%r.arch

10.连接到oralce

sqlplus "/as sysdba"    连接到数据库

startup nomount    启动数据库实例(仅启动实例,并没有mount数据库)

若使用sqlplus连接数据库出现乱码时,只需在/home/oracle/.bash_profile中修改NLS_LANG即可

export NLS_LANG=AMERICAN_AMERICA.UTF8

Startup nomount时的报错:

 

这种问题一般是/data/oracle/product/10g/dbs/目录下不存在initcentos.ora文件,或者是该文件权限有问题。

a.若是/data/oracle/product/10g/dbs/目录下不存在initcentos.ora文件,则要在/data/oracle/admin/centos/pfile/目录下找到文件init.ora.1242014234024(文件名并不一定相同),将它复制到/data/oracle/product/10g/dbs/目录下并改名为initcentos.ora。

b.若查看initcentos.ora文件权限

 

后得知是由于文件权限问题,将该文件的所属用户和用户组改为oracle和dba

cd /data/oracle/product/10g/dbs/

ls

chown oracle:dba initcentos.ora

c.关闭oracle实例

SHUTDOWN IMMEDIATE

11.建库

启动实例后,利用建库脚本创建数据库:

create database centos

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 4

MAXDATAFILES 2048

datafile '/data/oracle/oradata/system01.dbf' size 500M reuse autoextend on next 20M maxsize unlimited

sysaux datafile '/data/oracle/oradata/sysaux.dbf' size 200M autoextend on next 20M maxsize unlimited

default temporary tablespace temp tempfile '/data/oracle/oradata/temp01.dbf' size 200M reuse autoextend on next 20M maxsize unlimited

undo tablespace UNDOTBS1 datafile '/data/oracle/oradata/undotbs1.dbf' size 2048M reuse autoextend off

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

logfile group 1 ('/data/oracle/oradata/redo1.log') size 200M reuse,group 2 ('/data/oracle/oradata/redo2.log') size 200M reuse,group 3 ('/data/oracle/oradata/redo3.log') size 200M reuse

USER SYS IDENTIFIED BY manager USER SYSTEM IDENTIFIED BY manager;

12.创建表空间和用户

创建数据表空间

create tablespace centos

nologging

datafile '/data/oracle/oradata/centos01.dbf'

size 512m;

创建用户

create user centos identified by "centos"

default tablespace centos

temporary tablespace temp

profile DEFAULT

quota unlimited on centos;

授权:

grant dba to centos;

13.配置监听及启动监听

使用oracle用户执行如下操作:

vim /data/oracle/product/10g/network/admin/samples/listener.ora

对监听文件配置如下:

 LISTENER =

  (ADDRESS_LIST=

        (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))

        (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))

)

 SID_LIST_LISTENER=

  (SID_LIST=

        (SID_DESC=

                        #BEQUEATH CONFIG

          (GLOBAL_DBNAME=salesdb.mycompany)

          (SID_NAME=sid1)

          (ORACLE_HOME=/data/oracle/product/10g)

                        #PRESPAWN CONFIG

         (PRESPAWN_MAX=20)

          (PRESPAWN_LIST=

           (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))

         )

        )

       )

启动监听:

lsnrctl start

查看监听:

lsnrctl status

停止监听:

lsnrctl stop

14.运行数据字典脚本

首先要关闭上次启动的实例,然后再启动实例同时mount数据库

SHUTDOWN IMMEDIATE

quit

sqlplus “/ as sysdba”

startup

执行数据字典脚本,其中catalog和catproc是必需的,其它可选:

SQL> @/data/oracle/product/10g/rdbms/admin/catalog.sql(建数据字典视图)

SQL> @/data/oracle/product/10g/rdbms/admin/catproc.sql(建存储过程包)

SQL> @/data/oracle/product/10g/rdbms/admin/catblock.sql(建锁相关的几个视图)

SQL> @/data/oracle/product/10g/rdbms/admin/catoctk.sql(建密码工具包dbms_crypto_toolkit)

SQL> @/data/oracle/product/10g/rdbms/admin/owminst.plb(建工作空间管理相关对象,如dmbs_wm)

 

你可能感兴趣的:(数据库)