ZM学习笔记-Oracle静默

我的环境

Centos6.5
内存4G
硬盘50G
处理器2
swap大小内存两倍
oracle版本:Oracle11g
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip

注意事项

本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。
本文中所描述的所有安装包、依赖包均在附件中,请自行存放位置,以便安装。
本文中的命令和文本内容,不能完全直接复制使用!

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、配置主机名

查看主机名

#hostname

显示M1
在/etc/hosts文件内容的最底下添加主机名

#vi /etc/hosts

注掉原来的,然后添加 静态IP hostname

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost
192.168.10.40 M1

3、创建安装用户、组、目录

#groupadd oinstall
#groupadd dba
#useradd -g oinstall -G dba oracle
#passwd oracle
#id oracle

4、创建软件安装目录

#mkdir -p /u01/oracle                       //$ORACLE_BASE
#mkdir -p /u01/oracle/product/112010/db_1   //$ORACLE_HOME
#mkdir /u01/oracle/oradata                  //存放数据库目录
#mkdir /u01/oracle/inventory
#mkdir /u01/oracle/flash_recovery_area
#chown -R oracle:oinstall /u01/oracle
chmod -R 775 /u01/oracle

5、将oracle使用者加入到sudo群组中

#vi /etc/sudoers

输入上面的命令后,打开sudoers文件进行编辑,找到

root       ALL=(ALL)       ALL

这行,并且在底下再加入以下命令:(按esc退出insert插入模式,按下i进入编辑模式)

oracle ALL=(ALL) ALL

按下esc,直到退出insert模式,在最底下空白行输入“:wq!”(由于这是一份只读文档所以需要再加上!)并且按下Enter
修改后,可以打开/etc/sudoers文件确认一下修改是否完成
注:修改文件保存退出:“:wq”,不保存直接退出:”:q”,强制执行在命令后加”!”

6、配置系统环境

6.1修改内核参数
# vi /etc/sysctl.conf

修改、添加以下内容(不能小于下面的数值,灰色的是已存在的不能比这个小)

fs.aio-max-nr = 1048576
fs.file-max = 6815744
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

修改完毕后,启用配置

#sysctl -p

遇到错误

error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key

解决方法

#modprobe bridge
#lsmod|grep bridge
#sysctl -p
6.2修改用户限制文件
#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
6.3关联设置
#vi /etc/pam.d/login

行末添加以下内容:

session required  /lib64/security/pam_limits.so
session required   pam_limits.so
6.4修改/etc/profile
#vi /etc/profile

添加以下内容:

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

在root用户下,使用命令source profile使环境变量生效

#source /etc/profile
6.5修改用户环境变量
#vi /home/oracle/.bash_profile

在最底下加入以下内容

# For Oracle
export  ORACLE_BASE=/u01/oracle;

export  ORACLE_HOME=/u01/oracle/product/112010/db_1

export  ORACLE_SID=orcl;

export  PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

使环境变量生效

#source /home/oracle/.bash_profile

查看命令:

# env

7.安装

7.1解压oracle安装文件
Oracle 11g安装包:将安装包上传至服务器/u01/oracle/ 下面,这两个包属于oracle用户

p13390677_112040_Linux-x86-64_1of7.zip、p13390677_112040_Linux-x86-64_2of7.zip

安装包解压命令(使用oracle用户解压 )

#chown oracle:oinstall /u01/oracle/p13390677_112040_Linux-x86-64_1of7.zip 
#chown oracle:oinstall /u01/oracle/p13390677_112040_Linux-x86-64_2of7.zip 
#su - oracle
$unzip p13390677_112040_Linux-x86-64_1of7.zip 
$unzip p13390677_112040_Linux-x86-64_2of7.zip

解压完成后/u01/oracle下会生成database目录
7.2编辑oracle数据库安装应答文件
1、/u01/oracle/database/response(解压后的文件中)下有有db_install.rsp、dbca.rsp和netca.rsp三个应答文件,分别数据库安装文件、建立数据库实例和监听配置安装文件

$vi /u01/oracle/database/response/db_install.rsp

修改以下内容


oracle.install.option=INSTALL_DB_SWONLY   //29 行 安装类型

ORACLE_HOSTNAME=M1 //37 行 主机名称

UNIX_GROUP_NAME=oinstall //42 行 安装组

INVENTORY_LOCATION=/u01/oracle/inventory //47 行 INVENTORY目录

SELECTED_LANGUAGES=en,zh_CN //78 行 选择语言

ORACLE_HOME=/u01/oracle/product/112010/db_1 //83 行 oracle_home

ORACLE_BASE=/u01/oracle //88 行 oracle_base

oracle.install.db.InstallEdition=EE //99 行 oracle版本

oracle.install.db.DBA_GROUP=dba //142行dba用户组

oracle.install.db.OPER_GROUP=oinstall //147行oper用户组

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 数据库类型

oracle.install.db.config.starterdb.globalDBName=orcl //165行globalDBName

oracle.install.db.config.starterdb.SID=orcl //170行SID

oracle.install.db.config.starterdb.memoryLimit=800  //192行 自动管理内存的最小内存(M)

oracle.install.db.config.starterdb.password.ALL=oracle //233行 设定所有数据库用户使用同一个密码

DECLINE_SECURITY_UPDATES=true //385行 设置安全更新

7.3使用oracle用户安装

