Linux(Centos7)静默安装Oracle19C

Oracle数据库服务器一般都是Linux,Linux服务器一般都是在非图形界面的操作,本文章手把手教你如何在非图形界面安装Oracle19C。

  • ORACLE 19C 的安装包自行在官网下载,下载免费,但需要注册账号,现提供一个账号
账号:2969868321@qq.com
密码:Yang199324.

1、检查依赖包

[root@localhost ~]# rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat elfutils-libelf elfutils-libelf-devel fontconfig-devel libxcb smartmontools libX11 libXau libXtst libXrender libXrender-devel

Linux(Centos7)静默安装Oracle19C

2、安装未安装的依赖包

[root@localhost ~]# yum -y install compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc-devel ksh libaio-devel libaio-devel sysstat elfutils-libelf-devel fontconfig-devel libxcb smartmontools libX11 libXau libXtst libXrender libXrender-devel

Linux(Centos7)静默安装Oracle19C

3、创建oracle用户组

[root@localhost ~]# groupadd oinstall
[root@localhost ~]# groupadd dba
[root@localhost ~]# groupadd asmdba
[root@localhost ~]# groupadd backupdba
[root@localhost ~]# groupadd dgdba
[root@localhost ~]# groupadd kmdba
[root@localhost ~]# groupadd racdba
[root@localhost ~]# groupadd oper
[root@localhost ~]# useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
#!/bin/bash
groupadd oinstall
groupadd dba
groupadd asmdba
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
groupadd oper
useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
  • 创建一个创建用户的脚本(createuser.sh)
  • sh createuser.sh

Linux(Centos7)静默安装Oracle19C

4、修改主机名

[root@localhost ~]# hostname # 查看主机名
[root@localhost ~]# hostname oracledb # 修改主机名为oracledb

Linux(Centos7)静默安装Oracle19C

5、配置hosts

[root@localhost ~]# vim /etc/hosts
192.168.137.147	oracledb

Linux(Centos7)静默安装Oracle19C

6、修改内核参数

