Skip to content

Oracle - 30. page

建议关注11g数据库password_life_time

Oracle 11g 之前默认的用户时是没有密码过期的限制的,在Oracle 11g 中default的profile启用了密码过期时间是180天,也就是password_life_time值为180,虽然是个小细节,但是很多客户在迁移到11g后有规律性的都在半年后出现了密码错误无法登陆的问题.

如下:

select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

PROFILE       RESOURCE_NAME       RESOURCE LIMIT
------------ -------------------- -------- -------
DEFAULT       PASSWORD_LIFE_TIME  PASSWORD 180

当过期时候系统会报错ORA-28002.当遭遇这个问题时候可以通过以下方式解决:

    1.新建profile,对用户指定新的profile.
    2.通过对用户重设密码(密码可以和原来一样).

    命令为:

    alter user username identified by password.
    

    3.针对默认的profile的password_life_time设置为unlimited

    命令为:

    alter profile default limit PASSWORD_LIFE_TIM 180.

以下是profile里的关于password的设置类目解释:

    FAILED_LOGIN_ATTEMPTS
    设定登录到Oracle 数据库时可以失败的次数。一旦某用户尝试登录数据库的达到该值时,该用户的帐户就被锁定,只能由DBA能解锁。
    PASSWORD_LIFE_TIME
    设定口令的有效时间(天数),一旦超过这一时间,必须重新设口令。缺省为180天(11g,10gUNLIMITED).
    PASSWORD_REUSE_TIME
    许多系统不许用户重新启用过去用过的口令。该资源项设定了一个失效口令要经过多少天,用户才可以重新使用该口令。缺省为UNLIMITED.
    PASSWORD_REUSE_MAX
    重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数)。
    PASSWORD_LOCK_TIME
    设定帐户被锁定的天数(当登录失败达到FAILED_LOGIN_ATTEMPTS时)。
    PASSWORD_GRACE_TIME
    设定在口令失效前,给予的重新设该口令的宽限天。当口令失效之后回,在登录时会出现警告信息显示该天数。如果没有在宽限天内修改口令,口令将失效。
    PASSWORD_VERITY_FUNCTION
    该资源项允许调用一个PL/SQL 来验证口令。Oracle公司已提供该应用 的脚本,但是只要愿意的话,用户可以制定自己的验证脚本。该参数的设定就是PL/SQL函数的名称。缺省为NULL.

通过undo record找到对应回滚对象信息

通过下面的语句查到回滚的事务:

select * from v$fast_start_transactions;

或者

select * from x$ktuxe where KTUXECFL='DEAD' AND KTUXESTA!='INACTIVE'

根据上面的语句,我们可以查到事务的undo的segment id(USN或者KTUXEUSN),undo的slot(SLT或者KTUXESLT),和undo的sequence(SEQ或者KTUXESQN)。
根据USN,我们可以查到undo segment:

select * from v$rollname where usn=xxx

根据上面的语句,我们可以dump出undo block:

alter system dump undo block "<undo segment name>" XID <USN> <SLT> <SEQ>;

alter system dump undo block "_SYSSMU33$" XID 33 56 7463;

然后根据dump出来的trace file,可以判断object number(objn)或者object id(objd)


cat xxx.trc |grep objn

* Rec #0x45 slt:0x1f objn:223312(0x00092c2a) objd:223312 tblspc:20(0x00000014)

* Rec #0x44 slt:0x1f objn:223312(0x00092c2a) objd:223312 tblspc:20(0x00000014)

* Rec #0x43 slt:0x1f objn:223312(0x00092c2a) objd:223312 tblspc:20(0x00000014)

* Rec #0x42 slt:0x1f objn:223312(0x00092c2a) objd:223312 tblspc:20(0x00000014)

* Rec #0x41 slt:0x1f objn:223312(0x00092c2a) objd:223312 tblspc:20(0x00000014)

* Rec #0x40 slt:0x1f objn:223312(0x00092c2a) objd:223312 tblspc:20(0x00000014)

* Rec #0x3f slt:0x1f objn:223312(0x00092c2a) objd:223312 tblspc:20(0x00000014)

...

此时,我们根据object id,可以在数据库里面找到回滚的object的对象:

select * from dba_objects where object_id='223312';

关于11g数据库基础审计的初始注意事项

目前11g已经有些年份了,大部分的系统已经迁移或者升级到11g的版本,而后续上线的大部分系统都是以11g为主.在11g以上的版本中数据库的基础审计和以往版本不同,11g以后的版本默认是开启的.基础审计这个功能大部分时候并不是很受关注,一来是比较简单就能设置完成,二来国内对信息数据安全的不够注重的环境也让很多dba在数据库安全层面未有太多落实.所以在基础设计这块在数据库构建之处也容易忽视.