#su oracle

进入刚才解压的database目录

$cd /u01/oracle/database/ 
$./runInstaller -silent -responseFile /u01/oracle/database/response/db_install.rsp -ignorePrereq
通过 watch -d -n 2 'du -sh /u01/local/oracle' 监测oracle安装目录是否变化。或者直接tail -f命令监测安装log日志。不赘述。

遇到问题:
[INS-32055]
百度搜的解答:
Inventory 路径在ORACLE_BASE里面,Oracle不建议这么做,但这只是个警告。致命错误是在数据库文件存储这里
你这里选择了安装软件并创建数据库的方式,创建数据库相关的配置没有做好,例如使用的存储是ASM还是文件系统类型,以及存放路径等
可以改成先安装软件
oracle.install.option=INSTALL_DB_SWONLY
再静默创建数据库

8.配置监听

编辑oracle安装目录下的netca.rsp应答文件,地址为:

$vi /u01/oracle/database/response/netca.rsp

主要查看以下参数配置:

INSTALL_TYPE=""custom""安装的类型

LISTENER_NUMBER=1监听器数量

LISTENER_NAMES={"LISTENER"}监听器的名称列表

LISTENER_PROTOCOLS={"TCP;1521"}监听器使用的通讯协议列表

LISTENER_START=""LISTENER""监听器启动的名称

检查完毕后,执行命令:

$netca /silent /responseFile /u01/oracle/database/response/netca.rsp

安装完成后通过netstat命令可以查看1521端口正在监听(重开一个窗口)

#netstat -tnulp | grep 1521

9.添加数据库实例

9.1 修改

$vi /u01/oracle/database/response/dbca.rsp(就是解压安装文件目录下的)

根据数据库建立方式的不同编辑不同的数据库库选项。
比如在本次安装过程中设置了下列参数:(注意下面参数视情况而定,不要照抄,原文件都有说明的)

RESPONSEFILE_VERSION ="11.2.0"//不能更改
OPERATION_TYPE ="createDatabase"
GDBNAME ="orcl"//数据库的名字
SID ="ORCL"//对应的实例名字
TEMPLATENAME ="General_Purpose.dbc"//建库用的模板文件
SYSPASSWORD ="oracle"//SYS管理员密码
SYSTEMPASSWORD ="oracle"//SYSTEM管理员密码
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION =/u01/oracle/oradata//数据文件存放目录
RECOVERYAREADESTINATION=/u01/oracle/flash_recovery_area//恢复数据存放目录
CHARACTERSET ="ZHS16GBK"//字符集,重要!!!建库后一般不能更改,所以建库前要确定清楚。
TOTALMEMORY ="1638"//1638MB,物理内存2G*80%

进入oracle安装目录的bin下,执行dbca命令

$dbca -silent -responseFile /u01/oracle/database/response/dbca.rsp

建库后进行实例进程检查:

$ps -ef | grep ora_ | grep -v grep

查看监听状态:

$ lsnrctl status

修改/u01/oracle/product/112010/db_1/bin/dbstart

$ vi /u01/oracle/product/112010/db_1/bin/dbstart

将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

修改/u01/oracle/product/112010/db_1/bin/dbshut

$ vi /u01/oracle/product/112010/db_1/bin/dbshut

将ORACLE_HOME_LISTNER=$1修改为ORACLE_HOME_LISTNER=$ORACLE_HOME

修改/etc/oratab文件

$vi /etc/oratab

将orcl:/data/oracle/product/11.2.0:N中最后的N改为Y,成为
orcl:/data/oracle/product/11.2.0:Y

输入命令dbshut和dbstart测试

$ dbshut

10、开始启动

Oracle监听停止,进程消失。

$lsnrctl status
$ps -ef |grep ora_ |grep -v grep

Oracle 监听启动,进程启动。

$ dbstart
$lsnrctl status
$ps -ef |grep ora_ |grep -v grep

登录查看实例状态:

$ sqlplus / as sysdba

启动遇到报错

SQL>startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/oracle/product/112010/db_1/dbs/initorcl.ora'

解决方法:

cd /u01/oracle/product/112010/db_1/dbs/
$ ls           //没有initorcl.ora
hc_ORCL.dat  init.ora  lkORCL  orapwORCL  spfileORCL.ora
//复制一个过来
cp /u01/oracle/admin/orcl/pfile/init.ora.0302018134646 /u01/oracle/product/112010/db_1/dbs/initorcl.ora

遇到报错

ORA-01102: cannot mount database in EXCLUSIVE mode

解决方法

$cd /u01/oracle/product/112010/db_1/dbs/
$ls lk*
-rw-r-----. 1 oracle oinstall 24 130 13:45 lkORCL
$ /sbin/fuser -u lkORCL
lkORCL:              29047(oracle) 29049(oracle) 29055(oracle) 29059(oracle) 29063(oracle) 29065(oracle) 29067(oracle) 29069(oracle) 29071(oracle) 29073(oracle) 29075(oracle) 29077(oracle)
$ fuser -k lkORCL
lkORCL:              29047 29049 29055 29059 29063 29065 29067 29069 29071 29073 29075 29077
$ /sbin/fuser -u lkORCL

遇到错误

ORA-01081: cannot start already-running ORACLE - shut it down first

解决方法 关了重启

SQL>shutdown
SQL>startup
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值