Bootstrap

Linux静默安装Oracle12c

  1. 环境
    1. Linux系统:Centos7
    2. Oracle版本:12.2.0.1
  2. 安装包下载
    1. 官网下载:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html
    2. 百度网盘下载:
      1. rpm安装包下载链接:百度网盘 请输入提取码 提取码:mk59
      2. oracle安装包下载链接:百度网盘 请输入提取码 提取码:wgq4
  3. 配置yum源
    1. yum clean all && yum makecache
  4. 关闭selinux&iptables
    1. vim /etc/selinux/config
      1. SELINUX=disabled
    2. service iptables stop
  5. 安装oracle依赖包关系
    1. yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11 libX11.i686 libXau libXau.i686 libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libxcb.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel gcc gcc-c++ libXext libXext.i686 zlib-devel zlib-devel.i686
    2. 也可以自行下载rpm安装包进行安装安装
  6. 修改内核参数
    1. 内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行sysctl -p命令使新配置立即生效。
    2. vim /etc/sysctl.conf 请根据自己实际情况修改,内核参数如下
fs.file-max = 6815744

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

kernel.panic_on_oops = 1

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

net.ipv4.ip_local_port_range = 9000 65500
    1. /sbin/sysctl -p 刷新内核参数表
  1. 修改内核限制参数
    1. vim /etc/security/limits.d/20-nproc.conf
oracle soft nofile 1024

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

oracle soft stack 10240

oracle hard stack 32768

oracle hard memlock 134217728

oracle soft memlock 134217728
  1. 创建oracle帐号和组
    1. groupadd -g 54321 oinstall
      groupadd -g 54322 dba
      groupadd -g 54323 oper
      useradd -u 54321 -g oinstall -G dba,oper oracle
      passwd oracle
  2. 创建相关数据库目录
    1. mkdir /u01
      mkdir /u01/app
      mkdir -p /u01/app/oracle/oradata //存放数据库的数据目录
      mkdir -p /u01/app/oracle/oradata_back //存放数据库备份文件
      chmod -R 775 /u01/app
      chown -R oracle:oinstall /u01
  3. 修改oracle环境变量
    1. vim etc/oracle/.base_profile
export TMP=/tmp #日志存放位置

export TMPDIR=$TMP

export ORACLE_HOSTNAME=iZ8vb4546h4wxkqejoq5i8Z #主机名,hostname可查看主机名,如果主机名错误会导致安装失败

export ORACLE_UNQNAME=cdb1 #库名称

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0.1/db_1

export ORACLE_SID=cdb1 #库名称

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
  • source home/oracle/.bash_profile
  • 上传Oracle12c安装包至/opt目录下
  • 解压oracle二进制包至/u01目录下 (解压的目录默认名为database)
    1. unzip Oracle_12C_liunx_64.zip -d /u01
      chown -R oracle:oinstall /u01
  • 修改配置文件
    1. 参考文件:oracle静默安装文件db_install.rsp详解-bobower-ChinaUnix博客
    2. vim /u01/database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.2.0

oracle.install.option=INSTALL_DB_SWONLY //30行安装类型,只装数据库软件

UNIX_GROUP_NAME=oinstall //35行

INVENTORY_LOCATION=/u01/app/oracle/oraInventory //42行INVENTORY目录(不填就是默认值)

ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1 //46行oracle目录

ORACLE_BASE=/u01/app/oracle //51行

oracle.install.db.InstallEdition=EE //63行oracle版本

oracle.install.db.OSDBA_GROUP=dba //80行

oracle.install.db.OSOPER_GROUP=oper //86行 自定义安装,否,使用默认组件

oracle.install.db.OSBACKUPDBA_GROUP=dba //91行

oracle.install.db.OSDGDBA_GROUP=dba //96行

oracle.install.db.OSKMDBA_GROUP=dba //101行

oracle.install.db.OSRACDBA_GROUP=dba //106行

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //180行数据库类型

oracle.install.db.config.starterdb.globalDBName=cdb1 //185行

oracle.install.db.config.starterdb.SID=cdb1 //190行

oracle.install.db.config.starterdb.characterSet=AL32UTF8 //216行

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //386行

DECLINE_SECURITY_UPDATES=true //398行
  1. 切换至oracle用户开始安装
    1. cd /u01/database
      ./runInstaller -force -silent -noconfig -ignorePrereq -responseFile /u01/database/response/db_install.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB. Actual 61072 MB Passed

Checking swap space: must be greater than 150 MB. Actual 511 MB Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2022-12-13_11-17-36AM. Please wait ...You have mail in /var/spool/mail/root

[oracle@iZ8vb4546h4wxkqejoq5i8Z database]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.

ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.

You can find the log of this install session at:

