RMAN之客户端交互(一)
本文档是学习19c的backup and recovery文档的笔记。具体的详细内容请参考官方文档。
https://docs.oracle.com/en/database
关于 RMAN 数据库连接类型
数据库连接类型 | 关键词 | 描述 |
---|---|---|
目标数据库 | TARGET | 要通过 RMAN 备份或恢复的数据库 |
恢复目录数据库 | CATALOG | 除控制文件之外,还为 RMAN 存储库提供可选备份存储的数据库。 |
辅助实例或辅助数据库 | AUXILIARY | 物理备用数据库,或者为执行特定任务(例如创建重复数据库、传输表空间或执行表空间时间点恢复 (TSPITR))而创建的数据库实例。对于许多使用辅助数据库的任务,RMAN 会创建一个自动辅助实例供任务期间使用,连接到该实例,执行任务,然后在任务完成后销毁它。您无需发出任何显式命令来连接到自动辅助实例。 |
数据库连接的身份验证
使用 RMAN 连接到目标或辅助数据库的用户需要SYSDBA或SYSBACKUP系统权限。
连接到恢复目录时不需要这些权限。您必须将RECOVERY_CATALOG_OWNER角色授予目录架构所有者。用户还可以使用恢复目录所有者创建的 VPC 凭证连接到恢复目录。
RMAN 提供与 SQL*Plus 相同的身份验证选项。使用目标数据库和辅助数据库进行身份验证的最常见方式是:
-
操作系统身份验证
使用操作系统身份验证进行连接,需要先设置ORACLE_SID,您必须是 OSDBA 操作系统组的成员才能使用该SYSDBA权限进行连接,或者必须是 OSBACKUPDBA 操作系统组的成员才能使用该SYSBACKUP权限进行连接。
在 UNIX 和 Linux 上,OSDBA 组通常名为dba,OSBACKUPDBA 组通常名为backupdba。这些名称是在数据库安装期间分配的。 -
密码文件认证
SYSDBA当您向用户授予或权限时,数据库会在密码文件中创建一个条目SYSBACKUP。然后,即使数据库未打开,您也可以以此用户身份连接到目标数据库或辅助数据库。
为了支持通过具有权限的密码文件进行连接,必须以 Oracle Database 12 cSYSBACKUP Release 1 (12.1) 或更高版本的格式创建或升级密码文件。
如果连接字符串中既未指定AS SYSBACKUP也未AS SYSDBA指定,则默认使用AS SYSDBA。在这种情况下,不需要用引号引起来。
这两种方法都不需要打开数据库。操作系统身份验证仅用于本地连接。密码文件身份验证可用于本地或远程连接。
##显式
% rman target '"sbu@prod1 as sysbackup"'
target database Password: password
connected to target database: PROD1 (DBID=39525561)
##隐式
% rman target sbu@prod1
target database Password: password
connected to target database: PROD1 (DBID=39525561)
##non-cdb数据库的隐式连接
RMAN> connect target /
##non-cdb数据库的显式连接,包含系统权限时,需要使用引号(单引号或双引号)。
RMAN> connect target "/ as sysdba"
##Connecting to Target and a Recovery Catalog
##目标连接使用操作系统身份验证,恢复目录数据库连接使用网络服务名称和密码文件身份验证。恢复目录所有者是用户rco。
RMAN> connect target /
RMAN> connect catalog rco@catdb
recovery catalog database Password: password
connected to recovery catalog database
##NOCATALOG是默认的,不指定就用默认的。
% rman TARGET / NOCATALOG
connected to target database: PROD (DBID=39525561)
using target database control file instead of recovery catalog
建立与 CDB 和 PDB 的 RMAN 连接
对CDB备份要连接到根,要备份PDB,可以连接到根,也可以连接到PDB但是有限制。
从 Oracle Database 19c 开始,数据恢复顾问 (DRA) 功能已被弃用。LIST FAILURE, ADVISE FAILURE, REPAIR FAILURE, and CHANGE FAILURE.无法访问这些命令。
- 连接到根(Root)
有三种方式:
##用具有SYSBDA权限的用户SYS再本地连接
rman target sys
##使用操作系统身份验证进行连接
rman target /
##使用网络服务名连接到根
rman target c##bkuser@sales
##connect user:c##bkuser具有SYSBACKUP权限
- 作为目标连接到 PDB
You want to perform RMAN operations on a PDB named hrpdb.
The net service name hrpdb resolves to a database service for the hrpdb PDB.
The local user hrbkup was created in the hrpdb PDB and granted the SYSDBA privilege.
rman target hrbkup@hrpdb
用脚本连接RMAN
cat > listbkup.rman << EOF
CONNECT TARGET /
LIST BACKUP;
EOF
##得到执行脚本
% rman @listbkup.rman
##执行
但是对于对该文件有读取权限的用户都可以得到密码。不推荐。
将 RMAN 连接到辅助数据库
某些任务(例如数据库复制和表空间时间点恢复(TSPITR))需要连接到辅助数据库。
% rman target / auxiliary sbu@aux
auxiliary database Password: password
connected to auxiliary database: AUX (DBID=30472568)
RMAN 的输出重定向到日志文件
% rman LOG /tmp/rman.log
在显示终端就没有显示了,但日志没有命令,只有执行命令的结果。
% rman | tee rman.log
这个命令可以同时在命令行和日志文件显示结果。但日志没有命令,只有执行命令的结果。
为 RMAN 设置全球化支持环境变量
参看Database Globalization Support Guide
https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/setting-up-globalization-support-environment.html#GUID-D5C74C82-8622-46F4-8760-0F8ABA28A816