Centos7下静默安装Oracle 11g

[TOC]

Centos7下静默安装Oracle 11g(无图形化界面)

说明:

  • 因为使用的是静默安装,所以我们不需要安装Linux的图形界面,只需要对Linux进行最小化安装即可

前提准备

1. Centos7 的系统环境

  • 系统版本:CentOS Linux release 7.6.1810 (Core)
  • 腾讯云系统
  • 内核版本:
  • 系统配置
  • 交换空间

因为腾讯云的原因,默认是不提供swap分区的,这里需要自己手动添加一下。在别的系统上可以视情况而定。如果没有swap的分区的,在安装数据库的时候会出现报错。

1
2
3
4
5
dd if=/dev/zero of=/swap bs=1024 count=2048000
mkswap /swap
chmod 600 /swap
swapon /swap
echo "/swap swap swap default 0 0">>/etc/fstab #设置成自动挂载

2.配置hostname

此步骤不是必须滴

1
2
hostnamectl set-hostname oracledb
echo "127.0.0.1 oracledb" >>/etc/hosts

3.关闭selinux

此步骤可以视情况而定,本次案例安装的时候执行了此命令

1
2
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config  
setenforce 0

2. 下载Oracle

官网下载地址
根据自己的服务器,下载相应的软件,我的系统是centos7 64位的,所以下载是Linux x86-64的,下载完成后的两个文件如下:

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip
  • 说明:*
    Oracle系统下载的时候请下载Linux x86-64位的系统,请不要下载zlinux,zlinux是IBM的操作系统的一bai个版本。zLinux就是在baiIBM大机上装Linux,目前主要有RedHat与SUSE for z

3.检查软件依赖环境

注意:从Oracle 11g 11.2.0.2版本开始,在Linux x86_64上安装时,只需要安装64位的软件包,但是,对于11.2.0.2之前的任何Oracle database 11g,下表中列出的32位和64位的安装包都必须安装

需要安装的依赖包(版本号只能大于规定的版本,不能小于)

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
binutils-2.23.52.0.1-12.el7.x86_64 
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.i686
unixODBC-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64

安装命令

1
yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

安装完成后,检查依赖是否安装成功

1
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel | grep "not installed"

注:本次安装使用的是腾讯云的centos服务器,腾讯云的yum源已经有了。如果您使用的是其他环境,缺少那个依赖包,就手动下载安装即可。

4. 创建所需的操作系统组和用户

如果要安装Oracle数据库,则需要以下本地操作系统组和用户:

  • Oracle inventory组(通常为 oinstall)
  • OSDBA组 (通常为 dba)
  • OSOPER组 (通常为 oper)
  • Oracle软件所有者(通常为 oracle)

添加命令

1
2
3
4
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle

添加完成后,查看oracle用户

1
id oracle

修改oracle用户密码

1
passwd oracle

