Commvault Oracle备份常用命令

踩风火轮的乌龟 2020-02-02

在进行Oracle数据库备份的配置、发起和恢复的过程中,需要用到许多Oracle数据库本身的命令。在此章节中进行命令的梳理,供大家参考。

Oracle用户和实例相关命令

Linux/Unix平台

# ps -ef | grep [p]mon
orauxdb   18751     1  0 13:47 ?        00:00:00 ora_pmon_uxdb
oraprod   19026     1  0 13:49 ?        00:00:00 ora_pmon_prod

每个“ pmon”进程中都有Oracle实例名称。 每个实例可能以不同的Unix用户身份运行。

Windows平台

Powershell的“ Get-Service”(又名“ gsv”)cmdlet可用于在Windows上查找实例名称:

PS> gsv OracleService*
Status   Name               DisplayName
------   ----               -----------
Running  OracleServiceORCL  OracleServiceORCL
Running  OracleServiceVS... OracleServiceVSAORA

Oracle服务通常以SYSTEM帐户运行,而Commvault用户通常是管理员。 只要确保Commvault用户是ora_dba组的成员即可

> net localgroup ora_dba
Alias name     ora_dba
Comment        Oracle DBA Group

Members

-------------------------------------------------------------------------------
Administrator
NT AUTHORITY\SYSTEM

查询Oracle Home路径

Linux/Unix平台

# su - oracleuser
$ . oraenv                    ← Source the oraenv script and switch to the appropriate sid
ORACLE_SID = ? sid
$ echo $ORACLE_HOME           ← Check the ORACLE_HOME environment variable
/u01/oracle/product/11.2.0/dbhome_1

您也可以从oratab文件中获取这些信息:

# grep sid /etc/oratab        ← The oratab file is not required but most installs will have one
sid:/u01/oracle/product/11.2.0/dbhome_1:Y

Windows平台

以下PowerShell命令将显示ORACLE_HOME路径:

PS> (gp HKLM:\software\oracle\KEY*).ORACLE_HOME
C:\app\oracle\product\11.1.0\db_1

检查HUNG住的RMAN进程

运行下面的查询,并检查看起来无效的会话(例如,登录时间较旧)。

$ sqlplus / as sysdba
SQL> select sid, serial#, status, to_char(logon_time, 'YYYY MM DD HH24:MI:SS'), program from v$session where program like '%rman%';
       SID    SERIAL# STATUS   TO_CHAR(LOGON_TIME, PROGRAM
---------- ---------- -------- ------------------- ------------------------------------------------
         9        591 INACTIVE 2013 11 06 12:41:50  (TNS V1-V3)
       125       2503 INACTIVE 2013 11 06 12:41:50  (TNS V1-V3)

查看存档日志删除策略

$ rman target /
RMAN> show archivelog deletion policy;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO 'SBT_TAPE';

查询监听状态

$ lsnrctl status

查找Oracle告警日志

警报日志通常位于$ ORACLE_BASE / diag / rdbms / dbname / instance / trace / alert_sid.log,但是可以更改。 如果不在默认位置,请检查diagnostic_dest参数:

$ sqlplus / as sysdba
SQL> show parameter diag
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest                      string      /u01/app/oracle

查找归档日志文件路径

$ sqlplus / as sysdba
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /nu01/oracle/archive
Oldest online log sequence     4120
Next log sequence to archive   4122
Current log sequence           4122

在某些情况下,存档目标将设置为“ USE_DB_RECOVERY_FILE_DEST”。 在这种情况下,请查找“ db_recovery_file_dest”的值:

SQL> show parameter db_recovery_file_dest
NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------------------
db_recovery_file_dest                string      /u01/oradata/fast_recovery_area
db_recovery_file_dest_size           big integer 4182M

检查TNS的解析

$ tnsping sid

区块变更追踪(Block Change Tracking)

要检查是否启用了块更改跟踪,请运行以下SQLPlus查询。

$ sqlplus / as sysdba
SQL> select status from v$block_change_tracking;
STATUS
----------
DISABLED

检查sysdba / sysbackup特权

使用以下查询检查oracle用户是否具有sysdba特权

$ sqlplus / as sysdba
SQL> select username,sysdba from v$pwfile_users;
USERNAME                       SYSDB
------------------------------ -----
SYS                            TRUE
SYSDG                          FALSE
SYSKM                          FALSE
MRBACKUP                       FALSE

从Oracle 12c开始,有一个sysbackup角色可用于备份。 从Commvault V11开始支持使用此角色。

SQL> select username,sysdba,sysbackup from v$pwfile_users;
USERNAME                       SYSDB SYSBA
------------------------------ ----- -----
SYS                            TRUE  FALSE
SYSDG                          FALSE FALSE
SYSBACKUP                      FALSE TRUE
SYSKM                          FALSE FALSE
C##MRBACKUP                    FALSE TRUE

检查Oracle存档日志模式

要进行在线备份,数据库必须以ARCHIVELOG模式运行。 如果以“非存档”模式运行,则仅允许脱机备份。

$ sqlplus / as sysdba
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     6
Current log sequence           8

Oracle压缩

要查看是否启用了Oracle压缩,可以登录RMAN并检查SBT_TAPE设备的配置。

$ rman target /
RMAN> show device type;
RMAN configuration parameters for database with db_unique_name CVUNIXDB are:
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;

上面,压缩在SBT_TAPE上启用,但在DISK上禁用。 请注意,Commvault备份使用SBT_TAPE设备。

如果根本没有列出SBT_TAPE设备,则不使用压缩。