Linux(CentOS7、中标麒麟)安装oracle12c(亲测可行)

@Linux(CentOS7、中标麒麟)安装oracle12c(亲测可行)

Linux安装Oracle12C(centos7、中标麒麟7桌面版亲测可行)#

  1. 修改

     vi /etc/sysctl.conf 
    
  2. 添加如下行:

     fs.file-max = 6815744                    
     fs.aio-max-nr = 1048576                   
     kernel.sem = 250 32000 100 128         
     kernel.shmmni = 4096                 
     kernel.shmall = 1073741824                
     kernel.shmmax = 4398046511104           
     kernel.panic_on_oops = 1    
     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          
     net.ipv4.conf.all.rp_filter = 2   
     net.ipv4.conf.default.rp_filter = 2 
    
  3. 运行sysctl -p命令更改当前内核参数

  4. 限制的Oracle用户资源使用

     vi /etc/security/limits.conf 
    
  5. 添加如下行:

     oracle   soft   nofile    1024
     oracle   hard   nofile    65536
     oracle   soft   nproc    16384
     oracle   hard   nproc    16384
     oracle   soft   stack    10240
     oracle   hard   stack    32768
     oracle   hard   memlock    134217728
     oracle   soft   memlock    134217728
    
  6. 安装依赖软件包

     yum install gcc
     yum install gcc-c++		
     yum install binutils -y
     yum install compat-libcap1 -y
     yum install compat-libstdc++-33 -y
     yum install compat-libstdc++-33.i686 -y
     yum install glibc -y
     yum install glibc.i686 -y
     yum install glibc-devel -y
     yum install glibc-devel.i686 -y
     yum install ksh -y
     yum install libaio -y
     yum install libaio.i686 -y
     yum install libaio-devel -y
     yum install libaio-devel.i686 -y
     yum install libX11 -y
     yum install libX11.i686 -y
     yum install libXau -y
     yum install libXau.i686 -y
     yum install libXi -y
     yum install libXi.i686 -y
     yum install libXtst -y
     yum install libXtst.i686 -y
     yum install libgcc -y
     yum install libgcc.i686 -y
     yum install libstdc++ -y
     yum install libstdc++.i686 -y
     yum install libstdc++-devel -y
     yum install libstdc++-devel.i686 -y
     yum install libxcb -y
     yum install libxcb.i686 -y
     yum install make -y
     yum install nfs-utils -y
     yum install net-tools -y
     yum install smartmontools -y
     yum install sysstat -y
     yum install unixODBC -y
     yum install unixODBC-devel -y
    
  7. 创建新组和新用户

     groupadd -g 54321 oinstall
     groupadd -g 54322 dba
     groupadd -g 54323 oper
     useradd -u 54321 -g oinstall -G dba,oper oracle
    
  8. 为oracle用户设置密码

     passwd oracle
    
  9. 修改设置SELINUX,将SELINUX修改为permissive

     vi /etc/selinux/config
    
  10. 确保禁用防火墙

    systemctl status firewalld  #查看防火墙状态
    systemctl stop firewalld  #关闭防火墙
    systemctl disable firewalld  #关闭开机制动启动
    
  11. 创建的Oracle安装目录

    [root@solang ~]# mkdir -p /usr/local/app/oracle
    [root@solang ~]# chown -R oracle:oinstall /usr/local
    [root@solang ~]# chmod -R 775 /usr/local/
    
  12. 配置的Oracle环境变量并验证

    su oracle
    vi ~/.bash_profile
    export TMP=/tmp
    export TMPDIR=$TMP
    
    #Linux的hostname,必须与/etc/hostname中的内容一致
    export ORACLE_HOSTNAME=oracle 
     
    export ORACLE_UNQNAME=orcl  #数据库实例名 
    export ORACLE_BASE=/usr/local/app/oracle  #oracle基目录
    export ORACLE_HOME=/usr/local/app/oracle/product/12.2.0.1/db_1  #oracle主目录
    
    export ORACLE_SID=orcl  #数据库实例SID
    export PATH=/usr/sbin:/usr/local/bin:$PATH
    export PATH=$ORACLE_HOME/bin:$PATH
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
    export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
    
    #下面三个选项视情况加入
    #export ORACLE_TERM=xterm  #xterm窗口模式安装
    #export LANG=C           #可防止安装过程出现乱码
    #export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK    #设置Oracle客户端字符集,必须与Oracle客户端安装时设置的字符集保持一致。有的是设为AL32UTF8,根据需要自行设定。
    
  13. 使配置立即生效

    source ~/.bash_profile 
    
  14. 上传解压

    unzip linuxx64_12201_database.zip
    
  15. 修改响应文件

    cd database/response/
    vi db_install.rsp
    
    oracle.install.option=INSTALL_DB_SWONLY
    UNIX_GROUP_NAME=oinstall
    INVENTORY_LOCATION=/usr/local/app/oraInventory
    ORACLE_HOME=/usr/local/app/oracle/product/12.2.0.1/db_1
    ORACLE_BASE=/usr/local/app/oracle
    oracle.install.db.InstallEdition=EE
    oracle.install.db.OSDBA_GROUP=dba
    oracle.install.db.OSBACKUPDBA_GROUP=dba
    oracle.install.db.OSDGDBA_GROUP=dba
    oracle.install.db.OSKMDBA_GROUP=dba
    oracle.install.db.OSRACDBA_GROUP=dba
    
  16. 运行图形界面安装界面(使用Xmanager远程连接服务器)

    cd /home/oracle/database
    ./runInstaller
    

