一、安装前准备
1.关闭防火墙,禁止防火墙开机自启
systemctl stop firewalld.service --关闭防火墙
systemctl disable firewalld.service -- 禁止防火墙开机启动
systemctl status firewalld.service -- 查看防火墙状态
2.关闭selinux
vi /etc/selinux/config -- 编辑文件
SELINUX=disabled --修改
3.yum安装必要安装包
#若执行一遍失败则执行第二遍
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
#检查是否安装成功(31个安装包)
rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
二、创建用户组
1.创建oinstall和dba组
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
2.创建oracle用户
/usr/sbin/useradd -g oinstall -G dba oracle
3.设置oracle密码
passwd oracle 密码(zlxid)
4.查看创建结果
id oracle
三、修改内核参数
1.编辑配置文件
vi /etc/sysctl.conf
2.文件内容添加
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967296
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
3.使配置生效
/sbin/sysctl -p
四、修改配置
(1)修改用户限制
1.编辑文件
vi /etc/security/limits.conf
2.在文件末尾添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
(2)修改 /etc/pam.d/login
vi /etc/pam.d/login
#添加以下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
(3)修改/etc/profile
vi /etc/profile
#添加以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
#使配置生效
source /etc/profile
(4)创建目录
mkdir -p /u01/app/
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/
五、配置oracle用户
(1)配置oracle用户环境变量
vi ~/.bash_profile
#添加
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
#使配置生效
source ~/.bash_profile
(2)上传数据库压缩包
#切换到oracle用户下
su - oracle
1.创建一个文件夹
mkdir oradb
2.上传成功后,安装解压插件
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 注意此处下载的是
Oracle Database 12c Release 2 linux版本 注意一定要使用oracle用户下载到oracle用户里面,
切换到root用户
su - root
yum install -y unzip zip
3.解压文件
切换到oracle用户
su - oracle
unzip xxx.zip
(3)复制相应的模板
mkdir etc
cp /home/oracle/oradb/database/response/* /home/oracle/etc/
#设置权限
su - root
chmod 700 /home/oracle/etc/*.rsp
(4)静默安装文件配置
1.返回oracle用户
su - oracle
#编辑/home/oracle/etc/db_install.rsp
vi /home/oracle/etc/db_install.rsp
#文件内容修改
oracle.install.option=INSTALL_DB_SWONLY // 安装类型
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/u01/app/oraInventory //INVENTORY目录(不填就是默认值)
ORACLE_HOME=/u01/app/oracle/product/12/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE // 企业版本
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=oinstall
oracle.install.db.OSDGDBA_GROUP=oinstall
oracle.install.db.OSKMDBA_GROUP=oinstall
oracle.install.db.OSRACDBA_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=zlxid_0917 //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
六、开始安装
(1)执行文件db_install.rsp
切换到database文件夹下
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
查看日志:tail -f xxx.log
成功后结果为:
(2)执行命令
#执行下方命令
su - root
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12/db_1/root.sh
(3)修改oracle用户环境变量
#修改oracle环境变量
su - oracle
vim ~/.bash_profile
#for oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ROACLE_PID=oral12
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_HOME=/u01/app/oracle/product/12/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
#使配置生效
source ~/.bash_profile
(4)配置监听
修改监听端口
vi $ORACLE_HOME/network/admin/listener.ora
netca /silent /responsefile /home/oracle/etc/netca.rsp
#启动监听
lsnrctl start
(5)静默建库配置文件修改
切换root
su - root
vi /home/oracle/etc/dbca.rsp
#文件内容
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
createAsContainerDatabase=true
numberOfPDBs=1
pdbName=orclpdb
templateName=/u01/app/oracle/product/12/db_1/assistants/dbca/templates/General_Purpose.dbc
emExpressPort=5500
omsPort=0
characterSet=ZHS16GBK
listeners=LISTENER
memoryPercentage=40
automaticMemoryManagement=false
totalMemory=0
(6)执行静默建库
dbca -silent -createDatabase -responseFile /home/oracle/etc/dbca.rsp
输入 SYS 用户口令:zlxid_0917
输入 SYSTEM 用户口令:zlxid_0917
输入 PDBADMIN 用户口令:zlxid_0917
注:Oracle 建议, 输入的口令长度不应少于 8 个字符, 至少包含 1 个大写字符, 1 个小写字符和 1 个数字 [0-9]
数据库安装成功。
(7)创建表空间
首先Oracle 12C,容器数据库创建新用户并分配表空间时必须在没有PDB的情况下进行或PDB与CDB有相同的表空间的时候进行,否则会报错。如果是在PDB与CDB 有相同表空间的情况下给CDB用户分配表空间,则分配CDB的表空间给用户PDB的表空间并不受影响。而且,CDB用户必须以‘C##’为开头,否则创 建不了
create tablespace CFP_TAB datafile '/u01/app/oracle/oradata/orcl/cfp.dbf' size 512M autoextend on next 10m maxsize unlimited;
ORACLE 12C 需要切换会话
show con_name --查看当前容器
select con_id ,dbid,name,open_mode from v$pdbs; --查看容器
alter session set container=ORCLPDB; --切换PDB会话
alter session set container=CDB$ROOT; --切换CDB会话
切换PDB会话创建表空间,名称一致,路径分开
create tablespace CFP_TAB datafile '/u01/app/oracle/oradata/orcl/pdb_cfp.dbf' size 512M autoextend on next 10m maxsize unlimited;
1) DATAFILE: 表空间数据文件存放路径
2) SIZE: 起初设置为200M
3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k
4) 空间名称histdb 与 数据文件名称 histdb.dbf 不要求相同,可随意命名.
5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间
6) alter database datafile ' D:oracleproduct10.2.0oradataorclhistdb.dbf ' resize 500m; //手动修改数据文
tempfile是指临时文件,用于指定临时表空间的存储文件,
datafile是指数据文件,用于存储数据的文件,
查看表空间
select file_name,bytes/1024/1024||'M' "size" from dba_data_files;
删除表空间
drop tablespace CFP_TAB ;
则需要在相应路径下手动删除dbf文件。
(8)创建oracle 用户
sqlplus / as sysdba ;
格式: create user 用户名 identified by 口令[即密码]; 用户名前必须加c##
create user c##cfp identified by cfp default tablespace CFP_TAB;
删除用户
drop user c##cfp cascade;
为用户授权
grant connect,resource,dba to c##cfp;
grant dba to c##cfp;
给用户指定表空间
alter user 用户名 default tablespace 表空间名
(9)开机自动启动
1. 编辑/etc/oratab文件
dbca建库时都会自动创建/etc/oratab文件
将orcl:/u01/app/oracle/product/12/db_1:N
修改成 orcl:/u01/app/oracle/product/12/db_1:Y
1.在 /etc/init.d/ 下创建文件oracle,内容如下:
3. 改变文件权限
# chmod 755 /etc/init.d/oracle
4. 添加服务
# chkconfig --level 35 oracle on
5. 需要在关机或重启机器之前停止数据库,做一下操作
# ln -s /etc/init.d/oracle /etc/rc0.d/K01oracle //关机
# ln -s /etc/init.d/oracle /etc/rc6.d/K01oracle //重启
6. 使用方法
# service oracle start //启动oracle
# service oracle stop //关闭oracle
# service oracle restart //重启oracle
问题一:无监听
修改监听HOST为内网ip
su - oracle
vi $ORACLE_HOME/network/admin/listener.ora
重启和启动监听的命令为
lsnrctl stop、lsnrctl start
问题二
因为这个监听器的端口号不是1521(默认注册),所以采用必须的得采用下面的动态注册方法
动态注册方法 如下所示:
sqlplus / as sysdba
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.180.22.8)(PORT=11521))))';
alter system register;
问题三
是oci.dll版本不对。因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准版,一种是简洁版,即Oracle Install Client。而我们用Navicat时通常会在自己的安装路径下包含多个版本的OCI,如果使用Navicat连接Oracle服务器出现ORA-28547错误时,多数是因为Navicat本地的OCI版本与Oracle服务器服务器不符造成的。所以我们要做的就是下载OCI使之与我们所安装的Oracle服务器相符合。
OCI下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html