在进行Oracle数据库备份的配置、发起和恢复的过程中,需要用到许多Oracle数据库本身的命令。在此章节中进行命令的梳理,供大家参考。
# 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用户身份运行。
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
# 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
以下PowerShell命令将显示ORACLE_HOME路径:
PS> (gp HKLM:\software\oracle\KEY*).ORACLE_HOME
C:\app\oracle\product\11.1.0\db_1
运行下面的查询,并检查看起来无效的会话(例如,登录时间较旧)。
$ 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 [email protected] (TNS V1-V3)
125 2503 INACTIVE 2013 11 06 12:41:50 [email protected] (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_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
$ tnsping sid
要检查是否启用了块更改跟踪,请运行以下SQLPlus查询。
$ sqlplus / as sysdba
SQL> select status from v$block_change_tracking;
STATUS
----------
DISABLED
使用以下查询检查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
要进行在线备份,数据库必须以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压缩,可以登录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设备,则不使用压缩。