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