oracle内置常用表和视图及其日志管理Word格式.docx
- 文档编号:16742301
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:18
- 大小:33.67KB
oracle内置常用表和视图及其日志管理Word格式.docx
《oracle内置常用表和视图及其日志管理Word格式.docx》由会员分享,可在线阅读,更多相关《oracle内置常用表和视图及其日志管理Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
用户具有的对象权限信息
dba_col_privs
用户具有的列对象权限信息
dba_role_privs
用户具有的角色信息
dba_audit_trail
审计跟踪记录信息
dba_stmt_audit_opts
审计设置信息
dba_audit_object
对象审计结果信息
dba_audit_session
会话审计结果信息
dba_indexes
用户模式的索引信息
2.user_开头表
user_objects
用户对象信息
user_source
数据库用户的所有资源对象信息
user_segments
用户的表段信息
user_tables
用户的表对象信息
user_tab_columns
用户的表列信息
关于这个还涉及到两个常用的例子如下:
2.1.oracle中查询某个字段属于哪个表
Sql代码
selecttable_name,ownerfromdba_tab_columnstwheret.COLUMN_NAMElikeupper('
%username%'
);
2.2.oracle中查询某个表的列数
selectcount(*)fromuser_tab_columnswheretable_name=upper('
sys_operate'
)
注:
这两个例子都用到了upper这个函数,是因为在这里表名得大写,否则查出的结果不是正确的
user_constraints用户的对象约束信息
user_sys_privs
当前用户的系统权限信息
user_tab_privs
当前用户的对象权限信息
user_col_privs
当前用户的表列权限信息
user_role_privs
当前用户的角色权限信息
user_indexes
用户的索引信息
user_ind_columns
用户的索引对应的表列信息
user_cons_columns
用户的约束对应的表列信息
user_clusters
用户的所有簇信息
user_clu_columns
用户的簇所包含的内容信息
user_cluster_hash_expressions
散列簇的信息
3.v$开头表
v$database
数据库信息
v$datafile
数据文件信息
v$controlfile
控制文件信息
v$logfile
重做日志信息
v$instance
数据库实例信息
v$log
日志组信息
v$loghist
日志历史信息
v$sga
数据库SGA信息
v$parameter
初始化参数信息
v$process
数据库服务器进程信息
v$bgprocess
数据库后台进程信息
v$controlfile_record_section
控制文件记载的各部分信息
v$thread
线程信息
v$datafile_header
数据文件头所记载的信息
v$archived_log
归档日志信息
v$archive_dest
归档日志的设置信息
v$logmnr_contents
归档日志分析的DMLDDL结果信息
v$logmnr_dictionary日志分析的字典文件信息
v$logmnr_logs
日志分析的日志列表信息
v$tablespace
表空间信息
v$tempfile
临时文件信息
v$filestat
数据文件的I/O统计信息
v$undostat
Undo数据信息
v$rollname
在线回滚段信息
v$session
会话信息
v$transaction
事务信息
v$rollstat
回滚段统计信息
v$pwfile_users
特权用户信息
v$sqlarea
当前查询过的sql语句访问过的资源及相关的信息
v$sql
与v$sqlarea基本相同的相关信息
v$sysstat
数据库系统状态信息
4.all_开头表
all_users
数据库所有用户的信息
all_objects
数据库所有的对象的信息
all_def_audit_opts
所有默认的审计设置信息
all_tables
所有的表对象信息
all_indexes
所有的数据库对象索引的信息
5.session_开头表
session_roles
会话的角色信息
session_privs
会话的权限信息
6.index_开头表
index_stats
索引的设置和存储信息
二.oracle最重要的9个动态性能视图
v$session+v$session_wait(在10g里功能被整合,凑合算1个吧.)
v$sqltext
v$bh
(更宁愿是x$bh)
v$lock
v$latch_children
v$system_event
三.按组分的几组重要的性能视图
1.System的overview
v$sysstat,v$system_event,v$parameter
2.某个session的当前情况
v$process,v$session,v$session_wait,v$session_event,v$sesstat
3.SQL的情况
v$sql,v$sqlarea,v$SQL_PLAN,V$SQL_PLAN_STATISTICS,v$sqltext_with_newlines
4.Latch/lock/ENQUEUE
v$latch,v$latch_children,v$latch_holder,v$lock,V$ENQUEUE_STAT,V$ENQUEUE_LOCK
5.IO方面的
v$segstat,v$filestat,v$tempstat,v$datafile,v$tempfile
6.sharedpool/Librarycache
v$Librarycache,v$rowcache,x$ksmsp
7.几个advice也不错
v$db_cache_advice,v$PGA_TARGET_ADVICE,v$SHARED_POOL_ADVICE
四、oracle日志文件的整理
1增加日志组
实例1:
为oracle数据库增加一个重做日志组,组号自动分配,组中包含两个日志成员,大小为10M,并查询动态性能视图确定能否成功。
操作步骤如下:
1.
以系统管理员身份登入:
sqlplusw
sys/jlfx
as
sysdba
或sqlplusw
sys/wangwangassysdba
2.
增加日志组:
alterdatabasejlfxaddlogfile('
d:
\log\log4a.log'
'
\log\log4b.log'
)size10M;
或
alterdatabasedog
addlogfile('
3.
查询日志信息(包括组号,成员数,成员,每个成员的大小):
SQL>
colmemberformata50
selecta.group#,a.members,a.bytes,b.memberfromv$loga,v$logfilebwherea.group#=b.group#;
GROUP#MEMBERSBYTES
MEMBER
------------------------
------------------------------------------------
3
1
10485760
D:
\ORACLE\PRODUCT\10.2.0\ORADATA\DOG\REDO03.LOG
2
\ORACLE\PRODUCT\10.2.0\ORADATA\DOG\REDO02.LOG
1
\ORACLE\PRODUCT\10.2.0\ORADATA\DOG\REDO01.LOG
或
selectgroup#,memberfromv$logfile;
GROUP#
MEMBER
------
------------------------------------------------------------
3
2
selectgroup#,members,bytesfromv$log;
MEMBERS
BYTES
--------------------
----------------------------------------
10485760
例2:
为oracle数据库再增加一个重做日志组,指定组号,组中包含两个日志成员,大小为10M,并查询动态性能视图确定能否成功操作步骤如下:
alterdatabasejlfxaddlogfilegroup5('
\log\log5a.log'
\log5b.log'
或SQL>
alterdatabasedogaddlogfilegroup5('
查询日志信息:
selecta.group#,a.status,a.members,a.bytes,b.memberfromv$loga,v$logfilebwherea.group#=b.group#orderbya.group#;
或SQL>
2增加日志成员
实例3:
为oracle服务器的第4个重做日志组增加一个日志成员"
log4c.lg"
.
增加日志成员:
alterdatabase
jlfxaddlogfilemember'
\log\log4c.log'
togroup4;
dogaddlogfilemember'
selecta.group#,a.status,a.members,a.bytes,b.memberfromv$loga,v$logfilebwherea.group#=b.group#;
或SQL>
(显示用户数据库日志组和成员)
练习:
为每个日志组添加一个日志成员。
3删除日志组(注意:
current/active状态下或只有两个日志组都不能删除该日志组)
实例4:
删除日志组4
查看日志组的状态(只有INACTIVE和UNUSED状态的可删除)
selectgroup#,status,members,bytes
fromv$log;
删除日志组4(下面的命令只是逻辑删除,要物理删除得用os命令)
alterdatabasejlfxdroplogfilegroup4;
alterdatabasedogdroplogfilegroup4;
此时不能再往日志组4中添加成员,如:
alterdatabase
\log\log4d.log'
出现错误信息:
第
1
行出现错误:
ORA-00359:
日志文件组
4
不存在
如果2号日志组是当前日志组,执行删除2号日志组的操作,则会出现错误。
alterdatabasedogdroplogfilegroup2;
错误提示信息如下:
alterdatabasedogdroplogfilegroup2
*
ORA-01623:
日志
2
是实例
dog(线程
1)
的当前日志
-
无法删除
ORA-00312:
联机日志
线程
1:
'
\ORACLE\PRODUCT\10.2.0\ORADATA\DOG\REDO02.LOG'
4.
4删除日志成员(注意:
current状态下或日志组中只有一个日志成员时不能删除)
实例5:
删除日志组5中的第2个日志组成员
查看日志组的状态
删除日志组4中的第2、3个日志组成员
alterdatabasedogdroplogfilemember'
'
;
selectgroup#,members,bytes,statusfromv$log;
注意:
日志组中只有一个日志成员时不能删除,如:
此时,出现如下信息:
ORA-00361:
无法删除最后一个日志成员
\log\log4a.log(组
4)
5清空重做日志
实例6:
清空重做日志组4
关闭数据库
shutdownimmediate
删除4号日志组的所有成员,再启动则出现错误:
启动数据库
startup
ORACLE
例程已经启动。
TotalSystemGlobalArea
285212672bytes
FixedSize
1248552bytes
VariableSize
71303896bytes
DatabaseBuffers
205520896bytes
RedoBuffers
7139328bytes
数据库装载完毕。
ORA-00313:
无法打开日志组
4(用于线程
的成员
\LOG\LOG4A.LOG'
\LOG\LOG4C.LOG'
\LOG\LOG4B.LOG'
查看数据库的启动状态:
selectstatusfromv$instance;
或直接启动数据库到加载状态(特别注意)
startup
mount
清空重做日志组4,恢复该日志组的成员
clearlogfile
group4;
5.
selecta.group#,a.status,a.membersfromv$loga,v$logfilebwherea.group#=b.group#;
6.改变日志的模式
altersystemswitchlogfile;
6移动日志文件
实例7:
移动日志文件,观察日志文件丢失时的现象,并重新定位。
shutdown
物理移动日志成员到目标位置
将文件d:
\oracle\product\10.2.0\oradata\jlfx\REDO03.log
移动到
\REDO03.log;
打开数据库
startup;
执行rename命令,重新定位日志文件
alter
database
jlfx
rename
file'
\o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 内置 常用 视图 及其 日志 管理