本文共 1304 字,大约阅读时间需要 4 分钟。
[20180328]不要在sys建立用户对象.txt
--//好几年前遇到的问题,开发安装UTL_DBWS在linux下遇到问题,最后选择winows下安装.
--//随着业务增加,无法支撑,需要数据库组迁移到linux下,也就是我当时的安装笔记: --//--//但是在迁移中遇到一件我苦笑不得的事情,开发把整个应用建立在sys用户下,无语.好在应用不大,很容易移植.
--//实际上不要在sys下建立任何用对象.通过一个简单的例子加强印象.1.环境:
SYS@book> @ &r/ver1
PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionSYS@book> select count(*) from dba_objects where status = 'INVALID';
COUNT(*) ---------- 1--//仅仅有1个无效对象.
SYS@book> create table SYS.SYSTEM (id number);
Table created.SYS@book> select count(*) from dba_objects where status = 'INVALID';
COUNT(*) ---------- 176--//建立一个特殊的表system,就导致无效对象增加到176.
--//重新编译看看:SYS@book> @ /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlrp.sql
SYS@book> select count(*) from dba_objects where status = 'INVALID';
COUNT(*) ---------- 39--//依旧有39-1个.
SYS@book> drop table sys.system purge ;
Table dropped.SYS@book> @ /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlrp.sql
...SYS@book> select count(*) from dba_objects where status = 'INVALID';
COUNT(*) ---------- 1--//实际上建立在sys下还有许多问题,比如一些oracle特性无效,数据建立在system表空间等等.
--//总之下次拿这个例子来吓唬一下开发...转载地址:http://xnosl.baihongyu.com/