ORACLE 11g 静默安装

一、安装准备

0)上传安装包

上传安装包到 /db目录:

$ mkdir /db

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

1)解压安装包

$ cd /db
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip

2)安装依赖

如果没有互联网环境无法使用 yum,可以挂载 CentOS-7-x86_64-Everything-2009.iso

$ mkdir /cdrom
$ mount -o loop /xxx/CentOS-7-x86_64-Everything-2009.iso /cdrom
// 查看是否挂载上
$ df -h 

安装依赖:

yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
ksh \
sysstat \
unixODBC \
unixODBC-devel

如果 pdksh 没有安装,可以忽略,已经安装了 ksh

二、系统设置

0)创建 oracle 用户

$ userdel -r oracle
$ groupadd -g 700 oinstall
$ groupadd -g 701 dba
$ useradd -g oinstall -G dba -u 700 oracle
$ passwd oracle // 设置oracle用户密码
$ id oracle
uid=700(oracle) gid=700(oinstall) 组=700(oinstall),701(dba)

1)限制 oracle 用户的 shell 权限

添加以下配置:

$ vim /etc/security/limits.conf
oracle               soft     nproc    2047
oracle               hard     nproc    16384
oracle               soft     nofile   1024
oracle               hard     nofile   65536

limits.conf 配置说明:
<domain> <type> <resource> <value>
<domain>:

username 或 @groupname:设置需要被限制的用户名,组名前面加 @ 与 用户名 区别。 * 表示所有用户(注意有的系统不支持)
<type>:
soft 指的是当前系统生效的设置值
hard 表明系统中所能设定的最大值(soft 的限制不能比 hard 限制高 )
- 就表明同时设置了 soft 和 hard 的值
<resource>:(针对 Oracle 的我们主要配置 nproc nofile):
as - 地址空间限制
rss - 最大持久设置大小
cpu - 以分钟为单位的最多 CPU 时间
core - 限制内核文件的大小
date - 最大数据大小
stack - 最大栈大小
fsize - 最大文件大小
noproc - 进程的最大数目
nofile - 打开文件的最大数目
memlock - 最大锁定内存地址空间
maxlogins - 此用户允许登录的最大数目
<value>:: 限制的值

2)优化 OS 内核参数

$ vi /etc/sysctl.conf

kernel.shmmni=4096
kernel.shmall=8388608
kernel.shmmax=34359738368

fs.aio-max-nr=1048576
fs.file-max=6815744
kernel.sem=250 32000 100 128
net.ipv4.ip_local_port_range=9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586

kernel.shmmni : 该参数为共享内存段的最大数量,缺省值为 4096 ,一般情况下无需调整。
kernel.shmall: shmall 表示共享内存总量,以页为单位(ARM64 或者 Intel64 一页=4K), shmall 不能低于 SGA 大小,若 shmall 低于 SGA 大小,实例启动时会报:ORA-27123: unable to attach to shared memory segment 错误,无法启动实例。
kernel.shmmax: shmmax 参数用来定义单个共享内存段的最大值,该值应该配置足够大,能够在一个共享内存段中容下整个的 SGA ,如果配置过低可能导致需要创建多个共享内存段,这样可能会导致系统性能下降。
shmmni 缺省值为 4096 ,一般情况下无需调整
shmmax 的单位为 Byte (字节), 最小取值为一半的物理内存,以设置 shmmax 为 32G 为例:
32 * 1024 * 1024 * 1024 = 34359738368
shmall 的单位为页(ARM64 或者 Intel64 一页=4K),一页 = 4k。一般取值 >= shmmax / 4096 = 8388608
参考:https://www.modb.pro/db/390568

kernel.sem:表示设置的信号量
fs.file-max // 表示一个进程可以打开的文件句柄的最大数量.
net.ipv4.ip_local_port_range// 专用服务器模式下与用户进程通信时分配给用户的端口区间
net.core.rmem_default // 默认接收缓冲区大小
net.core.rmem_max // 接收缓冲区最大值
net.core.wmem_default // 默认的发送缓冲区大小
net.core.wmem_max // 发送缓冲区最大值

使参数生效:

$ sysctl -p
查看参数情况
$ ipcs -l

3)创建安装目录

// 当前为 root 用户

$ mkdir -p /db/oracle/product/11.2.0

$ mkdir /db/oracle/oradata

$ mkdir /db/oracle/oraInventory

$ mkdir /db/oracle/fast_recovery_area

$ chown -R oracle:oinstall /db/oracle

$ chmod -R 775 /db/oracle

// 切换到 oracle 用户
$ su - oracle

// 打开配置文件
$ vim ~/.bash_profile

// 文件最后添加
export ORACLE_BASE=/db/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH

$ source ~/.bash_profile
$ exit

三、安装

0)开始安装

准备 db_install.rsp 文件:

// 创建 /home/oracle/etc 目录
$ mkdir /home/oracle/etc
// 复制 db_install.rsp 到 /home/oracle/etc 目录下
$ cp db_install.rsp /home/oracle/etc/db_install.rsp
// 修改权限
$ chown -R oracle:oinstall /home/oracle/etc

开始静默安装:

// 切换到 oracle 用户
$ su - oracle
$ /db/database/runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq

