1. 深夜 安装 Oracle 未完成,,进展 为 创建数据库 时 lost contact 。怀疑是 安装软件时 使用的 hostname有关。
重新安装了一次成功了,特此记录下。
有一些特殊的地方,先说下:
vi 和 vim 没什么区别,vim 功能更强大,不过 vi 也够用。
su - 和 su 切换用户,su - 会切换用户的 环境变量, su 只是单纯的切换用户,尽管我的文章没有用到,但还是说一下。
/home/oracle/database 放置的是 oracle 的安装文件,其中 db_install.rsp 、netca.rsp、dbca.rsp 放在database/response中
分别为 oracle软件的安装文件,网络监听配置文件,数据库实例创建文件。
****预备工作,通过 echo $HOSTNAME 查询 主机名,然后查询服务器的内网地址(据说 127.0.0.1 不能用)
**********通过 vi /etc/hosts 编辑 新增一条映射 格式为: 内网地址 查询的主机名 (参看下图)
1.增加虚拟内存:
使用root用户shell 登录到服务器后台,逐行执行以下代码:
dd if=/dev/zero of=/swapadd bs=1024 count=2006424
mkswap /swapadd
swapon /swapadd
2. 检查 Oracle 依赖包: 执行 以下代码,检查 系统 是否是安装以下 包,如果某个包没有安装,使用 yun install xxx 安装即可。
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
3. 安装依赖包: 即为 举例,至于需要安装哪个包,要参看 第2步的输出提示信息,看看 缺少哪个包。
yum install compat-libstdc++-33
yum install elfutils-libelf-devel
yum install gcc-c++
yum install glibc-2.5
yum install ksh
yum install libaio
yum install libaio-devel
yum install libstdc++-devel
yum install unixODBC
yum install unixODBC-devel
4. 创建用户和组 : 此时先查看 是否存在 /home/oracle 目录,如果不存在,请通过 mkdir -p /home/oracle 来创建。
然后,逐行执行以下代码,执行到 passwd oracle 的时候,按提示信息修改密码。建议安装过程中使用统一的密码,后期可改
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle -d /home/oracle
passwd oracle
5. 修改内核参数:(此处我不太清楚,之前安装,没有修改过这里,怀疑为 RAC 需要,建议按格式改)
通过 vim /etc/sysctl.conf 打开文件,增加或修改以下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
6. 修改用户限制:
①通过 vim /etc/security/limits.conf 打开文件,新增或修改以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack 10240
②通过 vim /etc/pam.d/login 打开文件,新增或修改以下内容:
session required pam_limits.so
③通过 vim /etc/profile 打开文件,新增或修改以下内容: (注意 if 和 【 之间有个空格,; 和 then 有个空格)
如果格式正确,这段代码 会改变颜色。
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 使修改的文件生效。
7. 创建安装目录:(此处 /opt/Server/DB 是我自定义的安装目录,如果你自己 想安装在其他地方,请记住将之后所有地方修改下)
mkdir -p /opt/Server/DB/
chown -R oracle:oinstall /home/oracle
chmod -R 775 /home/oracle
chown -R oracle:oinstall /opt/Server/DB/
chmod -R 775 /opt/Server/DB/
创建和修改 oraInst.loc: ( 通过 vim /etc/oraInst.loc 创建该文件,并新增以下内容 )
inventory_loc=/opt/Server/DB/oracle/oraInventory
inst_group=oinstall
为该文件 授权 :
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
8. 上传解压 oracle 安装包:(建议安装包放到 /home/oracle,前面已经设置过了,此时最好也这么放)
执行以下命令,在当前目录会产生 database 文件夹,内容为 oracle 安装 和 创建实例的文件,还有 网络配置文件。
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
9. 复制 响应文件模板: (此时复制为了防止 改错东西)使用 root 用户窗口,依次执行:
cd /home/oracle/
mkdir etc
cp /home/oracle/database/response/* /home/oracle/etc/
chmod 777 /home/oracle/etc/*.rsp
10. 设置 oracle 环境变量:(此时注意,建议使用shell 的童鞋 新开一个 窗口,使用 oracle登录)
在 oracle 用户下,通过 vim ~/.bash_profile 打开文件:(新增或编辑以下内容)
export ORACLE_BASE=/opt/Server/DB/oracle
export ORACLE_SID=orcl
然后执行, source /home/oracle/.bash_profile 使环境变量生效。
再执行,env 查看 环境变量是否修改成功。
11. 修改Oracle 软件安装配置文件:
在 oracle 用户下,通过 vim /home/oracle/etc/db_install.rsp 打开文件:
(此时不建议在 shell中修改,内容太多,建议使用xftp将文件打开或者 拿到本地修改,改完再上传到服务器)
此时有两种方案,
第一种,我从网上找的,我觉得人家写的很细,应该可以,但我测试没成功,但我不能否定,所以给大家提供参考。
第二种,我结合 第一种 修改之后,做了一些改动,测试成功了,也给大家提供参考。
① 网上的文件,需要修改的内容为:(参看 以下内容 对 服务器上的 db_install.rsp 文件做相应修改)
需要注意 ORACLE_HOSTNAME INVENTORY_LOCATION ORACLE_HOME ORACLE_BASE xxxx.password.ALL
与之前的你自己设置过的 一致。
oracle.install.option=INSTALL_DB_SWONLY // line 29, install type
ORACLE_HOSTNAME=VM_62_198_centos // line 37, your hostname, use command hostname to get
UNIX_GROUP_NAME=oinstall // line 42, user's group
INVENTORY_LOCATION=/u01/app/oracle/oraInventory // line 47, INVENTORY derectory
SELECTED_LANGUAGES=en,zh_CN,zh_TW // line 78, language
ORACLE_HOME=/opt/server/DB/oracle/product/11.2.0/db_1 // line 83, oracle_home
ORACLE_BASE=/opt/server/DB/oracle // line 88, oracle_base
oracle.install.db.InstallEdition=EE // line 99, oracle version
oracle.install.db.isCustomInstall=true // line 108, true means you can custom some configrations
oracle.install.db.DBA_GROUP=dba // line 142, dba group
oracle.install.db.OPER_GROUP=oinstall // line 147, oper group
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE // line 160, db type
oracle.install.db.config.starterdb.globalDBName=orcl // line 165, global DBName
oracle.install.db.config.starterdb.SID=orcl // line 170, SID
oracle.install.db.config.starterdb.memoryLimit=512 // line 192, min ram use
oracle.install.db.config.starterdb.password.ALL=oracle // line 233, all dba user password
DECLINE_SECURITY_UPDATES=true // line 385, security updates
我修改完成 ,测试的时候,执行安装操作,shell 窗口被清空了。不知道为什么。
后来自己改了一个文件,执行通过了,
②:自己安装使用的文件 :亲测可用 (同样 根据自己的情况做修改,必要修改项 同上)
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=VM_62_198_centos
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/Server/DB/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_HOME=/opt/Server/DB/oracle/product/11.2.0/db_1
ORACLE_BASE=/opt/Server/DB/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
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=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
12. 安装工作:(使用 oracle 的shell 窗口)
cd /home/oracle/database
./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
此时就开始安装了,如果 窗口被清空了,说明 db_install.rsp 有问题,建议 修改。
如果 输出两行 之后,就 卡了,就多等一会。如图:Please wait... 之后,我ctrl + c 了,此时不用急,多等几秒就好。
提示信息 显示安装成功了。开心。
如果没有提示,可以通过 以下命令 查询。
cd $ORACLE_BASE/oraInventory/logs
tail -100f installActions*.log
安装完成 使用 root 用户窗口,执行:
/opt/Server/DB/oracle/product/11.2.0/db_1/root.sh
13. 配置 oracle的环境变量:
使用 oracle 用户 窗口,通过 vim ~/.bash_profile 打开文件:(新增或者修改内容)
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
修改完成,通过 执行 source /home/oracle/.bash_profile 使修改生效。
14. 配置网络监听:直接执行,文件不用修改
$ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp
输出内容 如下:
15.创建数据库实例:(网上找了很多,最后自己通过多次尝试做了自己的)
第一张图片是个 示意,是我做了换行处理的,不要复制,需要修改的地方:
-gdbname 后面的值,内容是 orcl+你的主机名
-sysPassword 后面的值,内容是 你的密码
-datafileDestination 后面的值,内容与 前文一致
-revoveryAreaDestination 后面的值,内容与 前文一致
/opt/Server/DB/oracle/product/11.2.0/db_1/bin/dbca -silent -createDatabase
-templateName General_Purpose.dbc -gdbname orcl.VM_62_198_centos -sid
orcl -sysPassword Jiang_2966 -systemPassword Jiang_2966 -responseFile
NO_VALUE -datafileDestination /opt/Server/DB/oracle/oradata/ -redoLogFileSize
50 -recoveryAreaDestination /opt/Server/DB/oracle/flash_recovery_area
-storageType FS -characterSet AL32UTF8 -nationalCharacterSet UTF8 -sampleSchema
false -memoryPercentage 30 -totalMemory 4096 -databaseType OLTP -emConfiguration
NONE
下面的内容可以复制,复制之后,按上边的要求修改,之后通过 oracle 用户 的 窗口,执行,
/opt/Server/DB/oracle/product/11.2.0/db_1/bin/dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl.VM_62_198_centos -sid orcl -sysPassword Jiang_2966 -systemPassword Jiang_2966 -responseFile NO_VALUE -datafileDestination /opt/Server/DB/oracle/oradata/ -redoLogFileSize 50 -recoveryAreaDestination /opt/Server/DB/oracle/flash_recovery_area -storageType FS -characterSet AL32UTF8 -nationalCharacterSet UTF8 -sampleSchema false -memoryPercentage 30 -totalMemory 4096 -databaseType OLTP -emConfiguration NONE
执行窗口输出如下:
通过 cat /opt/Server/DB/oracle/cfgtoollogs/dbca/orcl/orcl.log 也可以查看执行结果:
如果结果中 出现 lost contact ,可能是 hostname 有问题,我也遇到过,我卸载重装了。
16. 建库后 实例检查:
ps -ef | grep ora_ | grep -v grep | wc -l
ps -ef | grep ora_ | grep -v grep
不知道有什么用,第一条我的结果是 21 第二条信息 21条信息。(我怀疑是建库完成,之前配置的网络监听就自己启动了)
17. 建库后监听检查
lsnrctl status
出现如下结果 就 大功告成了。
19. 登录数据库 逐行执行:
sqlplus / as sysdba
conn /as sysdba 连接到数据本地数据
alter user system identified by password; 修改System 密码 为password
alter user scott identified by password; 以后常用 scott 操作数据库,此时改个密码
alter user scott account unlock; scott 默认 是 lock状态,使用前 需要解锁
craete user test identified by password; 也可以自己创建用户
grant resource,conn to scott; 用户的权限有可能不够,需要授权
grant dba to scott; 用户的权限有可能不够,需要授权
此时 就可以 远程访问数据库了。(使用的datagrip ,当然 使用 Navicate 也是可以的)
....未完待续,如果大家在安装过程中,遇到问题,可以留言,我经常在的。
不再建议使用 CentOS安装 Oracle如有需要,建议使用 Docker 安装,非常简单和快速
下面是 卸载的流程,这篇博客写的好,请移步:
https://www.cnblogs.com/mawanglin2008/articles/3527525.html