摘要
linux 无桌面环境下,静默安装oracle 19c。
1、安装前准备工作
1.1关闭防火墙
systemctl
stop firewalld
systemctl
disable firewalld
1.2禁用selinux
执行vim/etc/selinux/config修改编辑config文件,将SELINUX设置成disabled,如下所示
1.3安装依赖包
yum install
-y \
bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
fontconfig-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
make \
smartmontools \
sysstat
yum install
-y \
net-tools \
gcc \
gcc-c++ \
gcc-info \
gcc-locale \
gcc48 \
gcc48-info \
gcc48-locale \
gcc48-c++
1.4创建用户组 和 用户
groupadd
-g 54321 oinstall
groupadd
-g 54322 dba
groupadd
-g 54323 oper
groupadd
-g 54324 backupdba
groupadd
-g 54325 dgdba
groupadd
-g 54326 kmdba
groupadd
-g 54330 racdba
useradd
-u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle
设置密码
passwd oracle
输入你的密码
1.5为oracle database 19c 创建目录
mkdir -p
/u01/app/oracle/product/19.3.0/dbhome_1
mkdir -p
/u01/oradata
chown -R oracle:oinstall /u01/
chmod -R 775 /u01/
1.6为 Oracle 用户配置 Linux 环境变量
执行su - oracle切换到oracle用户下,然后执行vim ~/.bash_profile命令设置环境变量
将下面内容复制到文件
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=centos7 #系统的hostname
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/u01/app/oracle
export
ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcl #搭建dataguard时 主库为orcl,备库为orcldg
export PDB_NAME=orclpdb1 #一般命名为 orclpdb1
export DATA_DIR=/u01/oradata
export PATH=$ORACLE_HOME/bin:$PATH
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
编辑完成后,执行source ~/.bash_profile,使oracle用户环境变量生效。
2、安装数据库软件
2.1 上传安装文件
上传19c 安装文件到 /usr/local/src目录下,并执行一下命令解压文件至安装目录
unzip LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
2.2 开始安装
su - oracle # 切换到oralce用户下,
cd $ORACLE_HOME # 切换到安装目录
然后执行如下命令:
./runInstaller
-ignorePrereq -waitforcompletion -silent \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=${ORA_INVENTORY} \
ORACLE_HOME=${ORACLE_HOME} \
ORACLE_BASE=${ORACLE_BASE} \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
\
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=racdba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
注意:有时候提示 permission denied,可以切换到root用户执行
chown -R oracle:oinstall /u01/
chmod -R 775 /u01/
如下图,表示数据库安装成功
然后切换到root用户下,执行如下两条命令
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.3.0/dbhome_1/root.sh
3、配置监听
su
- oracle #切换到oracle用户
使用以下命令启动监听:
lsnrctl start # 启动oracle数据库监听
lsnrctl status # 查看oracle数据库监听状态
lsnrctlstop # 停用oracle数据库监听
注意:搭建DataGuard环境时,备库一搬安装到上述步骤即可,主库需要继续下面的步骤创建数据库
4、创建数据库
执行以下命令创建数据库:
dbca -silent-createDatabase \
-templateName General_Purpose.dbc \
-gdbname ${ORACLE_SID} -sid ${ORACLE_SID} \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword 123456 \ # 改为你的密码
-systemPassword 123456 \
-createAsContainerDatabase true \ #改为你的密码
-numberOfPDBs 1 \
-pdbName ${PDB_NAME} \
-pdbAdminPassword 123456 \ # 改为你的密码
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 800 \
-storageType FS \
-datafileDestination "${DATA_DIR}"\
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
5、查看是否创建成功
sqlplus / as sysdba
使用 show parameter;或者 select table_name from dba_tables 看看是否正常
6、创建用户和表空间
****在 pdb 下操作***
# 查看数据库所有表空间(cdb和pdb显示的不同)
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
# 查看表空间中数据文件位置
select name from v$datafile
6.1创建用户表空间
# 用户表空间
create tablespace rzdp_data
datafile '/u01/oradata/ORCL/orclpdb1/rzdp_data_01.dbf'
size 50m autoextendon next 50m maxsize unlimitedextent management local;
# 临时表空间
create temporary tablespacer zdp_data_temp
tempfile '/u01/oradata/ORCL/orclpdb1/rzdp_data_temp_01.dbf'
size 50m autoextendon next 50m maxsize 20480m extentmanagement local;
6.2 增加数据文件个数
alter tablespace rzdp_data
add datafile'/u01/oradata/ORCL/rzdp_data_02.dbf'
size 32212254720;
6.3设置表空间自动扩展
alter database datafile'/u01/oradata/ORCL/rzdp_data_02.dbf'
autoextend on next 500 maxsize unlimited;
6.4 创建用户并指定表空间
# 创建用户
create user rzdp identified by rzdp2022
default tablespace rzdp_data temporary tablespace rzdp_data_temp;
# 授权
grant connect, resource, dba to rzdp;
7、其他
7.1 plsql客户端 tnsnames.ora配置
db_orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.112.50.180)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orclpdb1) # 这里配置orclpdb1(pdb数据库的名称),而不是orcl
)
)
7.2 sqlnet.ora配置
$ORACLE_HOME/network/admin/sqlnet.ora 文件配置如下:
NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES, HOSTNAME)
SQLNET.AUTHENTICATION_SERVICES=(TCPS,ALL)
SSL_CLIENT_AUTHENTICATION= FALSE
SSL_CIPHER_SUITES=(SSL_RSA_WITH_AES_128_CBC_SHA, SSL_DH_anon_WITH_3DES_EDE_CBC_SHA)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 # 支持低版本客户端
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.INBOUND_CONNECT_TIMEOUT= 180
SQLNET.EXPIRE_TIME =10
DIAG_ADR_ENABLED = OFF
7.3CDB PDB说明
Oracle 12C 提出了多租户环境(MultitenantEnvironment)和容器(Container)的概念, 区分了两个层级:
CDB , Container Database, 数据库容器
PDB, Pluggable Database, 可插拔数据库
在数据库中建立的用户对应以上两个层级:
COMMOM USERS , 普通用户, 一般建立在CDB层, 用户名需要以 C#或C##开头;
create user C##rzdp identified byrzdp2022;
grant connect,resource,dba toC##rzdp;
LOCAL USERS , 本地用户, 仅建立在PBD层,建立的时候与之前的版本一样
create user rzdp identified byrzdp2022;
grant connect,resource,dba to rzdp;
CDB相当于操作系统,调用并管理各个PDB。PDB相当于真正提供业务需求的数据库实例。
查看当前连接的容器:show con_name;
2查看当前cdb容器中包含的pdb库信息,见上图,当前有一个pdb,即pdb1。名称在创建库的时候指定(首先在创建环境变量的时候即指定了(bash_profile文件),只不过在创建库的时候做了引用)
select name, open_mode fromv$pdbs;
READWRITE 表示开启,如果未开启,需要手动开启:
打开某个pdb
alter pluggable database PDB1 open;
关闭某个pdb
alter pluggable database PDB1 close immediate;
#查看自己在哪个pdb里
show pdbs;
切换当前会话到某个pdb下,如PDB1下,并查看当前连接
alter session set container=pdb1;
show con_name;
将连接修改到cdb下
alter session set container=cdb$root;