在Linux上安装Oracle11gR2-手工建库

实验环境:RHEL7.4 x64 最简安装
数据库版本: Oracle 11G R2
IP 地址:192.168.10.133
Linux连接工具: xmanager 5 //也可以直接使用图形安装Linux无需工具
程序包下载:
官网下载  

Database安装步骤

1.  修改系统主机名,hosts文件,系统参数
2.  添加用户和组信息,创建Oracle安装目录
3.  修改用户环境变量
4.  开始安装(安装linux组件,上传Oracle程序包,并解压运行安装)
4.  DBCA建库
1. 修改主机名
[root@localhost ~]# hostname
localhost.localdomain    ##Oracle数据库的安装在生产中要慎重考虑主机名,避免二次修改。
[root@localhost ~]# hostnamectl set-hostname oracle.example.com
[root@localhost ~]# hostnamectl    ##验证是否成功

2. 添加hosts解析条目
[root@localhost ~]# cat << EOF >> /etc/hosts
> 192.168.10.133 oracle.example.com oracle
> EOF

3.下列参数写入到/etc/sysctl.conf文件中
[root@localhost ~]# cat /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
[root@localhost ~]# /sbin/sysctl -p   //执行生效

4. 添加下列参数到/etc/security/limits.conf 
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  4096
oracle              hard    nofile  65536
oracle              soft    stack   10240

5.添加下列条目到/etc/pam.d/login
session    required     pam_limits.so  ##复制到session相同字段即可

二. 添加用户和用户组信息

1、创建用户和组信息
[root@localhost ~]# groupdel oinstall
[root@localhost ~]# groupadd -g 2000 oinstall
[root@localhost ~]# groupadd -g 2001 dba
[root@localhost ~]# groupadd -g 2002 oper
[root@localhost ~]# useradd -g oinstall -G 2000,2001,2002 oracle
[root@localhost ~]# echo oracle | passwd --stdin oracle
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# id oracle
uid=1000(oracle) gid=2000(oinstall) groups=2000(oinstall),2001(dba),2002(oper)

2.创建目录结构
[root@localhost ~]# mkdir /u01/app/oracle/product/11.2.0.4/dbhome_1 -p
[root@localhost ~]# chown -R oracle.oinstall /u01 
[root@localhost ~]# chmod -R 775 /u01
1. 安装程序组件
yum install binutils -y
yum install compat-libstdc++-33 -y
yum install gcc -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc-devel -y
yum install ksh -y
yum install libgcc -y
yum install libstdc++ -y
yum install libstdc++-devel -y
yum install libaio -y
yum install libaio-devel -y
yum install libXext -y
yum install libXtst -y
yum install libX11 -y
yum install libXau -y
yum install libxcb -y
yum install libXi -y
yum install make -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
yum install zlib-devel -y
yum install elfutils-libelf-devel -y
[root@oracle ~]#  rpm -ivh http://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
注意:  pdksh的一个组件,由于是el5版本的,在rhel7环境可无需安装

2. 如果您是跟着我是最小安装,那么您需要在root环境下安装支持"xhost +"命令的工具
[root@oracle ~]# yum provides xhost
[root@oracle ~]# yum -y install xorg-x11-server-utils
3.将下载的数据库程序包上传到Oracle用户/home/oracle目录,xmanager工具自带xftp非常方便
4. 修改oracle用户环境变量
[oracle@oracle ~]$ su - oracle
[oracle@oracle ~]$ cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/dbhome_1
export ORACLE_SID=ORACLEDB
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
export PATH

[oracle@oracle ~]$ source .bash_profile  

5. 将下载的数据库程序包上传到Oracle用户/home/oracle目录并按编号解压
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_2of2.zip
[oracle@oracle ~]$ export DISPLAY=192.168.10.1:0.0  //此IP在当前虚拟机使用的虚拟网卡中获得。
[oracle@oracle ~]$ ./database/runInstaller  //执行安装程序

安装截图

