Oracle数据库服务器一般都是Linux,Linux服务器一般都是在非图形界面的操作,本文章手把手教你如何在非图形界面安装Oracle19C。
- ORACLE 19C 的安装包自行在官网下载,下载免费,但需要注册账号,现提供一个账号
账号:2969868321@qq.com
密码:Yang199324.
- 下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c
- 下载后的安装包文件上传至服务器(本例上传至/Tools)
- 静态IP配置可参考此文章:https://www.cnblogs.com/yyxp/p/15936049.html
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
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
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
4、修改主机名
[root@localhost ~]# hostname # 查看主机名
[root@localhost ~]# hostname oracledb # 修改主机名为oracledb
5、配置hosts
[root@localhost ~]# vim /etc/hosts
192.168.137.147 oracledb
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
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 开机启动
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
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
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
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字符,至少一个大写字母、一个小写字母、一个数字
19、服务验证及SQLPLUS验证
[oracle@oracledb dbca]$ lsnrctl status # 查看监听状态
[oracle@oracledb dbca]$ lsnrctl restart # 重启监听
[oracle@oracledb dbca]$ lsnrctl stop # 停止监听
[oracle@oracledb dbca]$ lsnrctl start # 启动监听
[oracle@oracledb dbca]$ sqlplus
- 输入用户名和密码
- select sysdate from dual;
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();
}
}
}
}
其他
- 启动服务
先启动监听,再启动数据库
[oracle@oracledb ~]$ lsnrctl start # 启动监听
[oracle@oracledb ~]$ sqlplus /nolog # 打开sqlplus
SQL> conn / as sysdba # 连接数据库
SQL> startup # 启动数据库
SQL> shutdown # 关闭数据库
SQL> exit # 退出
[oracle@oracledb ~]$ lsnrctl stop # 停止监听