Oracle 生成系统数据导入测试系统及smarteam 连接更改

1. 生产系统
exp all data for user pdmadmin. (inlcude table, view, index)  to local disk.
check oracle NLS_LANG from registry Computer\HKEY_LOCAL_MACHINE\SOFTWARE\oracle\KEY-OraDB11g_home1

2. 测试系统
confirm NLS_LANG whether it is the same as production system.

2.1 sqlplus login with sys account
before drop, check user privileage:   select * from dba_role_privs where grantee='PDMADMIN';   
remember the result and we will authorize back to this account later.

drop user PDMADMIN : drop user PDMADMIN cascasde;
example:

用删除某个用户,但是删除时有用户连接

SQL> conn /as sysdba

Connected.

SQL> drop user test cascade;

drop user test cascade

*

ERROR at line 1:

ORA-01940: cannot drop a user that is currently connected

通过查看用户的进行,并kill用户进程,然后删除用户

SQL> select sid,serial# from v$session where username='test';

no rows selected

SQL> select sid,serial# from v$session where username='TEST';

       SID    SERIAL#

---------- ----------

       150       9019

 

SQL> alter system kill session '150,9019';

System altered.

注:这里有点怪,我明明通过kill杀掉了TEST的连接会话,但是我还可以通过test用户行sql的查询,所以造成了我继续查询出现了两条信息。

SQL> select sid,serial# from v$session where username='TEST';

       SID    SERIAL#

----------  ----------

       138       2947

       150       9019

这里我很纳闷,为什么ORACLEkill命令并不能真正杀掉进程吗?

SQL> alter system kill session '150,9019';

System altered.

SQL> alter system kill session '138,2947';     

System altered.

但是我在kill掉进程后,马上删除用户,用户就直接被删除了。难道ORACLEkill命令并不真正的杀掉用户进程,而只是表面上的一直现象,后面的操作才是真正的起作用?

SQL>  drop user test cascade;

User dropped.

2.2 re-create account PDMADMIN
create PDMADMIN account back:  create user PDMADMIN identified by Admin123;
give privileage to this account:   grante CONNECT, DBA,RESOURCE to PDMADMIN;

2.3 import database to this new account:
imp, 选择 dmp 文件
输入 PDMADMIN, 然后再输入 ..  回车开始导入。

完成。

smarteam 连接名称修改工具:smarteam\bin\DBRegistration.exe



请使用浏览器的分享功能分享到微信等