#环境设置
1、检查服务器硬件资源 Linux系统(x86-64)下的硬件要求:
物理内存:最少1GB
交互空间:物理内存为1GB至2GB之间时,交互空间为物理内存的1.5倍;物理内存为2GB至8GB之间时,交互空间为物理内存的1倍;物理内存为8GB以上时,交互空间为物理内存的0.75倍。
磁盘空间:企业版4.35GB;标准版3.22GB;自定义(最大值):3.45GB
2、检查内存情况:
# grep MemTotal /proc/meminfo
# grep SwapTotal /proc/meminfo
1. 为服务器准备好Oracle安装包
下载linux x86-64版本,一共两个.zip文件。(Oracle的下载链接,点击之后会跳转到登录界面,登录Oracle账号之后才可以下载,所以不能把下载链接复制到命令行中用wget命令下载,那样下载下来的压缩包是损坏的)
下载好了连个压缩包以后,我们使用scp远程传输命令将文件传输到服务器端。(这里需要你本机也是linux系统才可以实现,也可以将文件拷入linux虚拟机,使用虚拟机发送过去。)
scp -P 8022 /home/oracle_linux_1.zip [email protected]:/home/oracle_linux_1.zip
具体命令如上所示,-P一定要大写,8022即为ssh的端口第一个地址表示你本机的zip文件地址,第二个地址表示你要放到服务器的位置。(详情请查看该网址:ssh远程传输文件)
文件传输到linux服务器上以后,就要进入通过ssh命令进入linux服务器的命令行进行操作了。(此处一定要用root用户登录)
ssh -p 8022 root@ip
进入刚刚传入.zip文件的位置,使用unzip指令解压两个文件
unzip oracle_linux_1.zip
unzip oracle_linux_2.zip
两个压缩包会解压到同一个目录下,解压完后,生成一个新目录/database,到这里就把安装包的准备工作做完了。
2. 安装Oracle服务器端软件的步骤
2.1 安装必要的依赖
直接讲下面这句话复制到命令行中,包含了所有依赖
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
2.2 添加Oracle用户信息
#创建oinstall、dba组,将oracle用户加入组,最后一步设定oracle用户的密码。
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
2.3 修改内核参数
##编辑文件/etc/sysctl.conf,使用linux的vi编辑器
vi /etc/sysctl.conf
##在该配置文件中修改以下参数,如果不存在的就是直接添加,如果默认值比参考值大的话,就不需要修改。
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
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
##编辑完后保存,执行以下命令使其生效
sysctl -p
2.4 修改用户资源限制
##1、修改/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
##保存并退出
##2、修改/etc/pam.d/login配置文件,
vi /etc/pam.d/login
##在配置文件中加入
session required /lib/security/pam_limits.so
session required pam_limits.so
2.5 创建安装目录
创建安装目录/usr/local/oracle /usr/local/oraInventory /usr/local/oradata,并赋予用户组权限。
mkdir -p /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
2.6 创建oraInst.loc文件
##创建/etc/oraInst.loc文件
vi /etc/oraInst.loc
##文件内加入以下内容
inventory_loc=/usr/local/oraInventory
inst_group=oinstall
##保存退出后执行以下命令。设定该文件的用户组及权限。
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
2.7 准备oracle安装应答模板文件db_install.rsp文件
## 1、该文件默认存放在解压后的安装包内,也就是本例中/home/database/response下,
## 将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下
cp /home/database/response/* /usr/local/oracle/
## 2、修改安装所需的所有应答文件的所属组及权限
chown oracle:oinstall /usr/local/oracle*.rsp
chmod 755 /usr/local/oracle/*.rsp
## 3、配置db_install.rsp文件
vi /usr/local/oracle/db_install.rsp
## 4、文件内修改相应的参数配置如下:
oracle.install.option=INSTALL_DB_SWONLY //安装类型,只装数据库软件
ORACLE_HOSTNAME=serv2.lin.vm.ncu //主机名称(在命令行输入hostname查询)
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/usr/local/oraInventory //INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)
SELECTED_LANGUAGES=en,zh_CN // 选择语言
ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1 // oracle_home *路径根据目录情况注意修改 本例安装路径/usr/local/oracle
ORACLE_BASE=/usr/local/oracle // 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
2.8 设置oracle用户环境
## 由root切换至创建好的oracle用户
su – oracle
## 修改该用户的用户配置文件,该文件就在~目录下,可以先执行cd 或者cd ~
cd
vi .bash_profile
## 文件内加入并修改至以下内容
export ORACLE_BASE=/usr/local/oracle
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
## 保存退出后执行source命令立即生效。
source .bash_profile
2.9 在oracle用户下开始安装
## 执行命令。
/home/oracle/database/./runInstaller -silent -force -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp
##参数说明
/home/database 是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。
runInstaller 是主要安装脚本
-silent 静默模式
-force 强制安装
-ignorePrereq忽略warning直接安装。
-responseFile读取安装应答文件。
2.10 运行脚本
执行完安装指令后,在原来那个窗口(1号窗口)可以什么事情都不做,重开一个命令行窗口(2号窗口),以root身份登录到服务器。
在2号窗口进入/usr/local/oracle/product/11.2.0/db_1目录,可以看到安装数据库已经装在这个目录下了,并且有一个root.sh文件在这个目录下。
这个时候等1号窗口出现以下提示,安装编译需要一定的时间,请耐心等待。
#-------------------------------------------------------------------
/usr/oracle/oraInventory/orainstRoot.sh(这一句可能没有。。具体原因我也不清楚,不影响安装,如果有这一句,也要运行这个orainstRoot.sh脚本)
/usr/oracle/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.
#------------------
出现以上界面后,到2号窗口运行root.sh脚本
./root.sh
数据库安装过程到这里结束,下面是配置。
3. 数据库的配置和创建
3.1 创建数据库
这里切换成
进入/usr/local/oracle目录,编辑dbca.rsp创建数据库应答文件:
vi dbca.rsp
修改几个参数,如果这几个参数被注释了,要取消注释(这个文件一定要修改,否则会造成数据库创建后无法挂载)
GDBNAME = “orcl”
SID = “orcl”
CHARACTERSET = “ZHS16GBK”
NATIONALCHARACTERSET= “AL16UTF16”
SOURCEDB = “serv2.lin.vm.ncu:1521:orcl”
保存退出后,执行dbca指令创建数据库:
dbca -silent -responseFile dbca.rsp
出现以下界面
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
…………………………
执行到100%后,数据库创建完成
3.2 开启数据库网络监听
还在刚才的目录下,有一个netca.rsp文件,执行以下命令
netca -silent -responseFile netca.rsp
开启监听
lsnrctl start
dbstart $ORACLE_HOME
--后记--
详细的安装步骤是同在实验室的傅老大同学根据安装过程总结出来的。对于其中遇到的一些报错问题有详细的解决方案。感谢傅老大~!
经过进一步的了解对比,对于这种 Linux 服务器上的DB服务,直接使用docker镜像启动会更简单一些,不用每次安装那么麻烦。
不过,针对docker容器引擎还需要进一步深入研究。这是下一步的学习目标。