一. 作为一名开发者来说,经常需要导库是相当正常的事情,这里简单介绍下几种需要导库的情况跟背景。
1. 就好比说有些情况,在自己本地的数据库,无法重现出问题,最好导库过来。
因为不知道整个库是哪些脚本没执行,或是哪些脚本已经修改了,无法一一排查的情况下。
2. 有些数据本地没有的,甚至是无法做出来的数据,也是必须导库。
本地无法做出需要的数据,进行数据校验的情况下。
3. 最坏的情况下,就是数据库被破坏了,或是因某种情况,无法继续使用了,也只能重新导库。
3. 最坏的情况下,就是数据库被破坏了,或是因某种情况,无法继续使用了,也只能重新导库。
4. 接下来我们来简单看下oracle 导库的语句
drop user c##v_aa cascade; --删除原来的数据库
CREATE USER c##v_aa IDENTIFIED BY c##v_aa DEFAULT TABLESPACE users; --创建账户
GRANT CONNECT,RESOURCE,CREATE DATABASE LINK TO c##v_aa; --给账户授权
Grant dba to c##v_aa ; --给账户赋予dba的权限
imp c##v_aa/c##v_aaorcl fromuser=aa touser=c##v_aa file=d:\aa.DMP
用户名 密码 服务器 哪个用户导出来的 导入用户名 库文件路径
这里要注意,导库时,必须先有一个已经存在的账户.
上面语句是在oracle 命令行下边执行的.
因为导库时防止有用户未退出当前库,此时库是无法导入的,以下语句是用来查看哪些进程是没有退出的
select username,sid,serial# from v$session where username = C##V_AA'
用户名必须是大写的
注意:上边的查询语句 用户名必须是大写的,否则在库里边查不到记录
5. 查出来后之前用以下语句杀死进程,强制退出,方能继续导库。
注意:这里要确保导库期间,不能有任何用户操作数据库,这是导数据库的前提。假如有其他开发人员都在用这个库的情况下,
记得要提醒备份好自己的修改语句,避免导完库后,之前所有的修改都被覆盖了。
alter system kill session '130,50961';
6. 最后成功导库,又可以重新进行开发了。
以上是自己的做为资深开发的一些个人经历,把这些经验分享给大家,希望以后大家在从事开发中,可以避免不必要的麻烦,跟浪费时间精力。
要是大家喜欢我的文章的话,可以在文章下留言或是联系我,共同进步,共同探讨开发的一些案例,促进彼此间的交流,分享一些日常的开发趣事。
- THE END -
最后修改:2024年1月25日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://alexlee.club/oracle-%e5%af%bc%e5%ba%93%e8%af%ad%e5%8f%a5/2023/03/21/
共有 0 条评论