安装成功以后执行

  • 数据库实例可以在安装oracle时同时创建,也可以单独创建,单独创建运行以下命令启动图形化配置界面

      dbca
    
  • 配置监听 (图形化界面)

      [oracle@oracle database]$ netmgr
    
  • 启动监听服务

      lsnrctl start #启动监听服务
      lsnrctl stop  #停止监听服务
    

oracle12C问题解决

1、数据库实例没注册到listener

  • 报错信息:oracle ORA-12514:TNS:listener does not currently know of service requested in connect descriptor

  • 解决方案:在listener.ora里面添加了一行

      	SID_LIST_LISTENER =  
      	(SID_LIST =  
      	  (SID_DESC =  
      	  (GLOBAL_DBNAME = orcl)
      	  (SID_NAME = orcl)
      	  )
      	)
    
      	注:里面的orcl根据你安装的数据库实例名确定,我用此法解决了这个报错。
    

2、Oracle 11g客户端连接Oracle 12c服务器错误 ORA-28040

  • 在客户端访问oracle 12c提示如下错误:
    ORA-28040: No matching authentication protocol

  • 在服务器端查看表:dba_users,PASSWORD_VERSIONS 列是:11G 12C

      	SQL> select username, account_status,password_versions from dba_users where account_status='OPEN';
      	
      	USERNAME   ACCOUNT_STATUS                   PASSWORD_VERSIONS
      	---------- -------------------------------- -----------------
      	SYS        OPEN                             11G 12C
      	SYSTEM     OPEN                             11G 12C
      	SCOTT      OPEN                             11G 12C
    
  • 服务器端:修改 sqlnet.ora 配置:(配置修改后,不需要重启oracle服务器)

      	[oracle@localhost ~]$ cd $ORACLE_HOME/network/admin
      	[oracle@localhost admin]$ vi sqlnet.ora
      	新增如下配置
      	SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
      	SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
    
  • 客户端:再次尝试连接,提示用户名密码错误:

      	ORA-01017: invalid username/password; logon denied
    
  • 修改服务器端 sqlnet.ora 后,需要重新登录sqlplus,再修改用户密码,否则修改用户密码后,标记的密码版本仍然为11G 12C;
    重新登录sqlplus,修改sys用户密码,并查看 PASSWORD_VERSIONS,多了一个 10G

      	SQL> alter user scott identified by scott;
      	User altered.
      	SQL> select username, account_status,password_versions from dba_users where account_status='OPEN';
      	
      	USERNAME             ACCOUNT_STATUS                   PASSWORD_VERSIONS
      	-------------------- -------------------------------- -----------------
      	SYS                  OPEN                             10G 11G 12C
      	SYSTEM               OPEN                             11G 12C
    
  • 客户端:再次尝试登录oracle 12c,成功

安装oracle客户端,第三步下一步的时候,提示“oracle12c所选的主目录位于基目录外”:

  • 安装oracle客户端,第三步下一步的时候,提示“oracle12c所选的主目录位于基目录外”:
  • 默认Oracle基目录:/usr/local/app/xxx
  • 修改软件位置:/usr/local/app/xxx/product/12.2.0.1/xxx

为防止出现每次登陆oracle用户都需要执行source ~/.bash_profile,需要root用户权限下vi ~/.bash_profile,将安装步骤12(配置的Oracle环境变量并验证)、13 (使配置立即生效)在root权限下执行##

补充:oracle多实例创建以及启动

  • 注释或删除掉root用户以及oracle用户下~/.bash_profile文件下的ORACLE_SID=orcl

      [root@oracle ~]# vi ~/.bash_profile 
      #export ORACLE_UNQNAME=orcl
    
      [oracle@oracle ~]# vi ~/.bash_profile 
      #export ORACLE_UNQNAME=orcl
    
  • dbca创建多个实例

  • 启动第一个实例

      export ORACLE_HOME=orcl
      sqlplus /as sysdba
      startup
    
  • 启动第二个实例

      export ORACLE_HOME=test
      sqlplus /as sysdba
      startup
    

本文参考:

	https://www.jianshu.com/p/cb0a70372631
	https://blog.csdn.net/fw19940314/article/details/80183578
	http://www.ha97.com/4788.html
	https://blog.csdn.net/huryer/article/details/88685779
	https://www.cnblogs.com/OSKnown/p/8534048.html
	https://blog.csdn.net/visant/article/details/71081204

你可能感兴趣的:(oracle,运维)