Linux下静默安装Oracle
一、 检测所要安装的数据包
Suse安装环境检查
linux-udly:~ # rpm -qa | grep binutils
binutils-2.20.0-0.7.9
linux-udly:~ # rpm -qa | grep gcc
gcc-4.3-62.198
gcc43-c++-4.3.4_20091019-0.7.35
linux-udly:~ # rpm -qa | grep glibc
glibc-2.11.1-0.17.4
linux-udly:~ # rpm -qa | grep libaio
libaio-0.3.109-0.1.46
libaio-devel-0.3.109-0.1.46
linux-udly:~ # rpm -qa | grep libgcc
libgcc43-4.3.4_20091019-0.7.35
linux-udly:~ # rpm -qa | grep libstdc
libstdc++-devel-4.3-62.198
libstdc++43-4.3.4_20091019-0.7.35
libstdc++43-32bit-4.3.4_20091019-0.7.35
libstdc++43-devel-4.3.4_20091019-0.7.35
libstdc++43-devel-32bit-4.3.4_20091019-0.7.35
linux-udly:~ # rpm -qa | grep make
make-3.81-128.20
linux-udly:~ #
sysstat-8.1.5-7.9.56
(zypper se 包名 也可以查看是否安装 结果中有i的说明已经安装)
以上没有的安装包,都需要进行安装
linux-udly:~ # rpm –ivh xxx
zypper install xxx
普通Linux环境 例如:CentOS
#执行以下命令检查依赖软件的安装情况
rpm -q \
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 \
sysstat \
unixODBC \
unixODBC-devel | grep "not installed"
#如果有未安装的通过yum install -y ${包名} 进行安装
二、 oracle安装
创建oracle安装用户
以root用户登录
执行以下命令创建用户oracle, home目录设置为/home/oralce
useradd -d /home/oracle -g oracle -m oracle
创建oracle数据存储目录
以root用户登录
#执行以下命令创建/oradata目录
cd /;
mkdir oradata
#执行以下命令修改/oradata目录的属主和属组
chown -R oracle:oracle oradata
#查看执行结果
ls -la
drwxr-xr-x 2 oracle oracle 4096 Mar 22 10:26 oradata
解压oracle安装包
获取的oracle安装包上传到oracle用户的home目录下
oracle@POC_infra_A soft]$ pwd
/oracle/soft
[oracle@POC_infra_A soft]$ ls
linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
[oracle@POC_infra_A soft]$
#执行以下命令将安装包解压到/home/oracle目录下,两个zip文件分别解压
unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle
unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle
修改oracle响应安装文件
vi /home/oracle/database/response/db_install.rsp
db_install.rsp响应文件中主要修改的内容:
DECLINE_SECURITY_UPDATES=true
oracle.install.responseFileVersion=/home/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oracle
INVENTORY_LOCATION=/oradata/oraInventory (注:这个不能在ORACLE_BASE下)
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_BASE=/home/oracle
ORACLE_HOME=/home/oracle/product/11.2.0/dbhome_1
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0
oracle.install.db.DBA_GROUP=oracle
oracle.install.db.OPER_GROUP=oracle
运行runInstaller进行软件安装
#以oracle用户登录执行以下命令
database/runInstaller -silent -force -noconfig -ignorePrereq -responseFile /home/oracle/database/response/db_install.rsp
###期间需要大概等待10分钟左右
以root用户执行orainstRoot.sh和root.sh脚本
以root用户登录,执行以下命令
/oradata/oraInventory/orainstRoot.sh
/oracle/product/11.2.0/dbhome_1/root.sh
修改oracle用户的环境变量
以oracle用户登录,cd 到home目录下
执行命令vi .bash_profile
添加内容如下;
export ORACLE_HOSTNAME=XXXX ####主机名主要是网络配置时用到,该主机名一定要在/etc/hosts文件下配置
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export LD_RUN_PATH=$LD_LIBRARY_PATH
export LIBPATH=$LD_LIBRARY_PATH:$LIBPATH
export SHLIB_PATH=$LD_LIBRARY_PATH:$SHLIB_PATH
export ORACLE_SID=orcl #####oracle数据库实例名
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS32GB18030"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
执行命令su - oracle 重新登录是环境变量生效
配置监听listener.ora
以oracle用户登录
cd $ORACLE_HOME/product/11.2.0/dbhome_1/network/admin/samples
#执行以下命令编辑listener.ora
vi listener.ora
添加内容如下
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /home/oracle/product/11.2.0/dbhome_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1521))
)
)
配置tnsnames.ora
以oracle用户登录
cd $ORACLE_HOME/product/11.2.0/dbhome_1/network/admin/samples
#执行以下命令编辑tnsnames.ora
vi tnsnames.ora
添加内容如下
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXXX)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
三、dbca方式创建数据库
编辑dbca配置文件dbca.rsp
以oracle用登录,cd ~//database/response
执行以下命令编辑dbca.rsp配置文件
vi dbca.rsp
需要修改配置项如下:
GDBNAME = "orcl" ###主要是在多个数据库的场景下使用,单个数据库配置为数据库名称即可, 一般情况下与实例名一致
SID = "orcl" ####要创建的数据库的实例名
SYSPASSWORD = "XXXX" ##### 数据库sys用户的密码
SYSTEMPASSWORD = "XXXX" #####数据库system用户的密码
SYSMANPASSWORD = "XXXX" #####数据库sysman用户的密码
DBSNMPPASSWORD = "XXXX" #####数据库dbsnmp用户的秘密
STORAGETYPE=FS ###设置存储格式为FS(文件系统)
NATIONALCHARACTERSET= "UTF8" ###设置编码
LISTENERS = "LISTENER" ###配置改数据库绑定的监听器,要与listener.ora中配置要要一致
DATABASETYPE = "OLTP" ####配置数据库的类型
AUTOMATICMEMORYMANAGEMENT = "TRUE" ####配置数据库内存自动管理
TOTALMEMORY = "800" #####配置数据库的内存大小
执行dbca命令创建数据库
以oracle用户登录,
cd /home/oracle/database/response
dbca -silent -responseFile ./dbca.rsp
修改数据库字符集
connect / as sysdba
shutdown immediate;
startup mount;
alter session set sql_trace=true;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
set linesize 120;
alter database character set UTF8;
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
ALTER DATABASE character set INTERNAL_USE UTF8;
# 使用INTERNAL_USE可以跳过超集的检查,ALTER DATABASE character set INTERNAL_USE
Database altered.
shutdown immediate;
startup;
select userenv('language') from dual;
四、启动监听器
lsnrctl start
执行以下命令验证监听端口
netstat -apn | grep 1521
新建swap分区(一)
1.以root身份进入控制台,输入
swapoff -a #停止交换分区
2.用fdisk命令加swap分区的盘符,(例:# fdisk /dev/sdb)剔除swap分区,输入d删除swap分区,然后再n添加分区(添加时硬盘必须要有可用空间,然后再用t将新添的分区id改为82(linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。
3.mkswap /dev/sdb2
#格式化swap分区,这里的sdb2要看您加完后p命令显示的实际分区设备名
4.swapon /dev/sdb2
#启动新的swap分区
5.为了让系统启动时能自动启用交换分区,可以编辑/etc/fstab,加入下面一行
/dev/sdb2 swap swap defaults 0 0
增加Swap分区(二)
1.创建交换分区的文件:增加1G大小的交换分区,则命令写法如下,其中的 count 等于想要的块大小。
dd if=/dev/zero of=/home/swapfile bs=1M count=1024
2.设置交换分区文件:
mkswap /home/swapfile
#建立swap的文件系统
3.立即启用交换分区文件:
swapon /home/swapfile
#启用swap文件
4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/home/swapfile swap swap defaults 0 0