版本:(12.1.0.2.0) - Enterprise Edition
Oracle下载地址
官方文档
image.png


Linux

安装前配置

修改 hostname

Confirming Host Name Resolution
hostnamectl set-hostname $HOSTNAME
image.png
vi /etc/hosts IP对应主机名
image.png

关闭 selinux

image.png

关闭防火墙

image.png

oracle 依赖安装

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/supported-oracle-linux-7-distributions-for-x86-64.html#GUID-3E82890D-2552-4924-B458-70FFF02315F7

  1. yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel -y

image.png

重启

创建用户、组及权限配置

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/ladbi/required-operating-system-groups-and-users.html#GUID-EBE883F8-5692-43C6-9CEB-2953C2E2837D

  1. groupadd oinstall
  2. groupadd dba
  3. groupadd oper
  4. groupadd osoper
  5. useradd -g oinstall -G dba,oper,osoper oracle
  6. echo oracle | passwd --stdin oracle

image.png

上传安装程序

image.png

image.png

创建目录并解压程序

  1. mkdir -p /oracle/app/oracle/product/12.10.2
  2. mkdir /oracle/oradata
  3. mkdir /oracle/inventory
  4. mkdir /oracle/fast_recovery_area
  5. mkdir /oracle/oraclesetup
  6. # 解压程序
  7. unzip linuxx64_12101_database.zip -d /oracle/oraclesetup/
  8. # 授权
  9. chown -R oracle:oinstall /oracle
  10. chmod -R 775 /oracle

image.png

image.png

修改系统参数

内核参数

  1. vim /etc/sysctl.conf
  2. # 写入如下内容
  3. fs.aio-max-nr = 1048576
  4. fs.file-max = 6815744
  5. # 这个值8G为2097152,按比例调整
  6. kernel.shmall = 2097152
  7. # 这个值为内存(G)的一半*1024*1024*1024
  8. kernel.shmmax = 1073741824
  9. kernel.shmmni = 4096
  10. kernel.sem = 250 32000 100 128
  11. net.ipv4.ip_local_port_range = 9000 65500
  12. net.core.rmem_default = 262144
  13. net.core.rmem_max = 4194304
  14. net.core.wmem_default = 262144
  15. net.core.wmem_max = 1048576

image.png

oracle用户限制参数

  1. vim /etc/security/limits.conf
  2. # 写入如下内容
  3. oracle soft nproc 2047
  4. oracle hard nproc 16384
  5. oracle soft nofile 1024
  6. oracle hard nofile 65536
  7. oracle soft stack 10240

image.png

sysctl -p 立即生效刚才修改的内容
image.png

登录参数

  1. vim /etc/pam.d/login
  2. # 写入如下内容
  3. # 或者写绝对路径 session required /lib64/security/pam_limits.so
  4. session required pam_limits.so

image.png

image.png

环境变量

全局

  1. vim /etc/profile
  2. # 写入如下内容
  3. if [ $USER = "oracle" ]; then
  4. if [ $SHELL = "/bin/ksh" ]; then
  5. ulimit -p 16384
  6. ulimit -n 65536
  7. else
  8. ulimit -u 16384 -n 65536
  9. fi
  10. fi

image.png
Oracle 用户环境变量

  1. vim /home/oracle/.bash_profile
  2. # 写入如下内容
  3. ORACLE_BASE=/oracle/app/oracle
  4. ORACLE_HOME=$ORACLE_BASE/product/12.10.2
  5. ORACLE_SID=orcl12c
  6. PATH=$ORACLE_HOME/bin:$PATH
  7. export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

ORACLE_SID=orcl12c 此处sid应与后面步骤创建的实例id一致
**
image.png

安装操作

切换到 Oracle 用户

复制安装文件

  1. su - oracle
  2. cp -R /oracle/oraclesetup/database/response/ . && cd response
  3. vim db_install.rsp

