centos7.8 安装单实例oracle数据库

centos7.8 安装单实例oracle数据库


前置操作

禁用 Transparent HugePages

  1. 查看是否开启

    cat /sys/kernel/mm/transparent_hugepage/enabled
    

    出现下图表示开启了Transparent HugePages

  2. 禁用Transparent HugePages

    • 2.1 在/etc/default/grub文件增加如下内容

      transparent_hugepage=never
      
    • 2.2 具体列子如图所示

  3. 重新生成grub.cfg文件

    grub2-mkconfig -o /boot/grub2/grub.cfg
    
  4. 重启系统,让修改永久生效

    reboot
    
  5. 如图所示,表示已经禁用

  6. /etc/hosts文件增加如下内容,ip地址根据自己服务器修改

    192.168.159.141 pinlin
    

安装rlwrap

  1. 下载相关工具库

    yum install wget
    yum install automake autoconf libtool
    yum install readline-devel
    yum install gcc
    
  2. 下载安装包

    wget https://github.com/hanslub42/rlwrap/archive/refs/tags/v0.45.2.tar.gz
    
  3. 解压

    tar -zxvf v0.45.2.tar.gz
    
  4. 重命名目录

    mv rlwrap-0.45.2/ rlwrap
    
  5. 进入安装目录

    cd rlwrap
    
  6. 生成configure

    autoreconf -vif
    
  7. 编译

    ./configure
    
  8. 安装

    make && make install
    

安装操作

  1. 停止防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  2. 安装所需依赖

    yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
    
  3. 安装oracle数据库

    yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
    
  4. 修改配置文件名(实例名)(可选)

    cp oracledb_ORCLCDB-19c.conf oracledb_PINLINCDB-19c.conf
    
  5. 修改编译脚本名称(可选)

    mv oracledb_pinlin-19c oracledb_PINLINCDB-19c
    
  6. 编辑脚本内容/etc/init.d/oracledb_PINLINCDB-19c如果没有执行4和5步骤的。这个不用修改的。(可选)

    export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
    
    export ORACLE_VERSION=19c
    # SID名称。上面修改的一致即可
    export ORACLE_SID=PINLINCDB
    export TEMPLATE_NAME=General_Purpose.dbc
    export CHARSET=AL32UTF8
    # PDB数据库名
    export PDB_NAME=PINLINPDB1
    export LISTENER_NAME=LISTENER
    export NUMBER_OF_PDBS=1
    # 是否创建容器数据库 true:是 false:否
    export CREATE_AS_CDB=true
    

    要修改的地方

    ORACLE_SID: SID名称

    PDB_NAME: PDB数据库名称

  7. 创建数据库

    ./oracledb_PINLINCDB-19c configure
    

安装后配置

  1. 配置环境变量

    • 1.1 切换到oracle用户

      su - oracle 
      
    • 1.2 编辑~/.bash_profile增加如下内容

      umask 022
      # 这个值,默认是ORCLCDB。如果有修改的记得修改成一致的。我这里修改成PINLINCDB
      export ORACLE_SID=PINLINCDB
      export ORACLE_BASE=/opt/oracle/oradata
      export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
      export PATH=$PATH:$ORACLE_HOME/bin
      export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
      alias sqlplus='rlwrap sqlplus'
      alias rman='rlwrap rman'
      
    • 1.3 使配置生效

      source ~/.bash_profile
      
  2. 重置管理员密码

    • 2.1 连接数据库实例

      sqlplus / as sysdba
      
    • 2.2 修改密码

    alter user userName identified by password;
    
    # 列子
    alter user sys identified by pinlin123456;
    
    • 2.3 设置用户密码永不过期

      ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
      
  3. 创建命名空间

    • 3.1 查看数据文件存放路径

      select name from v$datafile;
      
    • 3.2 创建命名空间

      说明

      由于安装的是容器数据,所以需要同时创建对应CDBPDB的dbf文件,不然用户无法创建成功

      PINLIN_DB:命名空间名称

      /opt/oracle/oradata/PINLINCDB/pinlin1.dbf:dbf的存储路径

      具体路径,根据步骤3.1查询得知,根据安装配置替换即可

      可添加多个dbf文件,文件名不能重复。避免单个满了。导致数据写入失败

      单个文件上限为32G。但是不能设置成32G,不然会创建失败

      • 3.2.1 创建CDB命名空间

        CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/pinlin1.dbf' SIZE 30G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
        
      • 3.2.2 切换到PDB数据库

        alter session set container=databaseName;
        # 列子
        alter session set container=PINLINPDB1;
        

        说明

        show con_name;:展示当前连接的数据库名称

        show pdbs;:展示所有PDB数据库名称

      • 3.2.3 创建PDB数据库命名空间

        CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/pinlin1.dbf' SIZE 30G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
        

        说明

        特别注意该存储路径,比上面多了一级PINLINPDB1目录。

        相关的命名空间的名称和CDB创建要一致

  4. 创建用户

    • 4.1 创建容器数据库用户

      CREATE USER C##PINLIN IDENTIFIED BY pinlin123455 DEFAULT TABLESPACE PINLIN_DB QUOTA 100M ON PINLIN_DB QUOTA 500K ON PINLIN_DB TEMPORARY TABLESPACE TEMP CONTAINER = ALL;
      

      说明

      C##PINLIN:用户名,因为容器数据库,所有需要添加前缀C##

      pinlin123455:账号密码

      PINLIN_DB:命名空间

    • 4.2 分配用户权限

      GRANT SET CONTAINER,RESOURCE, CREATE SESSION TO C##PINLIN CONTAINER = ALL;
      

      说明

      C##PINLIN:用户名,根据自己创建的修改

    • 4.3 解除命名空间限制

      grant unlimited tablespace to C##PINLIN;
      

      说明

      C##PINLIN:用户名

  5. 创建过程所用到的sql

    -- 查询命名空间所在的存储路径
    select name from v$datafile;
    -- 创建CDB命名空间
    CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/pinlin_db1.dbf' SIZE 1G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
    -- 展示当前连接的数据库名
    show con_name;
    -- 展示所有PDB数据库名称
    show pdbs;
    -- 切换到PDB数据库
    alter session set container=PINLINPDB1;
    -- 创建PDB命名空间
    CREATE TABLESPACE PINLIN_DB datafile '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/pinlin_db1.dbf' SIZE 1G AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;
    -- 切换到CDB数据库
    alter session set container=CDB$ROOT;
    -- 创建用户并且分配命名空间
    CREATE USER C##PINLIN IDENTIFIED BY pinlin123456 DEFAULT TABLESPACE PINLIN_DB QUOTA 100M ON PINLIN_DB QUOTA 500K ON PINLIN_DB TEMPORARY TABLESPACE TEMP CONTAINER = ALL;
    -- 分配权限
    GRANT SET CONTAINER,RESOURCE, CREATE SESSION TO C##PINLIN CONTAINER = ALL;
    -- 解除命名空间限制
    grant unlimited tablespace to C##PINLIN;
    

