ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 把正式库的最新数据全部迁移到测试库上

把正式库的最新数据全部迁移到测试库上

原创 Linux操作系统 作者:mengzhaoliang 时间:2009-08-07 18:36:26 0 删除 编辑


1、先备份测试库的数据,可以用exp导出
可以用UNIX中的vi写过简单的脚步backup20090807.sh
内容:
$ cat backup20090807.sh
exp scott/scott  file=20090807.dump log=20090807.log
授权:
$chmod 777 .sh
运行上面的脚步即可

2、删除测试库的用户及其管理的数据
SQL> drop user scott cascade;
drop user scott cascade
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected

3、如果有当前的数据库用户连接则不能删除,踢掉当前的连接用户
先查出当前在线的用户信息
SQL> select sid,serial# from v$session where username='scott';

       SID    SERIAL#
---------- ----------
       522          1
       527          3
       530          3

踢掉该数据库用户的连接:
alter system kill session  '522,1';

如果很多用户连接的话,可以用下面查询出来,形成脚步,一次踢掉所有连接的用户session。
(其中' 可以用'''表示查询出来,当第二个单引号充当转义角色,第三个单引号被转义,自然就缺少与第一个单引号匹配的单引号了,出现了孤立的单引号

select 'alter system kill session '''  || sid||','||serial# ||''';' from v$session where username='scott';

4、如果很多用户在连接数据库,数据库运行关闭的话,可以先关闭数据库,在删除用户。就不要踢掉那些在线用户了。
关闭数据库
SQL> shutdown abort   (为了节省时间,可以用shutdown abort,或者shutdown immediate)
ORACLE instance shut down.

SQL> startup restrict   (进入限制模式,普通用户不能连接)
ORACLE instance started.

Total System Global Area 3221225472 bytes
Fixed Size                  2024304 bytes
Variable Size            1157631120 bytes
Database Buffers         2046820352 bytes
Redo Buffers               14749696 bytes
Database mounted.
Database opened.
SQL> drop user scott cascade;   (级联删除用户)

删除用户后,可以关闭数据库,在启动到正常模式
SQL>shutdown abort;

SQL>startup;


5、在测试库建立刚才删除的用户
create user scott
identified by scott
tablespace default PUB_NORM_SPACE;

6、授权
grant dba to scott;

7、把最新的正式库数据导入到测试中(如果是windows可以写个.bat文件,在unix或Linux写个.sh文件,把下面的脚步写入文件中)
imp  scott/scott@TESTOMS full=y rows=y ignore=yes grants=no file=E:\lhomsoraclebak\lhoms25.dump  log=F:\lhomsoraclebak\Imp40Database\20090807Imp.log

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-611639/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-01-30

  • 博文量
    335
  • 访问量
    2910166