一,卸载数据库
1、登录数据库并停止
su - oracle
sqlplus / as sysdba
shutdown immediate
exit
2、停止监听
Lsnrctl stop
3、切换到Root用户并删除以下目录
rm -f /usr/local/bin/dbhome
rm -f /usr/local/bin/oraenv
rm -f /usr/local/bin/coraenv
rm -f /etc/oratab
rm -f /etc/oratab
rm -f /etc/oraInst.loc
rm -rf /u01/app/oraInventory
4、删除Oracle用户和用户删除
userdel -r oracle
groupdel oinstall
groupdel dba
==============================================================================================
二、安装Oracle单机数据库,操作系统是Redhat6.8
1、创建ISO存放目录以及挂载目录
mkdir /mnt/iso /mnt/cdrom
2、上传ISO镜像至/mnt/iso
3、挂载ISO镜像到挂载目录
mount -o loop /mnt/iso/*.iso /mnt/cdrom
4、检查挂载是否成功
df -h
5、备份/etc/yum.conf文件
cp /etc/yum.conf /etc/yum.conf.abk
6、检查挂载
df -Th
7、编写信息
vim /etc/yum.conf
[redhat6.8]
name=local
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
8、测试yum安装
yum clean all
如果出现如下信息则安装成功
Cleaning repos: redhat6.5 rhel-source
Cleaning up Everything
2.安装先决条件所需要的软件
yum install -y package compat-libcap1
yum install -y package compat-libstdc++-33
yum install -y package gcc
yum install -y package gcc-c++
yum install -y glibc-2.12-1.132.el6
yum install -y glibc-devel-2.12-1.132.el6
yum install -y libgcc-4.4.7-4.el6
yum install -y libstdc++-4.4.7-4.el6
yum install -y package libstdc++-devel
yum install -y libaio-0.3.107-10.el6
yum install -y package libaio-devel
yum install -y make-3.81-20.el6
yum install -y sysstat-9.0.4-22.el6
可以用这个命令去检测是否全都安装(如图)
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libgcc \
libstdc++ \
libstdc++-devel \
libaio \
libaio-devel \
make \
sysstat
3.关闭防火墙
关闭防火墙:service iptables stop
打开防火墙:service iptables status
永久关闭 chkconfig iptables off
查看状态:chkconfig --list iptables
vim /etc/selinux/config
SELINUX=disabled
4.修改内核
##单个共享内存段的最大值
##shmmax是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,shmmax设置应足够大,能在一个共享内存段下容纳下整个的SGA,设置的过低可能会导致需要创建多个共享内存段,可能导致系统性能的下降 。
kernel.shmmax == 62*1024*1024*1024*70% = 46600395160(一般来说我会换算成能被偶数整除的)
##共享内存页数的最大值
##Linux共享内存页大小为4KB, 共享内存段的大小都是共享内存页大小的整数倍。
kernel.shmall ==46600395160/4096 =11377048
vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 5505024
kernel.shmmax = 22548578304
kernel.shmmni = 4096
kernel.sem = 250 32000 100128
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 = 1048576
以上内容修改保存退出后 执行下面的语句、
sysctl -p
vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
vim /etc/pam.d/login
session required pam_limits.so
5.创建用户oracle 和dba组
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
passwd oracle
6.创建安装目录
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oraInventory
7.修改ORACLE用户的环境变量
su - oracle
vim ~/.bash_profile
export TMP=/tmp
export TEMP=/tmp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='yyyymmdd hh24:mi:ss'
令环境变量生效
source ~/.bash_profile
8.解压软件开始安装
==================================================================================
编辑应答文件db_install.rsp
先CP一份做备份
cp db_install.rsp db_install.rsp.bak
vim /tmp/database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=orcl
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory/
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,oracle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=ddd@oracle.com
MYORACLESUPPORT_PASSWORD=oracle
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=
============================================================================================================================================================================================================
运行静默安装脚本
su - oracle
cd /tmp/database
./runInstaller -silent -noconfig -ignorePrereq -responseFile /tmp/database/response/db_install.rsp
按照提示操作
打开新的窗口使用root身份执行以下脚本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2/db_1/root.sh
执行完回车即可
运行监听安装脚本
netca /silent /responsefile /tmp/database/response/netca.rsp
运行成功后,在/u01/app/oracle/product/11.2/db_1/network/admin/目录下会生成 listener.ora 和 sqlnet.ora
ls -lrt /u01/app/oracle/product/11.2/db_1/network/admin/
listener.ora samples shrept.lst sqlnet.ora tnsnames.ora
[root@dg admin]# netstat -tlnp | grep 1521
tcp 0 0 :::1521 :::* LISTEN 9538/tnslsnr
如果监听没有启动,则手动启动监听器
lsnrctl status
lsnrctl start
==================================================================================================
配置ORACLE数据库
vim /tmp/database/response/dbca.rsp
Shift + :
set number 回车就可以显示行数,有个问题就是静默安装好像无法指定字符集为 SIMPLIFIED CHINESE_CHINA
GDBNAME = "orcl" //78行 全局数据库的名字=sid+主机域名
SID = "orcl" //170 SID
SYSPASSWORD = "Oracle12#" //211 密码
SYSTEMPASSWORD = "Oracle12#" //221 system密码
CHARACTERSET = "ZHS16GBK" //418 编码
NATIONALCHARACTERSET= "AL16UTF16" //428 编码
创建Oracle数据库
dbca -silent -responseFile /tmp/database/response/dbca.rsp
==================================================================================================
启动数据库可能遇到的问题
su - oracle
sqlplus / as sysdba
SQL> startup
ORA-01102: cannot mount database in EXCLUSIVE mode
su - oracle
cd /tmp/database
ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
0xbcf2a624 491520 oracle 640 154
0x50f506b0 884737 oracle 640 154
$ ipcrm -s 491520
$ ipcrm -s 884737
$ ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
$ ipcs -s
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file ‘/u01/app/oracle/product/11.2/db_1/dbs/initorcl.ora’
启动时会出现以上报错,根据报错寻找路径,
locate init.ora
/u01/app/oracle/admin/orcl11g/pfile/init.ora.11102020182035
/u01/app/oracle/product/11.2/db_1/dbs/init.ora
/u01/app/oracle/product/11.2/db_1/srvm/admin/init.ora
cd /u01/app/oracle/admin/orcl11g/pfile/
cp init.ora.11102020182035 /u01/app/oracle/product/11.2/db_1/dbs/
cd /u01/app/oracle/product/11.2/db_1/dbs/
mv init.ora.11102020182035 initorcl.ora
=================================================================================================
2、数据库自启动(最后的 N 改成 Y)
cd /u01/app/oracle/product/11.2/db_1/bin
ls -lrt | grep dbs
编辑 dbstart,将ORACLE_HOME_LISTNER=$1修改成 ORACLE_HOME_LISTNER=$ORACLE_HOME 前提是$ORACLE_HOME环境设置正确
vim dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME
vim dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME
vim /etc/oratab
orcl:/home/oracle/app/oracle/product/12.2.0/dbhome_1:Y
root用户编辑
vim /etc/rc.d/rc.local
su oracle -lc “/u01/app/oracle/product/11.2/db_1/bin/lsnrctl start”
su oracle -lc “/u01/app/oracle/product/11.2/db_1/bin/dbstart”
确认执行权限
在Oracle用户下尝试执行
dbstart 和 dbshut
执行无误后,重启服务器查看时候能够Oracle自启动
reboot
=================================================================================================
数据库参数修改
查询数据库参数文件所在位置
sqlplus / as sysdba
set pages 999 lines 999
col NAME for a30
col VALUE for a60
select name,value,ISSYS_MODIFIABLE from v$parameter where name = ‘spfile’;
备份参数文件以防数据库重启无法启动
create pfile=’/tmp/ora_20200823.ora’ from spfile;
查询关键参数
SGA=(内存)0.70.8 = 32G
PGA=(内存)0.70.2 =8G
DB_CACHE_SIZE=SGA0.5 =16G
SHARED_POOL_SIZE=SGA0.25 =8G
RECYCLEBIN=OFF
col NAME for a50
select name,round(value/1024/1024,0),issys_modifiable from v$parameter where name in (‘memory_target’,‘memory_max_target’,‘sga_max_size’,‘sga_target’,‘shared_pool_size’,‘pga_aggregate_target’,‘db_cache_size’,‘log_buffer’) order by name;
col VALUE for a50
select name,value,issys_modifiable from v$parameter where name in (‘audit_trail’,‘processes’,‘undo_retention’,‘open_cursors’,‘session_cached_cursors’);
#精确计算
alter system set sga_max_size=32G scope=spfile;
alter system set sga_target=32G scope=spfile;
alter system set pga_aggregate_target=8G scope=spfile;
alter system set db_cache_size=16G scope=spfile;
alter system set shared_pool_size=8G scope=spfile;
alter system set processes=3500 scope=spfile;
alter system set undo_retention=1800 scope=spfile;
exec dbms_workload_repository.modify_snapshot_settings(interval => 30,retention => 8*1440);
alter system set audit_trail=none scope=spfile;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
#预估
alter system set session_cached_cursors=150 scope=spfile;
alter system set open_cursors=1000 scope=spfile;
alter system set log_buffer=209715200 scope=spfile;
alter system set large_pool_size=512M scope=spfile;
重启数据库生效
字符集不对怎么办(看墨天伦的答案说,数据库静默安装无法选择CHINESE_CHINA,只能图形化安装或者后续自己改)
第一步:启动sqlplus
sqlplus / as sysdba
shutdown immediate;
startup mount;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
alter database open;
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET AL32UTF8
*
第 1 行出现错误:
ORA-12712: 新字符集必须为旧字符集的超集
#INTERNAL_USE 为强制更改
ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
shutdown immediate;
startup
select userenv(‘language’) from dual;
USERENV(‘LANGUAGE’)
SIMPLIFIED CHINESE_CHINA.AL32UTF8