编辑 db_install.rsp

  1. oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0
  2. oracle.install.option=INSTALL_DB_SWONLY
  3. +++++++++++++++++++++++++++++++
  4. ORACLE_HOSTNAME=oracle 要改成主机名
  5. +++++++++++++++++++++++++++++++
  6. UNIX_GROUP_NAME=oinstall
  7. INVENTORY_LOCATION=/oracle/inventory
  8. SELECTED_LANGUAGES=en,zh_CN
  9. ORACLE_HOME=/oracle/product/12.10.2
  10. ORACLE_BASE=/oracle
  11. oracle.install.db.InstallEdition=EE
  12. oracle.install.db.DBA_GROUP=dba
  13. oracle.install.db.OPER_GROUP=dba
  14. oracle.install.db.BACKUPDBA_GROUP=dba
  15. oracle.install.db.DGDBA_GROUP=dba
  16. oracle.install.db.KMDBA_GROUP=dba
  17. oracle.install.db.rac.configurationType=
  18. oracle.install.db.CLUSTER_NODES=
  19. oracle.install.db.isRACOneInstall=
  20. oracle.install.db.racOneServiceName=
  21. oracle.install.db.rac.serverpoolName=
  22. oracle.install.db.rac.serverpoolCardinality=
  23. oracle.install.db.config.starterdb.type=
  24. oracle.install.db.config.starterdb.globalDBName=
  25. oracle.install.db.config.starterdb.SID=
  26. oracle.install.db.ConfigureAsContainerDB=
  27. oracle.install.db.config.PDBName=
  28. oracle.install.db.config.starterdb.characterSet=
  29. oracle.install.db.config.starterdb.memoryOption=
  30. oracle.install.db.config.starterdb.memoryLimit=
  31. oracle.install.db.config.starterdb.installExampleSchemas=
  32. oracle.install.db.config.starterdb.password.ALL=
  33. oracle.install.db.config.starterdb.password.SYS=
  34. oracle.install.db.config.starterdb.password.SYSTEM=
  35. oracle.install.db.config.starterdb.password.DBSNMP=
  36. oracle.install.db.config.starterdb.password.PDBADMIN=
  37. oracle.install.db.config.starterdb.managementOption=
  38. oracle.install.db.config.starterdb.omsHost=
  39. oracle.install.db.config.starterdb.omsPort=
  40. oracle.install.db.config.starterdb.emAdminUser=
  41. oracle.install.db.config.starterdb.emAdminPassword=
  42. oracle.install.db.config.starterdb.enableRecovery=
  43. oracle.install.db.config.starterdb.storageType=
  44. oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
  45. oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
  46. oracle.install.db.config.asm.diskGroup=
  47. oracle.install.db.config.asm.ASMSNMPPassword=
  48. MYORACLESUPPORT_USERNAME=
  49. MYORACLESUPPORT_PASSWORD=
  50. SECURITY_UPDATES_VIA_MYORACLESUPPORT=
  51. DECLINE_SECURITY_UPDATES=true
  52. PROXY_HOST=
  53. PROXY_PORT=
  54. PROXY_USER=
  55. PROXY_PWD=
  56. COLLECTOR_SUPPORTHUB_URL=

执行安装响应文件

  1. /oracle/oraclesetup/database/runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq

切换到root用户

  1. sh /home/oracle/inventory/orainstRoot.sh
  2. sh /home/oracle/product/12.10.2/root.sh

image.png

配置静默方式监听

  1. netca /silent /responseFile /home/oracle/response/netca.rsp
  2. ++++++++++++++++++++++++++ 重点
  3. export DISPLAY=:0.0
  4. vim /home/oracle/response/dbca.rsp

dbca.rsp
设置后密码为 password ,将替换成自己想要的即可

  1. [GENERAL]
  2. RESPONSEFILE_VERSION = "12.1.0"
  3. OPERATION_TYPE = "createDatabase"
  4. [CREATEDATABASE]
  5. GDBNAME = "orcl12c"
  6. SID = "orcl12c"
  7. TEMPLATENAME = "General_Purpose.dbc"
  8. SYSPASSWORD = "password"
  9. SYSTEMPASSWORD = "password"
  10. DBSNMPPASSWORD = "password"
  11. DATAFILEDESTINATION =/oracle/oradata
  12. RECOVERYAREADESTINATION=/oracle/fast_recovery_area
  13. CHARACTERSET = "ZHS16GBK"
  14. ## 总内存的 80%
  15. TOTALMEMORY = "26214"
  16. [createTemplateFromDB]
  17. SOURCEDB = "myhost:1521:orcl"
  18. SYSDBAUSERNAME = "system"
  19. TEMPLATENAME = "My Copy TEMPLATE"
  20. [createCloneTemplate]
  21. SOURCEDB = "orcl"
  22. TEMPLATENAME = "My Clone TEMPLATE"
  23. [DELETEDATABASE]
  24. SOURCEDB = "orcl"
  25. [generateScripts]
  26. TEMPLATENAME = "New Database"
  27. GDBNAME = "orcl12c"
  28. [CONFIGUREDATABASE]
  29. DBSNMPPASSWORD = "password"
  30. [ADDINSTANCE]
  31. DB_UNIQUE_NAME = "orcl12c"
  32. INSTANCENAME = "orcl12c"
  33. NODENAME=
  34. SYSDBAUSERNAME = "sys"
  35. [DELETEINSTANCE]
  36. DB_UNIQUE_NAME = "orcl12c"
  37. INSTANCENAME = "orcl12c"
  38. SYSDBAUSERNAME = "sys"
  39. SYSDBAPASSWORD = "password"
  40. [CREATEPLUGGABLEDATABASE]
  41. SOURCEDB = "orcl"
  42. PDBNAME = "PDB1"
  43. [UNPLUGDATABASE]
  44. SOURCEDB = "orcl"
  45. PDBNAME = "PDB1"
  46. ARCHIVETYPE = "TAR"
  47. [DELETEPLUGGABLEDATABASE]
  48. SOURCEDB = "orcl"
  49. PDBNAME = "PDB1"
  50. [CONFIGUREPLUGGABLEDATABASE]
  51. SOURCEDB = "orcl"
  52. PDBNAME = "PDB1"

