在centos 7.9上安装部署Oracle 11G/12C
首先准备安装包:
11G
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
12C
linuxx64_12201_database.zip
上传到/home/soft/目录下
以下红色为命令:
以下紫色为文本内容:
安装依赖
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
如果在内网的环境无法使用yum安装,建议是在一台可联网的centos 7.9(与数据库服务器操作系统一样)服务器上,
输入命令:vi /etc/yum.conf
把keepcache=0 改成keepcache=1 保存退出
再使用上面的命令yum安装依赖
然后在下面的目录里有刚刚安装的依赖包
/var/cache/yum/x86_64/7/base/packages/
/var/cache/yum/x86_64/7/updates/packages/
最后把这些安装包上传到数据库服务器上安装
在/etc/hosts文件中增加主机名(通过hostname获得)到回环IP的映射如下:
vi /etc/hosts #安装12C可不需要配置
加入内容:
10.10.2.101 oserver //本机IP及主机名(通过hostname获得)
添加oracle用户:
创建oinstall、dba组 将oracle用户加入组 修改并设定oracle用户密码
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle #配置oracle用户密码
5、修改内核参数:
编辑文件/etc/sysctl.conf
注意一下参考配置:
#kernel.shmall = 66051072
#kernel.shmmax = 162327114547
#kernel.shmall:控制共享内存页数,该参数大小为物理内存除以pagesize
#kernel.shmmax:设置为实际物理内存的2/3(50%-90%)
vi /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 = 1048586
:wq 保存退出
执行命令sysctl使其自检并生效
sysctl –p
修改用户资源限制
修改/etc/security/limits.conf配置文件
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
创建安装目录并赋予组用户及权限
mkdir -p /home/u01/app /home/u01/oraInventory /home/u01/oradata
chown -R oracle:oinstall /home/u01/app /home/u01/oraInventory /home/u01/oradata
chmod -R 775 /home/u01/app /home/u01/oraInventory /home/u01/oradata
创建oraInst.loc文件
vi /etc/oraInst.loc
文件内加入以下内容:
inventory_loc=/home/u01/oraInventory
inst_group=oinstall
保存退出后执行以下命令。设定该文件的用户组及权限。
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
9、解压oracle安装包
#cd /home/soft
11G
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
12C
unzip linuxx64_12201_database.zip
待解压完毕后会生成文件夹/home/soft/database 修改其用户组及权限此处直接使用777
chmod 777 /home/soft/database
chown -R oracle.oinstall /home/soft/database
设置oracle用户环境
切换到oracle用户
su - oracle
修改该用户的用户配置文件(进入/home/oracle目录下)
$vi .bash_profile
文件内加入以下内容
11G
export ORACLE_BASE=/home/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
12C
export ORACLE_BASE=/home/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
保存退出后执行source使其立即生效
$source .bash_profile
$exit //退出oracle用户
准备oracle安装模板文件db_install.rsp (以11G为例,跟12C的差距不大)
该文件默认存放在解压后的安装包内,也就是/home/soft/database/response中,将oracle静默安装所需应答文件全部拷贝至 /home/u01/app文件夹下
把配置文件都拷贝到/home/u01/app/下
cp /home/soft/database/response/* /home/u01/app/
编辑db_install.rsp文件
cd /home/u01/app/
vi db_install.rsp
文件内修改相应的参数配置如下:
oracle.install.option=INSTALL_DB_SWONLY //安装类型,只装数据库软件
ORACLE_HOSTNAME=oserver //主机名称(命令hostname查询)
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/home/u01/oraInventory //INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)
SELECTED_LANGUAGES=en,zh_CN // 选择语言
ORACLE_HOME=/home/u01/app/product/11.2.0/db_1 // oracle_home *路径根据目录情况注意修改 本例安装路径/home/u01/app
ORACLE_BASE=/home/u01/app // oracle_base *注意修改
oracle.install.db.InstallEdition=EE // oracle版本
oracle.install.db.isCustomInstall=false //自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba //dba用户组
oracle.install.db.OPER_GROUP=oinstall //oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName
oracle.install.db.config.starterdb.SID=orcl //SID(**此处注意与环境变量内配置SID一致)
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false //(手动写了false)
DECLINE_SECURITY_UPDATES=true // **注意此参数 设定一定要为true
编辑完毕保存退出
静默建立新库(以11G为例,跟12C的差距不大)
cd /home/u01/app/
vi dbca.rsp
设置如下:
RESPONSEFILE_VERSION = "11.2.0" //不能更改
OPERATION_TYPE = "createDatabase"
GDBNAME = "orcl" //数据库的名字
SID = "orcl" //对应的实例名字
TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
SYSPASSWORD = "oracle" //SYS管理员密码
SYSTEMPASSWORD = "oracle" //SYSTEM管理员密码
DATAFILEDESTINATION = /home/u01/oradata //数据文件存放目录
RECOVERYAREADESTINATION= //恢复数据存放目录
CHARACTERSET = " ZHS16GBK " //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
TOTALMEMORY = "5120" //oracle内存5120MB
修改安装所需的所有应答文件的所属组及权限
chown oracle:oinstall /home/u01/app/*.rsp
chmod 755 /home/u01/app/*.rsp
在oracle用户下开始安装
su - oracle
$/home/soft/database/./runInstaller -silent -force -ignorePrereq -responseFile /home/u01/app/db_install.rsp
参数说明 :
/home/soft/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。
runInstaller 是主要安装脚本
-silent 静默模式
-force 强制安装
-ignorePrereq忽略warning直接安装。
-responseFile读取安装应答文件。
另起窗口并以root登录
通过 #watch -d -n 2 'du -sh /home/u01/app' 监测oracle安装目录是否变化。或者直接tail -f命令监测安装log日志。
等待安装编译直至出现以下内容
/home/u01/app/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit"Enter" key to continue
Successfully Setup Software.
则表示安装成功。
在新创建的root窗口内执行以下提示内的脚本
#/home/u01/app/product/11.2.0/db_1/root.sh
静默配置监听(oracle用户下的/home/oracle下)
$netca /silent /responsefile /home/u01/app/netca.rsp
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /home/u01/app /netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
正在运行监听程序控制:
/home/u01/app/product/11.2.0/bin/lsnrctl start LISTENER
监听程序控制完成。
监听程序已成功启动。
监听程序配置完成。
成功完成 Oracle Net Services 配置。退出代码是0
成功运行后,在/home/u01/app/product/11.2.0/network/admin目录下生成sqlnet.ora和listener.ora两个文件。
通过netstat -tlnp 命令,看到
tcp 0 0 :::1521 :::* LISTEN 5477/tnslsnr
说明监听器已经在1521端口上开始工作了。
静默建库命令如下:
$ dbca -silent -responseFile /home/u01/app/dbca.rsp (11g)
$ dbca -silent -createDatabase -responseFile /home/u01/app/dbca.rsp (12C)
输入建库命令后正常会出现以下提示:
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
复制数据库文件
DBCA_PROGRESS : 1%
DBCA_PROGRESS : 3%
DBCA_PROGRESS : 11%
DBCA_PROGRESS : 18%
DBCA_PROGRESS : 26%
DBCA_PROGRESS : 37%
正在创建并启动 Oracle 实例
DBCA_PROGRESS : 40%
DBCA_PROGRESS : 45%
DBCA_PROGRESS : 50%
DBCA_PROGRESS : 55%
DBCA_PROGRESS : 56%
DBCA_PROGRESS : 60%
DBCA_PROGRESS : 62%
正在进行数据库创建
DBCA_PROGRESS : 66%
DBCA_PROGRESS : 70%
DBCA_PROGRESS : 73%
DBCA_PROGRESS : 85%
DBCA_PROGRESS : 96%
DBCA_PROGRESS : 100%
数据库创建完成。
建库后实例检查:
$ ps -ef | grep oracle //查看服务状态
$echo $ORACLE_SID //查看实例
$lsnrctl status //查看监听
一般我还会在监听文件加入以下配置,防止客户端访问数据库版本不兼容
vi /home/u01/app/product/12.2.0/db_1/network/admin/sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
保存退出,重启监听