审计在默认开启的情况下,主要影响是2方面:

    1.审计记录在长久记录后,会占用较多的空间,而审计记录表默认是存放在system表空间.
    2.在审计记录膨胀后,容易对一些类型的应用产生性能上的影响.

在初始构建11g实例时候,对审计处理并不是一味的关闭处理,主要是考虑开启的必要性需求,以及如果开启后如何去管理审计记录.以前我遇见过这样的需求,主要是针对审计开启后的审计记录管理问题.关闭倒是容易,一条命令就可以结束.反倒是开启后对审计记录的管理.可以参考以下2个文章对审计记录表存放位置挪移到别的表空间,同时制定定期的删除策略.

从ASM直接读取数据的研究思考

从ASM直接读取数据分为2种情况考虑

1.直接读取datafile文件
2.直接读取datafile中的objects

直接读取datafile文件的原理,目前MDATA和AMDU均实现了此功能

先从第一种从ASM中直接读取datafile的情况,这种case也是比较简单的。Datafile在文件系统中的单位是8k块为单位,在从数据字典中读取对象时候从对应的块地址可以直接读文件获取,因此文件系统中用mdata,dul等工具恢复对象的实现方式上虽然复杂,但是相比asm要简单不少,ASM也是一种文件系统,只是是封装的文件系统,普通的操作系统不能直接访问asm中的对象,必须通过asm,asm中构成asm文件的单位是au,因此datafile也是由多个au组成,而au是根据asm的条带大小和条带深度分部的,datafile只能存放于ASM 的DG中,不能跨DG,每个DG由1个或者多个disk组成,在DG中组成datafile的au是根据条带算法分部在dg里面的多个盘里的,因此需要从asm中恢复出datafile,需要知道au的分部情况,每个datafile包含au的地址范围。而ASM中dg的file directory(文件分配表)则可以读到此信息,因此只要找到对应文件的file dir就能找到对应asm file的au分布信息。有兴趣可以研究下asm的1号文件,每个文件在1号文件中都有4k的au 分布信息,1号文件至少为2个AU,海波写过一篇文章专门介绍过用c语言实现从asm中读取datafile,当然我看到的版本只处理30M au分布信息的file diretory(第一个AU),如果文件number超过256则需要在下一个au中读取相关文件的au分布信息。到这里恢复datafile已经不是什么大问题。

直接读取datafile中的objects的原理思路

这个会比较麻烦,用一句话提示吧,数据字典固定同时构建一份au分布信息表类似X$KFFXP。

Oracle数据库的企业版,标准版,个人版之间的差异

其实Oracle也可以很便宜,标准版在很多情况下已经够用了,下面的信息是对比oracle数据库企业版,标准版,个人版之间的差异.

标准版比企业版主要缺少的功能如下:
1、不支持Oracle Data Guard.想要高可用性的客户,就不能选择标准版)
2、一些Online操作,比如Online index maintenance,Online table redefinition等不支持
3、备份和恢复的某些操作受限,比如不支持Block级别的恢复(Block-level media recovery),不支持并行备份和恢复(Parallel backup and recovery),多重备份(Duplexed backup sets)等等
4、Flashback功能,在标准版中Flashback Table,Flashback Database, Flashback Transaction Query都是不支持的 5、VPD(Virtual Private Database)不支持
6、FGA(Fine-grained auditing)不支持
7、Partitioning,分区也不支持
8、Data compression,比如表压缩,分区压缩都不支持
9、Bitmapped index and bitmapped join index,不支持,(如果是数据仓库系统就不能选择标准版了)
10、Export transportable tablespace,(注意,这里只是导入不支持),但是Import transportable tablespace,包括跨平台的import都是支持的,也就是说你如果选择了标准版,那么想把数据库简单地转移到其它平台上是比较费劲的事情了 11、一些并行操作都不支持,包括Parallel query,Parallel DML,Parallel index build,Parallel Data Pump export and import。
12、不支持Streams,又少了一个高可用性的可行性方案 13、不支持Advanced Replication的multimaster方式,再少一个高可用性方案,当然实体化视图的复制方案仍然是支持的 14、不支持Connection Manager

以下是官方描述的不同版本企业版、标准版之间的差异:

Differences between Enterprise, Standard and Personal Edition

Starting point: Note 465455.1

Content of this note:

Server
Version Note # ABSTRACT
====================================================================

8.1 NOTE.112591.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 8.1

9.0 NOTE.161556.1 Differences between Oracle9i Personal, Standard and Enterprise on NT/2000

9.2 NOTE.269040.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 9.2

10.1 NOTE.271886.1 Differences Between Different Editions of Oracle Database 10G

10.2 NOTE.465465.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 10.2

11.1 Note.465460.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 11.1

11.2 Note.1084132.1 Differences Between Enterprise, Standard and Personal Editions on Oracle 11.2

