热衷技术,热爱交流
分类: Oracle
2013-09-01 11:08:10
1. 密码生命周期问题,可以通过下列办法解决:
首先查看当前设置值:
SYS >select * from dba_profiles where PROFILE=(select profile from dba_users where username='SIM') and
resource_name in ('FAILED_LOGIN_ATTEMPTS','PASSWORD_LIFE_TIME');
PROFILE |RESOURCE_NAME |RESOURCE|LIMIT
---------------|--------------------------------|--------|-------------------------------
DEFAULT |FAILED_LOGIN_ATTEMPTS |PASSWORD|10
DEFAULT |PASSWORD_LIFE_TIME |PASSWORD|UNLIMITED
手动修改密码生命周期(oracle 11g默认好像是180天,可以修改为永不过期)
SYS >alter profile default limit password_life_time unlimited;
Profile altered.
Elapsed: 00:00:00.32
有时候,错误最大尝试次数也会引发一些问题,可以设置为永不过期:
SYS >alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
Profile altered.
Elapsed: 00:00:00.08
2.解决db_files过小导致无法增加数据文件的问题:
查看db_files参数:
SYS >show parameter db_files;
NAME |TYPE |VALUE
------------------------------------|-----------|------------------------------
db_files |integer |200
修改前请把参数文件备份!!
这个参数最大值和操作系统有关,一般最大是65534。注意,这个值不可修改过大,因为修改过大可能会需要更大的共享池,修改后重启数据库,可能会因为共享池不足导致启动失败。
可以查看当前分配的共享池大小:
SYS >select CURRENT_SIZE,MIN_SIZE,MAX_SIZE,USER_SPECIFIED_SIZE from v$sga_dynamic_components where component='shared pool';
CURRENT_SIZE| MIN_SIZE| MAX_SIZE|USER_SPECIFIED_SIZE
------------|----------|----------|-------------------
159383552| 159383552| 159383552| 159383552
对于实际生产环境,把这个参数调整为3000,一般就足够了。 上述共享池152M,就可以把最大值设置成3000了。一般数据库共享池都是大于150m的,所以可以放心修改为3000
修改命令如下
SYS >alter system set db_files=3000 scope=spfile;
System altered.
修改完毕后需要重启数据库生效,然后验证修改是否成功:
SYS >show parameter db_files;
NAME |TYPE |VALUE
------------------------------------|----------------------|------------------------------
db_files |integer |3000
数据文件增长时候,可以使用下面sql命名查看当前有多少数据文件:
SYS > select count(*) from v$dbfile;
COUNT(*)
----------
33