修改数据存放路径(可选)


由于默认oracle的数据存放是在根目录,如果该目录足够大,可以不用迁移。

  1. 创建数据目录

    mkdir /home/data/oradata/
    
  2. 赋予权限

    chown -R oracle:oinstall /home/data/oradata/
    
  3. 迁移数据文件

    • 3.1 切换`oracle用户

      su - oracle 
      
    • 3.2 停止监听

      lsnrctl stop
      
    • 3.3 连接数据数据库实例

      sqlplus / as sysdba
      
    • 3.4 关闭数据库实例

      shutdown immediate;
      
    • 3.5 启动数据库并挂载

      startup mount;
      
    • 3.6 退出

      exit;
      
    • 3.7 拷贝数据文件到新的目录

      cp -R /opt/oracle/oradata/* /home/data/oradata/
      
    • 3.8 连接数据库实例

      sqlplus / as sysdba
      
    • 3.9 修改数据文件目录

      alter database rename file '/opt/oracle/oradata/PINLINCDB/sysaux01.dbf' to '/home/data/oradata/PINLINCDB/sysaux01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/system01.dbf' to '/home/data/oradata/PINLINCDB/system01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/temp01.dbf' to '/home/data/oradata/PINLINCDB/temp01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/undotbs01.dbf' to '/home/data/oradata/PINLINCDB/undotbs01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/users01.dbf' to '/home/data/oradata/PINLINCDB/users01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/pinlin1.dbf' to '/home/data/oradata/PINLINCDB/pinlin1.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/pinlin_db1.dbf' to '/home/data/oradata/PINLINCDB/pinlin_db1.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/sysaux01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/sysaux01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/system01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/system01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/temp01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/temp01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/pinlin_db1.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/pinlin_db1.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/undotbs01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/undotbs01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/PINLINPDB1/users01.dbf' to '/home/data/oradata/PINLINCDB/PINLINPDB1/users01.dbf';
      
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/sysaux01.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/sysaux01.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/system01.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/system01.dbf';
      
      # 该临时文件根据安装的时间名称不一样。具体到时自己替换即可
      alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/temp012023-01-19_14-02-22-129-PM.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/temp012023-01-19_14-02-22-129-PM.dbf';
      
      alter database rename file '/opt/oracle/oradata/PINLINCDB/pdbseed/undotbs01.dbf' to '/home/data/oradata/PINLINCDB/pdbseed/undotbs01.dbf';
      

      记得要一条条的复制。不要全部复制,避免出错

    • 3.10 打开数据库

      alter database open;
      
    • 3.11 查询数据文件状态和存储路径

      select file#,ts#,status,name from v$datafile;
      

      如图所示标识迁移 成功

    • 3.12 关闭数据库

      shutdown immediate;
      
    • 3.13 重启启动

      startup;
      
    • 3.14 退出

      exit;
      
    • 3.15 启动监听

      lsnrctl start
      

其它操作

oracle安装脚本执行数据库启动、停止、重启操作

以下操作都是基于root用户操作

  1. 启动数据库

    /etc/init.d/oracledb_PINLINCDB-19c start
    
  2. 关闭数据库

    /etc/init.d/oracledb_PINLINCDB-19c stop
    
  3. 重启数据库

    /etc/init.d/oracledb_PINLINCDB-19c restart
    

卸载操作

  1. 切换到oracle用户

    su - oracle 
    
  2. 卸载数据库

    $ORACLE_HOME/bin/dbca
    
  3. 卸载监听

    $ORACLE_HOME/bin/netca
    
  4. 切换root

    exit 或 su - root
    
  5. 移除数据库(该操作需要使用root用户)

    yum -y remove oracle-database-ee-19c
    
posted @ 2023-01-19 17:10  品霖  阅读(38)  评论(0编辑  收藏  举报