linux安装Oracle11G
阅读目录:
阅读正文:
linux安装Oracle11G
0、下载Orcle11G
说明一下:
[root@myYUn install]#中的myYUn
等价于
[root@iz2f570bi1k56uz install]#中的iz2f570bi1k56uz;
这是为了界面效果调整的,但是有些没调整到,理解一哈。
1、上传文件到服务器或虚拟机的/install目录下
[root@myYUn install]# rz –y
如果rz –y命令不能使用,可用如下方法解决:
yum install lrzsz -y
2、解压文件到当前目录:
[root@myYUn install]# unzip linux.x64_11gR2_database_1of2.zip
[root@myYUn install]# unzip linux.x64_11gR2_database_2of2.zip
如果unzip命令不能使用,依次执行如下命令:
yum list | grep zip/unzip
yum install zip
yum install unzip
将解压后的文件夹直接移动到/software目录下:
[root@myYUn install]# mv database/ /software/
[root@myYUn install]# cd /software
[root@myYUn install]# ll
3、关闭selinux
[root@myYUn software]# vim /etc/selinux/config
设置SELINUX=disabled
[root@myYUn software]# setenforce 0
4、关闭防火墙
[root@myYUn software]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@myYUn software]# getconf LONG_BIT
64
如果是6及以下:
[root@myYUn software]# service iptables stop
[root@myYUn software]# service iptables status
[root@myYUn software]# chkconfig iptables off
如果是centenOS7:
[root@myYUn software]# systemctl restart firewalld.service
[root@myYUn software]# systemctl list-unit-files|grep firewalld.service
firewalld.service disabled
[root@myYUn software]# systemctl disable firewalld.service
5、安装Oracle 11g依赖包
[root@myYUn software]# yum install gcc make binutils gcc-c++ compat-libstdc++-33elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-develnumactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y
6、添加安装用户和用户组
[root@myYUn software]# groupadd oinstall
[root@myYUn software]# groupadd dba
[root@myYUn software]# useradd -g oinstall -G dba oracle
[root@myYUn software]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@myYUn software]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
7、修改内核参数配置文件
[root@myYUn software]# 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
查看是否成功写进/etc/sysctl.conf文件中:
[root@myYUn software]# sysctl -p
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。
8、修改用户的限制文件
修改/etc/security/limits.conf文件:
[root@myYUn software]# 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
修改/etc/pam.d/login文件:
[root@myYUn software]# vim /etc/pam.d/login
在末尾添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
修改/etc/profile文件:
[root@ myYUn software]# vim /etc/profile
在末尾添加以下内容:
#oracle配置
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
9、创建安装目录和设置文件权限
[root@myYUn software]# mkdir -p /data/oracle/product/11.2.0
[root@myYUn software]# mkdir /data/oracle/oradata
[root@myYUn software]# mkdir /data/oracle/inventory
[root@myYUn software]# mkdir /data/oracle/fast_recovery_area
[root@myYUn software]# chown -R oracle:oinstall /data/oracle
[root@myYUn software]# chmod -R 775 /data/oracle
10、设置oracle用户环境变量
首先切换到oracle用户下:
[root@myYUn software]# su -l oracle
[oracle@myYUn ~]$ vim .bash_profile
在末尾添加如下内容:
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
注意,标红处必须与创建的数据库实例名称一致,否则数据库启动后无法访问。第一次配置完记得source一下。
[oracle@myYUn ~]$ source .bash_profile
11、编辑静默安装响应文件
复制安装文件夹response到当前oracle用户的家目录下:
[oracle@myYUn ~]$ cp -R /software/database/response/ .
[oracle@myYUn ~]$ cd response/
[oracle@myYUn response]$ vim db_install.rsp
需要设置的选项如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=CentOS
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
12、根据响应文件静默安装Oracle11g
[oracle@myYUn response]$ cd /software/database/
[oracle@myYUn database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
出现异常如下:
error trying to initialize the HPI library.
Please check your installation, HotSpot does not work correctly
when installed in the JDK 1.2 Linux Production Release, or
with any JDK 1.1.x release.
Could not create the Java virtual machine.
解决方式,切换到root用户,执行 dnf install libnsl 命令如下:
如果执行以上命令出错,会提示有参数格式,按照提示参数格式修改修改即可,一般是由于word中的字体、符号格式复制到客户端命令行后不一致引起,修改即可。
楼主遇到了交换空间不足的问题:
解决方案如下(在root用户下执行):
[root@myYUn /]# free
[root@myYUn /]# dd if=/dev/zero of=swapfile bs=1024 count=500000
500000+0 records in
500000+0 records out
512000000 bytes (512 MB) copied, 1.67013 s, 307 MB/s
[root@myYUn /]# mkswap swapfile
Setting up swapspace version 1, size = 499996 KiB
no label, UUID=c5e355eb-e73e-4aa0-b882-cb6d1f88e6bc
[root@myYUn /]# swapon swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
[root@myYUn /]# free
开始Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现Successfully Setup Software,则安装程序已经停止了。
可以在以下位置找到本次安装会话的日志:/data/oracle/inventory/logs/installActions2018-05-13_02-14-55PM.log
可以切换终端执行top命令查看后台进程一直是在安装的,/data目录也在不断增大,
当出现以下提示时,代表安装成功:
按照要求执行脚本。
打开终端,退出到root身份登录,执行脚本:
[oracle@iZ2f570bi1k56uZ database]$ exit
logout
[root@iZ2f570bi1k56uZ software]# sh /data/oracle/inventory/orainstRoot.sh
Changing permissions of /data/oracle/inventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /data/oracle/inventory to oinstall.
The execution of the script is complete.
[root@iZ2f570bi1k56uZ software]# sh /data/oracle/product/11.2.0/root.sh
Check /data/oracle/product/11.2.0/install/root_iZ2f570bi1k56uZ_2018-05-13_14-25-04.log for the output of root script
13、以静默方式配置监听
重新使用oracle用户登录:
[root@myYUn software]# su -l oracle
Last login: Sun May 13 14:09:10 CST 2018 on pts/3
[oracle@myYUn ~]$ netca /silent /responseFile /home/oracle/response/netca.rsp
异常如下:
[oracle@bogon ~]$ netca /silent /responseFile /home/oracle/response/netca.rsp
UnsatisfiedLinkError exception loading native library: njni11
java.lang.UnsatisfiedLinkError: /data/oracle/product/11.2.0/lib/libnjni11.so: /data/oracle/product/11.2.0/lib/libclntsh.so.11.1: file too short
解决方式:
cd $ORACLE_HOME/inventory/Scripts/ext/lib/
cp libclntsh.so.11.1 $ORACLE_HOME/lib/
注意此处,必须使用/silent /responseFile格式,而不是-silent -responseFile,因为是静默安装。
成功运行后,在/data/oracle/product/11.2.0/network/admin中生成listener.ora和sqlnet.ora
通过netstat命令可以查看1521端口正在监听。
Yum安装netstat软件,软件包是在net-tools中。
[root@myYUn /]# yum install net-tools
[root@myYUn /]# yum install net-tools
14、以静默方式建立新库,同时也建立一个对应的实例
[oracle@myYUn ~]$ vim /home/oracle/response/dbca.rsp
修改文件中以下参数:
[GENERAL]
# oracle版本,不能更改
RESPONSEFILE_VERSION = "11.2.0"
# Description : Type of operation
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
# Description : Global database name of the database
# 全局数据库的名字=SID+主机域名
# 第三方工具链接数据库的时候使用的service名称
GDBNAME = "orcl.test"
# Description : System identifier (SID) of the database
# 对应的实例名字
SID = "orcl"
# Description : Name of the template
# 建库用的模板文件
TEMPLATENAME = "General_Purpose.dbc"
# Description : Password for SYS user
# SYS管理员密码
SYSPASSWORD = "123456"
# Description : Password for SYSTEM user
# SYSTEM管理员密码
SYSTEMPASSWORD = "123456"
# Description : Password for SYSMAN user
# SYSMAN管理员密码
SYSMANPASSWORD = "123456"
# Description : Password for DBSNMP user
# DBSNMP管理员密码
DBSNMPPASSWORD = "123456"
# Description : Location of the data file's
# 数据文件存放目录
DATAFILEDESTINATION =/data/oracle/oradata
# Description : Location of the data file's
# 恢复数据存放目录
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_area
# Description : Character set of the database
# 字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
# (CHARACTERSET = "AL32UTF8" NATIONALCHARACTERSET= "UTF8")
CHARACTERSET = "ZHS16GBK"
# Description : total memory in MB to allocate to Oracle
# oracle内存1638MB,物理内存2G*80%
TOTALMEMORY = "1638"
进行静默配置:
[oracle@myYUn ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
建库后进行实例进程检查:
[oracle@myYUn ~]$ ps -ef | grep ora_ | grep -v grep
查看监听状态:
[oracle@myYUn ~]$ lsnrctl status
数据库创建完成。
有关详细信息, 请查看以下位置的日志文件: /data/oracle/cfgtoollogs/dbca/orcl/orcl.log。
数据库信息:
全局数据库名:orcl.test
系统标识符 (SID):orcl
登录查看实例状态:
[oracle@myYUn ~]$ sqlplus / as sysdba
SQL> select status from v$instance;
【linux 成功安装oracle后,为其创建一个登录账户】
如果报错:【ORA-12162: TNS:net service name is incorrectly specified】
错误原因:【这个错误是因为ORACLE_SID变量没有传进去造成的。】
解决方法:
1.查看当前ORACLE_SID
[oracle@iZ2f570bi1k56uZ ~]$ echo $ORACLE_SID
orcl
2.修改ORACLE_SID和/home/oracle/response/dbca.rsp中的一样
[oracle@iZ2f570bi1k56uZ ~]$ export ORACLE_SID=orcl
3.如果遇到ORA-12162: TNS:net service name is incorrectly specified.错误
参考文章:【ORA-12162: TNS:net service name is incorrectly specified.】
4.如果依然不能登陆,尝试修改orcle文件夹的权限
【如果本地连接时,出现监听错误,参考Linux中安装Oracle11g后出现监听的问题及解决办法】
15、命令行模式静默删除
1、首先查看dbca的帮助信息
dbca -help
修改/home/oracle/response/dbca.rsp文件里以下几个参数,下面三个参数根据建库实际情况进行修改:
OPERATION_TYPE = "deleteDatabase"
SOURCEDB = "orcl"
SYSDBAUSERNAME = "sys"
SYSDBAPASSWORD = "123456"
然后运行:
dbca -silent -responseFile /home/oracle/response/dbca.rsp
各参数含义如下:
-silent 表示以静默方式删除
-responseFile 表示使用哪个响应文件,必需使用绝对路径
RESPONSEFILE_VERSION 响应文件模板的版本,该参数不要更改
OPERATION_TYPE 安装类型,该参数不要更改
SOURCEDB 数据库名,不是全局数据库名,即不包含db_domain
很简单数据库卸载完成了,请注意,只是数据库卸载完了,数据库软件还是在的。
2、使用DBCA卸载数据库
dbca -silent -delete Database -responseFile dbca.rsp
a.选项-silent表示静默安装,免安装交互,大部分安装信息也不输出
b.选项-responseFile指定应答文件,要求用绝对路径