踩风火轮的乌龟 2020-02-02
在进行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 (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_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设备,则不使用压缩。