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"。

这里还有手工建库的方式供参考,第4部分

实例检查

[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地址或服务器名,参考
如果设置好了还不行,重启试试,我的出现这个问题后,第二天自己好了~~

补充:重启或停止oracle服务

后续

修改sys密码后,

cmd命令行下输入 sqlplus / as sysdba;
>alter user sys identified by huozhe

出现连不上的情况

因为我的 listener.ora 文件些的是域名不是ip,然而/etc/hosts里还没改过来的锅。listener.ora 文件详解

posted @ 2020-04-10 17:00  cashew  阅读(982)  评论(0编辑  收藏  举报