由于是测试,跳过email登录
RHEL7安装Oracle 11G R2跳过更新
RHEL7安装Oracle 11G R2选择只安装软件(后期使用DBCA或手工建库)
RHEL7安装Oracle 11G R2选择单实例安装(后面是集群安装和集群节点)
RHEL7安装Oracle 11G R2建议使用英文安装,这里我直接下一步
RHEL7安装Oracle 11G R2选择安装企业版
RHEL7安装Oracle 11G R2这里是oracle安装的目录,这是我们前面写的环境变量生效的效果,确认直接下一步
RHEL7安装Oracle 11G R2这里是Oracle产品安装清单,确认之前下一步
RHEL7安装Oracle 11G R2Oracle检测到系统参数需要修改,点击需要修复读警告,选择 Fix& Check Again进行修复
RHEL7安装Oracle 11G R2
复制脚本,以root用户执行,执行成功后点击OK完成修复
[root@oracle ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh
RHEL7安装Oracle 11G R2注意是如果: 有组件需要安装,在生产环境是不能忽略的,需要全部安装
安装步骤推荐:
RHEL7安装Oracle 11G R2
[root@oracle ~]# yum -y install xxxx 完成以上步骤,进行安装
RHEL7安装Oracle 11G R2这里出现报错,此报错为Oracle在RHEL7上允许的漏洞,需要修改参数
RHEL7安装Oracle 11G R2
[oracle@oracle ~]$ vi /u01/app/oracle/product/11.2.0.4/dbhome_1/sysman/lib/ins_emagent.mk
RHEL7安装Oracle 11G R2 //后面添加 "-lnnz11"字段。
修改后点击Retry重试:
RHEL7安装Oracle 11G R2Oracle让我们安装脚本,两个脚本完成后点击OK继续,第二个脚本一路按回车。
RHEL7安装Oracle 11G R2
RHEL7安装Oracle 11G R2
完成安装
RHEL7安装Oracle 11G R2

四. 手工建库

[oracle@oracle ~]$ lsnrctl start
[oracle@oracle ~]$

1、创建Oracle数据目录:

  1: [oracle@oracle ~]$  mkdir -p /u01/app/oracle/oradata/oracledb
  2: [oracle@oracle ~]$  mkdir –p $ORACLE_BASE/admin/oracledb
  3: [oracle@oracle ~]$  mkdir –p /u01/app/oracle/flash_recovery_area

2、创建Oracle的口令认证

  1: [oracle@oracle ~]$ cd $ORACLE_HOME/dbs
  2: [oracle@oracle dbs]$ orapwd file=orapwORACLEDB password=oracle entries=30

3、创建初始化参数文件

a、以官方参数文件为模板创建初始化参数文件

  1: [oracle@oracle ~]cd $ORACLE_HOME/dbs
  2: [oracle@oracle ~]cat init.ora |grep -v ^#|grep -v ^$> initORACLEDB.ora
b、修改初始化参数文件

修改前:

  1: db_name='ORCL'
  2: memory_target=1G
  3: processes = 150
  4: audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
  5: audit_trail ='db'
  6: db_block_size=8192
  7: db_domain=''
  8: db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'
  9: db_recovery_file_dest_size=2G
 10: diagnostic_dest='<ORACLE_BASE>'
 11: dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
 12: open_cursors=300
 13: remote_login_passwordfile='EXCLUSIVE'
 14: undo_tablespace='UNDOTBS1'
 15: # You may want to ensure that control files are created on separate physical
 16: # devices
 17: control_files = (ora_control1, ora_control2)
 18: compatible ='11.2.0'

在vim末行命令的编辑状态中输入

  1: :%s#orcl#ORACLEDB#gi里面替换的orcl的字符串。其中i命令不区分大小写。
  2: :%s#ora_control1#/u01/app/oracle/oradata/ORACLEDB/control01.ctl#g替换ora_control1的字符串。
  3: :%s#ora_control2#/u01/app/oracle/oradata/ORACLEDB/control02.ctl#g替换ora_control2的字符串。
  4: :%s#<ORACLE_BASE>#/u01/app/oracle#g替换<ORACLE_BASE>的字符串。
  5: :wq命令保存配置
修改后:
  1: db_name='ORACLEDB'
  2: memory_target=1G
  3: processes = 150
  4: audit_file_dest='/u01/app/oracle/admin/ORACLEDB/adump'
  5: audit_trail ='db'
  6: db_block_size=8192
  7: db_domain=''
  8: db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
  9: db_recovery_file_dest_size=2G
 10: diagnostic_dest='/u01/app/oracle'
 11: dispatchers='(PROTOCOL=TCP) (SERVICE=ORACLEDBXDB)'
 12: open_cursors=300
 13: remote_login_passwordfile='EXCLUSIVE'
 14: undo_tablespace='UNDOTBS1'
 15: # You may want to ensure that control files are created on separate physical
 16: # devices
 17: control_files = (/u01/app/oracle/oradata/ORACLEDB/control01.ctl, /u01/app/oracle/oradata/ORACLEDB/control02.ctl)
 18: compatible ='11.2.0'
4、连接数据库实例
  1: 命令文件连接:
  2: [oracle@oracle ~]sqlplus sys/oracle as sysdba
  3: SYS@>create spfile from pfile;

5、启动实例

  1: SYS@>startup nomount

6、创建create database语句创建数据库

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

给文件授予权限,并执行脚本:

  1: [oracle@oracle ~]chmod 755 create_database.sql
  2: [oracle@oracle ~]sqlplus / as sysdba
  3: SYS@>@create_database.sql
  4: Database created.

7、执行脚本并构建数据字典视图

  1: [oracle@oracle ~] sqlplus / as sysdba
  2: SYS@>@?/rdbms/admin/catalog.sql
  3: SYS@>@?/rdbms/admin/catproc.sql
  4: SYS@>@?/rdbms/admin/utlrp.sql

8、使用system用户登录,执行脚本

  1: [oracle@oracle ~]sqlplus system/oracle
  2: SYSTEM@> @?/sqlplus/admin/pupbld.sql

五、验证数据库,是否正常:

1:[oracle@oracle ~]sqlplus / as sysdba
2:SYS@>select INSTANCE_NAME,STATUS from v$instance;
  INSTANCE_NAME    STATUS
  ---------------- ------------
  OEACLEDB         OPEN

猜你喜欢

转载自blog.51cto.com/hnyuanzijian/2342715