/u01/app/oracle/oraInventory/logs/installActions2022-12-13_11-17-36AM.log
      1. 报错Checking swap space: 0 MB available, 150 MB required. Failed
      2. 解决方案(切换至root用户,修改完成之后切换至oracle用户)
        1. 检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令
          1. swapon -s
          2. 如果返回的信息概要是空的,则表示 Swap 文件不存在
        2. 检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令
          1. df -hal
        3. 创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。
          1. dd if=/dev/zero of=/swapfile bs=1024 count=512k
            1. 报错dd: failed to open ‘/swapfile’: Permission denied
            2. 这是权限被拒绝了,需要切换到root用户
          2. 参数解读:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。
        4. 格式化并激活 Swap 文件上面已经创建好 Swap 文件,还需要格式化后才能使用
          1. mkswap /swapfile
        5. 激活 Swap ,运行命令:
          1. swapon /swapfile
        6. 以上步骤做完,再次运行命令:
          1. swapon -s
          2. 你会发现返回的信息概要:
          3. Filename Type Size Used Priority

                                                                /swapfile file 524284 0 -1

        1. 如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 vim 打开 /etc/fstab 文件,在其最后添加如下一行
          1. /swapfile swap swap defaults 0 0
        2. 最后,赋予 Swap 文件适当的权限:
          1. chown root:root /swapfile

                                                        chmod 0600 /swapfile

    1. 可以边安装边看日志
      1. tail -f /u01/app/oracle/oraInventory/logs/installActions2022-12-13_11-17-36AM.log
    2. 安装完成
As a root user, execute the following script(s):

1. /u01/app/oracle/oraInventory/orainstRoot.sh

2. /u01/app/oracle/product/12.2.0.1/db_1/root.sh

Successfully Setup Software.
  1. 切换至root用户
    1. 执行脚本
      1. /u01/app/oracle/oraInventory/orainstRoot.sh
      2. /u01/app/oracle/product/12.2.0.1/db_1/root.sh
  2. 静默配置监听,切换至oracle用户
    1. netca -silent -responsefile /u01/database/response/netca.rsp
      1. netca命令是oracle提供的命令,如果显示找不到命令请检查环境变量
  3. 通过netstat -tlnp 命令查看监听地址
    1. tcp6 0 0 :::1521 :::* LISTEN 3145/tnslsnr
  4. 静默建立新库
    1. vim /u01/database/response/dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0 //21行不可更改

gdbName=cdb1 //32

sid=cdb1 //42

databaseConfigType=SI //52

policyManaged=false //74

createServerPool=false //88

force=false //127

createAsContainerDatabase=true //163

numberOfPDBs=1 //172

pdbName=cdb1pdb //182

useLocalUndoForPDBs=true //192

templateName=/u01/app/oracle/product/12.2.0.1/db_1/assistants/dbca/templates/General_Purpose.dbc //223

emExpressPort=5500 //273

runCVUChecks=false //284

omsPort=0 //313

dvConfiguration=false //341

olsConfiguration=false //391

datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/ //401

datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/ //411

recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME} //421

storageType=FS //431

characterSet=AL32UTF8 //468字符集创建库之后不可更改

nationalCharacterSet=AL16UTF16 //478

registerWithDirService=false //488

listeners=LISTENER //526

variables=DB_UNIQUE_NAME=cdb1,ORACLE_BASE=/u01/app/oracle,PDB_NAME=,DB_NAME=cdb1,ORACLE_HOME=/u01/app/oracle/product/12.2.0.1/db_1,SID=cdb1 //546

initParams=undo_tablespace=UNDOTBS1,memory_target=796MB,processes=300,db_recovery_file_dest_size=2780MB,nls_language=AMERICAN,dispatchers=(PROTOCOL=TCP) (SERVICE=cdb1XDB),db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME},db_block_size=8192BYTES,diagnostic_dest={ORACLE_BASE},audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,nls_territory=AMERICA,local_listener=LISTENER_CDB1,compatible=12.2.0,control_files=("{ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/control01.ctl", "{ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}/control02.ctl"),db_name=cdb1,audit_trail=db,remote_login_passwordfile=EXCLUSIVE,open_cursors=300 //555 可修改

sampleSchema=false //565

memoryPercentage=40 //574

databaseType=MULTIPURPOSE //584

automaticMemoryManagement=true //594

totalMemory=0 //604
    1. cd /u01/database
    2. dbca -silent -createDatabase -responseFile /u01/database/response/dbca.rsp
      1. 报错:[FATAL] [DBT-11211] The Automatic Memory Management option is not allowed when the total physical memory is greater than 4GB.
      2. 解决方案,将dbca.rsp配置文件中的automaticMemoryManagement=true改为automaticMemoryManagement=FALSE
  • 数据库操作
    1. sqlplus / as sysdba //登录数据库
    2. select open_mode from v$database;
    3. select status from v$instance;
    4. alter user sys identified by oracle; //改sys超级管理员密码
    5. alter user system identified by oracle; //改system管理员密码
    6. exit // 退出数据库
    7. sqlplus sys/oracle as sysdba //使用sys超级管理员登录数据库
    8. startup // 启动数据库
    9. Select name from v$database; //查看数据库
    10. Shutdown abort //关闭数据库
    11. conn system/oracle //切换用户conn后面直接跟用户名和密码就可以
;