检查数据库,发现一堆属于sys.的invalid objects.
最后发现原来system用户被谁drop掉了。
然后尝试重新创建SYSTEM:
1.backup database use export .
exp sys/oracle full=y file=R:\fulll_bak\full_bak_12_23.dmp log=R:\fulll_bak\bak.log buffer=102400000
2.create USER SYSTEM and grant role to SYSTEM.
create usersystem identified by manager default tablespace system ;
sql>User created.
SQL> grant dba,create table,resource to system;
sql> Grant succeeded.
3.create dictionary table and other objects onwer by sys and system.
sql>@$ORACLE_HOME\rdbms\catalog.sql
sql>@$ORACLE_HOME\rdbms\catproc.sql
4.recompile all objects
sql>@$ORACLE_HOME\rdbms\utlrp.sql
创建完成,我检查一下system用户是否成功。
SQL> conn sys/oracle as sysoper;
Connected.
SQL>SQL> select count(*) from dba_objects where status='INVALID' and wner='SYS';
COUNT(*)
----------
0
发现无效对象也没了。貌似成功了。
不过这个只是我的一个实验没有官方认证的文档。推荐测试库使用。
如果是生产库,建议按用户将数据导出。然后重新创建新数据库。然后按用户将数据导入。
还有最后1点,密码还是设置的复杂点不用选oracle ,manager,change_on_install等默认的密码。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/92530/viewspace-521116/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/92530/viewspace-521116/