在没有图形界面的情况时,安装Oracle数据库软件和创建数据库就只能使用命令行的方式进行。

本文假设安装的前提条件都已经配置好。

一、静默安装数据库软件

1、准备参数文件

这个参数文件是用于安装软件使用的,里边配置了需要安装的版本、语言、ORACLE_HOME等信息。

这个文件的模版在database/response目录下的db_install.rsp,文件中的各个参数作用参考​​http://docs.oracle.com/cd/E11882_01/em.112/e12255/oui3_response_files.htm#OUICG183​

#修改记录如下:
oracle.install.option=INSTALL_DB_SWONLY #只安装软件
UNIX_GROUP_NAME=oinstall #安装的操作系统用户组
INVENTORY_LOCATION=/u01/app/oraInventory/ #Inventory目录路径
SELECTED_LANGUAGES=en #安装语言
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db #Oracle Home路径
ORACLE_BASE=/u01/app/oracle/ #Oracle Base路径
oracle.install.db.InstallEdition=EE #数据库版本 EE企业版
oracle.install.db.DBA_GROUP=dba #DBA组所属的操作系统用户组
oracle.install.db.OPER_GROUP=oinstall #OPER组所属的操作系统用户组
DECLINE_SECURITY_UPDATES=true #必须设置为true,否则需要修改其他信息
#创建Inventory目录
[oracle@rhel6 11.2.0.4_database]$ cd /u01/app/
[oracle@rhel6 app]$ ls
oracle
[oracle@rhel6 app]$ mkdir oraInventory

2、静默安装

[oracle@rhel6 11.2.0.4_database]$ ./runInstaller -silent -force -responseFile /opt/soft/11g/11.2.0.4_database/response/install.rsp 
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB. Actual 34496 MB Passed
Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-12-21_05-02-49PM. Please wait ...[oracle@rhel6 11.2.0.4_database]$ [WARNING] [INS-13014] Target environment do not meet some optional requ
irements. CAUSE: Some of the optional prerequisites are not met. See logs for details. /tmp/OraInstall2016-12-21_05-02-49PM/installActions2016-12-21_05-02-49PM.log
ACTION: Identify the list of failed prerequisite checks from the log: /tmp/OraInstall2016-12-21_05-02-49PM/installActions2016-12-21_05-02-49PM.log. Then either from the log file or from installation manual f
ind the appropriate configuration to meet the prerequisites and fix it manually.You can find the log of this install session at:
/u01/app/oraInventory/logs/installActions2016-12-21_05-02-49PM.log
#日志文件:/u01/app/oraInventory/logs/installActions2016-12-21_05-02-49PM.log
[oracle@rhel6 11.2.0.4_database]$ The installation of Oracle Database 11g was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2016-12-21_05-02-49PM.log' for more details.

As a root user, execute the following script(s):
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/11.2.0/db/root.sh


Successfully Setup Software.

3、使用root执行脚本

[root@rhel6 response]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@rhel6 response]# /u01/app/oracle/product/11.2.0/db/root.sh
Check /u01/app/oracle/product/11.2.0/db/install/root_rhel6_2016-12-21_17-12-23.log for the output of root script
[root@rhel6 response]# cat /u01/app/oracle/product/11.2.0/db/install/root_rhel6_2016-12-21_17-12-23.log
Performing root user operation for Oracle 11g

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0/db
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
Finished product-specific root actions.
#测试sqlplus
[oracle@rhel6 11.2.0.4_database]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 21 17:16:19 2016

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to an idle instance.

SQL>

4、手工建库

官方文档:​​http://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#CIAEJDBE​

4.1 配置环境变量

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db
export ORACLE_SID=mydb
export PATH=$PATH:$ORACLE_HOME/bin
#创建数据文件存储目录
[oracle@rhel6 oracle]$ cd $ORACLE_BASE
[oracle@rhel6 oracle]$ mkdir -p oradata/mydb

