实操训练二 Oracle数据库

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

注意事项:

  1. 远程工具需要支持图形化界面,例如 Xshell 需要安装 xmanager (正版授权软件),否则可能因为无法启动图形化界面,netca 程序退出,无法配置。
  2. 免费开源软件Mobaxterm 可以使用,但可能遇到启动 netca 后乱码的问题,可尝试以下方式解决:
    export LANG="en_US" # 将语言环境临时调整为英文
    netca # 启动配置界面,以英文界面形式进行操作
    

2. 配置

在弹出的英文界面中,按以下顺序配置

  1. Listener configuration
  2. ADD
  3. LISTENER (保持默认输入不改动即可)
  4. 选择协议(保持默认即可)
  5. Use another port number:21521 (手动修改端口为21521)
  6. No (此处不再做另外监听器的配置)
  7. 完成

(二)、静默方式创建

使用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;

版权声明:本文为u010930289原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。