Cent OS 7 安装 Oracle 19c

2,924 阅读1分钟

下载

安装配置

  1. 将安装包上传到服务器某个目录下例如home

  2. 打开终端,切换root用户,进入安装文件所在目录,执行安装命令:yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

  3. 执行:yum localinstall -y oracle-database-ee-19c-1.0-1.x86_64.rpm

  4. 根据实际需要修改配置:vim /etc/init.d/oracledb_ORCLCDB-19c

  5. 配置数据库:/etc/init.d/oracledb_ORCLCDB-19c configure,配置完成相当于数据库已经安装完成,接下来启动监听,启动数据库,创建PDB实例.

  6. 配置环境变量 vi /etc/profile,添加内容

export  ORACLE_BASE=/opt/oracle
export  ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export  NLS_LANG=.AL32UTF8
export  ORACLE_SID=SZDB
export  PATH=${PATH}:${ORACLE_HOME}/bin/:$ORACLE_HOME/lib64

打开PDB数据库

数据库安装完,配置启动后,默认是会创建一个未打开的pdb

oracle-default-pdbs

可以直接将这个PDB数据库打开使用

alter  pluggable database ORCLPDB1 open ;

切换容器到pdb

alter session set container=ORCLPDB1;

创建用户步骤参考后文创建PDB用户部分

创建PDB数据库

不使用默认创建的PDB数据库,新建一个步骤如下:

  1. 登录
    sqlplus / as sysdba
    
  2. 指定路径
    alter session set db_create_file_dest='/opt/oracle/oradata/';
    
  3. 创建 PDB 数据库
    create pluggable database SZDB admin user szadmin identified by szadmin456;
    
  4. 打开 PDB 数据库
    alter  pluggable database SZDB open ;
    

其它命令

  • 关闭 PDB 数据库
    alter pluggable database SZDB close immediate;
    
  • 删除 PDB 数据库
    drop pluggable database SZDB including datafiles;
    

PDB用户配置(不配置无法连接)

  1. 先查询pdb的service_name :select name,pdb from v$services;
  2. vim $ORACLE_HOME/network/admin/tnsnames.ora 添加如下内容:
    ORCLCDB =     # 开头这里写CDB实例名称
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = szdb)   # 把查询到刚创建的pdb数据库对应的service_name写到SERVICE_NAME = 之后
        )
      )
    

创建PDB用户

  1. 登录到Oracle
    sqlplus / as sysdba
    
  2. 切换容器到pdb
    alter session set container=SZDB;
    
  3. 查看当前使用容器(确认是否切换成功)
    select sys_context ('USERENV', 'CON_NAME') from dual;
    
  4. 创建用户
    create user sz_dbuser identified by sz_dbuser456;
    
  5. 授权(connect/resource/dba权限)
    grant connect,resource,dba to szadmin;
    
  6. 测试连接
    SQL> conn sz_dbuser/sz_dbuser456@ORCLCDB;
    

其它命令

  • 修改密码
    alter user sz_dbuser identified by sz_dbuser456;
    
  • 删除用户
    drop user sz_dbuser CASCADE;
    

重启服务器后启动 Oracle:

  1. 切换到 oracle 数据库su - oracle
  2. 启动监听:lsnrctl start
  3. 再输入sqlplus /nolog,回车
  4. 再输入 conn / as sysdba;回车
  5. 再输入startup,回车.这步是启动oracle服务。

备注

  1. 登录到sys用户或者切换到system用户可以创建用户并授权
  2. 在CDB容器中创建用户得以C##开头; create user C##neo identified by neo;
  3. 修改配置文件(字符集设置为ZHS16GBK) vim /etc/init.d/oracledb_ORCLCDB-19c
  4. 19C要求至少在7.4及以上版本的Liunx系统上安装

问题记录

  1. ORA-00851: SGA_MAX_SIZE xxx cannot be set to more than MEMORY_TARGET xxx.或其它无法启动的异常情况解决办法
    SQL> startup pfile='/opt/oracle/admin/ORCLCDB/pfile/init.ora.66202018375'
    SQL> create spfile from pfile='/opt/oracle/admin/ORCLCDB/pfile/init.ora.66202018375';
    SQL> shutdown immediate
    SQL> startup
    
  2. 安装配置完没有指定可连接该数据库的客户端版本,使用低版本客户端连接会报错 ORA-28040:no matching authentication protocol
    vi $ORACLE_HOME/network/admin/sqlnet.ora  
    # 添加信息如下
    SQLNET.ALLOWED_LOGON_VERSION_SERVER=9   
    SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9