@Linux(CentOS7、中标麒麟)安装oracle12c(亲测可行)
Linux安装Oracle12C(centos7、中标麒麟7桌面版亲测可行)#
-
修改
vi /etc/sysctl.conf
-
添加如下行:
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
-
运行sysctl -p命令更改当前内核参数
-
限制的Oracle用户资源使用
vi /etc/security/limits.conf
-
添加如下行:
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
-
安装依赖软件包
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
-
创建新组和新用户
groupadd -g 54321 oinstall groupadd -g 54322 dba groupadd -g 54323 oper useradd -u 54321 -g oinstall -G dba,oper oracle
-
为oracle用户设置密码
passwd oracle
-
修改设置SELINUX,将
SELINUX
修改为permissivevi /etc/selinux/config
-
确保禁用防火墙
systemctl status firewalld #查看防火墙状态 systemctl stop firewalld #关闭防火墙 systemctl disable firewalld #关闭开机制动启动
-
创建的Oracle安装目录
[root@solang ~]# mkdir -p /usr/local/app/oracle [root@solang ~]# chown -R oracle:oinstall /usr/local [root@solang ~]# chmod -R 775 /usr/local/
-
配置的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,根据需要自行设定。
-
使配置立即生效
source ~/.bash_profile
-
上传解压
unzip linuxx64_12201_database.zip
-
修改响应文件
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
-
运行图形界面安装界面(使用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,多了一个 10GSQL> 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