巡检命令
1 2
| systemctl status firewalld
|
数据库巡检
1 2
| select instance_name,host_name,startup_time,status,database_status from v$instance;
|
1 2
| select group#,status,type,member from v$logfile;
|
在Oracle数据库中,v$logfile
是一个动态性能视图,它提供了关于在线重做日志文件的信息。这些日志文件是Oracle用于记录所有数据库更改(如插入、更新和删除操作)的物理文件。这些更改随后可用于恢复操作,例如实例恢复或介质恢复。
从v$logfile视图中检索以下列的信息:
- group# - 这是重做日志组的编号。在Oracle中,你可以有多个在线重做日志组,每个组可以有一个或多个成员(即物理文件)。
- status - 这列显示了重做日志的状态。可能的值包括:
CURRENT
- 表示该日志文件是当前正在写入的日志文件。
ACTIVE
- 表示该日志文件包含尚未被归档的更改。
INACTIVE
- 表示该日志文件不再用于写入,但可能包含尚未被覆盖的更改。
UNUSED
- 表示该日志文件尚未使用。
type - 这列描述了重做日志文件的类型。对于在线重做日志文件,它通常显示为ONLINE
。
member - 这列显示了重做日志文件的完整路径和名称。每个日志组可以有多个成员,这意味着该组的日志数据被写入多个物理文件中。这提供了冗余和容错能力,因为如果一个物理文件损坏,其他文件仍然可用。
通过查询v$logfile
视图,数据库管理员可以了解当前哪些日志文件正在使用,哪些处于空闲状态,以及这些日志文件的物理位置。这对于诊断问题、规划磁盘空间以及进行恢复操作都非常重要。
1 2
| select tablespace_name,status from dba_tablespaces;
|
1 2
| select name,status from v$datafile;
|
name - 这列显示了数据文件的完整路径和名称。它提供了数据文件的物理位置信息。
status - 这列描述了数据文件的状态。可能的状态值包括:
AVAILABLE
- 数据文件可用,并且可以被访问。
RECOVER
- 数据文件正在恢复中,可能由于介质故障或其他原因。
OFFLINE
- 数据文件当前不可用,可能由于管理员手动将其设置为离线状态,或者由于其他原因(如磁盘故障)。
INVALID
- 数据文件的状态无效或损坏。
DELETED
- 数据文件已被标记为删除,但其空间可能尚未被释放。
通过查询v$datafile
视图,数据库管理员可以了解数据库中所有数据文件的状态和位置。这对于诊断问题、管理磁盘空间、备份和恢复操作以及监控数据库的健康状况都至关重要。例如,如果某个数据文件的状态为OFFLINE
,那么可能需要进一步调查为什么它不可用,并考虑将其恢复为AVAILABLE
状态。同样,如果数据文件的状态为INVALID
或RECOVER
,则可能需要进行恢复操作以确保数据的完整性和可用性。
1 2
| select segment_name,status from dba_rollback_segs;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '%' "使用比", F.TOTAL_BYTES "空闲空间(M)", F.MAX_BYTES "最大块(M)" FROM (SELECT TABLESPACE_NAME, Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES, Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 1
|
1 2 3 4 5 6 7 8
| SELECT a.VALUE + b.VALUE logical_reads, c.VALUE phys_reads, round(100 * (1 - c.value / (a.value + b.value)), 4) hit_ratio FROM v$sysstat a, v$sysstat b, v$sysstat c WHERE a.NAME = 'db block gets' AND b.NAME = 'consistent gets' AND c.NAME = 'physical reads';
|
1 2 3 4 5 6
| select index_name, table_name, tablespace_name, status From dba_indexes Where owner = 'CTAIS2' And status <> 'VALID';
|
1 2 3 4 5
| SELECT owner, constraint_name, table_name, constraint_type, status FROM dba_constraints WHERE status = 'DISABLE' and constraint_type = 'P';
|
下面的命令需要在sqlplus上执行
1 2 3
| su - oracle sqlplus /nolog conn sys/ as sysdba;
|
1 2
| show parameter process;
|
1 2
| show parameter sessions;
|
1 2
| select count(*) from v$session;
|
1 2
| select sum(percent_space_used) from v$flash_recovery_area_usage;
|
扩展表空间
查看表空间使用百分比
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| SELECT b.file_id 文件ID号, b.tablespace_name 表空间名, b.bytes / 1024 / 1024 || 'M' 字节数, ( b.bytes - sum(nvl(a.bytes, 0)) ) / 1024 / 1024 || 'M' 已使用, sum(nvl(a.bytes, 0)) / 1024 / 1024 || 'M' 剩余空间, 100 - sum(nvl(a.bytes, 0)) / (b.bytes) * 100 占用百分比 FROM dba_free_space a, dba_data_files b WHERE a.file_id = b.file_id GROUP BY b.tablespace_name, b.file_id, b.bytes ORDER BY b.file_id;
|
查看表空间路径
1 2 3 4 5 6 7 8 9
| SELECT tablespace_name, file_id, file_name, round(bytes /(1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name;
|
扩展表空间
1
| ALTER TABLESPACE USERS ADD DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS04.DBF' SIZE 10000M;
|
1
| ALTER DATABASE DATAFILE '+DATA/jhszws/datafile/phistablespace2017.ora' RESIZE 10G;
|
设置自动扩展
1
| alter database datafile '/erp/TEST/db/data/cux_arch_03.dbf' autoextend on next 1000M maxsize 16000M;
|