centos7静默安装oracle11g
#关闭防火墙
systemctl stop firewalld
systemctl status firewalld
systemctl disable firewalld
#关闭SElinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0
#配置交换分区
#关闭交互分区
swapoff -a
#创建一个交换区文件
dd if=/dev/zero of=/u01/swapfile bs=1024 count=4096000
#将目的文件设置为swap分区文件
mkswap swapfile
#激活swap,立即启用交换分区文件
swapon swapfile
#把交换区记录到系统里边
echo "/u01/swapfile swap swap defaults 0 0" >> /etc/fstab
#查看交互分区大小
swapon
#查看uuid
blkid
#进行配置/etc/fstab,配置uuid
vim /etc/fstab
#添加挂载----
UUID="你的uuid" /u01 ext4 defaults 0 0
#设置主机名
hostnamectl set-hostname 你的主机名
#yum安装
yum -y install unzip vim* bash-completion bash-completion-extras nmap tree dos2unix nc wget lsof tcpdump lrzsz telnet screen 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 pdksh sysstat unixODBC unixODBC-devel wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
#添加oracle用户组和用户
groupadd oinstall
groupadd dba
groupadd asmadmin
groupadd asmdba
useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
#设置密码
passwd oracle
#优化OS内核参数
vim /etc/sysctl.conf fs.aio-max-nr=1048576 fs.file-max=6815744 kernel.shmall=2097152 kernel.shmmni=4096 kernel.shmmax = 536870912 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
#生效
sysctl -p
#限制oracle用户的shell权限
vim /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 10240 oracle soft core unlimited oracle hard core unlimited
#创建目录
mkdir -p /u01/app/oracle/product/11.2.0 mkdir /u01/app/oracle/oradata mkdir /u01/app/oracle/oraInventory mkdir /u01/app/oracle/fast_recovery_area chown -R oracle:oinstall /u01/app/oracle chmod -R 775 /u01/app/oracle
#创建oraInst.loc
vim /etc/oraInst.loc
inventory_loc=/u01/app/oracle/oraInventory inst_group=oinstall
#授权
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc
#设置环境变量 切换到oracle用户下面,修改 .bash_profile
su - oracle vim .bash_profile unset TNS_ADMIN export ORACLE_HOSTNAME=oracle export ORACLE_BASE=/u01/app/oracle export ORACLE_SID=ORCL export LC_ALL="en_US" export LANG="en_US" export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK" export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" source /home/oracle/.bash_profile env
#解压软件
su - oracle cd /home/oracle/ unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
#设置所属主和组
su - root cd /home/oracle/ chown -R oracle:oinstall database chmod -R +x database su - root mkdir /home/oracle/etc/ cp /home/oracle/database/response/* /home/oracle/etc/ chmod 777 /home/oracle/etc/*.rsp su – oracle vim /home/oracle/etc/db_install.rsp
#这里是选择安装类型:1.只装数据库软件INSTALL_DB_SWONLY 2.安装数据库软件并建库INSTALL_DB_AND_CONFIG 3.升级数据库UPGRADE_DB
oracle.install.option=INSTALL_DB_SWONLY
#这里是指定主机的HOSTNAME
ORACLE_HOSTNAME=你的主机名
#指定oracle inventory目录的所有者,通常会是oinstall或者dba
UNIX_GROUP_NAME=oinstall
#指定oracle inventory目录的路径,如果是Win平台下可以省略
INVENTORY_LOCATION=/u01/app/oracle/oraInventory
#指定添加的语言,可以选择多个,用逗号隔开。大多数库会选择,en, zh_CN即英文和简体中文。
SELECTED_LANGUAGES=en,zh_CN
#设置ORALCE_HOME的路径
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
#设置ORACLE_BASE的路径
ORACLE_BASE=/u01/app/oracle
#选择Oracle数据库软件的版本,正如Win 7有标准版,高级版、专业版、旗舰版之分,不同的版本功能上会有不同。Oralce数据库软件在这里也可以指定安装的版本,通常来说,实验环境我们都选择Enterprise Edition即企业版
oracle.install.db.InstallEdition=EE
#这里是是否自定义Oracle的组件,如果选择false,则会使用默认的组件,否则需要自己在下面一条参数将要安装的组件一一列出。通常来说只要客户购买了相应版权,我们会安装所有的组件,因为后期如果缺乏某个组件,要再次安装会非常的麻烦。
oracle.install.db.isCustomInstall=true
#指定DBA组,通常是dba
oracle.install.db.DBA_GROUP=dba
#指定OPER组,通常是oinstall
oracle.install.db.OPER_GROUP=oinstall
#这里选择数据库的用途,一般用途/事物处理(GENERAL_PURPOSE/TRANSACTION_PROCESSING),数据仓库(DATA_WAREHOUSE)
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#指定Global Name
oracle.install.db.config.starterdb.globalDBName=orcl
#指定SID
oracle.install.db.config.starterdb.SID=orcl
#非常关键的一步,选择字符集。错误的字符集会给后期带来无尽的麻烦,所以一定要确认好字符集。通常我们选择的是ZHS16GBK, 所谓的国标16位简体中文库
oracle.install.db.config.starterdb.characterSet=AL32UTF8
#指定Oracle自动管理内存的大小,最小是256MB
oracle.install.db.config.starterdb.memoryLimit=512
#所有schemas使用同一个密码
oracle.install.db.config.starterdb.password.ALL=oracle
#是否设置安全更新
DECLINE_SECURITY_UPDATES=true
#开始安装
su - oracle cd /home/oracle/database ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
#Successfully Setup Software出现这个表示安装成功
#查看日志 需要耐性等待时间 有的时候回很慢
tail -f /u01/app/oracle/oraInventory/logs/xxx.log
#使用root用户执行脚本
/u01/app/oracle/product/11.2.0/db_1/root.sh
#修改oracle的环境变量
su - oracle vim ~/.bash_profile export ORACLE_SID=你的主机名或者应用名 export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib export ORACLE_OWNER=oracle export SPFILE_PATH=$ORACLE_HOME/dbs export ORA_NLS10=$ORACLE_HOME/nls/data source /home/oracle/.bash_profile
#配置监听程序
vim /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora (ADDRESS = (PROTOCOL = TCP)(HOST = 你的主机名或者IP)(PORT = 你启动的端口)) vim /home/oracle/etc/netca.rsp 修改LISTENER_PROTOCOLS={"TCP;你启动的端口"}
#安装监听
/u01/app/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /home/oracle/etc/netca.rsp #Listener Control complete &Listener started successfully 出现这个表示成功
#查看日志
tail -f /u01/app/oracle/cfgtoollogs/netca/xxx.log
#启动监控程序
su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start
#查看监听程序
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status
#静默dbca建库 在root下编辑
su - root
#编辑应答文件
vim /home/oracle/etc/dbca.rsp SID="你的主机名或者应用名" SYSPASSWORD = "你的密码" SYSTEMPASSWORD = "你的密码" CHARACTERSET="AL32UTF8" NATIONALCHARACTERSET="UTF8"
#建库 在orcale用户下执行
su - oracle
#需要查看下dbca.rsp里面的sid要和环境变量里面的保持一致
/u01/app/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
#查看日志
tail -f /u01/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log cp /u01/app/oracle/admin/orcl11g/pfile/init.ora.724202053030 /u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/dbs/initorcl11g.ora
#设置Oracle开机启动
vim /etc/oratab mydb:/u01/app/oracle/product/11.2.0:Y # //把“N”改成“Y”
# 通过dbstart 启动此实例,监听器
su - oracle
/u01/app/oracle/product/11.2.0/db_1/bin/dbstart $ORACLE_HOME;
# oracle的进程关闭,监听器也停止;
/u01/app/oracle/product/11.2.0/db_1/bin/dbshut $ORACLE_HOME;
# 启动监听
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start;
#查看监听
/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl status;
#登录Oracle
/u01/app/oracle/product/11.2.0/db_1/bin/sqlplus /nolog
# 进入系统管理用户
SQL> conn / as sysdba
Connected to an idle instance.
# 启动oracle实例
SQL> startup;
#查看数据库版本
SQL> SELECT * FROM V$VERSION;
#查看实例状态
SQL> select status from v$instance;
#查看数据库编码
SQL> select userenv('language') from dual;
#创建用户
SQL> create user 你的用户名 identified by 密码;
#授权dba
SQL> grant dba to 你的用户名;
#授权用户
alter user 你的用户名 default tablespace users;
SQL> disc
#查看用户
SQL> col username for a20 SQL> select username from dba_users;
#修改默认密码
alter user system identified by 密码;
alter user sys identified by 密码;
#查看oracle实例进程
ps -ef | grep ora_ | grep -v grep
#配置启动脚本
vim /etc/init.d/oracle #!/bin/bash # oracle: Start/Stop Oracle Database 11g R2 # chkconfig: 345 90 10 # description: The Oracle Database is an Object-Relational Database Management System. # . /etc/rc.d/init.d/functions LOCKFILE=/var/lock/subsys/oracle
#下面的路径写成你自己的 ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 ORACLE_USER=oracle case "$1" in 'start') if [ -f $LOCKFILE ]; then echo $0 already running. exit 1 fi echo -n $"Starting Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" touch $LOCKFILE ;; 'stop') if [ ! -f $LOCKFILE ]; then echo $0 already stopping. exit 1 fi echo -n $"Stopping Oracle Database:" su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop" su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut" rm -f $LOCKFILE ;; 'restart') $0 stop $0 start ;; 'status') if [ -f $LOCKFILE ]; then echo $0 started. else echo $0 stopped. fi ;; *) echo "Usage: $0 [start|stop|status]" exit 1 esac exit 0
#配置开机启动
1.
chmod 755 /etc/init.d/oracle chkconfig oracle on service oracle (start stop status)
或者
2.
vim /etc/rc.d/rc.local su oracle -lc "/u01/app/oracle/product/11.2.0/bin/lsnrctl start" su oracle -lc /u01/app/oracle/product/11.2.0/bin/dbstart
vim /etc/oratabmydb:/u01/app/oracle/product/11.2.0:Y # //把“N”改成“Y”
swapon swapfile