5. 配置内核参数和资源限制

  1. /etc/sysctl.conf添加如下的参数,如果系统中某个参数高于下面的参数的值。保留较大的值,下面的数值之事官方要求的最小值。可以根据系统调整数值。以优化系统性能。具体参数说明请详见[内核参数说明](# 6.内核参数说明)
1
2
3
4
5
6
7
8
9
10
11
12
13
vim /etc/sysctl.conf

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 = 1048576
  1. 使内核参数生效

    1
    sysctl -p 或者执行:/sbin/sysctl -p
  2. /etc/security/limits.conf中添加如下参数

    1
    2
    3
    4
    5
    6
    7
    vim /etc/security/limits.conf

    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    oracle soft stack 10240
  3. /etc/pam.d/login文件中,添加下面内容

    1
    2
    session required /lib64/security/pam_limits.so
    session required pam_limits.so
  4. /etc/profile文件中添加如下内容

    1
    2
    3
    4
    5
    6
    7
    8
    if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
    else
    ulimit -u 16384 -n 65536
    fi
    fi
  5. 使用/etc/profile文件生效

    1
    source /etc/profile
  6. 禁用使用Transparent HugePages(启用Transparent HugePages,可能会导致造成内存在运行时的延迟分配,Oracle官方建议使用标准的HugePages)

    • 查看是否启用 如果显示 [always]说明启用了

      1
      cat /sys/kernel/mm/transparent_hugepage/enabled
    • 禁用Transparent HugePages,在/etc/grub.conf添加如下内容

      1
      echo never > /sys/kernel/mm/transparent_hugepage/enabled
    • 重启系统以使更改成为永久更改:reboot

6.内核参数说明

  • fs.aio-max-nr:同时可以拥有的的异步IO请求数目。1048576 即 1024*1024 也就是 1024K 个
  • fs.file-max:系统允许打开的文件数。
  • kernel.shmall:设置共享内存总页数。这个值太小有可能导致数据库启动报错,计算公式为:内存(G)* 1024 1024*1024/4096,4096为getconfPAGE_SIZE得到分页大小
  • kernel.shmmax:Linux进程可以分配的单独共享内存段的最大值。一般设置为内存总大小的一半。这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此对于安装Oracle数据库的系统,shmmax的值应该比内存的二分之一大一些。
  • kernel.shmmni:设置系统级最大共享内存段数量。推荐最小值为4096
  • kernel.sem:从左到右分别为SEMMSL、SEMMNS、SEMOPM和SEMMNI。
    • SEMMSL:设置每个信号灯组中信号灯最大数量,推荐的最小值是250。对于系统中存在大量并发连接的系统,推荐将这个值设置为PROCESSES初始化参数加10
    • SEMMNS:设置系统中信号灯的最大数量。操作系统在分配信号灯时不会超过LEAST(SEMMNS,SEMMSLSEMMNI)。事实上,如果SEMMNS的值超过了SEMMSLSEMMNI是非法的,因此推荐SEMMNS的值就设置为SEMMSLSEMMNI。Oracle推荐SEMMNS的设置不小于32000,假如数据库的PROCESSES参数设置为600,则SEMMNS的设置应为:SQL> select (600+10)142 from dual;(600+10)*142/86620
    • SEMOPM:设置每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值。Oracle验证的10.2和11.1的SEMOPM的配置为100。
    • SEMMNI:设置系统中信号灯组的最大数量。Oracle10g和11g的推荐值为142
  • net.ipv4.ip_local_port_range:ip_local_port_range表示端口的范围,为指定的内容
  • net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。
  • net.core.rmem_max:表示接收套接字缓冲区大小的最大值(以字节为单位)
  • net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)
  • net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)

7. 创建oracle安装目录

如下目录,可以根据自己的实际情况可做修改。我这里使用的是/u01作为根目录的,这样在以后的配置的时候感觉会省很多的事情。主要也是为了与公司产品数据库安装的时候配置路径保持一致。

1
2
3
4
5
6
mkdir -p /u01/app/oracle 
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/

部分路径说明

  • ./app/oracle/product/11.2.0 :数据库系统安装目录
  • ./app/oracle/backup:数据备份目录
  • ./app/oracle/oraInventory:清单目录

8. 配置oracle用户环境变量

在文件~/.bash_profile里添加下面的内容(具体值根据实际情况修改)
切换到oracle用户:su - oracle

1
2
3
4
5
6
7
8
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_UNQNAME=ecology; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=ecology; export ORACLE_SID
PATH=$PATH:/u01/app/oracle/product/11.2.0/db_1/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin; export PATH
LD_LIBRARY_PATH=/lib:/lib:/usr/lib:$ORACLE_HOME/lib; exoprt LD_LIBRARY_PATH

9. 重启一下系统

1
reboot

10. 解压下载好的两个Oracle数据库

解压的顺序需要注意一下,先解压一,然后在解压二
将上传到系统的oracle安装包解压到上边新建的/u01路径下

1
2
unzip -q linux.x64_11gR2_database_1of2.zip -d /u01
unzip -q linux.x64_11gR2_database_2of2.zip -d /u01

创建一个新的文件夹,将解压后的应答文件放到新建的文件夹中,或者是在原路径下copy一份文件,最好是不要在原文件上修改