[root@localhost ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 16451328
kernel.shmmax = 33692319744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 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

Linux(Centos7)静默安装Oracle19C

7、使修改的内容生效

[root@localhost ~]# sysctl -p

8、关闭selinux及firewall

[root@localhost ~]# setenforce 0	// 不重启系统生效
[root@localhost ~]# vim /etc/selinux/config  		# 修改为SELINUX=disabled   重启系统后生效
[root@localhost ~]# systemctl status firewalld.service	# 查看状态
[root@localhost ~]# systemctl stop firewalld.service 	# 停止 firewall
[root@localhost ~]# systemctl disable firewalld.service # 禁止 firewall 开机启动

Linux(Centos7)静默安装Oracle19C

9、创建安装目录

[root@localhost ~]# mkdir -p /home/oracle/app/oracle/product/19.5.0

10、解压

[root@localhost ~]# unzip /Tools/LINUX.X64_193000_db_home.zip -d /home/oracle/app/oracle/product/19.5.0/

11、修改安装文件的所属用户及权限

[root@localhost ~]# cd /home/oracle
[root@localhost ~]# chown -R oracle:oinstall app
[root@localhost ~]# chmod -R 755 app

12、修改用户的Shell限制

[root@localhost ~]# vim /etc/security/limits.conf 
@oinstall soft nofile 2048
@oinstall hard nofile 65536
@oinstall soft nproc 16384
@oinstall soft stack 10240

13、配置oracle用户的环境变量

[root@localhost ~]# su - oracle # 切换至oracle用户环境
[oracle@localhost ~]$ vim .bash_profile
[oracle@localhost ~]$ source .bash_profile
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=/home/oracle/app/oracle/product/19.5.0
export PATH=$PATH:$ORACLE_HOME/bin:/usr/local/bin
export ORACLE_HOSTNAME=oracledb
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

14、静默安装之修改安装引导文件

[oracle@localhost ~]$ cd $ORACLE_HOME/install/response
[oracle@oracledb response]$ cp db_install.rsp db_install.rsp.bak
[oracle@oracledb response]$ vim db_install.rsp
// 主要修改以下参数
oracle.install.option=INSTALL_DB_SWONLY				// 29行
UNIX_GROUP_NAME=oinstall							// 34行
INVENTORY_LOCATION=/home/oracle/app/oraInventory	// 41行
ORACLE_HOME=/home/oracle/app/oracle/product/19.5.0	// 45行
ORACLE_BASE=/home/oracle/app/oracle					// 50行
oracle.install.db.InstallEdition=EE					// 62行
oracle.install.db.OSDBA_GROUP=dba					// 79行
oracle.install.db.OSOPER_GROUP=oper					// 85行
oracle.install.db.OSBACKUPDBA_GROUP=backupdba		// 90行
oracle.install.db.OSDGDBA_GROUP=dgdba				// 95行
oracle.install.db.OSKMDBA_GROUP=kmdba				// 100行
oracle.install.db.OSRACDBA_GROUP=racdba				// 105行
oracle.install.db.rootconfig.executeRootScript=false	// 120行
  • :set number 显示行号
  • :set nu 显示行号
  • :set nu! 取消显示行号

15、执行安装

[oracle@localhost ~]$ cd $ORACLE_HOME
[oracle@localhost ~]$ ./runInstaller -silent -responseFile /home/oracle/app/oracle/product/19.5.0/install/response/db_install.rsp

Linux(Centos7)静默安装Oracle19C

16、以root用户执行脚本

[root@localhost ~]# sh /home/oracle/app/oraInventory/orainstRoot.sh
[root@localhost ~]# sh /home/oracle/app/oracle/product/19.5.0/root.sh
-----------备注,静默安装文件路径-------------------------------------------
软件:/home/oracle/app/oracle/product/19.5.0/install/response/db_install.rsp
监听:/home/oracle/app/oracle/product/19.5.0/assistants/netca/netca.rsp
建库:/home/oracle/app/oracle/product/19.5.0/assistants/dbca/dbca.rsp

Linux(Centos7)静默安装Oracle19C

17、创建监听

[oracle@oracledb 19.5.0]$ cd assistants/netca
[oracle@oracledb netca]$ cp netca.rsp netca.rsp.bak
[oracle@oracledb netca]$ netca /silent /responseFile /home/oracle/app/oracle/product/19.5.0/assistants/netca/netca.rsp

Linux(Centos7)静默安装Oracle19C

18、建库

[oracle@oracledb netca]$ cd $ORACLE_HOME/assistants/dbca
[oracle@oracledb dbca]$ cp dbca.rsp dbca.rsp.bak
[oracle@oracledb dbca]$ vim dbca.rsp
[oracle@oracledb dbca]$ dbca -silent -createDatabase -responseFile /home/oracle/app/oracle/product/19.5.0/assistants/dbca/dbca.rsp
-------------主要修改以下参数----------------------------------

gdbName=orcl														//32行
sid=orcl															//42行
databaseConfigType=SI												//52行
templateName=General_Purpose.dbc									//223行
sysPassword=Yangxiaopeng210											//233行
systemPassword=Yangxiaopeng210										//243行
emConfiguration=NONE												//262行
dbsnmpPassword=Yangxiaopeng210										//295行
datafileDestination=/home/oracle/app/oracle/oradata					//411行
recoveryAreaDestination=/home/oracle/flash_recovery_area			//421行
storageType=FS														//431行
characterSet=ZHS16GBK												//468行
nationalCharacterSet=AL16UTF16										//478行
sampleSchema=true													//565行
totalMemory=2048													//604行
# 如果要创建容器数据库,则还需要配置以下参数,如果是多个pdb则以pdbname为前缀
createAsContainerDatabase=true										//162行													
numberOfPDBs=1														//172行
pdbName=yhggi														//182行
pdbAdminPassword=password											//203行
  • 执行建库脚本后如果提示输入密码,手动输入密码。长度至少8字符,至少一个大写字母、一个小写字母、一个数字
    Linux(Centos7)静默安装Oracle19C

19、服务验证及SQLPLUS验证

[oracle@oracledb dbca]$ lsnrctl status 	# 查看监听状态
[oracle@oracledb dbca]$ lsnrctl restart # 重启监听
[oracle@oracledb dbca]$ lsnrctl stop	# 停止监听
[oracle@oracledb dbca]$ lsnrctl start	# 启动监听

Linux(Centos7)静默安装Oracle19C

[oracle@oracledb dbca]$ sqlplus
  • 输入用户名和密码
  • select sysdate from dual;

Linux(Centos7)静默安装Oracle19C

20、JAVA 代码验证

package test;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class oracle12c {
	public static void main(String[] args) {
		Connection con = null;			// 创建一个数据库连接
	    PreparedStatement pre = null;	// 创建预编译语句对象,一般都是用这个而不用Statement
	    ResultSet result = null;		// 创建一个结果集对象	 
	    try
	    {
	    	Class.forName("oracle.jdbc.driver.OracleDriver"); //加载oracle驱动
	    	System.out.println("开始连接数据库");
	    	String url = "jdbc:oracle:thin:@192.168.137.147:1521:orcl";
	    	String user = "system";
	    	String passwd = "Yangxiaopeng214";
	    	con = DriverManager.getConnection(url, user, passwd);// 获取连接
	    	System.out.println("连接成功!");
	    	String sql = "select sysdate as datatime from dual where 1=? ";// 预编译语句,“?”代表参数
	    	pre = con.prepareStatement(sql);// 实例化预编译语句
	    	pre.setString(1, "1");			// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
	    	result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
	    	while(result.next())
	    	{
	    		String str1 = result.getString(1);
	    	 	System.out.println("str1:"+str1);	    		
	    	}    	
	    }catch(Exception e){
	    	e.printStackTrace();
	    }finally {
	    	try 
	    	{
	    		if (result != null) result.close();			//关闭资源
	    		if (pre != null) pre.close();
	    		if (con != null) con.close();
	    		System.out.println("数据库已关闭!");
	    	}
	    	catch(Exception e) {
	    		e.printStackTrace();
	    	}
	    }
	}
}

Linux(Centos7)静默安装Oracle19C

其他

  • 启动服务

先启动监听,再启动数据库

[oracle@oracledb ~]$ lsnrctl start		# 启动监听
[oracle@oracledb ~]$ sqlplus /nolog		# 打开sqlplus
SQL> conn / as sysdba					# 连接数据库
SQL> startup							# 启动数据库
SQL> shutdown							# 关闭数据库
SQL> exit								# 退出
[oracle@oracledb ~]$ lsnrctl stop		# 停止监听

Linux(Centos7)静默安装Oracle19C

上一篇:【Webpack】electron打包--ValidationError: Invalid options object. Copy Plugin has been initialized using


下一篇:Tensorflow2 深度学习原理与实战