美文网首页
Linux上安装Oracle 19c

Linux上安装Oracle 19c

作者: CodingCode | 来源:发表于2022-10-14 07:23 被阅读0次
    1. pre-install
    $ sudo yum update
    $ sudo yum install libstdc++-devel libaio-devel compat-libcap1-1.10
    
    
    $ sudo yum install oracle-database-preinstall-19c
    

    注意这里可是使用20c, or 21c,即可以使用最新的,(因为这个是database-preinstall,而不是最终的database),例如:
    $ sudo yum install -y oracle-database-preinstall-21c.x86_64

    $ sudo passwd oracle
    

    修改oracle用户密码,这个oracle用户由前面的oracle-database-preinstall-19c创建。

    $ id oracle
    uid=...(oracle) gid=...(oinstall) groups=...(oinstall),...(dba),...
    

    注意这里oracle的属组是oinstall,用些系统需要把oracle加入到dba组中,那么在此可以手动加入:
    $ sudo usermod -a -G dba oracle

    修改SELINUX值在文件/etc/selinux/config

    $ sudo vim /etc/selinux/config
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of three two values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    

    把SELINUX改成permissive或者干脆disabled,然后重启机器生效。

    关闭防火墙

    $ sudo systemctl stop firewalld
    $ sudo systemctl disable firewalld
    

    创建/etc/oraInst.loc

    $ sudo vim /etc/oraInst.loc
    inventory_loc=/home/oracle/app/oraInventory
    inst_group=oinstall
    

    创建文件夹用来安装数据库

    $ sudo su - oracle
    
    ## now, we are oracle user
    $ mkdir -p ~/app/oracle/product/19c/db_1
    $ mkdir -p ~/app/oracle/oradata
    $ mkdir -p ~/app/oracle/FRA
    

    准备oracle安装环境变量,把下列项添加到oracle用户的~/.bash_profile文件中:

    export ORACLE_HOSTNAME=$(hostname)
    export ORACLE_UNQNAME=orcl
    export ORACLE_BASE=${HOME}/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/19c/db_1
    export ORACLE_SID=orcl
    
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
    export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$CLASSPATH
    
    1. start install
    $ sudo su - oracle
    $ echo $ORACLE_HOME
    /home/oracle/app/oracle/product/19c/db_1
    $ cd $ORACLE_HOME
    $ unzip /path/to/LINUX.X64_193000_db_home.zip
    
    ## interactive mode.
    $ ./runInstaller
    
    ## or. silent mode.
    $ ./runInstaller -silent -responseFile /path/to/r19c_install.rsp
    

    r19c_install.rsp的例子:

    $ cat r19c_install.rsp
    ####################################################################
    ## Copyright(c) Oracle Corporation 1998,2019. All rights reserved.##
    ##                                                                ##
    ## Specify values for the variables listed below to customize     ##
    ## your installation.                                             ##
    ##                                                                ##
    ## Each variable is associated with a comment. The comment        ##
    ## can help to populate the variables with the appropriate        ##
    ## values.                                                        ##
    ##                                                                ##
    ## IMPORTANT NOTE: This file contains plain text passwords and    ##
    ## should be secured to have read permission only by oracle user  ##
    ## or db administrator who owns this installation.                ##
    ##                                                                ##
    ####################################################################
    
    
    #------------------------------------------------------------------------------
    # Do not change the following system generated value.
    #------------------------------------------------------------------------------
    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
    
    #-------------------------------------------------------------------------------
    # Specify the installation option.
    # It can be one of the following:
    #   - INSTALL_DB_SWONLY
    #   - INSTALL_DB_AND_CONFIG
    #-------------------------------------------------------------------------------
    oracle.install.option=INSTALL_DB_SWONLY
    
    #-------------------------------------------------------------------------------
    # Specify the Unix group to be set for the inventory directory.
    #-------------------------------------------------------------------------------
    UNIX_GROUP_NAME=oinstall
    
    #-------------------------------------------------------------------------------
    # Specify the location which holds the inventory files.
    # This is an optional parameter if installing on
    # Windows based Operating System.
    #-------------------------------------------------------------------------------
    INVENTORY_LOCATION=/home/oracle/app/oraInventory
    
    #-------------------------------------------------------------------------------
    # Specify the complete path of the Oracle Base.
    #-------------------------------------------------------------------------------
    ORACLE_BASE=/home/oracle/app/oracle
    
    #-------------------------------------------------------------------------------
    # Specify the installation edition of the component.
    #
    # The value should contain only one of these choices.
    
    #   - EE     : Enterprise Edition
    
    #   - SE2     : Standard Edition 2
    
    
    #-------------------------------------------------------------------------------
    
    oracle.install.db.InstallEdition=EE
    ###############################################################################
    #                                                                             #
    # PRIVILEGED OPERATING SYSTEM GROUPS                                          #
    # ------------------------------------------                                  #
    # Provide values for the OS groups to which SYSDBA and SYSOPER privileges     #
    # needs to be granted. If the install is being performed as a member of the   #
    # group "dba", then that will be used unless specified otherwise below.       #
    #                                                                             #
    # The value to be specified for OSDBA and OSOPER group is only for UNIX based #
    # Operating System.                                                           #
    #                                                                             #
    ###############################################################################
    
    #------------------------------------------------------------------------------
    # The OSDBA_GROUP is the OS group which is to be granted SYSDBA privileges.
    #-------------------------------------------------------------------------------
    oracle.install.db.OSDBA_GROUP=dba
    
    #------------------------------------------------------------------------------
    # The OSOPER_GROUP is the OS group which is to be granted SYSOPER privileges.
    # The value to be specified for OSOPER group is optional.
    #------------------------------------------------------------------------------
    oracle.install.db.OSOPER_GROUP=oper
    
    #------------------------------------------------------------------------------
    # The OSBACKUPDBA_GROUP is the OS group which is to be granted SYSBACKUP privileges.
    #------------------------------------------------------------------------------
    oracle.install.db.OSBACKUPDBA_GROUP=backupdba
    
    #------------------------------------------------------------------------------
    # The OSDGDBA_GROUP is the OS group which is to be granted SYSDG privileges.
    #------------------------------------------------------------------------------
    oracle.install.db.OSDGDBA_GROUP=dgdba
    
    #------------------------------------------------------------------------------
    # The OSKMDBA_GROUP is the OS group which is to be granted SYSKM privileges.
    #------------------------------------------------------------------------------
    oracle.install.db.OSKMDBA_GROUP=kmdba
    
    #------------------------------------------------------------------------------
    # The OSRACDBA_GROUP is the OS group which is to be granted SYSRAC privileges.
    #------------------------------------------------------------------------------
    oracle.install.db.OSRACDBA_GROUP=racdba
    ################################################################################
    #                                                                              #
    #                      Root script execution configuration                     #
    #                                                                              #
    ################################################################################
    
    #-------------------------------------------------------------------------------------------------------
    # Specify the root script execution mode.
    #
    #   - true  : To execute the root script automatically by using the appropriate configuration methods.
    #   - false : To execute the root script manually.
    #
    # If this option is selected, password should be specified on the console.
    #-------------------------------------------------------------------------------------------------------
    oracle.install.db.rootconfig.executeRootScript=false
    
    #--------------------------------------------------------------------------------------
    # Specify the configuration method to be used for automatic root script execution.
    #
    # Following are the possible choices:
    #   - ROOT
    #   - SUDO
    #--------------------------------------------------------------------------------------
    oracle.install.db.rootconfig.configMethod=
    #--------------------------------------------------------------------------------------
    # Specify the absolute path of the sudo program.
    #
    # Applicable only when SUDO configuration method was chosen.
    #--------------------------------------------------------------------------------------
    oracle.install.db.rootconfig.sudoPath=
    
    #--------------------------------------------------------------------------------------
    # Specify the name of the user who is in the sudoers list.
    # Applicable only when SUDO configuration method was chosen.
    # Note:For Single Instance database installations,the sudo user name must be the username of the user installing the database.
    #--------------------------------------------------------------------------------------
    oracle.install.db.rootconfig.sudoUserName=
    
    ###############################################################################
    #                                                                             #
    #                               Grid Options                                  #
    #                                                                             #
    ###############################################################################
    
    #------------------------------------------------------------------------------
    # Value is required only if the specified install option is INSTALL_DB_SWONLY
    #
    # Specify the cluster node names selected during the installation.
    #
    # Example : oracle.install.db.CLUSTER_NODES=node1,node2
    #------------------------------------------------------------------------------
    oracle.install.db.CLUSTER_NODES=
    
    ###############################################################################
    #                                                                             #
    #                        Database Configuration Options                       #
    #                                                                             #
    ###############################################################################
    
    #-------------------------------------------------------------------------------
    # Specify the type of database to create.
    # It can be one of the following:
    #   - GENERAL_PURPOSE
    #   - DATA_WAREHOUSE
    # GENERAL_PURPOSE: A starter database designed for general purpose use or transaction-heavy applications.
    # DATA_WAREHOUSE : A starter database optimized for data warehousing applications.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
    
    #-------------------------------------------------------------------------------
    # Specify the Starter Database Global Database Name.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.globalDBName=
    
    #-------------------------------------------------------------------------------
    # Specify the Starter Database SID.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.SID=
    
    #-------------------------------------------------------------------------------
    # Specify whether the database should be configured as a Container database.
    # The value can be either "true" or "false". If left blank it will be assumed
    # to be "false".
    #-------------------------------------------------------------------------------
    oracle.install.db.ConfigureAsContainerDB=false
    
    #-------------------------------------------------------------------------------
    # Specify the  Pluggable Database name for the pluggable database in Container Database.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.PDBName=
    
    #-------------------------------------------------------------------------------
    # Specify the Starter Database character set.
    #
    #  One of the following
    #  AL32UTF8, WE8ISO8859P15, WE8MSWIN1252, EE8ISO8859P2,
    #  EE8MSWIN1250, NE8ISO8859P10, NEE8ISO8859P4, BLT8MSWIN1257,
    #  BLT8ISO8859P13, CL8ISO8859P5, CL8MSWIN1251, AR8ISO8859P6,
    #  AR8MSWIN1256, EL8ISO8859P7, EL8MSWIN1253, IW8ISO8859P8,
    #  IW8MSWIN1255, JA16EUC, JA16EUCTILDE, JA16SJIS, JA16SJISTILDE,
    #  KO16MSWIN949, ZHS16GBK, TH8TISASCII, ZHT32EUC, ZHT16MSWIN950,
    #  ZHT16HKSCS, WE8ISO8859P9, TR8MSWIN1254, VN8MSWIN1258
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.characterSet=
    
    #------------------------------------------------------------------------------
    # This variable should be set to true if Automatic Memory Management
    # in Database is desired.
    # If Automatic Memory Management is not desired, and memory allocation
    # is to be done manually, then set it to false.
    #------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.memoryOption=false
    
    #-------------------------------------------------------------------------------
    # Specify the total memory allocation for the database. Value(in MB) should be
    # at least 256 MB, and should not exceed the total physical memory available
    # on the system.
    # Example: oracle.install.db.config.starterdb.memoryLimit=512
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.memoryLimit=
    
    #-------------------------------------------------------------------------------
    # This variable controls whether to load Example Schemas onto
    # the starter database or not.
    # The value can be either "true" or "false". If left blank it will be assumed
    # to be "false".
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.installExampleSchemas=false
    
    ###############################################################################
    #                                                                             #
    # Passwords can be supplied for the following four schemas in the         #
    # starter database:                                   #
    #   SYS                                                                       #
    #   SYSTEM                                                                    #
    #   DBSNMP (used by Enterprise Manager)                                       #
    #                                                                             #
    # Same password can be used for all accounts (not recommended)            #
    # or different passwords for each account can be provided (recommended)       #
    #                                                                             #
    ###############################################################################
    
    #------------------------------------------------------------------------------
    # This variable holds the password that is to be used for all schemas in the
    # starter database.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.password.ALL=
    
    #-------------------------------------------------------------------------------
    # Specify the SYS password for the starter database.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.password.SYS=
    
    #-------------------------------------------------------------------------------
    # Specify the SYSTEM password for the starter database.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.password.SYSTEM=
    
    #-------------------------------------------------------------------------------
    # Specify the DBSNMP password for the starter database.
    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.password.DBSNMP=
    
    #-------------------------------------------------------------------------------
    # Specify the PDBADMIN password required for creation of Pluggable Database in the Container Database.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.password.PDBADMIN=
    
    #-------------------------------------------------------------------------------
    # Specify the management option to use for managing the database.
    # Options are:
    # 1. CLOUD_CONTROL - If you want to manage your database with Enterprise Manager Cloud Control along with Database Express.
    # 2. DEFAULT   -If you want to manage your database using the default Database Express option.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.managementOption=DEFAULT
    
    #-------------------------------------------------------------------------------
    # Specify the OMS host to connect to Cloud Control.
    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.omsHost=
    
    #-------------------------------------------------------------------------------
    # Specify the OMS port to connect to Cloud Control.
    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.omsPort=0
    
    #-------------------------------------------------------------------------------
    # Specify the EM Admin user name to use to connect to Cloud Control.
    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.emAdminUser=
    
    #-------------------------------------------------------------------------------
    # Specify the EM Admin password to use to connect to Cloud Control.
    # Applicable only when oracle.install.db.config.starterdb.managementOption=CLOUD_CONTROL
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.emAdminPassword=
    
    ###############################################################################
    #                                                                             #
    # SPECIFY RECOVERY OPTIONS                                                #
    # ------------------------------------                                    #
    # Recovery options for the database can be mentioned using the entries below  #
    #                                                                             #
    ###############################################################################
    
    #------------------------------------------------------------------------------
    # This variable is to be set to false if database recovery is not required. Else
    # this can be set to true.
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.enableRecovery=false
    
    #-------------------------------------------------------------------------------
    # Specify the type of storage to use for the database.
    # It can be one of the following:
    #   - FILE_SYSTEM_STORAGE
    #   - ASM_STORAGE
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.storageType=
    
    #-------------------------------------------------------------------------------
    # Specify the database file location which is a directory for datafiles, control
    # files, redo logs.
    #
    # Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
    
    #-------------------------------------------------------------------------------
    # Specify the recovery location.
    #
    # Applicable only when oracle.install.db.config.starterdb.storage=FILE_SYSTEM_STORAGE
    #-------------------------------------------------------------------------------
    oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
    
    #-------------------------------------------------------------------------------
    # Specify the existing ASM disk groups to be used for storage.
    #
    # Applicable only when oracle.install.db.config.starterdb.storageType=ASM_STORAGE
    #-------------------------------------------------------------------------------
    oracle.install.db.config.asm.diskGroup=
    
    #-------------------------------------------------------------------------------
    # Specify the password for ASMSNMP user of the ASM instance.
    #
    # Applicable only when oracle.install.db.config.starterdb.storage=ASM_STORAGE
    #-------------------------------------------------------------------------------
    oracle.install.db.config.asm.ASMSNMPPassword=
    

    然后按照提示执行:

    $ sudo su -
    # /home/oracle/app/oracle/product/19c/db_1/root.sh
    
    1. 配置数据库

    创建listener.ora文件

    $ vim $ORACLE_HOME/network/admin/listener.ora
    # listener.ora Network Configuration File: /home/oracle/app/oracle/product/19c/db_1/network/admin/listener.ora
    # Generated by Oracle configuration tools.
    
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (GLOBAL_DBNAME = oracle)
          (ORACLE_HOME = /home/oracle/app/oracle/product/19c/db_1)
          (SID_NAME = oracle)
        )
      )
    
    LISTENER =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>)(PORT = 1521))
      )
    
    ADR_BASE_LISTENER = /home/oracle/app/oracle
    

    创建tnsnames.ora

    $ vim $ORACLE_HOME/network/admin/tnsnames.ora
    # tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/19c/db_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    LISTENER_ORCL =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>)(PORT = 1521))
    
    
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname>)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = oracle)
        )
      )
    

    创建数据库:

    $ lsnrctl start
    
    $ dbca -silent -createDatabase -responseFile /path/to/r19c_dbca.rsp -sysPassword <sys-password> -systemPassword <system-password>
    

    关于/path/to/r19c_dbca.rsp的内容,参考"Oracle 19c使用dbca创建和删除数据库"。

    修改口令有效期(可选)

    $ sqlplus / as sysdba
    SQL> alter profile default limit password_life_time unlimited;
    

    因为缺省情况下scott/tiger已经不会创建了,而如果想恢复scott/tiger账号则:

    $ sqlplus / as sysdba
    SQL> @${ORACLE_HOME}/rdbms/admin/utlsampl.sql
    

    查看数据库信息

    $ sqlplus / as sysdba
    SQL> select instance_name, status from v$instance;
    

    至此Oracle 19c安装完成。

    下面脚本启动和关闭数据库:

    #!/bin/bash
    
    function startdb() {
      sqlplus / as sysdba <<EOF
    startup
    quit
    EOF
    
      sleep 5
    
      lsnrctl start
    }
    
    function stopdb() {
      lsnrctl stop
    
      sleep 5
    
      sqlplus / as sysdba <<EOF
    shutdown immediate
    EOF
    }
    
    if [ "$1" == "stop" ]; then
       stopdb
    elif [ "$1" == "start" ]; then
       startdb
    else
       echo "ERROR: unknown command, 'start|stop' is allowed"
       exit 1
    fi
    

    日常sqlplus链接访问:

    $ sqlplus system/<passwd>@<SID>
    SQL> ...
    
    例如
    $ sqlplus system/manager@orcl
    $ sqlplus scott/tiger@orcl
    

    相关文章

      网友评论

          本文标题:Linux上安装Oracle 19c

          本文链接:https://www.haomeiwen.com/subject/eyzxzrtx.html