暂无图片
暂无图片
9
暂无图片
暂无图片
暂无图片

Oracle数据库删除与静默安装

原创 三石 2021-08-31
2121

一,卸载数据库
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=SGA
0.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

最后修改时间:2022-03-29 15:17:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论