2.1 创建监听, 端口为21521,并开放防火墙
零、防火墙设置
同 firewall-cmd 设置,增加开放 21521/tcp 端口即可
firewall-cmd --zone=public --permanent --add-port=21521/tcp
firewall-cmd --reload
一、监听创建
监听创建有两种方式: GUI 图形化界面创建监听,或者用命令行静默方式安装。
(一)、GUI创建
1.运行 netca
oracle 用户运行 netca
netca
注意事项:
- 远程工具需要支持图形化界面,例如 Xshell 需要安装 xmanager (正版授权软件),否则可能因为无法启动图形化界面,netca 程序退出,无法配置。
- 免费开源软件Mobaxterm 可以使用,但可能遇到启动 netca 后乱码的问题,可尝试以下方式解决:
export LANG="en_US" # 将语言环境临时调整为英文 netca # 启动配置界面,以英文界面形式进行操作
2. 配置
在弹出的英文界面中,按以下顺序配置
- Listener configuration
- ADD
- LISTENER (保持默认输入不改动即可)
- 选择协议(保持默认即可)
- Use another port number:21521 (手动修改端口为21521)
- No (此处不再做另外监听器的配置)
- 完成
(二)、静默方式创建
使用netca工具,以 silent 模式、提供响应文件进行部署安装
1.响应文件准备
下载的数据库安装包内会提供3个响应文件模板,分别是:
- db_install.rsp 数据库静默安装使用的响应文件模板
- dbca.rsp 数据库静默创建时使用的响应文件模板
- netca.rsp 数据库监听静默创建时使用的响应文件模板
将 netca.rsp 复制到 /home/oracle/ 下 ,进行手动修改。
2.响应文件修改
以下是删除了原有注释后的配置信息:
[GENERAL]
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM" # 此处设置为CUSTOM
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""custom"" # 此处从typical改为custom,否则后续监听器名称、端口等设置无法生效
LISTENER_NUMBER=1 # 数量1 不用修改
LISTENER_NAMES={"LISTENER"} # 名称 不用修改
LISTENER_PROTOCOLS={"TCP;21521"} # 这里的端口号从1521改为 21521
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"IPC;EXTPROC"} # 此项从默认配置改为 IPC;EXTPROC
3.静默创建监听
输入以下指令进行静默创建;注意 /home/oracle/netca.rsp 要替换为准确的绝对路径
netca -silent -responseFile /home/oracle/netca.rsp
如果有以下信息,说明创建成功
正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /home/oracle/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
正在配置监听程序:LISTENER
监听程序配置完成。
Oracle Net 监听程序启动:
正在运行监听程序控制:
/u01/app/oracle/product/11.2.0/db/bin/lsnrctl start LISTENER
监听程序控制完成。
监听程序已成功启动。
完成概要文件配置。
成功完成 Oracle Net Services 配置。退出代码是0
二、查看状态
使用 lsnrctl status 查看当前监听器状态
lsnrctl status
正常会显示以下信息
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 19-JAN-2021 14:55:09
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/db/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.4.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=21521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC21521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=21521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 19-JAN-2021 14:55:09
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/db/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=21521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC21521)))
The listener supports no services
The command completed successfully
注意其中倒数第二行
The listener supports no services
说明虽然监听器启动、在监听21521端口,但它并未注册到当前运行的数据库实例,需要进一步进行注册。
三、静态注册
通过编辑 listener.ora 文件,实现监听程序的静态注册
vi $ORACLE_HOME/network/admin/listener.ora
在上一步netca 创建好的 listener.ora 文件中,补充以下信息
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = traindb1)
(SID_NAME = traindb1)
)
)
这里的 GLOBAL_DBNAME、SID_NAME 按各自数据库信息进行修改。
完成后,关闭监听、再重新启动监听,查看现在状态
lsnrctl stop # 关闭监听
lsnrctl start # 启动监听
如果能看到类似以下的信息,说明监听器注册到了数据库实例
Services Summary...
Service "traindb1" has 1 instance(s).
Instance "traindb1", status UNKNOWN, has 1 handler(s) for this service...
#2.2 表空间管理
sqlplus 登录数据库后操作
sqlplus / as SYSDBA
2.2.1 创建表空间 tbs_xxxx, 数据文件大小 100M,自动扩展,每次扩展20M
create tablespace tbs_xxxx datafile '$ORACLE_BASE/data/traindb1/tbs_xxxx.dbf' size 100M autoextend on next 20M;
# 删除表空间对应指令
drop tablespace tbs_xxxx including contents;
2.2.2 创建临时表空间 temp_xxxx, 文件大小100M
create temporary tablespace temp_xxxx tempfile '$ORACLE_BASE/data/traindb1/temp_xxxx.dbf' size 100M;
# 删除临时表空间对应指令
drop tablespace temp_xxxx including contents;
2.2.3 新建undotbs2 表空间,并切换undo 表空间至该表空间,修改undo的最大保留时间为2小时。
create undo tablespace undotbs2 datafile '$ORACLE_BASE/data/traindb1/undotbs2.dbf' size 50M;
alter system set undo_tablespace=undotbs2;
alter system set undo_retention=7200; # 7200s=2小时
#2.3 用户管理
2.3.1 新建用户xxxx1,xxxx2,默认表空间为tbs_xxxx,默认临时表空间为temp_xxxx,口令设为 xxxx
create user xxxx1 identified by "xxxx" default tablespace tbs_xxxx temporary tablespace temp_xxxx;
create user xxxx2 identified by "xxxx" default tablespace tbs_xxxx temporary tablespace temp_xxxx;
##2.3.2 修改xxxx1,xxxx2的口令为强口令
alter user xxxx identified by "zaqw@9827";
alter user xxxx2 identified by "zaqw@9827";
##2.3.3 要求添加xxxx1,xxxx2的连接、资源、DBA权限。
grant connect,resource,dba to xxxx1;
grant connect,resource,dba to xxxx2;
##2.3.4 锁定xxxx2用户,再将其解锁。
alter user xxxx2 account lock;
alter user xxxx2 account unlock;
##2.3.5 回收除xxxx1,xxxx2的DBA权限。
revoke dba from xxxx1;
revoke dba from xxxx2;
##2.3.6 设置xxxx1用户登录失败最大次数3次,口令有效期10天,口令宽限期2天,口令可重用天数60天,并发会话数2个,连接时间1小时,空闲时间10分钟
create profile xxxx1_profile limit FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2 PASSWORD_REUSE_TIME 60 SESSIONS_PER_USER 2 CONNECT_TIME 60 IDLE_TIME 10;
alter user xxxx1 profile xxxx1_profile;
#2.4 配置RMAN
以 oracle 用户身份,在数据库操作系统中登录rman工具
rman target /
show all; # 用此指令查看配置参数,可以看到当前配置
##2.4.1 打开备份优化
CONFIGURE BACKUP OPTIMIZATION ON; # 开启备份优化
CONFIGURE BACKUP OPTIMIZATION OFF; # 关闭备份优化
##2.4.2 打开控制文件自动备份
CONFIGURE CONTROLFILE AUTOBACKUP ON; # 打开控制文件自动备份
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # 关闭控制文件自动备份
##2.4.3 保留至少7天的数据库备份
RETENTION POLICY 有两种:
- 基于恢复窗口策略
- RECOVERY WINDOW OF ? DAYS
- 定义【保留的备份文件必须要能保证恢复到近N天的任意时间点】
- 基于冗余策略
- REDUNDANCY ?
- 定义【每个文件至少要保留几个备份】
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
##2.4.4 进行一次包含归档文件的数据库全备份
backup database plus archivelog;