1.前置准备
1.root 账号密码 【root/root】
2.上传oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm【官网下载和oracle版本对应上】
3.LINUX.X64_193000_db_home.zip oracle安装包
4.上传compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm【其他的依赖可以用 yum 命令安装】
5.环境中已搭建yum服务
2.预安装验证
#root账户安装ocompat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
#root账户安装oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
这个操作是预装oracle操作,自动进行验证rpm的依赖,创建oracle账户和相关的权限组,修改操作系统的内核参数。
(1)自动安装oracle所需的RPM包
(2)自动创建oracle用户和dba、oinstall组
(3)自动配置/etc/sysctl.conf内核参数
(4)自动配置/etc/security/limits.conf参数
(5)关闭NUMA=OFF (关闭非一致内存访问)
3.创建oracle存储目录
# root用户创建目录,路径以实际为准【空间容量一定要够用】
mkdir -p /DBSoft/oraInventory
mkdir -p /DBSoft/oracle/product/19.3/dbhome_1
# root用户授权
chown -R oracle:oinstall /DBSoft
chmod -R 775 /DBSoft
4.root设置oracle账户的环境变量和系统环境变量
# root用户配置oracle用户环境变量
cat >> /home/oracle/.bash_profile <<EOF
export TMP=/tmp
export TMPDIR=\$TMP
export EDIT=vi
alias vi=vim
export ORACLE_HOSTNAME=TESTDB
export ORACLE_UNQNAME=DB01
export ORACLE_BASE=/DBSoft/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.3/dbhome_1
export ORACLE_SID=DB01
export ORACLE_TERM=xterm
export PATH=/usr/sbin:\$PATH
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 AL32UTF16
umask 022
EOF
#刷新环境变量
source /home/oracle/.bash_profile
#配置系统环境变量
cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
#刷新系统环境变量
source /etc/profile
**PS**
获取hostname后写入export ORACLE_HOSTNAME=查询到的值
5.安装数据库
5.1 解压数据库软件 oralce账户操作
【先 source .bash_profile 刷新环境变量】
#解压缩
unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
#查看解压后的状态
du -sh $ORACLE_HOME
5.2 oracle账户根目录编写响应文件 19c_db_install.rsp
vi 19c_db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/DBSoft/oraInventory
ORACLE_BASE=/DBSoft/oracle
ORACLE_HOME=/DBSoft/oracle/product/19.3/dbhome_1
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
5.3 运行安装命令
$ORACLE_HOME/runInstaller -silent -force -noconfig -ignorePrereq -responseFile /home/oracle/19c_db_install.rsp
安装完成后 显示
As a root user, execute the following script(s):
1. /DBSoft/oracle/oraInventory/orainstRoot.sh
2. /DBSoft/oracle/product/19.3/dbhome_1/root.sh
这时用 root 账户运行这两个命令脚本即可。
6.创建监听
6.1.可以直接修改 $ORACLE_HOME/network/admin/tnsnames.ora,没有可以新建。
DB01 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = TESTDB)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DB01)
)
)
6.2 静默安装
6.2.1 oracle账户根目录编写监听配置文件
vi 19c_netca.rsp
[GENERAL]
RESPONSEFILE_VERSION="19.3"
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"}
保存退出 【ESC后输入 :wq】
6.2.2 oracle账户静默配置监听
netca /silent /responsefile /home/oracle/19c_netca.rsp
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /home/oracle/19c_netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
正在运行监听程序控制:
/DBSoft/oracle/product/19.3/dbhome_1/bin/lsnrctl start LISTENER
监听程序控制完成。
监听程序已成功启动。
监听程序配置完成。
之后查看监听状态
netstat -tlnp
tcp6 0 0 :::1521 :::* LISTEN 24087/tnslsnr
7. 创建oracle实例
7.1 oracle账户编写数据库创建相应文件 19c_dbca.rsp(非PDB)
(配置项可参考:cat $ORACLE_HOME/assistants/dbca/dbca.rsp)
vi 19c_dbca.rsp
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
templateName=General_Purpose.dbc
gdbName=TESTDB
sid=TESTDB
createAsContainerDatabase=TRUE
numberOfPDBs=0
pdbName=
pdbAdminPassword=
sysPassword=sys
systemPassword=system
datafileDestination=/DBSoft/oracle/oradata
recoveryAreaDestination=/DBSoft/oracle/flash_recovery_area
storageType=FS
characterSet=ZHS16GBK
nationalCharacterSet=AL16UTF16
sampleSchema=false
#totalMemory=1024 ##最大内存,单位M,如不写,oracle自动报告管理
databaseType=OLTP
emConfiguration=NONE
7.2 静默创建数据库实例
dbca -silent -createDatabase -responseFile /home/oracle/19c_dbca.rsp
运行直到看到以下信息
数据库信息:
全局数据库名:TESTDB
系统标识符 (SID):TESTDB
数据库实例创建完毕
7.3 检查监听
启动监听:lsnrctl start
查看监听:lsnrctl status
停止监听:lsnrctl stop
7.4 登录数据库
sqlplus sys/sys as sysdba
--------------------------------------------------------------------------------------------------------------
--oracle 密码过期问题
用oracle的管理员登录,执行第3条,可能就可以了
Oracle密码过期,取消密码180天限制
1、进入sqlplus模式
sqlplus / as sysdba;
2、查看用户密码的有效期设置(一般默认的配置文件是DEFAULT)
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、将密码有效期由默认的180天修改成“无限制”,修改之后不需要重启动数据库,会立即生效
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED ;
4、帐户再改一次密码
alter user 用户名 identified by 原密码;
5、使用修改后的用户登录,如果报“ORA-28000:用户已被锁”,解锁
alter user db_user account unlock;
commit;
--------------------------------------------------------------------------------------------------------------