1.工具Xshell用于操作CentOS7.4
2.CentOS7.4【虚拟机】安装oracle【oracle的版本是11g】
若用oracle 12c,环境依赖包可能会需要重新整理,另外安装过程中dbca.rsp中的内容可能跟11g的有所出入,需要查阅文档调节
3.windows7【物理机】用于远程访问oracle
4.SqlDeveloper【windows7上安装】
5.instantclient_12_2【oracle的client,windows上,用于连接oracle】
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel libXp libXp-devel libXpm libXpm-devel
没有的话通过yum install 下载
如yum install gcc
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
密码暂定为oracle
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/inventory
mkdir -p /u01/app/oracle/fast_recovery_area
chown -R oracle.oinstall /u01/app/oracle
chmod -R 755 /u01/app/oracle
语句的作用依次为:前面创建的目录主要作用为
Oracle家目录、数据文件存放位置,安装日志存放位置,快速恢复区
修改属组,修改权限
这里的安装包的目录在/oracle/目录下
# mkdir /oracle
# cd /oracle
# ls
database的文件都应该在这个目录下
# vim /etc/hosts
在文件中加入
7.0.0.13 localhost
这里的ip是centos的ip,7.0.0.13
-----------
第一种:关闭防火墙 # systemctl stop firewalld
------------
第二种:添加
# firewall-cmd --zone=public --add-port=1521/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
# firewall-cmd --reload
-------------
【两种选择一种,生产环境不推荐关闭防火墙】
-----
# vim /etc/selinux/config
添加 SELINUX=disabled ,若有SELINUX则将值设置成disabled
-----
------
# vim /etc/sysctl.conf
-----
添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。
然后执行
-----
# sysctl –p
-----
使配置生效
----
# vim /etc/security/limits.conf
-----
添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
----
vim /etc/pam.d/login
-----
添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
经过这几部配置服务器信息已经配置完。下面开始切换到Oracle用户进行配置和安装
---------切换并编辑 .bash_profile----
su - oracle
vim ~/.bash_profile
----------添加环境变量---------
在文件中添加
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
ORACLE_SID=chngensis 【这句是可变的,根据自己的设置的数据库实例名字】
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
保存退出后使配置文件生效
------使环境变量生效------
source .bash_profile
-----------
--------给oracle用户授权使用/oracle目录-----
chown -R oracle.oinstall /oracle/
这里的/oracle/目录是之前的oracle下载目录,第一步的时候已经创建
备份文件【文中需要修改的rsp文件,ora文件最好备份一下】
cp /oracle/database/response/db_install.rsp /oracle/database/response/db_install.rsp.bak
然后编辑这个文件
vim /oracle/database/response/db_install.rsp
需要设置的选项如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME= diwuqingrou #使用hostname命令查看主机名,然后替换diwuqingrou,这里填上
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
通过find命令找到这些选项并设置上去
切换到oracle用户,进入/oracle/database执行
su - oracle
cd /oracle/database
./runInstaller -force -silent -noconfig -responseFile /oracle/database/response/db_install.rsp
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
配置监听的时候可能会报错
==========================oracle11G安装过程中出错=====================
****DISPLAY environment variable not set!
Oracle Net Configuration Assistant is a GUI tool
which requires that DISPLAY specify a location
where GUI tools can display.
Set and export DISPLAY, then re-run.
需要输入下面的命令解决;
[oracle@diwuqingrou response]$ export DISPLAY=172.20.1.1:1.0
==================================================================
export DISPLAY=172.20.1.1:1.0
netca -silent -responsefile /oracle/database/response/netca.rsp
---------
vim /oracle/database/response/dbca.rsp
--------
【在文件中分别找到对应的值填进去,当然GDBNAME,SID不是固定的[需跟环境变量中的相同],根据需要设置】
GDBNAME= "chngenesis"
SID ="chngenesis"
SYSPASSWORD= "oracle"
SYSTEMPASSWORD= "oracle"
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION=/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area
CHARACTERSET= "AL32UTF8"
TOTALMEMORY= "1638"
修改时可能有些参数会有所改动,可自行百度。
其中TOTALMEMORY ="1638" 为1638MB,物理内存2G*80%。
创建数据库;
dbca -silent -createDatabase -responseFile /oracle/database/response/dbca.rsp
先备份:
cp /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora.bak
修改/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora,并将其中的host切换为本机的ip
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = chngenesis)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = chngenesis)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = chngenesis)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.0.13)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
先备份:
cp /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora.bak
修改/u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora中的host为本机的ip
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.0.13)(PORT = 1521))
chngenesis=
(DESCRIPTION
=(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =7.0.0.13)(PORT = 1521))
) (CONNECT_DATA = (SID = chngenesis)
chngenesis
) ) )
下载地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html
1.在instantclient_12_2目录中创建文件夹
我的目录是在D:\Downloads\instantclient_12_2
在下面创建文件夹network,network下面创建admin
创建之后的路径 D:\Downloads\instantclient_12_2\network\admin
在admin目录创建tnsnames.ora文件,接着在里面添加
chngenesis=
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.0.13)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = chngenesis)
) )
HOST = 7.0.0.13应该换成对应虚拟机centos的ip
2.添加一个环境变量
名为TNS_ADMIN,值为tnsnames.ora文件所在路径D:\Downloads\instantclient_12_2\network\admin,plsql通过这个找到orcl连接字符串
名为NLS_LANG,值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TNS_ADMIN=D:\Downloads\instantclient_12_2\network\admin
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
3.打开PLSQL,不用登陆,找到工具-首选项-ORACLE-连接:勾选检查连接
设置Oracle主目录: D:\Downloads\instantclient_12_2
设置OCI库:D:\Downloads\instantclient_12_2\oci.dll
依次执行命令:
su - oracle 【切换到oracle用户】
lsnrctl stop 【关闭监听】
lsnrctl start 【开启监听 ---重要】
sqlplus / as sysdba; 【以管理员的身份登录】
shutdown immediate; 【关闭数据库服务】
startup; 【开启数据库服务 ---重要】
alter system register; 【注册】
quit;【退出管理员】
lsnrctl status;【查看监听的状态】
20.回到windows7,打开sqlpdeveloper
输入用户名 sys
密码 oracle 【之前创建的是时候设置的】
数据库:这里填写在D:\Downloads\instantclient_12_2\network\admin中tnsname.ora中定义的名字
我这里是chngenesis
连接为,这个选项根据用户的权限选择,sys是管理员,所以这里选择sysdba
点击确认就可以连接了
--------------配置oracle开机启动-----------
1.vim /etc/oratab 将这里的N改成Y,如果是Y则不用改
chngenesis:/u01/app/oracle/product/11.2.0/db_1:Y
2. vim /etc/rc.d/rc.local 添加如下两行
su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
3.centos7默认不会开机启动这个,所以需要为其赋予相应的权限
chmod +x /etc/rc.d/rc.local
自启动的方式有很多种,这里只是其中的一种,可以尝试其他的方式
======================bug集合=================
查看日志时若发现
未找到包含数据文件信息的文件 "/u01/app/oracle/oradata/Seed_Database.dfb"。请指定有效文件。
cp /u01/app/oracle/product/11.2.0/db_1/assistants/dbca/templates/Seed_Database.dfb /u01/app/oracle/oradata/
-------------------------------------
出现少包的情况需要安装相关的包,一般不会缺少
-------------------------------------
安装过程中最好备份相关的ora文件!切记!