.dbinfo
有时该命令报错
使用这个语句 pragma user_version;
下面我们看看sqlite到底有些有用的pragma命令,用到时再去研究:
auto_vacuum
automatic_index
cache_size
case_sensitive_like
checkpoint_fullfsync
collation_list
compile_options
count_changes¹
database_list
default_cache_size¹
empty_result_callbacks¹
encoding
foreign_key_list
foreign_keys
freelist_count
full_column_names¹
fullfsync
ignore_check_constraints
incremental_vacuum
index_info
index_list
integrity_check
journal_mode
journal_size_limit
legacy_file_format
locking_mode
max_page_count
page_count
page_size
parser_trace²
quick_check
read_uncommitted
recursive_triggers
reverse_unordered_selects
schema_version
secure_delete
short_column_names¹
synchronous
table_info
temp_store
temp_store_directory¹
user_version
vdbe_listing²
vdbe_trace²
wal_autocheckpoint
wal_checkpoint
writable_schema
这里边有几个标了右上标为1的,似乎已经被obsoleted掉了。标为2的,只被用于debug,仅当sqlite在预编译宏SQLITE_DEBUG下build出来,才有用。
1.检查数据库是否运行。
检查步骤 :
*** 作系统命令
Sun solaris 和unix 以及AIX下
#ps –ef | grep dataserver
参考指标:正常情况下,会显示ASE及BACKUP server的进程信息。若无显示任何进程信息,说明sybase没有运行。
备注:对于不同的版本,数据库进程数根据max online engines、number of engines at startup确定。
2.检查访问数据库连接的数量 。
检查步骤 :
sybase命令
sp_configure “number of user connections” 确定最大连接数
sp_who 确定在用连接数
对于每个运行的进程,sp_who报告其服务器进程ID,状态和进程用户的的登陆名,主机名,阻塞此进程(如果存在)的服务器进程ID,数据库名和正在运行的命令。
参考指标:如果连接数为最大可连接数的80%以上,表示存在连接数不足的可能。需要先分析在用连接数是否都是正常使用所需的,如果不是,通知数据库系统管理员处理;如果是,则通知数据库管理员增加最大可连接数的数量。
备注:sp_who命令结果中,登录名NULL和空缺主机名的进程为系统进程。如NETWORK HANDERLER, DEADLOCK TUNE, CHECKPOINT SLEEP等。
3.检查数据库系统进程对内存的占用情况。主要是检查系统内存利用率和数据库系统进程占用内存量。
检查步骤:
*** 作系统命令
Sun solaris
#vmstat 5 100
AIX
#vmstat 5 100
#ps aux 详细看每个进程情况
#topas 简单列举前几个进程
linux
#free –m
以MB为单位显示内存状况
未用内存=free+buffer+cache
参考指标:
正常情况下,进程内存使用率不会发生太大的变化。如果进程内存使用率不断增加且速度较快,则要确定进程是否正常,有没有软、硬件的问题,如内存泄漏等。
备注:
Sun系统结果Free列呈现的数值即为空余内存值,单位为K,与总内存大小进行比较,即可计算出内存占用比。
Linux系统结果剩余内存为total减used的值。
top查看系统的checkpoint动作我们可以通过将LOG_checkpointS_TO_ALERT设置成TRUE来打开checkpoint的trace,这样就可以跟踪checkpoint的 *** 作了。
ALTER SYSTEM SET LOG_checkpointS_TO_ALERT=TRUE
这设置以后系统的checkpoint将会被记录alert_$SID.log文件中。
在V$DATAFILE_HEADER里面也保存了发生完全checkpoint的时候一些相关信息,包括checkpoint发生时间、对应SCN已经checkpoint的次数。
select file# NO, status, tablespace_name, name, dbms_flashback.get_system_change_number CUR_SCN,
to_char(resetlogs_time, 'YYYY-MM-DD HH24:MI:SS') RST_DT, resetlogs_change# RST_SCN,
to_char(checkpoint_time, 'YYYY-MM-DD HH24:MI:SS') CKPT_DT, checkpoint_change# CKPT_SCN, checkpoint_count CKPT_CNT
from v$datafile_header
/**
NO STATUS TABLESPACE_NAME CUR_SCN RST_DT RST_SCN CKPT_DT CKPT_SCN CKPT_CNT
--- ------- ---------------- -------- ------------------- -------- ------------------- --------- ---------
1 ONLINE SYSTEM 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 65
2 ONLINE UNDOTBS1 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 28
3 ONLINE SYSAUX 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 65
4 ONLINE USERS 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 64
5 ONLINE EXAMPLE 533541 2008-01-12 16:51:53 446075 2008-08-04 22:03:58 532354 24
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)