执行安装

dbca  -silent -responseFile /home/oracle/response/dbca.rsp

image.png
完成后可以使用lsnrctl status 查看监听状态,如果现实ready则正常。
image.png

firewall-cmd --permanent --zone=public --add-port=1521/tcp
firewall-cmd --reload

测试
image.png

设置开机启动

  1. vim /data/oracle/product/12.10.2/bin/dbstart

将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME

  1. vim /data/oracle/product/12.10.2/bin/dbshut

将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME

  1. vim /etc/oratab

将 orcl:/data/oracle/product/12.10.2:N 中最后的N改为Y,成为 orcl:/data/oracle/product/12.10.2:Y

  1. 切换到root账户建立自启动脚本 su - root ,vim /etc/rc.d/init.d/oracle 添加以下内容:
    #!/bin/bash
    #chkconfig: 2345 80 25
    # /etc/init.d/oracle
    # description: ORACLE 12c Server
    # Run-level Startup script. for the Oracle Listener and Instances
    # It relies on the information on /etc/oratab
    export ORACLE_BASE=/oracle
    export ORACLE_HOME=/oracle/product/12.10.2
    export ORACLE_SID=orcl12c
    export ORACLE_OWNR=oracle
    export PATH=$PATH:$ORACLE_HOME/bin
    LOCK_FILE=/var/lock/oracle
    if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
    then
    echo "Oracle startup: cannot start"
    exit 1
    fi
    case "$1" in
    start)
    # Oracle listener and instance startup
    if [ -f $LOCK_FILE ];then
    echo $0 oracle is already running!
    else
    echo -n "Starting Oracle: "
    su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
    su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
    touch $LOCK_FILE
    echo "OK"
    fi
    ;;
    stop)
    # Oracle listener and instance shutdown
    if [ ! -f $LOCK_FILE ];then
    echo $0 oracle is already stopping!
    else
    echo -n "Shutdown Oracle: "
    su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
    su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
    rm -f $LOCK_FILE
    echo "OK"
    fi
    ;;
    reload|restart)
    $0 stop
    $0 start
    ;;
    status)
    if [ -f $LOCK_FILE ];then
    echo $0 oracle is already running!
    else
    echo $0 oracle is already stopping!
    fi
    ;;
    *)
    echo "Usage: `basename $0` start|stop|restart|reload"
    exit 1
    esac
    exit 0
    

    配置开机启动

    ```bash chmod 755 /etc/init.d/oracle chkconfig oracle on service oracle start/stop/restart

监听操作

lsnrctl start lsnrctl stop lsnrctl status

数据库连接操作
```plsql
sqlplus / as sysdba
select status from v$instance;
# open则代表正常。
# 打开数据库实例
startup
# 关闭实例
shutdown immediate

问题

安装过程中的问题:

1.swap区大小不够用

解决方法:增加Swap分区,在命令行执行以下命令

#增加1G大小的交换分区 
dd if=/dev/zero of=/home/swapfile bs=1M count=1024
#建立swap的文件系统
mkswap /home/swapfile
#立即启用交换分区文件
swapon /home/swapfile 
#使系统开机时自启动,编辑 fstab文件 vi /etc/fstab,添加以下一行内容
/home/swapfile swap swap defaults 0 0

2.net service name没有指定

image.png
解决: export ORACLE_SID=orcl12 ,然后重新登录。

3.startup 启动数据库出现 ORA-01078 和 LRM-00109 问题

image.png
找到oracle安装目录下的 admin/orcl12c/pfile/init.ora.31120196443
init 文件名不一样
cp /oracle/admin/orcl12c/pfile/init.ora.31120196443 /oracle/product/12.10.2/dbs/initorcl12.ora