1. 程式人生 > >Linux下oracle資料庫安裝教程

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檔案:注意,檔案裡標為 <Value Required> 的地方都是必填項。標為 <Value Unspecified> 的都是可選項,一律跳過不看。

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)