4.2 手工创建pfile

#此处只写必要的几个参数,生产上要按照实际情况写参数
[oracle@rhel6 ~]$ cat mydb.ora
db_name=mydb
control_files=/u01/app/oracle/oradata/mydb/control01.ctl,/u01/app/oracle/oradata/mydb/control02.ctl

4.3 启动实例到NOMOUNT状态

[oracle@rhel6 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 21 17:26:31 2016

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup nomount pfile=/home/oracle/mydb.ora;
ORACLE instance started.

Total System Global Area 217157632 bytes
Fixed Size 2251816 bytes
Variable Size 159384536 bytes
Database Buffers 50331648 bytes
Redo Buffers 5189632 bytes

4.4 创建spfile并重启到NOMOUNT状态

SQL> create spfile from pfile='/home/oracle/mydb.ora';

File created.

SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 217157632 bytes
Fixed Size 2251816 bytes
Variable Size 159384536 bytes
Database Buffers 50331648 bytes
Redo Buffers 5189632 bytes

4.4 执行CREATE DATABASE语句创建数据库

SQL> CREATE DATABASE mydb
2 USER SYS IDENTIFIED BY oracle
3 USER SYSTEM IDENTIFIED BY oracle
4 LOGFILE GROUP 1 ('/u01/app/oracle/oradata/redo01.log') SIZE 100M BLOCKSIZE 512,
5 GROUP 2 ('/u01/app/oracle/oradata/redo02.log') SIZE 100M BLOCKSIZE 512,
6 GROUP 3 ('/u01/app/oracle/oradata/redo03.log') SIZE 100M BLOCKSIZE 512
7 MAXLOGFILES 5
8 MAXLOGMEMBERS 5
9 MAXLOGHISTORY 1
10 MAXDATAFILES 100
11 CHARACTER SET ZHS16GBK
12 NATIONAL CHARACTER SET AL16UTF16
13 EXTENT MANAGEMENT LOCAL
14 DATAFILE '/u01/app/oracle/oradata/mydb/system01.dbf' SIZE 325M REUSE
15 SYSAUX DATAFILE '/u01/app/oracle/oradata/mydb/sysaux01.dbf' SIZE 325M REUSE
16 DEFAULT TABLESPACE users
17 DATAFILE '/u01/app/oracle/oradata/mydb/users01.dbf'
18 SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
19 DEFAULT TEMPORARY TABLESPACE tempts1
20 TEMPFILE '/u01/app/oracle/oradata/mydb/temp01.dbf'
21 SIZE 20M REUSE
22 UNDO TABLESPACE undotbs
23 DATAFILE '/u01/app/oracle/oradata/mydb/undotbs01.dbf'
24 SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

Database created.

4.5 执行创建数据字典脚本

conn / as sysdba
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/utlrp.sql
conn system/oracle
@?/sqlplus/admin/pupbld.sql

5、创建监听并启动

[oracle@rhel6 mydb]$ cd $ORACLE_HOME/network/admin
[oracle@rhel6 admin]$ ls
samples shrept.lst
[oracle@rhel6 admin]$ vi listener.ora
[oracle@rhel6 admin]$ cat listener.ora
LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=rhel6)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
[oracle@rhel6 admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 21-DEC-2016 17:41:13

Copyright (c) 1991, 2013, Oracle. All rights reserved.

Starting /u01/app/oracle/product/11.2.0/db/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/rhel6/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel6)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel6)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 21-DEC-2016 17:41:15
Uptime 0 days 0 hr. 0 min. 2 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/rhel6/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel6)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
The listener supports no services
The command completed successfully

6、测试

C:\Users\victor>sqlplus system/oracle@192.168.56.3/mydb

SQL*Plus: Release 12.1.0.1.0 Production on 星期三 1221 17:51:05 2016

Copyright (c) 1982, 2013, Oracle. All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE