命令行下安装 oracle 11gR2 数据库
Centos linux系统 命令行(静默)安装oracle 11gR2
参考
修改 hostname db / hosts文件
修改内核参数
/etc/sysctl.conf
1 2 3 4 5 6 7 8 9 10 11 12 13
| net.ipv4.ip_local_port_range= 9000 65500 fs.file-max = 6815744 kernel.shmall = 10523004 kernel.shmmax = 6465333657 kernel.shmmni = 4096 kernel.sem = 250 32000 100128 net.core.rmem_default=262144 net.core.wmem_default=262144 net.core.rmem_max=4194304 net.core.wmem_max=1048576 fs.aio-max-nr = 1048576
|
用户的限制文件/etc/security/limits.conf
1 2 3 4 5
| oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
|
修改/etc/pam.d/login文件,增加如下:
1 2
| session required /lib64/security/pam_limits.so //64为系统,千万别写成/lib/security/pam_limits.so,否则导致无法登录 session required pam_limits.so
|
创建用户及组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| //创建用户及组 # groupadd oinstall # groupadd dba # useradd -g oinstall -G dba -d /home/u11 oracle # passwd oracle
//创建安装目录 # mkdir -p /opt/app/oracle/product/11.2.0/db_1
//数据文件存放目录 # mkdir -p /opt/app/oracle/oradata
//数据恢复目录 # mkdir -p /opt/app/oracle/recovery_area
//数据库创建及使用过程中的日志目录 # mkdir -p /opt/app/oracle/oraInventory
####################
//修改安装目录权限 #chown -R oracle:oinstall /opt/app/oracle #chmod 775 /opt/app/oracle
|
登录oracle用户,设置环境变量
view .bash_profile //这里我修改为/etc/profile
1 2 3 4 5 6 7 8 9 10 11 12 13
| export ORACLE_BASE=/opt/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export PATH=$PATH:$ORACLE_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64 export ORACLE_SID=cgw
//如果设置NLS_LANG,容易产生导入sql或dmp出错,因为其他环境下的不是utf8 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
//监听服务创建是为了后面静默安装用的 export DISPLAY=127.0.0.1:1.0
|
使设置生效
1
| source .bash_profile // 我为 /etc/profile
|
安装oracle
安装依赖包
1
| # yum -y install gcc gcc-c++ make binutilscompat-libstdc++-33 elfutils-libelf elfutils-libelf-develglibc glibc-commonglibc-devel libaio libaio-devel libgcclibstdc++libstdc++-devel unixODBC unixODBC-devel ksh
|
或
1 2 3 4 5
| # yum -y installbinutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelfelfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcclibgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel
|
解压安装包
unzip 两个包,在oracle用户下在 /home/u11 下面
数据库安装
路径: /databases/response
- db_install.rsp 安装应答配置文件
- dbca.rsp 创建数据库应答
- netca.rsp 建立监听、本地服务名等网络设置应答
修改配置文件db_install.rsp,并安装
下面把主要修改的地方贴出来,具体详细文件,请查看另一篇文章:Oracle 11gR2 db_install.rsp详解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=db UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/opt/app/oracle/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1 ORACLE_BASE=/opt/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oinstall oracle.install.db.config.starterdb.characterSet=AL32UTF8 oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/opt/app/oracle/oradata oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/opt/app/oracle/recovery_data DECLINE_SECURITY_UPDATES=true //一定要设为true
|
报错:DISPLAY environment variable not set! Oracle Net Configuration Assistan .处理:export DISPLAY=127.0.0.1:1.0 (上面已经处理了)
登录oracle用户,执行安装
在解压路径下:/database/response路径下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| ./runInstaller -silent -responseFile /home/u11/database/response/db_install.rsp
tail -100 f /u01/app/oracle/oraInventory/logs/installActions......log
以下配置脚本需要以 "root" 用户的身份执行。
/u01/app/oracle/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/db_1/root.sh 要执行配置脚本, 请执行以下操作: 1. 打开一个终端窗口 2. 以 "root" 身份登录 3. 运行脚本 4. 返回此窗口并按 "Enter" 键继续
Successfully Setup Software.
|
缺包
Error: libXext.so.6: cannot open shared object file: No such file or directory
1
| yum install libXext.x86_64 libXrender.x86_64 libXtst.x86_64
|
静默安装Oracle 11g过程中提示:Exception in thread “main” java.lang.NoClassDefFoundError
https://my.oschina.net/siiiso/blog/809173
配置监听配置文件 response/netca.rsp
- 命令netca path:$ORACLE_HOME/bin
- netca.rsp path: /home/u11/database/response/netca.rsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| netca -silent -responsefile response/netca.rsp
正在对命令行参数进行语法分析: 参数"silent" = true 参数"responsefile" = /home/oracle/response/netca.rsp 完成对命令行参数进行语法分析。 Oracle Net Services 配置: 完成概要文件配置。 Oracle Net 监听程序启动: 正在运行监听程序控制: /opt/oracle/11.2.0/bin/lsnrctl start LISTENER 监听程序控制完成。 监听程序已成功启动。 监听程序配置完成。 成功完成 Oracle Net Services 配置
tcp 0 0 :::1521 :::* LISTEN 5477/tnslsnr
|
修改配置文件response/dbca.rsp,静默建立新库
1 2 3 4 5 6 7 8 9
| RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" GDBNAME = "hello.dlxg.gov.cn" SID = "hello" TEMPLATENAME = "General_Purpose.dbc" DATAFILEDESTINATION = /opt/oracle/oradata RECOVERYAREADESTINATION=/opt/oracle/recovery_data CHARACTERSET = "AL32UTF8" TOTALMEMORY = "5120"
|
配置完之后,执行命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| dbca -silent -responseFile /etc/dbca.rsp
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbName test -sysPassword oracle -systemPassword oracl
1% 已完成 3% 已完成 11% 已完成 18% 已完成 26% 已完成 37% 已完成 正在创建并启动 Oracle 实例 40% 已完成 45% 已完成 50% 已完成 55% 已完成 56% 已完成 60% 已完成 62% 已完成 正在进行数据库创建 66% 已完成 70% 已完成 73% 已完成 85% 已完成 96% 已完成 100% 已完成 有关详细信息, 请参阅日志文件 "/u01/app/oracle/cfgtoollogs/dbca/wang/wang.log"。 查看日志文件 $ cat /u01/app/oracle/cfgtoollogs/dbca/wang/wang.log
|
ORA-12528: TNS Listener: all appropriate instances are blocking new connections. Instance “CLRExtProc”, status UNKNOWN
https://stackoverflow.com/questions/23743910/ora-12528-tns-listener-all-appropriate-instances-are-blocking-new-connections
1 2 3 4 5
| set ORACLE_SID=<YOUR_SID> sqlplus "/as sysdba" alter system disable restricted session;
eg : set ORACLE_SID=oracle
|
or maybe
or maybe
1 2
| lsnrctl stop lsnrctl start
|
登陆连接
- sid:oracle
- username: system
- password: oracle
navicat connect oracle fail
TNS: no listen 什么鬼的没有监听到
找到 listener.ora,存放位置一般在
1 2 3
| cd $ORACLE_HOME/network/admin ## 这个目录下 cp listener.ora listener.ora.bak vim listener.ora
|
清空内容,复制下面内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=sale-server)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=sales.us.acme.com) (ORACLE_HOME=/oracle10g) (SID_NAME=sales)) (SID_DESC= (SID_NAME=plsextproc) (ORACLE_HOME=/oracle10g) (PROGRAM=extproc)))
|
文件组成部分
- listener的名称
- listener接受连接的协议地址
- 数据库服务名
- Oracle8之后的版本有动态监听注册,可以不需要配置静态监听。但是Oracle官网说如果想要使用em需要配置静态监听
- 控制参数
监听参数说明
协议地址部分
1 2 3 4
| listener_name= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=hr-server)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)))
|
可选参数
1 2
| QUEUESIZE:并发请求连接数 RECV_BUF_SIZE,SEND_BUF_SIZE
|
示例
1 2 3 4
| listener_name= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=hr-server)(PORT=1521)(RECV_BUF_SIZE=11784)(SEND_BUF_SIZE=11280)) (ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521)(QUEUESIZE=20)))
|
静态监听部分
静态监听就是SID_LIST_xxx节点下的配置,最简单的配置如下
1 2 3 4
| SID_LIST_listener_name= (SID_LIST= (SID_DESC=...) (SID_DESC=...))
|
可允许的参数
- ENVS环境变量键值对
- GLOBAL_DBNAME:对外提供的网络服务名
- ORACLE_HOME
- PROGRAM:用来标识服务可执行程序,最常用的PROGRAM=extproc
- SID_NAME: Oracle System Identifier (SID)
- SDU: session data unit
示例配置
1 2 3 4 5 6 7
| SID_LIST_listener_name= (SID_LIST= (SID_DESC= (SDU=2085) (GLOBAL_DBNAME=sales.us.acme.com) (SID_NAME=sales) (ORACLE_HOME=/usr/oracle)(ENVS="LD_LIBRARY_PATH=/private/xpm/lib:/private/mylibs,MYPATH=/usr/ucb:/usr/local/packages,APL_ENV_FILE=/apl/conf/env.txt")))
|
控制参数部分(基本不需要配置)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| - ADMIN_RESTRICTIONS_listener_name #主要用来保护lsnrctl命令下,对没有使用密码保护的listener的更改,设置了on之后,就不允许在命令行动态的更改参数配置,只有stop,start才行。 - INBOUND_CONNECT_TIMEOUT_listener_name #连接超时 - LOG_DIRECTORY_listener_name #日志路径 - LOG_FILE_listener_name #日志名称 - LOGGING_listener_name #是否记录日志 - PASSWORDS_listener_name #listener的密码 - SAVE_CONFIG_ON_STOP_listener_name # 关闭监听的时候是否保存配置 - SSL_CLIENT_AUTHENTICATION #ssl认证
STARTUP_WAIT_TIME_listener_name TRACE_DIRECTORY_listener_name TRACE_FILE_listener_name TRACE_FILELEN_listener_name TRACE_FILENO_listener_name TRACE_LEVEL_listener_name TRACE_TIMESTAMP_listener_name WALLET_LOCATION
|