Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43438
  • 博文数量: 33
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-24 10:11
文章分类
文章存档

2013年(33)

我的朋友

分类: Oracle

2013-07-24 10:29:37

数据库版本:SQL*Plus: Release 10.2.0.4.0

搭建新库的环境,在新库上执行:
#创建临时表空间
create temporary tablespace wjl_temp
tempfile '/home/oracle/app/oracle/oradata/wjl/wjl_temp01.dbf'
size 32M
autoextend on
next 32M maxsize 2048M
extent management local;


#创建表空间
create tablespace wjl_data
logging
datafile '/home/oracle/app/oracle/oradata/wjl/wjl_data01.dbf'
size 32M
autoextend on
next 32M maxsize 30720M
extent management local;


#创建用户
create user wjlcn identified by wjlcn
default tablespace wjl_data
temporary tablespace wjl_temp;


#授权dba权限给用户
grant dba to wjlcn;


#查看某一用户的信息
SQL> select * from dba_users where username='wjlcn';


第一次导数据,sql文件是通过工具导出的,然后直接通过sqlplus导入,在导入的时候,需要设置:SET DEF OFF;

但由于漏了部分数据,如sequences,所以exp重新导了一边。
导出数据:
exp wjlcn/wjlcn   BUFFER=64000 FILE=/tmp/wjlcn.dmp OWNER=wjlcn

在导入数据的时候,先将用户下的数据清除:
执行:drop user wjlcn cascade;  时提示当前用户wjlcn还有其他连接,检查v$session发现有十几个连接。
尝试删除session:
select 'alter system kill session '||CHR(39)||SID||','||SERIAL#||CHR(39)||';' from v$session where username='WJLCN';
同时可以删除进程,或者等待oracle自动清除:
SELECT 'kill -9 '||SPID FROM V$PROCESS WHERE ADDR IN (
SELECT ADDR FROM V$PROCESS WHERE PID<>1
MINUS
SELECT PADDR FROM V$SESSION);

清除完当前用户的连接后,顺利执行:drop user wjlcn cascade;  
重新创建用户:create user wjlcn identified by wjlcn
default tablespace wjl_data
temporary tablespace wjl_temp;
赋予用户相对应的权限:假设dba权限 grant dba to wjlcn;

开始导入数据:
imp wjlcn/wjlcn BUFFER=64000 FILE=/tmp/wjlcn.dmp FROMUSER=wjlcn TOUSER=wjlcn

导完后显示:Import terminated successfully without warnings.


阅读(399) | 评论(0) | 转发(0) |
0

上一篇:Oracle中的Raw类型

下一篇:Oracle高级复制

给主人留下些什么吧!~~