首页
运维
编程

小布江

首页
运维
编程
  • Kubernetes

  • 日常

    • K8s-Minio集群迁移
    • Docker构建多架构镜像
    • Minio备份及恢复
    • cert-manager自动签发Lets Encrypt
    • Ansible批量发送密钥
    • Containerd配置私有Harbor镜像仓库
    • kvm虚拟机修改密码
    • Nexus
    • Nginx之tcp转发
    • Arthas
    • 开启telnet登录
    • CPU亲和
    • Harbor复制镜像
    • KVM虚拟机根目录扩容
    • RabbitMQ RPM部署
    • RabbitMQ Docker-Compose部署
    • RocketMQ二进制部署
    • RocketMQ Docker-Compose部署
    • Nginx版本升级
    • kvm虚拟机磁盘扩容
    • kafka双写
    • linux挂盘分区
    • Oracle-11g单机部署
      • GlusterFS部署
      • 主机磁盘管理
      • SSL自签证书管理
      • PicGo自建图床
      • Docker Mirrors
    • Prometheus

    • Cl

    • 运维
    • 日常
    小布江
    2024-08-11
    目录

    Oracle-11g单机部署

    系统 内核 内存 CPU
    centos7.9 3.10 4G 2C

    Oracle Database,又名Oracle RDBMS,或简称Oracle 是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

    Oracle具有强大的功能,因此,对于硬件要求也较高。Oracle 10g安装的硬件要求如下:

    1024MB以上的物理内存。1.5~3.5 GB磁盘空间,具体大小由安装类型决定。

    Oracle数据库11g有多个版本可供选择:

    标准版1、标准版和企业版。所有这些版本都使用相同的通用代码库构建,这意味着企业的数据库管理软件可以轻松地从规模较小的单一处理器服务器扩展到多处理器服务器集群,而无需更改一行代码。Oracle数据库11g企业版还有许多其他增强了性能、可伸缩性、可用性、安全性和可管理性的功能选项。

    本次部署使用命令行静默部署,参考文档 (opens new window)


    # 1. 修改主机名
    hostnamectl set-hostname oracle
    
    1
    # 2. 添加hosts解析
    echo "当前机器IP oracle" >> /etc/hosts 
    
    1
    # 3. 关闭防火墙、Selinux
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 
    setenforce 0
    systemctl disable --now firewalld 
    
    1
    2
    3
    # 4. 创建swap文件
    dd if=/dev/zero of=/swapfile bs=1M count=200
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile
    echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
    free -m
    
    1
    2
    3
    4
    5
    6
    # 5. 创建用户、群组
    groupadd oinstall
    groupadd dba
    useradd -g oinstall -G dba -m oracle
    usermod -aG oinstall oracle
    echo "xiaobujiang" | passwd --stdin oracle
    id oracle
    
    1
    2
    3
    4
    5
    6
    # 6. 配置系统内核参数
    echo '
    fs.aio-max-nr = 1048576
    fs.file-max = 6815744
    # 机器内存4g kernel.shmall=内存*0.8*1024*1024*1024/4096 限制单个共享内存段的最大字节数
    kernel.shmall = 838861
    # 机器内存4G,kernel.shmmax=4*0.5*1024*1024*1024 限制所有共享内存段的总页面数
    kernel.shmmax = 2147483648
    kernel.shmmni = 4096
    kernel.sem = 500 64000 500 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
    ' |tee -a /etc/sysctl.conf > /dev/null
    sysctl -p
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 7. 修改用户限制文件
    echo "oracle soft nproc 2047" >>/etc/security/limits.conf
    echo "oracle hard nproc 16384" >>/etc/security/limits.conf
    echo "oracle soft nofile 1024" >>/etc/security/limits.conf
    echo "oracle hard nofile 65536">>/etc/security/limits.conf
    echo "oracle soft stack 1024" >>/etc/security/limits.conf
    echo "oracle hard stack 65536">>/etc/security/limits.conf
    
    echo "session required /lib64/security/pam_limits.so" >>/etc/pam.d/login
    echo "session required pam_limits.so">>/etc/pam.d/login
    
    echo '
    if [ $USER = "oracle" ]; then
      if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
      else
        ulimit -u 16384 -n 65536
      fi
      umask 022
    fi
    ' | sudo tee -a /etc/profile.d/oracle.sh > /dev/null
    
    source /etc/profile.d/oracle.sh
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    # 8. 创建oracle主目录
    mkdir -p /u01/app/oracle
    chown -R oracle:oinstall /u01
    chmod -R 775 /u01
    
    1
    2
    3
    # 9. 配置oracle用户的环境变量
    su - oracle
    echo '
    export ORACLE_SID=orcl
    export ORACLE_BASE=/u01/app/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
    export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
    export NLS_LANG=American_america.ZHS16GBK
    export PATH=$PATH:$ORACLE_HOME/bin
    '| tee -a ~/.bash_profile > /dev/null
    
    #使配置文件生效
    source ~/.bash_profile
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 10. 安装依赖
    su - root
    yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel
    
    1
    2
    # 11. 上传Oracle包
    su - root
    mkdir /tmp/oracle
    cd /tmp/oracle
    curl -O https://github.com/xiaobujiang/service/releases/download/v11.2.0.4.0/p13390677_112040_Linux-x86-64_1of7.zip
    curl -O https://github.com/xiaobujiang/service/releases/download/v11.2.0.4.0/p13390677_112040_Linux-x86-64_1of7.zip
    unzip p13390677_112040_Linux-x86-64_1of7.zip
    unzip p13390677_112040_Linux-x86-64_2of7.zip
    chown -R oracle:oinstall /tmp/oracle/database
    
    1
    2
    3
    4
    5
    6
    7
    8
    # 12. 编辑静默文件
    su - oracle
    cd /tmp/oracle/database/response/
    cp db_install.rsp db_install.rsp.bak
    echo > db_install.rsp
    echo '
    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
    oracle.install.option=INSTALL_DB_SWONLY
    # 主机名
    ORACLE_HOSTNAME=oracle
    # 安装组
    UNIX_GROUP_NAME=oinstall
    # INVENTORY中央库存目录(不填就是默认值)
    INVENTORY_LOCATION=/u01/app/oracle/inventory
    # 选择语言
    SELECTED_LANGUAGES=en,zh_CN
    # 数据目录
    ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 
    ORACLE_BASE=/u01/app/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.EEOptionsSelection=false
    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
    oracle.install.db.DBA_GROUP=dba
    oracle.install.db.OPER_GROUP=oinstall
    oracle.install.db.CLUSTER_NODES=
    oracle.install.db.isRACOneInstall=
    oracle.install.db.racOneServiceName=
    oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
    oracle.install.db.config.starterdb.globalDBName=orcl
    oracle.install.db.config.starterdb.SID=orcl
    oracle.install.db.config.starterdb.characterSet=ZHS16GBK
    oracle.install.db.config.starterdb.memoryOption=true
    oracle.install.db.config.starterdb.memoryLimit=
    oracle.install.db.config.starterdb.installExampleSchemas=false
    oracle.install.db.config.starterdb.enableSecuritySettings=true
    oracle.install.db.config.starterdb.password.ALL=oracle
    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
    oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
    oracle.install.db.config.starterdb.automatedBackup.enable=false
    oracle.install.db.config.starterdb.automatedBackup.osuid=
    oracle.install.db.config.starterdb.automatedBackup.ospwd=
    oracle.install.db.config.starterdb.storageType=
    oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
    oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
    oracle.install.db.config.asm.diskGroup=
    oracle.install.db.config.asm.ASMSNMPPassword=
    MYORACLESUPPORT_USERNAME=
    MYORACLESUPPORT_PASSWORD=
    SECURITY_UPDATES_VIA_MYORACLESUPPORT=
    DECLINE_SECURITY_UPDATES=true
    PROXY_HOST=
    PROXY_PORT=
    PROXY_USER=
    PROXY_PWD=
    PROXY_REALM=
    COLLECTOR_SUPPORTHUB_URL=
    oracle.installer.autoupdates.option=
    oracle.installer.autoupdates.downloadUpdatesLoc=
    AUTOUPDATES_MYORACLESUPPORT_USERNAME=
    AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
    ' | tee -a db_install.rsp > /dev/null
    
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    # 13. 安装
    su - oracle
    cd /tmp/oracle/database/
    ./runInstaller -silent -responseFile /tmp/oracle/database/response/db_install.rsp -ignorePrereq
    
    注: 报/tpm/xxx.log没权限的话可以执行如下命令后,重新执行安装命令
    export TEMP=/home/oracle/tmp
    export TMP=/home/oracle/tmp
    mkdir -p /home/oracle/tmp
    chmod 777 /home/oracle/tmp
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 14. root用户执行上述的脚本
    su - root
    /u01/app/oracle/inventory/orainstRoot.sh
    /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
    
    1
    2
    3
    # 15. 创建数据库实例配置
    su - oracle
    cd /tmp/oracle/database/response/
    cp dbca.rsp dbca.rsp.bak
    sed -i '/^#/d;/^$/d' dbca.rsp
    echo > dbca.rsp
    echo '
    [CREATEDATABASE]
    GDBNAME = "orcl"
    SID = "orcl"
    SYSPASSWORD = "oracle"
    SYSTEMPASSWORD = "oracle"
    SYSMANPASSWORD = "oracle"
    DBSNMPPASSWORD = "oracle"
    DATAFILEDESTINATION = /u01/app/oracle/oradata
    RECOVERYAREADESTINATION = /u01/app/oracle/fast_recovery_area
    CHARACTERSET = "ZHS16GBK"
    # 我这边设置TOTALMEMORY = 物理内存*75% MB
    TOTALMEMORY = "3072"
    TEMPLATENAME = "General_Purpose.dbc"
    '|tee -a dbca.rsp > /dev/null
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 16. 安装数据库实例
    su - oracle
    dbca -silent -createDatabase -responseFile /tmp/oracle/database/response/dbca.rsp
    
    1
    2
    # 17. 修改配置监听程序
    su - oracle
    netca /silent /responseFile /tmp/oracle/database/response/netca.rsp
    
    cat << EOF > /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
    LISTENER =
      (DESCRIPTION =
         (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = tcp)(HOST = 当前机器IP)(PORT = 1521))
         )
       )
       
    SID_LIST_LISTENER =
    	(SID_LIST =
    		(SID_DESC =
    			(GLOBAL_DBNAME = orcl)
    			(SID_NAME = orcl)
    			(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
    			(PRESPAWN_MAX = 20)
    			(PRESPAWN_LIST =
    				(PRESPAWN_DESC = (PROTOCOL = tcp)(POOL_SIZE = 2)(TIMEOUT = 1))
    			)
    		)
    	)
    ADR_BASE_LISTENER = /u01/app/oracle
    EOF
    
    cat << EOF > /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
    orcl =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 当前机器IP)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    EOF
    
    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
    # 18. 启动数据库
    su - oracle
    lsnrctl stop
    lsnrctl start
    
    1
    2
    3
    # 19. 设置开机自启
    su - root
    echo "orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y" >>/etc/oratab
    echo "su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start" >>/etc/rc.d/rc.local 
    echo "su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart" >>/etc/rc.d/rc.local
    chmod +x /etc/rc.d/rc.local
    
    1
    2
    3
    4
    5
    # 20. 以 sysdba 身份登录
    su - oracle
    
    # 本地登录
    sqlplus / as sysdba
    
    # 查看用户有没有锁定
    SQL> select username,account_status from dba_users where username='SYSTEM';
    
    USERNAME                       ACCOUNT_STATUS
    ------------------------------ --------------------------------
    SYSTEM                         EXPIRED & LOCKED
    
    # 改解锁
    SQL> alter user SYSTEM account unlock; 
    
    # 修改密码 
    SQL> alter user SYSTEM identified by "tlgjj@123";
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #Oracle
    上次更新: 2026/05/31, 03:30:34
    linux挂盘分区
    GlusterFS部署

    ← linux挂盘分区 GlusterFS部署→

    最近更新
    01
    Coredns自定义参数
    05-18
    02
    Docker Mirrors
    04-24
    03
    SSL自签证书管理
    02-10
    更多文章>
    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式