Checking Temp space: must be greater than 120 MB.   Actual 39151 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 16383 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2022-07-30_11-42-23AM. Please wait ...

 [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
[WARNING] [INS-30011] The password entered does not conform to the Oracle recommended standards.
   CAUSE: Oracle recommends that the ADMIN password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
   ACTION: Provide a password that conforms to the Oracle recommended standards.
[WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
[WARNING] [INS-30011] The password entered does not conform to the Oracle recommended standards.
   CAUSE: Oracle recommends that the ADMIN password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9].
   ACTION: Provide a password that conforms to the Oracle recommended standards.
You can find the log of this install session at:
 /db/oracle/oraInventory/logs/installActions2022-07-30_11-42-23AM.log

查看实时安装日志:

// 另开一个终端
// root 用户
$ tailf /db/oracle/oraInventory/logs/installAction>2022-XX-XX_XX-XX-XX.log
安装进度

可能遇到的问题

[FATAL] [INS-35172] Target database memory (6144MB) exceeds the systems available shared memory (3908MB).
  CAUSE: The total available shared memory on the system (3908 MB) was less than the chosen target database memory (6144 MB).
  ACTION: Enter a value for target database memory that is less than 3908 MB.

假设系统物理内存为 8G,现在想分配 6G 给 ORACLE 使用,假设我们之前配置了 shmmax=6G,shmall=6G,这里为什么还会报错?难道 shmmax 配置不起作用吗?
这里要涉及到 Linux 系统共享内存的概念(/dev/shm),待补充!

简单解释: ORACLE 的系统全局区(SGA)是通过系统共享内存技术实现的,/dev/shm 分区的大小默认是系统物理内存的 50%(CentOS),具体大小可以通过 df -h 命令查看。

[root@centos-linux ~]df -h /dev/shm
文件系统        容量  已用  可用 已用% 挂载点
tmpfs           3.9G     0  3.9G    0% /dev/shm

假设系统内存 8G,那么可用共享内存大小就是 4G,接近上面报错信息中的 3908M,所以才会报错。
如果有需要,共享内存大小可以支持修改,修改 /etc/fstab 文件即可,修改 /dev/shm 所在行,没有则新增:

tmpfs /dev/shm tmpfs defaults,size=6G 0 0
// 修改后重新挂载
[root@centos-linux ~]mount –o remount  /dev/shm
// 或者卸载再挂载
[root@centos-linux ~]umount /dev/shm
[root@centos-linux ~]mount -t tmpfs -o size=6G tmpfs /dev/shm

[root@centos-linux ~]df -h /dev/shm
文件系统        容量  已用  可用 已用% 挂载点
shmfs           6.0G     0  6.0G    0% /dev/shm

参考:https://www.cnblogs.com/tinywan/p/10550356.html

安装完成,提示 Successfully Setup Software.,按提示执行脚本:

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 21313 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4015 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-11-30_11-40-10AM. Please wait ...[oracle@JY-DB01 database]$ [WARNING] [INS-13014] Target environment do not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/installActions2015-11-30_11-40-10AM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /db/oracle/oraInventory/logs/installActions2015-11-30_11-40-10AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
You can find the log of this install session at:
 /db/oracle/oraInventory/logs/installActions2015-11-30_11-40-10AM.log
The installation of Oracle Database 11g was successful.
Please check '/db/oracle/oraInventory/logs/silentInstall2015-11-30_11-40-10AM.log' for more details.

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

To execute the configuration scripts:
     1. Open a terminal window
     2. Log in as "root"
     3. Run the scripts
     4. Return to this window and hit "Enter" key to continue


Successfully Setup Software.

新开一个终端:

// root 用户执行脚本
$ /db/oracle/oraInventory/orainstRoot.sh
$ /db/oracle/product/11.2.0/dbhome_1/root.sh

1)启动监听

// 切换 oracle 用户
su - oracle

// 启动监听
$ lsnrctl start

// 查看监听状态
$ lsnrctl status

2)登录数据库

$ sqlplus / as sysdba

// 查看数据库状态
$ select status from v$instance;

3)配置加密传输

Oracle 服务器和客户端之间的数据传输默认是使用明文方式传输,对于敏感信息是很不安全的。
启动传输加密和校验的方法是通过修改服务器端和客户端的 sqlnet.ora 文件实现。
修改sqlnet.ora配置:(路径:$ORACLE_HOME/network/admin

# 加密级别
SQLNET.ENCRYPTION_SERVER = REQUIRED
# 加密算法
SQLNET.ENCRYPTION_TYPES_SERVER = RC4_256
# 数据完整性校验
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
# 校验算法
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER = MD5

理论上需要在数据库 server 端和 oracle 客户端都修改 sqlnet.ora 文件,但因为 client 端默认传输加密级别是 ACCEPTED,默认一致性校验级别是 ACCEPTED,所以只需要在服务器端设置就可以打开传输加密和一致性校验功能,而不需要再对 client 端的 sqlnet.ora 进行设置

设置参数后对新建立的 session 起作用。

4)安装安全补丁

参考:https://www.jianshu.com/p/a7978d6a3a18

5)配置审计

参考:https://www.jianshu.com/p/fd34c9fcfa21

四、建库

0)建表空间

1)建用户

2)导入表结构

3)导入数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容