CentOS7.8 Oracle19.3安装部署
1.hosts配置
cat >> /etc/hosts <<EOF
10.128.xx.xx S sjzdb
EOF
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭selinux
sed -i ‘s@SELINUX=enforcing@SELINUX=disabled@g’ /etc/selinux/config
2./etc/sysctl.conf配置
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 17179869183
kernel.shmmni = 4096
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 = 1048576
EOF
3./etc/security/limits.conf
cat >> /etc/security/limits.conf << EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 3145728
EOF
参数设置计算:
kernel.shmmax = 当前内存GB * 1024 * 1024 * 1024 * 0.9
注:当前内存推荐至少4GB
kernel.shmall = kernel.shmmax / kernel.shmmni
详细解释:
shmall 是全部允许使用的共享内存大小
shmmax 是单个段允许使用的大小
这两个可以设置为内存的 90%
例如 16G 内存,1610241024102490% = 15461882265
shmall 的大小为 15461882265/4k(getconf PAGESIZE可得到) = 3774873
#修改后执行
sysctl -p
4./etc/pam.d/login配置
echo “session required pam_limits.so” >> /etc/pam.d/login
5.安装依赖包
rpm --query --queryformat “%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n” bc binutils compat-libcap1 compat-libstdc+±33 gcc gcc-c++ glibc gli
bc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc+±devel make sysstat elfutils-libelf elfutils-libelf-devel fontconfig-devel libxcb smar
tmontools libX11 libXau libXtst libXrender libXrender-devel
yum install -y bc
yum install -y compat-libcap1
yum install -y compat-libstdc++33
yum install -y elfutils-libelf-devel
yum install -y fontconfig-devel
yum install -y ksh
yum install -y libaio-devel
yum install -y libX11
yum install -y libXau
yum install -y libXi
yum install -y libXtst
yum install -y libXrender
yum install -y libXrender-devel
yum install -y libstdc+±devel
yum install -y libxcb
yum install -y smartmontools
yum install -y unixODBC
yum install -y sysstat
yum install -y smartmontools
yum install -y compat-libstdc+±33
6.创建账号
groupadd oinstall
groupadd dba
groupadd asmdba
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
groupadd oper
useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
echo “oracle” | passwd --stdin oracle
7.创建目录
mkdir -p /OSdata/app/oracle
mkdir -p /OSdata/app/oraInventory
mkdir -p /OSdata/app/oracle/product/19.0.0/dbhome_1/
chown -R oracle:oinstall /OSdata
chmod -R 775 /OSdata
8.设置oracle环境变量
export ORACLE_BASE=/OSdata/app/oracle
export ORACLE_SID=sjzt
export ORACLE_HOME=
O
R
A
C
L
E
B
A
S
E
/
p
r
o
d
u
c
t
/
19.0.0
/
d
b
h
o
m
e
1
e
x
p
o
r
t
T
N
S
A
D
M
I
N
=
ORACLE_BASE/product/19.0.0/dbhome_1 export TNS_ADMIN=
ORACLEBASE/product/19.0.0/dbhome1exportTNSADMIN=ORACLE_HOME/network/admin
export PATH=
P
A
T
H
:
PATH:
PATH:HOME/.local/bin:
H
O
M
E
/
b
i
n
:
HOME/bin:
HOME/bin:ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
9.编辑静默安装文件
编辑响应文件
$ cat db_install.rsp|grep -Ev “#|$”
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/OSdata/app/oraInventory
ORACLE_HOME=/OSdata/app/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/OSdata/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=true
oracle.install.db.rootconfig.configMethod=ROOT
oracle.install.db.rootconfig.sudoPath=
oracle.install.db.rootconfig.sudoUserName=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.ConfigureAsContainerDB=false
oracle.install.db.config.PDBName=
执行安装
./runInstaller -executePrereqs -silent -responseFile /OSdata/app/oracle/product/19.0.0/dbhome_1/install/db_install.rsp
10.静默安装监听
编辑响应文件
$ cat /OSdata/app/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp |grep -Ev “#|$”
[GENERAL]
RESPONSEFILE_VERSION=“19.0”
CREATE_TYPE=“CUSTOM”
[oracle.net.ca]
INSTALLED_COMPONENTS={“server”,“net8”,“javavm”}
INSTALL_TYPE=““typical””
LISTENER_NUMBER=1
LISTENER_NAMES={“LISTENER”}
LISTENER_PROTOCOLS={“TCP;1521”}
LISTENER_START=““LISTENER””
NAMING_METHODS={“TNSNAMES”,“ONAMES”,“HOSTNAME”}
NSN_NUMBER=1
NSN_NAMES={“EXTPROC_CONNECTION_DATA”}
NSN_SERVICE={“PLSExtProc”}
NSN_PROTOCOLS={“TCP;HOSTNAME;1521”}
执行安装
$ORACLE_HOME/bin/netca -silent -responsefile /OSdata/app/oracle/product/19.0.0/dbhome_1/assistants/netca/netca.rsp
11.静默安装数据库
编辑响应文件
$ cat /OSdata/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp |grep -Ev “#|$”
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=sjzt
sid=sjzt
databaseConfigType=
RACOneNodeServiceName=
policyManaged=
createServerPool=
serverPoolName=
cardinality=
force=
pqPoolName=
pqCardinality=
createAsContainerDatabase=TRUE
numberOfPDBs=1
pdbName=orms
useLocalUndoForPDBs=true
pdbAdminPassword=Sjztdb2023
nodelist=
templateName=/OSdata/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
sysPassword=Sjztdb2023
systemPassword=Sjztdb2023
oracleHomeUserPassword=
emConfiguration=NONE
emExpressPort=5500
runCVUChecks=
dbsnmpPassword=
omsHost=
omsPort=
emUser=
emPassword=
dvConfiguration=
dvUserName=
dvUserPassword=
dvAccountManagerName=
dvAccountManagerPassword=
olsConfiguration=
datafileJarLocation=
datafileDestination=/OSdata/app/oracle/oradata
recoveryAreaDestination=/OSdata/app/oracle/flash_recovery_area
storageType=FS
diskGroupName=
asmsnmpPassword=
recoveryGroupName=
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
registerWithDirService=
dirServiceUserName=
dirServicePassword=
walletPassword=
listeners=LISTENER
variablesFile=
variables=
initParams=
sampleSchema=
memoryPercentage=40
databaseType=
automaticMemoryManagement=
totalMemory=
执行安装
dbca -silent -createDatabase -responseFile /OSdata/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp
安装PDB
create pluggable database test admin user sjztadmin identified by sjztadmin file_name_convert=(‘pdbseed’,‘test’);
alter pluggable database test open;
alter pluggable database test save state;
备注:删除数据库重新安装
dbca -silent -deleteDatabase -sourcedb dbname -sid dbname -sysDBAUserName sys -sysDBAPassword pwd
12.配置TNS访问连接串
test =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.128.103.77)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
cat >> $ORACLE_HOME/network/admin/sqlnet.ora << EOF
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
EOF
13. 开启归档模式
ALTER SYSTEM SET db_recovery_file_dest_size=100G scope=both;
shutdown immediate;
startup mount;
archive log list;
show pdbs;
alter session set container=fims;
archive log list;
alter session set container=cdb$root;
alter database archivelog;
archive log list;
alter database open;
编辑归档清理脚本
定时删除归档日志
#!/bin/sh
export DATE=date +%F
export ORACLE_BASE=/OSdata/app/oracle
export ORACLE_HOME=/OSdata/app/oracle/product/19.0.0/dbhome_1
export PATH=
O
R
A
C
L
E
H
O
M
E
/
b
i
n
:
ORACLE_HOME/bin:
ORACLEHOME/bin:ORACLE_HOME/OPatch:
P
A
T
H
e
x
p
o
r
t
L
I
B
P
A
T
H
=
PATH export LIBPATH=
PATHexportLIBPATH=LIBPATH:$ORACLE_HOME/lib
export ORACLE_SID=sjzt
touch /home/oracle/scripts/logs/clear_arch_$DATE.log
rman log=/home/oracle/scripts/logs/clear_arch_$DATE.log target / <<EOF
delete noprompt archivelog until time ‘sysdate-30’;
#检查归档
crosscheck archivelog all;
#删除无效归档
delete noprompt expired archivelog all;
exit;
EOF
find /home/oracle/scripts/logs -mtime +30 -name “clear*.log” |xargs rm -f
echo " " >> /home/oracle/scripts/logs/clear_arch_ D A T E . l o g e c h o ‘ d a t e ′ + DATE.log echo `date '+%Y-%m-%d %H:%M:%S'` >> /home/oracle/scripts/logs/clear_arch_ DATE.logecho‘date′+DATE.log
设置定时任务
10 1 * * * /bin/sh /home/oracle/scripts/clear_arch.sh
14.修改字符集
alter pluggable database test close immediate;
alter pluggable database test open read write restricted;
show pdbs;
select userenv(‘language’) from dual;
– in container test
alter session set container=test;
select userenv(‘language’) from dual;
alter database character set internal_use ZHS16GBK;
alter pluggable database test close immediate;
alter pluggable database test open;
show pdbs;
select userenv(‘language’) from dual;
15.修改用户有效期
创建数据库修改密码过期时间
col username for a10
col profile for a30
set pages 200
SELECT username,PROFILE FROM dba_users;
SELECT * FROM dba_profiles s WHERE s.profile=‘DEFAULT’;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_GRACE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_LOCK_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;