1
2
3
4
5
6
mkdir -p /data/etc
# 复制响应文件
cp /u01/database/response/* /data/etc/
#设置响应文件权限
su - root
chmod 700 /data/etc/*.rsp

复制到/data/etc目录下的文件作用

  • db_install.rsp:安装应答
  • dbca.rsp:创建数据库应答
  • netca.rsp:建立监听、本地服务名等网络设置应答
  • 特别是组件配置事后请用如右语句查询核实(select comp_id, comp_name, version, status from dba_registry)

/data/etc/db_install.rsp修改以下变量的值
在配置对应的文件前,请先阅读 11.db_install.rsp应答文件参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd /data/etc/
vim db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=xiaofeifei #用hostname命令查看
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true

11.db_install.rsp应答文件参数说明

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
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0//标注响应文件版本.注解文件版本,这个版本必须和要#安装的数据库版本相同,安装检验无法通过,不能更改 
oracle.install.option=INSTALL_DB_SWONLY #INSTALL_DB_SWONLY:只装数据库软件;INSTALL_DB_AND_CONFIG:安装数据库软件并建库;UPGRADE_DB:升级数据库
ORACLE_HOSTNAME=主机名 #指定操作系统主机名,通过hostname 命令获得
UNIX_GROUP_NAME=oinstall//指定oracle inventory目录的所有者
INVENTORY_LOCATION=/u01/app/oraInventory指定产品清单oracle inventory目录的路径,win平台下可以生路
SELECTED_LANGUAGES=en,zh_CN//指定语言,可以选择多个,用逗号隔开。选择en, zh_CN(英文和简体中文)
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1//设置ORALCE_HOME的路径
ORACLE_BASE=/u01/app/oracle//指定ORALCE_BASE的路径
oracle.install.db.InstallEdition=EE//安装数据库软件的版本,EE:企业版;SE:标准版;SEONE:标准版1
oracle.install.db.EEOptionsSelection=true//手动指定企业安装组件 选true对安装大小影响不大所以选true
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0//如果上面选true,这些就是手动指定的组件
oracle.install.db.DBA_GROUP=dba//指定拥有DBA用户组,通常会是dba组
oracle.install.db.OPER_GROUP=oper//指定oper用户组
oracle.install.db.CLUSTER_NODES=//指定所有的节点
oracle.install.db.isRACOneInstall=false//是否是RACO方式安装
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=//选择数据库的用途,一般用途/事物处理,数据仓库
oracle.install.db.config.starterdb.globalDBName=指定GlobalName
oracle.install.db.config.starterdb.SID=//你指定的SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8//设置数据库编码
oracle.install.db.config.starterdb.memoryOption=true//11g的新特性自动内存管理,也就是SGA_TARGET和PAG_AGGREGATE_TARGET都,不用设置了,Oracle会自动调配两部分大小,这个要选true
oracle.install.db.config.starterdb.memoryLimit=上面是true的情况下,指定Oracle自动管理内存的大小,这里不用填或者填写物理内存的40%左右等等自定义;
oracle.install.db.config.starterdb.installExampleSchemas=false是否载入模板示例
oracle.install.db.config.starterdb.enableSecuritySettings=true 是否启用安全设置
oracle.install.db.config.starterdb.password.ALL=123456所有用户名的密码
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL数据库本地管理工具DB_CONTROL,远程集中管理工具GRID_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=GRID_CONTROL需要设定grid control的远程路径URL
oracle.install.db.config.starterdb.automatedBackup.enable=false设置自动备份
oracle.install.db.config.starterdb.automatedBackup.osuid=.自动备份会启动一个job,指定启动JOB的系统用户ID
oracle.install.db.config.starterdb.automatedBackup.ospwd=自动备份会开启一个job,需要指定OSUser的密码
oracle.install.db.config.starterdb.storageType=要求指定使用的文件系统存放数据库文件还是ASM
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=使用文件系统存放数据库文件才需要指定数据文件、控制文件、Redo log的存放目录
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=使用文件系统存放数据库文件才需要指定备份恢复目录
oracle.install.db.config.asm.diskGroup=使用ASM存放数据库文件才需要指定存放的磁盘组
oracle.install.db.config.asm.ASMSNMPPassword=使用ASM存放数据库文件才需要指定ASM实例密码
MYORACLESUPPORT_USERNAME=指定metalink账户用户名
MYORACLESUPPORT_PASSWORD=指定metalink账户密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=用户是否可以设置metalink密码
DECLINE_SECURITY_UPDATES=true是否设置安全更新,
PROXY_HOST=代理服务器名
PROXY_PORT=代理服务器端口
PROXY_USER=代理服务器用户名
PROXY_PWD=代理服务器密码
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=SKIP_UPDATES 自动更新
oracle.installer.autoupdates.downloadUpdatesLoc=自动更新下载目录
AUTOUPDATES_MYORACLESUPPORT_USERNAME=自动更新的用户名
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=自动更新的密码

12. 开始安装

开始安装的命令:

1
2
3
su - oracle
cd /u01/database
./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq

安装期间可以使用tail命令监看oracle的安装日志

1
2
#日志文件名称根据自己的实际执行时间变更,这里的日志文件会在界面上打出,直接粘贴复制就OK
tail -f /data/app/oracle/inventory/logs/installActions2019-01-02_06-03-30PM.log

安装完成后有如下的提示,如果有类似的提示,说明安装完成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
You can find the log of this install session at:
/u01/app/oracle/inventory/logs/installActions2020-08-23_12-42-59AM.log
The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run

/u01/app/oracle/inventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

日志部分内容说明

13. 使用root用户执行对应的脚本

1
2
3
su - root
sh /u01/app/oracle/inventory/orainstRoot.sh
sh /u01/app/oracle/product/11.2.0/db_1/root.sh

14. 配置监听程序

1
2
su - oracle
netca /silent /responsefile /data/etc/netca.rsp

注意:这里使用的命令是:netca /silent /responsefile /data/etc/netca.rsp
而不是使用的netca -silent -responseFile /home/oracle/database/response/netca.rsp否则会报出如下的错误

1
2
3
4
5
****DISPLAY environment variable not set!
Oracle Net Configuration Assistant is a GUI tool
which requires that DISPLAY specify a location
where GUI tools can display.
Set and export DISPLAY, then re-run.

如果使用的是xmanage的连接工具,可以使用如下的命令进行设置(这个没有进行测试过)

1
2
3
解决方法:export DISPLAY=192.168.8.146:0.0
export DISPLAY=自己的ip:0.0
也有说的是把0.0改成1.0具体情况需要可以进行百度,网上有好多的处理方法

查看监听端口:

1
2
3
4
netstat -tnpl | grep 1521
[oracle@xiaofeifei database]$ netstat -tnpl | grep 1521

tcp6 0 0 :::1521 :::* LISTEN 8943/tnslsnr

15. 静默创建数据库

  1. 编辑应答文件/data/etc/dbca.rsp,部分参数说明请详见 [16.静默创建数据库部分参数说明](# 16. 静默创建数据库部分参数说明)

    1
    2
    3
    4
    5
    6
    7
    8
    GDBNAME = "ecology"
    SID = "ecology"
    SYSPASSWORD = "192612"
    SYSTEMPASSWORD = "192612"
    CHARACTERSET = "AL32UTF8"
    INSTANCENAME = "ecology"
    TOTALMEMORY = "800"
    DB_UNIQUE_NAME = "ecology"
  2. 执行静默建库

    1
    2
    su - oracle
    dbca -silent -responseFile /data/etc/dbca.rsp
  3. 执行过程如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    [oracle@xiaofeifei database]$ dbca -silent -responseFile /data/etc/dbca.rsp
    Copying database files
    1% complete
    3% complete
    11% complete
    18% complete
    26% complete
    37% complete
    Creating and starting Oracle instance
    40% complete
    45% complete
    50% complete
    55% complete
    56% complete
    60% complete
    62% complete
    Completing Database Creation
    66% complete
    70% complete
    73% complete
    85% complete
    96% complete
    100% complete
    Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ecology/ecology.log" for further details.
  4. 查看进程

    1
    ps -ef | grep ora_ | grep -v grep
  5. 查看监听状态

    1
    lsnrctl status

16. 静默创建数据库部分参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RESPONSEFILE_VERSION = "11.2.0"      #不能更改
OPERATION_TYPE = "createDatabase" #不变 默认即可
GDBNAME = "orcl" #数据库的名字,随便怎么改,不影响,自定义 比如"oracle11g.com"
SID = "orcl" #对应的实例名字instance_name,随便怎么改,不影响,自定义 比如"oracle11g.com"
TEMPLATENAME = "General_Purpose.dbc" #不变 默认即可 建库用的模板文件
SYSPASSWORD = "oracle" #SYS管理员密码 自定义
SYSTEMPASSWORD = "oracle" #SYSTEM管理员密码 自定义
DATAFILEDESTINATION = /data/app/oracle/oradata #数据文件存放目录 可自定义如/data目录但用户和组要是oracle:oinstall即mkdir /data ; chown -R oracle:oinstall /data ; chmod -R 775 /data; 当然此项默认是$ORACLE_BASE/oradata 此项本来是注释掉的,而$ORACLE_BASE/oradata就是/data/app/oracle/oradata,故此项可不用动,即保持注释掉即也可;
RECOVERYAREADESTINATION=/data/app/oracle/flash_recovery_area #恢复数据存放目录 闪回区 可自定义
CHARACTERSET = "AL32UTF8" #字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚,选AL32UTF8比较合适;
NATIONALCHARACTERSET= "AL16UTF16" #最好还是保持默认的"AL16UTF16",这里我选的UTF8可能出现了后面的PLSQL中文乱码;
#MEMORYPERCENTAGE = "40" #服务器物理内存分配给oracle的内存比例,这里先不选
#TOTALMEMORY = "3500" # //物理内存的60%左右,分配给oracle的总内存3500MB,可自行设定 或者注释不选因为oracle会自行管理;
#-----------------------*** End of CREATEDATABASE section ***------------------------
SOURCEDB = "myhost:1521:orcl" #End of CREATEDATABASE sectio后面的很多没有注释掉的选项不用管。

17. 至此数据库就安装成功了,下面我们登陆下数据库

1
2
3
su - oracle
sqlplus / as sysdba
select status from v$instance;

执行select时,会出现以下情况

1
2
3
4
5
6
7
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

解决方式:
输入startup

1
2
3
4
5
6
7
#startup的输出提示:
SQL> statup
SP2-0042: unknown command "statup" - rest of line ignored.
SQL> startup
#如果是在/u01的路径下则不会出现以下问题
#ORA-01078: failure in processing system parameters
#LRM-00109: could not open parameter file '/data/app/oracle/product/11.2.0/dbs/initORCL.ora'

激活scott用户:

1
2
3
alter user scott account unlock;
alter user scott identified by tiger;
select username,account_status from dba_users;

18. 设置Oracle开机启动

这个步骤还未进行操作….

19. 结合业务系统配置ecology数据库

  1. 创建Ecology数据库用户前的检查工作,首选需要确认监听是否正常

    • 切换到oracle用户下:su - oracle

    • 启动监听:lsnrctl start

    • 查看监听状态:lsnrctl status

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      [oracle@xiaofeifei database]$ lsnrctl status
      LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 23-AUG-2020 16:49:31
      Copyright (c) 1991, 2009, Oracle. All rights reserved.
      Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
      STATUS of the LISTENER
      Alias LISTENER
      Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
      Start Date 23-AUG-2020 11:02:27
      Uptime 0 days 5 hr. 47 min. 4 sec
      Trace Level off
      Security ON: Local OS Authentication
      SNMP OFF
      Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
      Listener Log File /u01/app/oracle/diag/tnslsnr/xiaofeifei/listener/alert/log.xml
      Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=xiaofeifei)(PORT=1521)))
      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
    • 使用sysdba登录后,查看数据库状态(READ WRITE 为正常读写状态)

    • 命令:select open_mode from v$database;

      1
      2
      3
      SQL> select open_mode from v$database;
      OPEN_MODE
      READ WRITE

    • 查看数据库数据文件存放目录。命令为:select name from v$datafile;

      1
      2
      3
      4
      5
      6
      7
      8
      9
      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
      /u01/app/oracle/oradata/ecology/ecology.dbf

  2. 创建OA数据库使用用户和表空间,并赋予用户权限

    • 创建OA 程序使用的表空间,表空间名为ECOLOGY,存储路径为/u01/app/oracle/oradata/ecology/ecology.dbf(此处存储路径是根据上面查询数据库数据文件存放目录确定的)。相关命令

      1
      2
      3
      create tablespace ecology datafile '/u01/app/oracle/oradata/ecology/ecology.dbf' size 2000M
      AutoExtend On Next 10M
      segment space management auto;
    • 创建用户,并关联用户使用的表空间和临时表空间,相关命令

      1
      CREATE USER ecology IDENTIFIED BY ecology DEFAULT TABLESPACE ecology TEMPORARY TABLESPACE Temp;
    • 赋予OA 数据库用户权限(金融等行业客户无法给予DBA 权限),相关命令为:

      1
      2
      3
      4
      grant connect,resource to ecology;
      alter user ecology quota unlimited on ecology;
      grant create view to ecology;
      grant DATAPUMP_EXP_FULL_DATABASE ,DATAPUMP_IMP_FULL_DATABASE to ecology;
    • 需要使用sysdba 用户执行,避免初始化时出现报错。相关命令为

      1
      alter system set "_allow_level_without_connect_by" = true;
    • (对于上述第三步操作说明)需要修改此参数主要是因为我们脚本中有些递归查询和上下级的查询使用了level 关
      键字,此语法在Oracle9i 版本中默认兼容支持,在10g 及之后的版本中需要修改上面的参
      数之后才能支持。