1.准备LIINX软件包
操作系统:centos7
虚拟机:VMware 12
JDK:1.8
数据库:oracle 12c
2.配置基础环境
2.1 部署虚拟机VM(过程略)
2.2 部署操作系统Centos(过程略)
2.3 配置NAT网络环境
#网络适配器为NAT模式
#VM虚拟机-编辑-虚拟网络编辑器-添加VMnet8节点,配置NAT模式网段:子网-192.168.66.0,网关-192.168.66.2
#设置centos静态IP配置(/etc/sysconfig/network-scripts/ifcfg-ens33 )
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7ea5375c-4db2-4132-9df9-dfe79362f31c
DEVICE=ens33
ONBOOT=yes
GATEWAY=192.168.66.2
PADDR=192.168.66.68
NETMASK=255.255.255.0
DNS1=192.168.66.2
#关闭防火墙:systemctl stop firewalld.service systemctl disable firewalld.service
#关闭SLinux安全控制
#vim /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
#setenforce 0 #使配置立即生效
#将有线网或无线网共享给vmnet8(网络连接右键-属性-共享)
#ping www.baidu.com 测试网络是否连通
3.配置JDK
#mkdir /usr/app 新建目录
#上传并解压软件包到/usr/app,使用mv更名为jdk1.8.0
#配置/etc/profile
vim /etc/profile
#set java environment
export JAVA_HOME=/usr/app/jdk1.8.0
export JRE_HOME=/usr/app/jdk1.8.0/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH #source /etc/profile 立即生效
#java -version 测试JDK环境是否正常
4.创建oracle相关用户和组
#groupadd dba 创建组别
#groupadd oinstall #创建组别
#useradd -g oinstall -G dba -m oracle 添加用户并指定组别
#id oracle 查看用户的组别信息
uid=500(oracle) gid=501(oinstall) groups=501(oinstall),500(dba)
#passwd oracle 设置登录密码
5.创建oracle软件安装目录
#df -TH 查看挂载情况,保证至少有60GB的空间,显存2.5GB以上
#mkdir /usr/app/oracle/oracle -p
#mkdir /usr/app/oracle/oraInventory -p
#mkdir /usr/app/oracle/database -p
#chown -R oracle. /usr/app/oracle 授予组别和拥有者
#chmod 755 -R /usr/app/oracle 授权相关权限
#ls -ll /usr/app/oracle 查看组别是否为oinstall,拥有者是否为oracle
6.上传oracle安装包
#使用xftp上传到/usr/app/oracle/database下,并使用tar zxvf或unzip进行解压
#chown -R oracle. /usr/app/oracle 授予组别和拥有者
#chmod 755 -R /usr/app/oracle 授权相关权限
7.配置oracle环境
vim /etc/profile
export ORACLE_BASE=/usr/app/oracle/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_SID=ORCL
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
if [ $USER = "oracle" ];then
if [ $SHELL = "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
#source /ect/profile 立即生效
8.修改内核参数和安全控制
#vim /etc/sysctl.conf 添加以下内容 kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096 #sysctl -p #立即生效 #修改安全限制
#vim /etc/security/limits.conf文件末尾添加如下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536 #vim /etc/pam.d/login文件,添加以下内容
session required pam_limits.so
9.安装依赖包
yum install -y gcc gcc-c++ libaio glibc compat-libstdc++-33 elfutils-libelf-devel libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel glibc-common ksh make sysstat pdksh
10.xshell远程调用xmanager图形安装
#安装xshell、xmanager系列软件
#无桌面Linux系统(安装桌面组件)
yum clean all
yum groupinstall "X Window System" -y
yum groupinstall "Desktop"
yum groupinstall "GNOME Desktop Environment" -y
yum -y install tigervnc-server
yum -y install lrzsz scp mlocate
#xshell会话设置
#su oracle 切换用户输入密码
#export DISPLAY=172.20.107.151:0.0 #w查看客户端IP
#xhost +
access control disabled,clients can connect from any host
#gnome-panel #连接Xmanager进入图形界面(可忽略)
#进入database目录,执行runInstaller,选择好参数进行安装
#./runInstaller 执行安装
#有桌面的LINUX系统
使用oracle用户登录桌面,执行./runInstaller进行安装,选择安装数据库软件-单个实例进行安装。
11.dbca新建数据库
Linux系统新建数据库,需要启动图形界面
#su oracle 切换用户输入密码
#export DISPLAY=172.20.107.151:0.0 #w查看客户端IP
#xhost +
#dbca ###勾选enterprise manager
输入SID、数据库名、system/sys的密码,选择好字符集GBK-Chinese,注意db_block_size块不可更改,根据操作系统固定为8192,对应8k,最大支持单个数据文件32GB,如超出范围,需另加一个数据文件,并指定在同一表空间下。
12.数据库启动和关闭操作
#su oracle #lsnrctl start 启动监听 #lsnrctl status 查看监听状态 #lsnrctl stop 停止监听 #ps -ef | grep ora_ 查看oracle进程 #sqlplus /nolog 无密进入超级用户 sqlplus / as sysdba SQL>connect / as sysdba SQL>select status from v$instance;#查看实例状态 SQL>select name from v$database; #查看SID SQL>select name from v$datafile;#查看数据库空间路径 SQL>select member from v$logfile;#查看日志路径 SQL>select * from v$version;#查看版本号 SQL>startup; #开启实例 SQL>shutdown immediate; #关闭实例 SQL>create tablespace BIT datafile '/usr/app/oracle/oracle/oradata/ORCL/BIT01.dbf' size 100M autoextend on next 100M maxsize unlimited,'/usr/app/oracle/oracle/oradata/ORCL/BIT02.dbf' size 100M autoextend on next 100M maxsize unlimited;#创建表空间 SQL>create user c##bit identified by bit123 default tablespace BIT;#创建用户 SQL>grant dba,connect,resource to c##bit; 授予DBA角色
附录:CDB与PDB一些操作
附录---CDB与PDB一些操作
#查看PDB状态
SELECT con_id,dbid,NAME,OPEN_MODE from v$pdbs; #更改容器为PDB
alter session set container=PDBORCL;
#切换到CDB
alter session set container=CDB$ROOT; #查看表空间 SELECT t.tablespace_name FROM dba_tablespaces t;
#创建表空间 create tablespace BIT datafile '/usr/app/oracle/oracle/oradata/ORCL/BIT01.dbf' size 100M autoextend
on next 100M maxsize unlimited,'/usr/app/oracle/oracle/oradata/ORCL/BIT02.dbf' size 100M autoextend on
next 100M maxsize unlimited;
#新建用户并授权
create user c##bit identified by bit123 default tablespace BIT;
GRANT dba,CONNECT,resource TO c##bit;
#修改sys和system密码
alter user sys identified by 1;
alter user system identified by 1;
#删除表空间
drop tablespace BIT including contents and datafiles ;
#删除用户
drop user BIT cascade;
#关闭PDB
alter pluggable database PDBORCL close;
#查看所有用户
select * from all_users;
#开启CDB
sqlplus / as sysdba
SQL>startup
SQL> set linesize 120
SQL> select instance_name,status from v$instance;
SQL> select name,cdb from v$database;
SQL> show con_name
SQL> SHUTDOWN IMMEDIATE
#开启和关闭PDB
SQL> show con_name S
QL> show pdbs
SQL> alter pluggable database pdb1 open;
SQL> alter pluggable database pdb1 close;
SQL> show pdbs #切换到容器PDB1
SQL> alter session set container=pdb1;
SQL> SHOW CON_NAME
#创建触发器随CDB启动而启动PDB
SQL> CREATE OR REPLACE TRIGGER open_pdbs AFTER STARTUP ON DATABASE BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; END open_pdbs;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> show pdbs
如何使用ORACLE客户端连接LINUX ORACLE服务器
#下载instantclient basic和sqlplus 64bit包,合并解压到D盘
#设置环境变量
NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN:D:\instantclient\NETWORK\ADMIN
Path:D:\instantclient D:\instantclient\NETWORK\ADMIN
#在D:\instantclient\NETWORK\ADMIN新建tnsnames.ora
# tnsnames.ora Network Configuration File: #D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools. BIT68 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.66.68)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
#使用sqldbx或plsql连接
客户端连接Oracle 12c的时候,报错误:
ORA-28040: No matching authentication protocol
问题原因:
Oracle 12c的参数SQLNET.ALLOWED_LOGON_VERSION默认等于11。当我们使用11g JDBC之前版本的thin驱动连接的时候,就会报错。
解决方法:
在数据库服务器上的network/admin/sqlnet.ora文件添加一行SQLNET.ALLOWED_LOGON_VERSION=8,重启数据库,重新连接数据库,可以成功连接,问题解决。