CommvaultOracle备份常⽤命令
在进⾏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  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 rman@lx64ora3.unixdb.lab (TNS V1-V3)
125      2503 INACTIVE 2013 11 06 12:41:50 rman@lx64ora3.unixdb.lab (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
oracle登录命令------------------------------------ ----------- -------------------------------
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设备,则不使⽤压缩。