centOS7安装oracle11小记2
解压安装包
[oracle@linux01 oracle11]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@linux01 oracle11]$ unzip linux.x64_11gR2_database_2of2.zip
多了database文件夹
安装
可以使用图形界面的方式安装(执行./runInstaller,如果在gui操作界面,会弹出安装界面),这里使用静默方式安装
编辑静默安装响应文件database/response/db_install.rsp
参考这里相关部分
配置如下:
# 安装类型
oracle.install.option=INSTALL_DB_SWONLY
# 主机名称
ORACLE_HOSTNAME=localhost
# 安装组
UNIX_GROUP_NAME=oinstall
# INVENTORY目录
INVENTORY_LOCATION=/data/oracle11/inventory
# 语言
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle11/db_1
ORACLE_BASE=/data/oracle11
# 版本
oracle.install.db.InstallEdition=EE
# 自定义安装
oracle.install.db.isCustomInstall=true
# dba用户组
oracle.install.db.DBA_GROUP=dba
# oper用户组
oracle.install.db.OPER_GROUP=dba
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.characterSet=AL32UTF8//184行字符集?
oracle.install.db.config.starterdb.memoryLimit=512 //200行自动管理内存的最小内存(M)?? oracle.install.db.config.starterdb.password.ALL=oracle //233行设定所有数据库用户使用同一个密码?
DECLINE_SECURITY_UPDATES=true //385行设置安全更新
执行命令:
[oracle@linux01 database]$ ./runInstaller -silent -force -ignorePrereq -responseFile /data/oracle11/database/response/db_install.rsp
日志如下,按提升做:
正在启动 Oracle Universal Installer...
检查临时空间: 必须大于 120 MB。 实际为 11632 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 3081 MB 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2020-04-10_10-46-45AM. 请稍候...[oracle@linux01 database]$ [WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。
原因: 主产品清单位于 Oracle 基目录中。
操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。
[WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。
原因: 主产品清单位于 Oracle 基目录中。
操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。
可以在以下位置找到本次安装会话的日志:
/data/oracle11/inventory/logs/installActions2020-04-10_10-46-45AM.log
以下配置脚本需要以 "root" 用户的身份执行。
#!/bin/sh
#要运行的 Root 脚本
/data/oracle11/inventory/orainstRoot.sh
/data/oracle11/db_1/root.sh
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 "root" 身份登录
3. 运行脚本
4. 返回此窗口并按 "Enter" 键继续
Successfully Setup Software.
inventory/logs/下也有日志。
配置监听
[oracle@linux01 database]$ netca -silent -responseFile response/netca.rsp
日志若如下:
****DISPLAY environment variable not set!
Oracle Net Configuration Assistant is a GUI tool
which requires that DISPLAY specify a location
where GUI tools can display.
Set and export DISPLAY, then re-run.
配置DISPLAY变量export DISPLAY=localhost:0.0,配完之后重新netca
[oracle@linux01 oracle11]$ netca -silent -responseFile /data/oracle11/database/response/netca.rsp
日志如下:
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /data/oracle11/database/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
正在运行监听程序控制:
/data/oracle11/db_1/bin/lsnrctl start LISTENER
监听程序控制完成。
监听程序已成功启动。
监听程序配置完成。
成功完成 Oracle Net Services 配置。退出代码是0
/data/oracle11/db_1/network/admin会生成listener.ora和sqlnet.ora两个文件
检测下
[oracle@linux01 admin]$ netstat -tnulp | grep 1521
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::1521 ::😗 LISTEN 22036/tnslsnr
[root@linux01 ~]# netstat -tnulp | grep 1521
tcp6 0 0 :::1521 ::😗 LISTEN 22036/tnslsnr
静默dbca建立数据库
[root@linux01 ~]# vi /data/oracle11/database/response/dbca.rsp
配置编辑:
GDBNAME = "orcl" #78行,全局数据库名字 sid+hostname。SID指的是你的全局数据库名,也就是你建数据库时的名字
SID = "orcl" #149行
CHARACTERSET = "AL32UTF8" #415行,编码
NATIONALCHARACTERSET= "AL32UTF8" #425行
540 TOTALMEMORY = "1638"
#指定数据文件存放的目录,有默认值,可不指定
DATAFILEDESTINATION =/data/oracle11/oradata
RECOVERYAREADESTINATION=/data/oracle11/datarecovery
编辑完成后执行
[oracle@linux01 database]$ dbca -silent -responseFile /data/oracle11/database/response/dbca.rsp
可惜,有以下报错:
Exception in thread "main" java.lang.NullPointerException
at oracle.sysman.assistants.util.INIFile$IniPair.<init>(INIFile.java:88)
at oracle.sysman.assistants.util.INIFile$IniSection.addPair(INIFile.java:225)
at oracle.sysman.assistants.util.INIFile.readINIFile(INIFile.java:827)
at oracle.sysman.assistants.util.INIFile.getProfileString(INIFile.java:439)
at oracle.sysman.assistants.dbca.backend.CommandLineArguments.processResponseFile(CommandLineArguments.java:4340)
at oracle.sysman.assistants.dbca.backend.CommandLineArguments.process(CommandLineArguments.java:3564)
at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:109)
at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:184)
这里也是这样,以为没有JDK环境,可是然而安了还是这样,应该还是dbca.rsp文件的问题。/data/oracle11/cfgtoollogs/dbca/trace.log可看日志。
最后搞半天没解决,后来参考这个直接使用命令行的方式,(还有图形化方式),不用dbca.rsp文件了,执行
[oracle@linux01 dbca]$ dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname orcl -sid orcl -sysPassword 123 -systemPassword 123 -responseFile NO_VALUE -datafileDestination /data/oracle11/oradata -redoLogFileSize 50 -recoveryAreaDestination /data/oracle11/flash_recovery_area -storageType FS -characterSet AL32UTF8 -nationalCharacterSet UTF8 -sampleSchema true -memoryPercentage 30 -totalMemory 200 -emConfiguration NONE
终于建好了:
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
57% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件 "/data/oracle11/cfgtoollogs/dbca/orcl/orcl.log"。
实例检查
[oracle@linux01 orcl]$ ps -ef | grep ora_ | grep -v grep
oracle 27410 1 0 16:12 ? 00:00:00 ora_pmon_orcl
oracle 27412 1 0 16:12 ? 00:00:15 ora_vktm_orcl
oracle 27416 1 0 16:12 ? 00:00:00 ora_gen0_orcl
oracle 27418 1 0 16:12 ? 00:00:00 ora_diag_orcl
oracle 27420 1 0 16:12 ? 00:00:00 ora_dbrm_orcl
oracle 27422 1 0 16:12 ? 00:00:00 ora_psp0_orcl
oracle 27424 1 0 16:12 ? 00:00:00 ora_dia0_orcl
oracle 27426 1 0 16:12 ? 00:00:00 ora_mman_orcl
oracle 27428 1 0 16:12 ? 00:00:00 ora_dbw0_orcl
oracle 27430 1 0 16:12 ? 00:00:00 ora_lgwr_orcl
oracle 27432 1 0 16:12 ? 00:00:00 ora_ckpt_orcl
oracle 27434 1 0 16:12 ? 00:00:00 ora_smon_orcl
oracle 27436 1 0 16:12 ? 00:00:00 ora_reco_orcl
oracle 27438 1 0 16:12 ? 00:00:00 ora_mmon_orcl
oracle 27440 1 0 16:12 ? 00:00:00 ora_mmnl_orcl
oracle 27442 1 0 16:12 ? 00:00:00 ora_d000_orcl
oracle 27444 1 0 16:12 ? 00:00:00 ora_s000_orcl
oracle 27484 1 0 16:12 ? 00:00:00 ora_qmnc_orcl
oracle 27486 1 0 16:12 ? 00:00:00 ora_q000_orcl
oracle 27488 1 0 16:12 ? 00:00:00 ora_q001_orcl
oracle 27503 1 0 16:12 ? 00:00:00 ora_cjq0_orcl
oracle 27563 1 0 16:17 ? 00:00:00 ora_smco_orcl
oracle 28043 1 0 16:58 ? 00:00:00 ora_w000_orcl
查看监听状态
[oracle@linux01 orcl]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 10-APR-2020 17:05:01
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 10-APR-2020 11:22:40
Uptime 0 days 5 hr. 42 min. 20 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /data/oracle11/db_1/network/admin/listener.ora
Listener Log File /data/oracle11/diag/tnslsnr/linux01/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux01)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
启动
以 DBA 身份进入 sqlplus
[oracle@linux01 database]$ sqlplus / as sysdba
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/data/oracle11/oradata/orcl/system01.dbf
/data/oracle11/oradata/orcl/sysaux01.dbf
/data/oracle11/oradata/orcl/undotbs01.dbf
/data/oracle11/oradata/orcl/users01.dbf
/data/oracle11/oradata/orcl/example01.dbf
SQL>
创建数据库schema
即创建表空间、用户等
参考这里的第17步
工具连接Oracle
如果出现报错ORA-12541: TNS:no listener
,查看$ORACLE_HOME/network/admin/下两个文件:
tnsnames.ora:用于客户端,提示客户端从哪个监听实例连接。
istener.ora:用于服务端,用于提示服务端监听哪些实例。
HOST应该写IP地址或服务器名,参考。
如果设置好了还不行,重启试试,我的出现这个问题后,第二天自己好了~~
后续
修改sys密码后,
cmd命令行下输入 sqlplus / as sysdba;
>alter user sys identified by huozhe
出现连不上的情况
因为我的 listener.ora 文件些的是域名不是ip,然而/etc/hosts里还没改过来的锅。listener.ora 文件详解