打算在云服务器上装oracle服务,以前DBA美眉都是在图形化界面下安装,这次抓瞎了。赶紧上网查查,静默安装可以解决问题。于是乎赶紧开始部署,过程如下。
安装环境:
操作系统:CentOS 7
内存:11G(11851M)
硬盘:128G
oracle版本 11g
1、准备oracle 安装包 linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip
2、检查本机依赖包,没找到的用 yum install ****** 命令安装
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
3、创建所需的操作系统组和用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
设置oracle用户密码
passwd oracle
4、修改内核参数
vi /etc/sysctl.conf 在后面追加下面配置
#Oracle
kernel.sem = 250 32000 100 128
kernel.shmmax = 2147483648(这里配置物理内存的一半,单位是字节。比如物理内存是16G,这个值就是8Gx1024x1024x1024=1073741824)
kernel.shmmni = 4096
kernel.shmall = 2097152(这里配置物理内存的四分之一,单位是k。比如物理内存是16G,这个值就是2G*1024*1024=2097152)
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 8388608
net.core.wmem_default = 4194304
net.core.wmem_max = 4194304
fs.aio-max-nr = 1048576
保存后执行 /sbin/sysctl -p 命令,使修改生效。
5、修改用户限制
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
vi /etc/pam.d/login 在后面追加下面配置
session required /lib/security/pam_limits.so
session required pam_limits.so
vi /etc/profile 在配置文件结尾处(unset i 和 unset -f pathmunge 之前)追加下面配置
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 命令,使修改生效。
6、创建安装目录,并修改目录所有者
mkdir -p /usr/oracle
chown -R oracle:oinstall /usr/oracle
chmod -R 775 /usr/oracle
7、创建/etc/oraInst.loc文件
vi /etc/oraInst.loc 在里面写入下面配置
nventory_loc=/usr/oracle/oraInventory
inst_group=oinstall
保存后修改文件权限
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
8、设置oracle环境变量
用ocacle用户登录
su - oracle
vi ~/.bash_profile 在后面追加下面配置
export ORACLE_BASE=/usr/oracle
export ORACLE_SID=orcl(这里是用户自己定义的数据库名称,后面就不能再改了)
保存后执行 source /home/oracle/.bash_profile 命令,使修改生效。
执行 env 命令,检查环境变量。
9、把前面准备的数据库安装文件移动到 /home/oracle/
10、解压oracle安装文件
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
解压缩后的安装文件在 /home/oracle/database 目录
11、复制响应文件模板
创建 /home/oracle/ 目录下的 etc 目录
mkdir etc
复制响应文件
cp /home/oracle/database/response/* /home/oracle/etc/
设置响应文件权限
su - root
chmod 700 /home/oracle/etc/*.rsp
12、静默安装Oracle软件
12.1 登陆 oracle 用户
su - oracle
12.2 vi /home/oracle/etc/db_install.rsp 修改安装Oracle软件的响应文件,这个环节其实就是图形化安装中的各种选项和“下一步”,不过静默安装要在配置文件里提前配置好。具体配置如下:
oracle.install.option=INSTALL_DB_SWONLY // 安装类型
ORACLE_HOSTNAME=t91 // 主机名称(hostname查询,这里要注意,主机名要在 /etc/hosts 文件中配置好ip对应关系,否则安装会报错)
UNIX_GROUP_NAME=oinstall // 安装组
INVENTORY_LOCATION=/usr/oracle/oraInventory //INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/usr/oracle/product/11.2.0/db_1 // oracle_home
ORACLE_BASE=/usr/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(这里要和第8步配置的sid一致)
oracle.install.db.config.starterdb.SID=orcl //SID(这里要和第8步配置的sid一致)
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=****** //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手动写了false)
DECLINE_SECURITY_UPDATES=true //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)
1 oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
2 oracle.install.option=INSTALL_DB_SWONLY
3 ORACLE_HOSTNAME=CDS
4 UNIX_GROUP_NAME=oinstall
5 INVENTORY_LOCATION=/usr/oracle/oraInventory
6 SELECTED_LANGUAGES=en,zh_CN
7 ORACLE_HOME=/usr/oracle/product/11.2.0/db_1
8 ORACLE_BASE=/usr/oracle
9 oracle.install.db.InstallEdition=EE
10 oracle.install.db.EEOptionsSelection=false
11 oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.3.0,oracle.oraolap:11.2.0.3.0,oracle.rdbms.dm:11.2.0.3.0,oracle.rdbms.dv:11.2.0.3.0,oracle.rdbms.lbac:11.2.0.3.0,oracle.rdbms.rat:11.2.0.3.0
12 oracle.install.db.DBA_GROUP=dba
13 oracle.install.db.OPER_GROUP=oinstall
14 oracle.install.db.CLUSTER_NODES=
15 oracle.install.db.isRACOneInstall=
16 oracle.install.db.racOneServiceName=
17 oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
18 oracle.install.db.config.starterdb.globalDBName=orcl
19 oracle.install.db.config.starterdb.SID=orcl
20 oracle.install.db.config.starterdb.characterSet=AL32UTF8
21 oracle.install.db.config.starterdb.memoryOption=true
22 oracle.install.db.config.starterdb.memoryLimit=1500
23 oracle.install.db.config.starterdb.installExampleSchemas=false
24 oracle.install.db.config.starterdb.enableSecuritySettings=true
25 oracle.install.db.config.starterdb.password.ALL=oracle
26 oracle.install.db.config.starterdb.password.SYS=
27 oracle.install.db.config.starterdb.password.SYSTEM=
28 oracle.install.db.config.starterdb.password.SYSMAN=
29 oracle.install.db.config.starterdb.password.DBSNMP=
30 oracle.install.db.config.starterdb.control=DB_CONTROL
31 oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
32 oracle.install.db.config.starterdb.automatedBackup.enable=false
33 oracle.install.db.config.starterdb.automatedBackup.osuid=
34 oracle.install.db.config.starterdb.automatedBackup.ospwd=
35 oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
36 oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
37 oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
38 oracle.install.db.config.asm.diskGroup=
39 oracle.install.db.config.asm.ASMSNMPPassword=
40 MYORACLESUPPORT_USERNAME=
41 MYORACLESUPPORT_PASSWORD=
42 SECURITY_UPDATES_VIA_MYORACLESUPPORT=
43 DECLINE_SECURITY_UPDATES=true
44 PROXY_HOST=
45 PROXY_PORT=
46 PROXY_USER=
47 PROXY_PWD=
48 PROXY_REALM=
49 COLLECTOR_SUPPORTHUB_URL=
50 oracle.installer.autoupdates.option=
51 oracle.installer.autoupdates.downloadUpdatesLoc=
52 AUTOUPDATES_MYORACLESUPPORT_USERNAME=
53 AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
12.3 保存后执行 cd database 命令,进入 /home/oracle/database/ 目录开始静默安装。
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp (我曾经在安装时一直报错,SEVERE: [FATAL] [INS-13013] 目标环境不满足一些必需要求。后来在请求参数里增加了 -ignorePrereq 后安装成功了 ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp)
安装中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
安装日志信息在 /usr/oracle/oraInventory/logs/ 目录下。
installActions2016-07-14_10-49-36AM.log安装过程
oraInstall2016-07-14_10-49-36AM.err错误日志
oraInstall2016-07-14_10-49-36AM.out输出日志
12.4 当 oraInstall2016-07-14_10-49-36AM.out 文件出现下面信息,就表示安装完成了
/usr/oracle/product/11.2.0/db_1/root.sh
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
4. 返回此窗口并按 "Enter" 键继续
Successfully Setup Software.
12.5 执行 su - root 命令,用 root 用户登录
/usr/oracle/product/11.2.0/db_1/root.sh
12.6 执行 su - oracle 命令,用 oracle 用户登陆
vi ~/.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 命令,使修改生效。
执行 env 命令,检查环境变量。
Sqlplus测试
sqlplus /nolog
静默配置监听
[oracle@localhost ~]$ $ORACLE_HOME/bin/netca /silent /responseFile /home/oracle/oracle_11g/app/database/response/netca.rsp
静默安装数据库
[oracle@localhost response]$ pwd /home/oracle/oracle_11g/app/database/response
[oracle@localhost response]$ vim dbca.rsp
1 [GENERAL]
2 RESPONSEFILE_VERSION = "11.2.0"
3 OPERATION_TYPE = "createDatabase"
4 [CREATEDATABASE]
5 GDBNAME = "orcl"
6 SID = "orcl"
7 TEMPLATENAME = "General_Purpose.dbc"
8 CHARACTERSET="AL32UTF8"
9 NATIONALCHARACTERSET="UTF8"
10 SYSPASSWORD="sys"
11 SYSTEMPASSWORD="system"
[oracle@localhost response]$ $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/oracle_11g/app/database/response/dbca.rsp
测试
1,建库后监听检查
lsnrctl status
... Services Summary
... Service "ORCL.LK" has 1 instance(s).
Instance "ORCL", status READY, has 1 handler(s) for this service
... Service "ORCLXDB.LK" has 1 instance(s). Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully
指定静态注册的位置是在listener.ora参数文件,下面是一个典型参数文件的结构。
# listener.ora Network Configuration File: D:oracleproduct10.2.0db_1 etworkadminlistener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /usr/oracle/product/11.2.0/db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
实例应该被动态注册到监听程序了. 如果未被动态注册到监听程序, 则可以手工注册:
sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 16 11:11:46 2009 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options
alter system register;
$ sqlplus / as sysdba
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database flashback on; (如果要启用数据库闪回功能则执行)
SQL> alter database open;
SQL> execute utl_recomp.recomp_serial(); (重新编译所有可能失效对象)
SQL> alter system archive log current; (手工归档测试)
到此建库完毕!
创建实例用户
在oracle用户下操作(样例):
在sqlplus / as sysdba下执行以下命令
(1)create user ucrcdb identified by ucrcdb; (创建用户名和密码都是ucrcdb)
(2)(给用户ucrcdb授权)
grant create any sequence to ucrcdb;
grant connect,resource to ucrcdb;
grant CREATE DATABASE LINK to ucrcdb;
grant CREATE PUBLIC DATABASE LINK to ucrcdb;
grant CREATE SESSION to ucrcdb;
最后 sqlplus ucrcdb/ucrcdb@ucrc 登录成功
静默删库(可选)
1) 生成响应文件模板:
$ vi $DISTRIB/db_delete.rsp
#以下参数不能更改
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "deleteDatabase"
#以下参数根据实际情况更改
[DELETEDATABASE]
SOURCEDB = "ORCL"
2) dbca静默建库, 无需手工停库, 大概1分钟:
$ $ORACLE_HOME/bin/dbca -silent -responseFile $DISTRIB/db_delete.rsp
Connecting to database
47% complete
Updating network configuration files
...
52% complete
Deleting instance and datafiles
...
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL.log" for further details
各参数含义如下:
-silent 表示以静默方式删除
-responseFile 表示使用哪个响应文件,必需使用绝对路径
RESPONSEFILE_VERSION 响应文件模板的版本,该参数不要更改
OPERATION_TYPE 安装类型,该参数不要更改
SOURCEDB 数据库名,不是全局数据库名,即不包含db_domain
3) 删除期间查看日志信息了解进度:
$ tail -100f $ORACLE_BASE/cfgtoollogs/dbca/$ORACLE_SID/$ORACLE_SID.log