基于Centos7系统Oracle静默安装教程
在VM中安装CentOS7
注意:配置静态IP和主机名,并记录下ip地址
安装前准备
创建目录,并上传oracle安装文件
mkdir -p /yundata/software
关闭防火墙
systemctl stop firewalld
关闭自启动:
systemctl disable firewalld
关闭selinux
修改etcselinux/config文件
$ vi /etc/selinux/config
将SELINUX修改为disable,如图:
- 重启服务器
$ reboot -h
安装相关依赖包
yum -y install binutils compat-libstdc++-33 compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make elfutils-libelf-devel sysstat zip unzip libXext
设置/dev/shm空间
[root@oracle ~]# vi /etc/fstab
在fstab文件中追加如下内容:
shmfs /dev/shm tmpfs size=7g 0 0
[root@oracle ~]# mount -a
[root@oracle ~]# df -Th
显示如下:
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 59G 3.8G 53G 7% /
devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev
shmfs tmpfs 7.0G 0 7.0G 0% /dev/shm
安装Oracle
创建相关用户
[root@oracle ~]# /usr/sbin/groupadd oinstall
[root@oracle ~]# /usr/sbin/groupadd dba
[root@oracle ~]# /usr/sbin/groupadd asmadmin
[root@oracle ~]# /usr/sbin/groupadd asmdba
[root@oracle ~]# /usr/sbin/useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
[root@oracle ~]# id oracle
显示如下:
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba),1003(asmdba)
设置oracle用户密码,(此密码必须记住,以后有用)
[root@oracle ~]# passwd oracle
调整内核参数(编辑/etc/sysctl.conf,追加如下内容):
[root@oracle ~]# vi /etc/sysctl.conf
追加内容:
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
配置生效:
[root@oracle ~]# sysctl -p
增加shell限制(编辑/etc/security/limits.conf,追加如下内容):
[root@oracle ~]# vi /etc/security/limits.conf
追加内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
修改/etc/pam.d/login文件
vi /etc/pam.d/login
追加如下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
修改/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
创建必要的目录,并修改权限:
[root@oracle ~]# mkdir -p /home/app/oracle/
[root@oracle ~]# chown -R oracle:oinstall /home/app/
[root@oracle ~]# chmod -R 755 /home/app/
[root@oracle ~]# chown -R oracle:oinstall /home/oracle
[root@oracle ~]# chmod -R 775 /home/oracle
配置/etc/hosts文件:
vi /etc/hosts
如下内容
192.168.26.128 oracle
配置oracle用户的环境变量:
[root@oracle ~]# su - oracle
[oracle@oracle ~]$ vi .bash_profile
#添加如下内容
export ORACLE_HOSTNAME=oracle
export ORACLE_UNQNAME=ora11g
export ORACLE_BASE=/home/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ORCL
export PATH=/usr/sbin:$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 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export TMP=/tmp
export TMPDIR=$TMP
umask 022
执行生效命令:
source .bash_profile
修改目录权限:
切换回root用户:
su
执行命令
chown -R oracle /yundata/software/
退出root用户,回到oracle用户:
exit
解压安装文件:
cd /yundata/software
解压
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_2of2.zip
进入到database目录,并生成响应文件:
回到oracle的home目录
cd
创建目录
[oracle@oracle ~]$ mkdir scripts
[oracle@oracle ~]$ cp -R /yundata/software/database/response/ scripts/
[oracle@oracle response]$ cd scripts/response/
[oracle@oracle response]$ vi db_install.rsp
修改response目录中的db_install.rsp文件的参数:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/home/app/oracle/product/11.2.0
ORACLE_BASE=/home/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_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.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=qaz123QAZ123 ##记住
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
DECLINE_SECURITY_UPDATES=true
开始静默安装数据库软件:
切换目录
cd /yundata/software/database
执行如下命令
[oracle@oracle database]$ ./runInstaller -silent -responseFile /home/oracle/scripts/response/db_install.rsp -ignorePrereq
按操作说明执行脚本:
sh /home/app/oracle/oraInventory/orainstRoot.sh
sh /home/app/oracle/product/11.2.0/root.sh
配置静默监听:
[root@oracle response]# exit
[oracle@oracle response]$ cd
[oracle@oracle ~]$ export DISPLAY=10.66.90.222:0.0 #ip设为本机即可
[oracle@oracle ~]$ netca -silent -responsefile /home/oracle/scripts/response/netca.rsp
[oracle@oracle ~]$ netstat -tnlp #查看1521端口开启
最后一步,静默建库。
修改response目录下的dbca.rsp文件:
cd /home/oracle/scripts/response
[oracle@oracle response]$ vi dbca.rsp
GDBNAME = "ORCL"
SID = "ORCL"
开始建库:
[oracle@oracle response]$ cd
[oracle@oracle ~]$ dbca -silent -responseFile /home/oracle/scripts/response/dbca.rsp
启动oracle:
[oracle@oracle ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jul 2 21:53:11 2018
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup;
ORACLE instance started.
Total System Global Area 3273641984 bytes
Fixed Size 2217792 bytes
Variable Size 1795164352 bytes
Database Buffers 1459617792 bytes
Redo Buffers 16642048 bytes
Database mounted.
Database opened.
问题:
1.如出现这样问题,重启服务器即可
SQL> startup;
ORACLE instance started.
Total System Global Area 3223535616 bytes
Fixed Size 2217672 bytes
Variable Size 1761610040 bytes
Database Buffers 1442840576 bytes
Redo Buffers 16867328 bytes
ORA-01102: cannot mount database in EXCLUSIVE mode
测试sql
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.US7ASCII
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
解锁scott用户
SQL> alter user scott account unlock;
User altered.
SQL> alter user scott identified by tiger;
User altered.
SQL> commit;
Commit complete.
SQL>
查看oracle监听:
netstat -tnlp #查看端口是否启动
配置Navicat客户端
scott用户
sys用户
忘记密码了
sqlplus / as sysdba
alter user system identified by manager;
alter user sys identified by change_on_install;
commit;
日常启动oracle命令
[root@oracle ~]# su - oracle
[oracle@oracle ~]$ lsnrctl start
[oracle@oracle ~]$ sqlplus / as sysdba
SQL> startup;
sqlplus scott/tiger@ORCL
配置windows下的sqlplus
SQL*Plus命令行工具无需执行exe安装,只需将下载回来的三个文件解压到同一个目录即可,解压后文件名应该为instantclient_11_2
instantclient-basic-windows.x64-11.2.0.4.0.zip
instantclient-sdk-windows.x64-11.2.0.4.0.zip
instantclient-sqlplus-windows.x64-11.2.0.4.0.zip
在运行工具之前我们需要在windows中配置以下环境变量,先右键计算机->属性->高级系统设置->环境变量,在系统变量中找到Path并在后面加上刚才解压后instantclient_11_2的目录与sdk子目录
C:\oracle\instantclient_11_2\;C:\oracle\instantclient_11_2\sdk;
再新增三个变量到系统环境中
TNS_ADMIN=C:\oracle\instantclient_11_2
NLS_LANG=AMERICAN_AMERICA.UTF8
oracle_sid=ORCL
新增用户变量
SQLPATH=C:\oracle\instantclient_11_2
测试连接
sqlplus scott/tiger@//192.168.10.128:1521/oraclewangjialei
sqlplus scott/tiger@//192.168.10.128:1521/ORCL
配置Mac下的sqlplus
下载3个文件。3个文件分别为“basic”,”SDK” 和 “sqlplus” ,[下载地址](https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html) 注意:必须是对应版本:11.2.0.40
创建/Users/zzxb/opt/oracle11g文件夹,并将下载的压缩包全部copy该目录:
sudo mkdir -p /Users/zzxb/opt/oracle11g
解压下载的文件到文件夹下:
sudo unzip ./instantclient-\*.zip
给解压文件创建别名:
sudo ln -s instantclient_11_2/ instantclient
给dylib文件创建别名,因为一些dylib 文件,在其名字中包含版本号。但是一些程序,例如SQL*Plus 不会去查找带有版本号的文件,所以我们需要为它们创建别名:
sudo ln -s libclntsh.dylib.11.1 libclntsh.dylib
sudo ln -s libocci.dylib.11.1 libocci.dylib
oracle client的配置
Mac当前的user下进行配置。修改 user 的 .bash_profile. 在.bash_profile 文件中加入如下几行:
vi ~/.bash_profile
# oracle
export ORACLE_HOME=/Users/zzxb/opt/oracle11g/instantclient
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME
export NLS_LANG=AMERICAN_AMERICA.UTF8
export TNS_ADMIN=$HOME/etc
export PATH=$PATH:$ORACLE_HOME
export ORACLE_SID=ORCL
export TWO_TASK=${ORACLE_SID}
source ~/.bash_profile
之后输入:sqlplus。如果有提示让输入username,表明安装成功。
想要连接到远程数据库,还需要额外的一步,即配置 tns_names.ora 文件
mkdir ~/etc
touch tnsnames.ora
配置tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.77.170)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL.fuful.com)
)
)
注意:
service_name必须是由:
select value from v$parameter where name='service_names'
获得
连接oracle 数据库,在terminal依次输入:
(1)source~/.bash_profile
(2)sqlplus
(3) 输入username: <用户名>@<connect_string>
(4)输入密码
例如:
sqlplus scott/tiger
在Navicat中配置tns模式下的连接
1.配置
2.填写连接信息