SELECT I.KSPPINM NAME,
I.KSPPDESC DESCRIPTION,
CV.KSPPSTVL VALUE,
CV.KSPPSTDF ISDEFAULT,
DECODE(BITAND(CV.KSPPSTVF, 7),
1,
'MODIFIED',
4,
'SYSTEM_MOD',
'FALSE') ISMODIFIED,
DECODE(BITAND(CV.KSPPSTVF, 2), 2, 'TRUE', 'FALSE') ISADJUSTED
FROM X$KSPPI I, X$KSPPCV CV
WHERE I.INST_ID = USERENV('Instance')
AND CV.INST_ID = USERENV('Instance')
AND I.INDX = CV.INDX
AND I.KSPPINM LIKE '/_%' ESCAPE '/'
ORDER BY REPLACE(I.KSPPINM, '_', '');
2009年1月9日星期五
trace session
trace session:
1. 全局(不建议使用)
在参数文件(pfile/spfile)中指定:
sql_trace =true
2.在当前session级设置
在session级启用和停止sql_trace方式如下:
alter session set sql_trace=true;
alter session set sql_trace=false;
3. 跟踪其他用户进程
1) 通过DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,TRUE);
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,TRUE);
另外可通过10046事件
1. 全局(不建议使用)
在参数文件中增加:
event="10046 trace name context forever,level 12"
2. 对当前session设置
alter session set events '10046 trace name context forever';
alter session set events '10046 trace name context forever, level 8';
alter session set events '10046 trace name context off';
3. 对其他用户session设置
通过DBMS_SYSTEM.SET_EV系统包来实现:
dbms_system.set_ev(SID,SERIAL#,10046(EVENT),8(LEVEL),'eygle');
dbms_system.set_ev(9,437,10046,0,'eygle');
获取跟踪文件:
以上生成的跟踪文件位于user_dump_dest目录中
文件名为SID_ORA_SPID.trc
SPID可以根据v$session.paddr = v$process.addr得到v$process.spid
参考:http://www.eygle.com/archives/2004/10/use_sql_trace_to_diagnose_database.html
1. 全局(不建议使用)
在参数文件(pfile/spfile)中指定:
sql_trace =true
2.在当前session级设置
在session级启用和停止sql_trace方式如下:
alter session set sql_trace=true;
alter session set sql_trace=false;
3. 跟踪其他用户进程
1) 通过DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,TRUE);
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,SERIAL#,TRUE);
另外可通过10046事件
1. 全局(不建议使用)
在参数文件中增加:
event="10046 trace name context forever,level 12"
2. 对当前session设置
alter session set events '10046 trace name context forever';
alter session set events '10046 trace name context forever, level 8';
alter session set events '10046 trace name context off';
3. 对其他用户session设置
通过DBMS_SYSTEM.SET_EV系统包来实现:
dbms_system.set_ev(SID,SERIAL#,10046(EVENT),8(LEVEL),'eygle');
dbms_system.set_ev(9,437,10046,0,'eygle');
获取跟踪文件:
以上生成的跟踪文件位于user_dump_dest目录中
文件名为SID_ORA_SPID.trc
SPID可以根据v$session.paddr = v$process.addr得到v$process.spid
参考:http://www.eygle.com/archives/2004/10/use_sql_trace_to_diagnose_database.html
2009年1月6日星期二
EXP使用经验
exp的相关参数说明如下:
Keyword Description (Default) Keyword Description (Default)
--------------------------------------------------------------------------
USERID username/password FULL export entire file (N)
BUFFER size of data buffer OWNER list of owner usernames
FILE output files (EXPDAT.DMP) TABLES list of table names
COMPRESS import into one extent (Y) RECORDLENGTH length of IO record
GRANTS export grants (Y) INCTYPE incremental export type
INDEXES export indexes (Y) RECORD track incr. export (Y)
DIRECT direct path (N) TRIGGERS export triggers (Y)
LOG log file of screen output STATISTICS analyze objects (ESTIMATE)
ROWS export data rows (Y) PARFILE parameter filename
CONSISTENT cross-table consistency(N) CONSTRAINTS export constraints (Y)
OBJECT_CONSISTENT transaction set to read only during object export (N)
FEEDBACK display progress every x rows (0)
FILESIZE maximum size of each dump file
FLASHBACK_SCN SCN used to set session snapshot back to
FLASHBACK_TIME time used to get the SCN closest to the specified time
QUERY select clause used to export a subset of a table
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
TTS_FULL_CHECK perform full or partial dependency check for TTS
TABLESPACES list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE template name which invokes iAS mode export
下面是一些值得注意的地方:
1. DIRECT参数决定了是采用direct路径export还是conventional路径
两种方式的差异参见
http://north-m.blogspot.com/2009/01/conventional-path-exportdirect-path_06.html
一般来说,direct方式会比conventional要快, 但是也取决于BUFFER(conventional),RECORDLENGTH(direct)参数的设定
2. 在10G中, INCTYPE参数已经废弃不再使用,不再支持增量导入导出,所以RECORD参数也不再使用
3. STATISTICS参数的3个可选值:COMPUTE,ESTIMATE,NONE
4. CONSISTENT保证整个export session中数据的一致性, 而OBJECT_CONSISTENT(未测试成功)只能保证单个object的数据一致.
exp有以下几种export方式:table, user(schema), tablespace, full.
当指定了tables参数时, 则为table方式.
在该方式下export的内容主要是:
Table definitions,
Table data
Owner's table grants
Owner's table indexes
Table constraints
Table triggers
Table statistics
可以通过ROWS,GRANTS,INDEXES,CONSTRAINTS,TRIGGERS,STATISTICS来配置后面5项内容是否需要导出.
指定了owner参数时, 则采用user(schema)方式.
在该方式下export的内容主要是:
user定义:
pre-schema procedural objects and actions
foreign function library names for user
PUBLIC type synonyms
private type synonyms
object type definitions for user
user object:
database links
sequence numbers
cluster definitions
table
Table definitions,
Table data
table grants
table indexes
Table constraints
Table triggers
Table statistics
synonyms
views
stored procedures
operators
referential integrity constraints
triggers
indextypes
bitmap, functional and extensible indexes
posttables actions
materialized views
snapshot logs
job queues
refresh groups and children
dimensions
post-schema procedural objects and actions
statistics
可以通过ROWS,GRANTS,INDEXES,CONSTRAINTS,TRIGGERS,STATISTICS参数设置相关内容是否需要导出.
指定了tablespaces参数时,则采用tablespace方式(先不谈可传输表空间的处理)
在该方式下export的内容主要是:
exporting cluster definitions
table
Table definitions,
Table data
table grants
table indexes
Table constraints
Table triggers
Table statistics
referential integrity constraints
triggers
指定了full=y, 则采用的是full db的方式.
该方式下export的内容是:
tablespace definitions
profiles
user definitions
roles
resource costs
rollback segment definitions
database links
sequence numbers
directory aliases
context namespaces
foreign function library names
object type definitions
system procedural objects and actions
pre-schema procedural objects and actions
cluster definitions
table
Table definitions,
Table data
table grants
table indexes
Table constraints
Table triggers
Table statistics
synonyms
views
referential integrity constraints
stored procedures
operators
indextypes
bitmap, functional and extensible indexes
posttables actions
triggers
materialized views
snapshot logs
job queues
refresh groups and children
dimensions
post-schema procedural objects and actions
user history table
default and system auditing options
statistics
Keyword Description (Default) Keyword Description (Default)
--------------------------------------------------------------------------
USERID username/password FULL export entire file (N)
BUFFER size of data buffer OWNER list of owner usernames
FILE output files (EXPDAT.DMP) TABLES list of table names
COMPRESS import into one extent (Y) RECORDLENGTH length of IO record
GRANTS export grants (Y) INCTYPE incremental export type
INDEXES export indexes (Y) RECORD track incr. export (Y)
DIRECT direct path (N) TRIGGERS export triggers (Y)
LOG log file of screen output STATISTICS analyze objects (ESTIMATE)
ROWS export data rows (Y) PARFILE parameter filename
CONSISTENT cross-table consistency(N) CONSTRAINTS export constraints (Y)
OBJECT_CONSISTENT transaction set to read only during object export (N)
FEEDBACK display progress every x rows (0)
FILESIZE maximum size of each dump file
FLASHBACK_SCN SCN used to set session snapshot back to
FLASHBACK_TIME time used to get the SCN closest to the specified time
QUERY select clause used to export a subset of a table
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
TTS_FULL_CHECK perform full or partial dependency check for TTS
TABLESPACES list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE template name which invokes iAS mode export
下面是一些值得注意的地方:
1. DIRECT参数决定了是采用direct路径export还是conventional路径
两种方式的差异参见
http://north-m.blogspot.com/2009/01/conventional-path-exportdirect-path_06.html
一般来说,direct方式会比conventional要快, 但是也取决于BUFFER(conventional),RECORDLENGTH(direct)参数的设定
2. 在10G中, INCTYPE参数已经废弃不再使用,不再支持增量导入导出,所以RECORD参数也不再使用
3. STATISTICS参数的3个可选值:COMPUTE,ESTIMATE,NONE
4. CONSISTENT保证整个export session中数据的一致性, 而OBJECT_CONSISTENT(未测试成功)只能保证单个object的数据一致.
exp有以下几种export方式:table, user(schema), tablespace, full.
当指定了tables参数时, 则为table方式.
在该方式下export的内容主要是:
Table definitions,
Table data
Owner's table grants
Owner's table indexes
Table constraints
Table triggers
Table statistics
可以通过ROWS,GRANTS,INDEXES,CONSTRAINTS,TRIGGERS,STATISTICS来配置后面5项内容是否需要导出.
指定了owner参数时, 则采用user(schema)方式.
在该方式下export的内容主要是:
user定义:
pre-schema procedural objects and actions
foreign function library names for user
PUBLIC type synonyms
private type synonyms
object type definitions for user
user object:
database links
sequence numbers
cluster definitions
table
Table definitions,
Table data
table grants
table indexes
Table constraints
Table triggers
Table statistics
synonyms
views
stored procedures
operators
referential integrity constraints
triggers
indextypes
bitmap, functional and extensible indexes
posttables actions
materialized views
snapshot logs
job queues
refresh groups and children
dimensions
post-schema procedural objects and actions
statistics
可以通过ROWS,GRANTS,INDEXES,CONSTRAINTS,TRIGGERS,STATISTICS参数设置相关内容是否需要导出.
指定了tablespaces参数时,则采用tablespace方式(先不谈可传输表空间的处理)
在该方式下export的内容主要是:
exporting cluster definitions
table
Table definitions,
Table data
table grants
table indexes
Table constraints
Table triggers
Table statistics
referential integrity constraints
triggers
指定了full=y, 则采用的是full db的方式.
该方式下export的内容是:
tablespace definitions
profiles
user definitions
roles
resource costs
rollback segment definitions
database links
sequence numbers
directory aliases
context namespaces
foreign function library names
object type definitions
system procedural objects and actions
pre-schema procedural objects and actions
cluster definitions
table
Table definitions,
Table data
table grants
table indexes
Table constraints
Table triggers
Table statistics
synonyms
views
referential integrity constraints
stored procedures
operators
indextypes
bitmap, functional and extensible indexes
posttables actions
triggers
materialized views
snapshot logs
job queues
refresh groups and children
dimensions
post-schema procedural objects and actions
user history table
default and system auditing options
statistics
Conventional Path Export和Direct Path Export(转)
从Oracle7的release7.3开始,Oracle开始在exp工具中提供两种方法导出表的数据:Direct Path导出和Conventional Path导出。通过exp的参数Direct来判断选用那种导出方式。这个参数有两个值Y/N,如果指定为Y,则表明exp是使用Direct Path的模式导出数据,指定为N,表明数据库是用Conventional Path的模式导出数据的。如果不明确指定direct的值,默认是N,也就是用Conventional Path的模式导出数据
一、两种导出的模式在导出的原理上是存在差别的。
Conventional Path模式导出相当于使用select语句从表中取出数据,数据从磁盘上先读到buffer cache中,记录被转移到一个评估检测的缓冲区中,数据经过语法检测后没有问题,将数据传给exp的客户端,最后写入导出的文件中。
如果使用Direct Path模式导出,数据直接从磁盘上读取到导出的PGA中:记录直接被转换导出会话的私有buffer中。这也就是意味着SQL语句处理层被忽略掉了,因为数据已经是符合导出的格式了,不需要其他的转换处理了。数据直接被传送给导出的客户端,最后写入导出文件。
二、两种导出模式性能上也有一定的差异。
Direct Path导出模式速度上明显快于Conventional Path导出模式,因为Direct Path导出模式忽略了SQL语句处理这一层。
当使用Direct Path导出模式的时候,可以增大参数RECORDLENGTH的值来提高导出的性能。导出的性能主要取决以下的因素:DB_BLOCK_SIZE、导出表上列的类型、导出文件的I/O层(主要是指导出文件尽量要和数据库的数据文件在不同的磁盘上,避免I/O上的竞争)。一般来说,参数RECORDLENGTH设置为操作系统I/O的block size或者是DB_BLOCK_SIZE的整数倍,例如64K。
使用哪种模式导出数据都不会影响导入数据,也就是说导入数据的时间是一样的。
三、两种导出模式都存在一些限制,在某些情况下只能使用其中的一种。
Direct Path导出模式只能使用命令行或者参数文件的方式来导出,不能使用交互式的方式导出数据,只有Conventional Path导出模式可以使用交互式的方式。
Direct Path导出模式不能用于导出表空间,即设置参数TRANSPORT_TABLESPACES=Y,其他的FULL、USER、TABLE模式均可以使用Direct Path导出模式。
在Oracle8i以前的版本里面,如果表里面存在LOB的对象,是不能使用Direct Path导出模式导出表的,如果使用Direct Path导出模式导出表,那些存在LOB对象的记录是不会被导出的。自从Oracle8i之后,这种限制就被取消了。对于Oracle8i之后的版本,如果使用Direct Path导出模式导出表,那些存在LOB对象的记录是会自动以Conventional Path导出模式来导出。但是如果你用低于Oracle8i的客户端的exp工具的Direct Path导出模式导出Oracle8i以上的数据库存在LOB对象的表,那些包含LOB的记录还是同样不会被导出。
Exp工具中的QUERY参数只能用于Conventional Path导出模式,QUERY参数允许导出一个表的满足一定条件的部分记录。
Exp工具中的BUFFER参数只能用于Conventional Path导出模式,BUFFER参数设置了用于fetch记录的缓存的大小,以字节为单位,即在array中最大数量的记录。
参数RECORDLENGTH指定文件记录的最大长度,以字节为单位,即导出I/O的buffer,最大为64K。这个参数决定了在没写入导出文件中缓存中堆积数据的多少。如果没有设置这个参数,在大多数平台的默认值是1024字节。
只有当环境变量中的NLS_LANG设置成跟导出数据库中的字符集一致的时候才能使用Direct Path导出模式导出数据。如果环境变量中的NLS_LANG和数据库的字符集不一致的时候,导出就会报类似下面的错误:
EXP-41 "Export done in server's UTF8, different from user's character set WE8ISO8859P1"
EXP-0 "Export terminated unsuccessfully".
这种限制只对于Oracle8i及其更低版本的Oracle有效,Oracle8i以上的版本不会出现此类错误。
四、两种导出模式在安全方面的一些差异。
对于虚拟数据库(Virtual Private Database)和Oracle Label Security如果强制使用Conventional Path导出模式导出数据,导出会成功的中止,但是存在类似下面的提示警告:EXP-79 "Data in table %s is protected. Conventional path may only be exporting partial table."
对于SYS用户和被授予了EXEMPT ACCESS POLICY权限的用户,在导出数据的时候是不受虚拟数据库(Virtual Private Database)和Oracle Label Security的影响的,两种导出模式均可以使用。但是我们需要注意的是,EXEMPT ACCESS POLICY的权限很大,在管理数据库用户的时候一般不要轻易授予,但是这个权限不会影响对传统对象执行SELECT、INSERT、DELETE、UPDATE的操作。
一、两种导出的模式在导出的原理上是存在差别的。
Conventional Path模式导出相当于使用select语句从表中取出数据,数据从磁盘上先读到buffer cache中,记录被转移到一个评估检测的缓冲区中,数据经过语法检测后没有问题,将数据传给exp的客户端,最后写入导出的文件中。
如果使用Direct Path模式导出,数据直接从磁盘上读取到导出的PGA中:记录直接被转换导出会话的私有buffer中。这也就是意味着SQL语句处理层被忽略掉了,因为数据已经是符合导出的格式了,不需要其他的转换处理了。数据直接被传送给导出的客户端,最后写入导出文件。
二、两种导出模式性能上也有一定的差异。
Direct Path导出模式速度上明显快于Conventional Path导出模式,因为Direct Path导出模式忽略了SQL语句处理这一层。
当使用Direct Path导出模式的时候,可以增大参数RECORDLENGTH的值来提高导出的性能。导出的性能主要取决以下的因素:DB_BLOCK_SIZE、导出表上列的类型、导出文件的I/O层(主要是指导出文件尽量要和数据库的数据文件在不同的磁盘上,避免I/O上的竞争)。一般来说,参数RECORDLENGTH设置为操作系统I/O的block size或者是DB_BLOCK_SIZE的整数倍,例如64K。
使用哪种模式导出数据都不会影响导入数据,也就是说导入数据的时间是一样的。
三、两种导出模式都存在一些限制,在某些情况下只能使用其中的一种。
Direct Path导出模式只能使用命令行或者参数文件的方式来导出,不能使用交互式的方式导出数据,只有Conventional Path导出模式可以使用交互式的方式。
Direct Path导出模式不能用于导出表空间,即设置参数TRANSPORT_TABLESPACES=Y,其他的FULL、USER、TABLE模式均可以使用Direct Path导出模式。
在Oracle8i以前的版本里面,如果表里面存在LOB的对象,是不能使用Direct Path导出模式导出表的,如果使用Direct Path导出模式导出表,那些存在LOB对象的记录是不会被导出的。自从Oracle8i之后,这种限制就被取消了。对于Oracle8i之后的版本,如果使用Direct Path导出模式导出表,那些存在LOB对象的记录是会自动以Conventional Path导出模式来导出。但是如果你用低于Oracle8i的客户端的exp工具的Direct Path导出模式导出Oracle8i以上的数据库存在LOB对象的表,那些包含LOB的记录还是同样不会被导出。
Exp工具中的QUERY参数只能用于Conventional Path导出模式,QUERY参数允许导出一个表的满足一定条件的部分记录。
Exp工具中的BUFFER参数只能用于Conventional Path导出模式,BUFFER参数设置了用于fetch记录的缓存的大小,以字节为单位,即在array中最大数量的记录。
参数RECORDLENGTH指定文件记录的最大长度,以字节为单位,即导出I/O的buffer,最大为64K。这个参数决定了在没写入导出文件中缓存中堆积数据的多少。如果没有设置这个参数,在大多数平台的默认值是1024字节。
只有当环境变量中的NLS_LANG设置成跟导出数据库中的字符集一致的时候才能使用Direct Path导出模式导出数据。如果环境变量中的NLS_LANG和数据库的字符集不一致的时候,导出就会报类似下面的错误:
EXP-41 "Export done in server's UTF8, different from user's character set WE8ISO8859P1"
EXP-0 "Export terminated unsuccessfully".
这种限制只对于Oracle8i及其更低版本的Oracle有效,Oracle8i以上的版本不会出现此类错误。
四、两种导出模式在安全方面的一些差异。
对于虚拟数据库(Virtual Private Database)和Oracle Label Security如果强制使用Conventional Path导出模式导出数据,导出会成功的中止,但是存在类似下面的提示警告:EXP-79 "Data in table %s is protected. Conventional path may only be exporting partial table."
对于SYS用户和被授予了EXEMPT ACCESS POLICY权限的用户,在导出数据的时候是不受虚拟数据库(Virtual Private Database)和Oracle Label Security的影响的,两种导出模式均可以使用。但是我们需要注意的是,EXEMPT ACCESS POLICY的权限很大,在管理数据库用户的时候一般不要轻易授予,但是这个权限不会影响对传统对象执行SELECT、INSERT、DELETE、UPDATE的操作。
订阅:
评论 (Atom)