现用PB+ORACLE开发的系统,由于每年的数据有几十万条,导致数据库访问速度下降,所以想把每年的数据放到一个用户名下。就是先把正在使用的用户username备份username.dmp,然后新建一用户如usename2005,username2006并导入数据username.dmp。。最后把正使用的用户username的历史数据清除。。
问题是,建好用户导入完数据后,系统中的某些模块有时就会访问刚建立的用户中的数据,导致不能对表进行读写如数据窗口错误。把刚新建的用户删除就又恢复正常不知怎么才能解决用户的冲突问题?
问题是,建好用户导入完数据后,系统中的某些模块有时就会访问刚建立的用户中的数据,导致不能对表进行读写如数据窗口错误。把刚新建的用户删除就又恢复正常不知怎么才能解决用户的冲突问题?
此外注意权限.
不会出现你现有的程序访问刚刚建立的DB的情况。
除非你在中间出现DBLink等等,可以跨用户跨数据库的访问。
另外,数据窗口读写错误,让我怀疑是你的数据窗口有读取数据库结构的操作。
你需要仔细分析一下问题是否真的如你的设想,出现在数据冲突上。
在imp的时候
imp userid/password@sid file=filename fromuser=导出时使用的userid touser=想要导入哪个user就写哪个userid
我是按照这个imp userid/password@sid file=filename fromuser=导出时使用的userid touser=想要导入哪个user就写哪个userid但是只要drop user username cascade;
马上就又可以了
你可以这样测试一下:
1 导入后在原用户和新用户下执行select * from username2006.yourtable_name,如果能查询出数据,证明数据导入是成功的,如果原用户下不成功就证明是授权问题,原用户没有访问新用户的权限;
2 在新用户下为原用户的每一个对象建个同义词,如果是因为切换用户的逻辑问题且是切换到了新用户,这时程序应该可以正常运行了,那么你可以考虑查看并改进相关模块的代码;
3 如果还是不行,看是不是某些视图/包/过程等对象移植不成功,重新编译未能通过编译的对象