这里将11.2的差异说明贴出:

转到底部转到底部

I

APPLIES TO:

Oracle Database – Enterprise Edition – Version 11.2.0.1.0 to 11.2.0.3 [Release 11.2]
Information in this document applies to any platform.
***Checked for relevance on 25-Mar-2015***

DETAILS

Feature/Option SE1 SE EE Notes
High Availability
Oracle Fail Safe Y Y Y Windows only
Oracle RAC One Node N N Y Extra cost option
Oracle Data Guard—Redo Apply N N Y
Oracle Data Guard—SQL Apply N N Y
Oracle Data Guard—Snapshot Standby N N Y
Oracle Active Data Guard N N Y Extra cost option
Rolling Upgrades—Patch Set, Database, and Operating System N N Y
Online index rebuild N N Y
Online index-organized table organization N N Y ALTERTABLEMOVEONLINEoperations
Online table redefinition N N Y Using theDBMS_REDEFINITIONpackage
Duplexed backup sets N N Y
Block change tracking for fast incremental backup N N Y
Unused block compression in backups N N Y
Block-level media recovery N N Y
Lost Write Protection N N Y
Automatic Block Repair N N Y Requires Active Data Guard option
Parallel backup and recovery N N Y
Tablespace point-in-time recovery N N Y
Trial recovery N N Y
Fast-start fault recovery N N Y
Flashback Table N N Y
Flashback Database N N Y
Flashback Transaction N N Y
Flashback Transaction Query N N Y
Oracle Total Recall N N Y Extra cost option
Scalability
Oracle Real Application Clusters N Y Y Extra cost with EE, included with SE
Automatic Workload Management N Y Y Requires Oracle Real Application Clusters
Performance
Client Side Query Cache N N Y
Query Results Cache N N Y
PL/SQL Function Result Cache N N Y
In-Memory Database Cache N N Y Extra cost option
Database Smart Flash Cache N N Y Solaris and Oracle Enterprise Linux only
Support for Oracle Exadata Storage Server Software N N Y
Security
Advanced Security Option N N Y Extra cost option
Oracle Label Security N N Y Extra cost option
Virtual Private Database N N Y
Fine-grained auditing N N Y
Oracle Database Vault N N Y Extra cost option
Secure External Password Store N N Y
Development Platform
SQLJ Y Y Y Requires Oracle Programmer
Oracle Developer Tools for Visual Studio .NET Y Y Y Windows only
Microsoft Distributed Transaction Coordinator support Y Y Y Windows only
Active Directory integration Y Y Y Windows only
Native .NET Data Provider—ODP.NET Y Y Y Windows only
.NET Stored Procedures Y Y Y Windows only
Manageability
Oracle Change Management Pack N N Y Extra cost option
Oracle Configuration Management Pack N N Y Extra cost option
Oracle Diagnostic Pack N N Y Extra cost option
Oracle Tuning Pack N N Y Extra cost option, also requires the Diagnostic Pack
Oracle Provisioning and Patch Automation Pack N N Y Extra cost option
Oracle Real Application Testing N N Y Extra cost option
Database Resource Manager N N Y
Instance Caging N N Y
SQL Plan Management N N Y
VLDB, Data Warehousing, Business Intelligence
Oracle Partitioning N N Y Extra cost option
Oracle OLAP N N Y Extra cost option
Oracle Data Mining N N Y Extra cost option
Oracle Data Profiling and Quality N N Y Extra cost option
Oracle Data Watch and Repair Connector N N Y Extra cost option
Oracle Advanced Compression N N Y Extra cost option
Basic Table Compression N N Y
Bitmapped index, bitmapped join index, and bitmap plan conversions N N Y
Parallel query/DML N N Y
Parallel statistics gathering N N Y
Parallel index build/scans N N Y
Parallel Data Pump Export/Import N N Y
In-memory Parallel Execution N N Y
Parallel Statement Queuing N N Y
Transportable tablespaces, including cross-platform N N Y Import of transportable tablespaces supported into SE, SE1, and EE
Summary management—Materialized View Query Rewrite N N Y
Asynchronous Change Data Capture N N Y
Integration
Basic Replication Y Y Y SE1/SE: read-only, updateable materialized view
Advanced Replication N N Y Multi-master replication
Oracle Streams Y Y Y SE1/SE: no capture from redo
Database Gateways Y Y Y Separate product license
Messaging Gateway N N Y
Networking
Oracle Connection Manager N N Y Available via a custom install of the Oracle Database client, usually installed on a separate machineSee “Oracle Connection Manager” for more information
Infiniband Support N N Y
Content Management
Oracle Spatial N N Y Extra cost option
Semantic Technologies (RDF/OWL) N N Y Requires Oracle Spatial and the Oracle Partitioning option