1、检查内存情况(swap一般是4G )
root@namenode01 dfs]# grepMemTotal /proc/meminfo
MemTotal: 57495220 kB
[root@namenode01 dfs]# grepSwapTotal /proc/meminfo
SwapTotal: 28835836 kB
2、硬盘
只要10G以上
df –h
3、软件安装注意
系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启SELinux,oracle官方不建议使用SELinux,CentOS的防火墙也请暂时关闭,减少安装时的困扰。但是笔者在之前安装CentOS7时,没有点选安全模块,所有系统的防火墙模块没有装,这直接导致后面测试远程连接时花费了我很长时间,详见后面的描述,这里装没装关系不大,装的话按照接下来的步骤关闭防火墙,没装的话可以先忽略。可以使用如下命令查看。
#service iptables status //centos6下命令
#systemctl statusiptables.service //centos7下命令
4、安装Oracle前的系统准备工作
首先,请先以root账号登入作一些前置设定作业。
1.关闭防火墙、禁用SELinux
关于防火墙配置,如果此处遇到防火墙不可用,或者提示不存在该模块等信息,请参见另一篇文章CentOS7_86_64创建Oracle实例且设置开机自启以及允许远程连接,里面有详细说明。
1) 重启后生效 (建议使用)
//centos6下
#chkconfigiptables on
#chkconfigiptables off
//centos7下
#systemctlenable iptables.service
#systemctldisable iptables.service
2) 即时生效,重启后失效
//centos6下
#serviceiptables start
#serviceiptables stop
//centos7下
#systemctlstart iptables.service
#systemctlstop iptables.service
接下来修改SELINUX=disabled,然后重启。
sed -i's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;
mkdir -p /u01/app/oracle
root@namenode01 oracle]# gunzip10201_database_linux_x86_64.cpio.gz
2.安装依赖包
Oracle10g R2官方文档要求的安装包:
rpm -q --queryformat%-{name}-%{version}-%{release}-%{arch}"\n" \ compat-dbcompat-gcc-34 gcc make binutils gcc-c++compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static kshlibaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel
安装常用软件:
yum -y install autoconf automake binutils-devel bison cpp dos2unixftp gcc gcc-c++ lrzsz python-devel
yum -y install binutils compat-libstdc++-33compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers kshlibaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++libstdc++.i686 libstdc++-devel make sysstat
yum -yinstall compat-db compat-gcc- compat-gcc-c++ compat-libstdc++-33 glibc-* glibc-*.i686 libXpm-*.i686 libXp.so.6 libXt.so.6 libXtst.so.6 libgcc_s.so.1 ksh libXp libaio-devel numactl numactl-develunixODBC unixODBC-devel
最后还要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。
# yum -yinstall libXp
yum whatprovides "*/xhost"
yum -y install xorg-x11-server-utils-7.7-14.el7.x86_64
6、创建Oracle用户与组
在这里只讨论单主机环境,不考虑RAC环境的配置。
执行以下指令以新增oracle安装时所需要的使用者与群组。
(1) 建立群组oinstall
# groupaddoinstall
(2) 建立群组dba
# groupadddba
(3) 新增使用者oracle并将其加入oinstall和dba群组
# useradd -m-g oinstall -G dba oracle
(4) 测试oracle账号是否建立完成
# id oracle
(5) 建立oracle的新密码
# passwd oracle
7.将oracle使用者加入到sudo群组中
# vi/etc/sudoers
oracle ALL=(ALL) ALL
# vi /etc/sysctl.conf
fs.aio-max-nr= 1048576
fs.file-max= 6553600
kernel.shmall= 2097152
kernel.shmmax= 8588934592
kernel.shmmni= 4096
kernel.sem =250 32000 100 128
net.ipv4.ip_local_port_range= 1024 65000
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048586
vm.hugetlb_shm_group=1002
注明:
kernel.shmall= 4294967296 //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改
kernel.shmmax = 68719476736 //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G
kernel.shmmni = 4096 //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096。通常不需要更改
kernel.sem = 250 32000 100 128 //表示设置的信号量
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304 //默认的接收窗口大小
net.core.rmem_max=4194304 //接收窗口的最大大小
net.core.wmem_default=262144 //默认的发送窗口大小
net.core.wmem_max=262144 //发送窗口的最大大小
vm.hugetlb_shm_group=1002 //这里1002是oracle用户组dba的gid,原文这里没有配置,这里一定要配置,要不然后面每次重启后,启动oracle实例都会碰到一个错误
编辑完之后,储存,然后执行:
# sysctl -p
vi /etc/security/limits.conf
添加以下四行
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
编辑/etc/pam.d/login
# vi /etc/pam.d/login
sessionrequired /lib64/security/pam_limits.so
session required pam_limits.so
修改/etc/profile
# vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
9、修改Linux发行版本信息
由于Oracle 10g发行的时候,CentOS 6/7没有发行,所以Oracle 10g并没有对CentOS 6/7确认支持,需要修改文件让Oracle 10g支持CentOS 6/7。
我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS 6/7。
编辑/etc/redhat-release文件
# vi /etc/redhat-release
redhat-4
创建oracle安装文件夹以及数据存放文件夹
[root@namenode01 dfs]# mkdir-p /u01/app/oracle
[root@namenode01 dfs]# mkdir-p /u01/app/oracle/product/10.2.0/db_1
[root@namenode01 dfs]# chown -R oracle:oinstall /u01/
10、配置oracle用户环境变量
$ cd /home/oracle
$ vi .bash_profile
修改并加入以下內容
exportORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=ora10
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
保存后使用如下命令,使设置生效:
source/home/oracle/.bash_profile
以下红色部分本文不用(图形化界面需要该步骤)
在Xmanager中安装数据库 (切换到刚才解压的目录下,运行:)
export DISPLAY=IP:0.0
$./runInstaller
exportDISPLAY=192.168.238.40:0
cd /u01/app/oracle/database/
./runInstaller
11.解压软件
root@namenode01 oracle]# gunzip10201_database_linux_x86_64.cpio.gz
[oracle@namenode01 oracle]$cpio -idmv <10201_database_linux_x86_64.cpio
12、静默安装数据库
[oracle@namenode01 database]$ cp response/enterprise.rsp /home/oracle/
[oracle@namenode01 database]$ cd/home/oracle
[oracle@namenode01 response]$ ls
enterprise.rsp
[oracle@oracle udump]$ vi /home/oracle//enterprise.rsp RESPONSEFILE_VERSION=2.2.1.0.0 FROM_LOCATION="../stage/products.xml" ORACLE_HOME="/u01/app/oracle/product/10.2.0/db_1" ORACLE_HOME_NAME="OraDb10g_home1" TOPLEVEL_COMPONENT={"oracle.server","10.2.0.1.0"} DEINSTALL_LIST={"oracle.server","10.2.0.1.0"} SHOW_SPLASH_SCREEN=false SHOW_WELCOME_PAGE=false SHOW_COMPONENT_LOCATIONS_PAGE=false SHOW_CUSTOM_TREE_PAGE=false SHOW_SUMMARY_PAGE=false SHOW_INSTALL_PROGRESS_PAGE=false SHOW_REQUIRED_CONFIG_TOOL_PAGE=false SHOW_CONFIG_TOOL_PAGE=false SHOW_RELEASE_NOTES=false SHOW_ROOTSH_CONFIRMATION=false SHOW_END_SESSION_PAGE=false SHOW_EXIT_CONFIRMATION=false NEXT_SESSION=false NEXT_SESSION_ON_FAIL=false SHOW_DEINSTALL_CONFIRMATION=false SHOW_DEINSTALL_PROGRESS=false ACCEPT_LICENSE_AGREEMENT=true COMPONENT_LANGUAGES={"en"} SELECTED_LANGUAGES=en,zh_CN CLUSTER_NODES= INSTALL_TYPE="EE" s_nameForDBAGrp=dba s_nameForOPERGrp=dba b_oneClick=false SHOW_DATABASE_CONFIGURATION_PAGE=false b_createStarterDB=false |
13,创建库
[oracle@elk02 admin]$ cd $ORACLE_HOME/assistants/dbca/templates
[oracle@elk02 templates]$ ls
Data_Warehouse.dbc General_Purpose.dbc Seed_Database.dfb
example01.dfb New_Database.dbt Transaction_Processing.dbc
example.dmp Seed_Database.ctl
[oracle@elk02 templates]$ cpGeneral_Purpose.dbc ~
[oracle@elk02 templates]$ vi/home/oracle/dbca.rsp
cat dbca.rsp |grep -Ev "^$|^[#;]"
[GENERAL]
RESPONSEFILE_VERSION = "10.0.0" //不能更改
OPERATION_TYPE = " createDatabase "
[CREATEDATABASE]
GDBNAME = "hxy01" //数据库的名字
SID = " orcl10g " //对应的实例名字
TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
SYSPASSWORD = "oracle" //SYS管理员密码
SYSTEMPASSWORD = "oracle" //SYSTEM管理员密码
DATAFILEDESTINATION = /u01/app/oracle/oradata //数据文件存放目录
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area //恢复数据存放目录
CHARACTERSET = "ZHS16GBK" //字符集,重要!!!建库后一般不能更改,所以建库前要确定清楚。
[oracle@elk02 templates]$ dbca -silent-responseFile /home/oracle/dbca.rsp
14、安装监听
机器需要有java
[oracle@elk02 database]$ netca /silent/responsefile /home/oracle/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/oracle/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Listener started at port:1522
Oracle Net Listener Startup:
Running Listener Control:
/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Default local naming configurationcomplete.
Oracle Net Services configurationsuccessful. The exit code is 0
cp $ORACLE_BASE/admin/hxy01/pfile/init.ora.882017161519 /u01/app/oracle/product/10.2.0/db_1/dbs/initora10.ora
启动数据库
[oracle@elk02 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Productionon Fri Sep 8 17:57:28 2017
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 2432696320 bytes
Fixed Size 2022696 bytes
Variable Size 520094424 bytes
Database Buffers 1895825408 bytes
Redo Buffers 14753792 bytes
Database mounted.
Database opened.
SQL> select instance from v$thread;
INSTANCE
--------------------------------------------------------------------------------
ora10
SQL> show parameter name
NAME TYPE VALUE
----------------------------------------------- ------------------------------
db_file_name_convert string
db_name string hxy01
db_unique_name string hxy01
global_names boolean FALSE
instance_name string ora10
lock_name_space string
log_file_name_convert string
service_names string hxy01
SQL> alter system archive log current;
alter system archive log current
*
ERROR at line 1:
ORA-00258: manual archiving in NOARCHIVELOGmode must identify log
SQL> alter database backup controlfileto trace resetlogs;
Database altered.
SQL> show parameter log_archive_dest_1
NAME TYPE VALUE
----------------------------------------------- ------------------------------
log_archive_dest_1 string
log_archive_dest_10 string
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
---------- ---------- ---------- -------------------- --- ----------------
FIRST_CHANGE# FIRST_TIM
------------- ---------
1 1 2 52428800 1 NO INACTIVE
532071 08-SEP-17
2 1 3 52428800 1 NO CURRENT
557161 08-SEP-17
3 1 1 52428800 1 NO INACTIVE
525876 08-SEP-17
SQL> create user test identified bytest;
User created.