您的位置:首页 > 数据库 > Oracle

Oracle数据库用户管理和数据导入导出

2011-09-26 19:18 459 查看
Oracle数据库用户管理和数据导入导出比较完善的创建用户的语句如下:

  CREATE USER IDENTIFIED BY DEFAULT TABLESPACE TEMPORARY TABLESPACE ;

  以创建katrina用户为例:

  SQL> CREATE USER katrina IDENTIFIED BY iloveyou2 DEFAULT TABLESPACE users3 TEMPORARY TABLESPACE temp;User created.

  更改缺省数据表空间的语法为:

  alter database default tablespace ;

  更改缺省临时表空间的语法为:

  alter database default temporary tablespace ;

  给用户授予权限

  grant connect,resource to testserver_user;

  //以后以该用户登录,创建的任何数据库对象都属于test_temp 和test_data表空间,这就不用在每创建一个对象给其指定表空间了。

  解锁用户,用system登录

  alert user scott account unlock;

  表空间是数据文件的容器,在windows系统下,因为windows没有raw设备的概念,所以表空间变得可有可无了,但是在unix系统上,表空间起着文件系统的作用,它使oracle可以跳过操作系统,直接去管理物理存储设备,大大提高了系统性能(减少碎片产生,减少i/o调用层次)
一般是一个大的用户使用一个表空间,几个小的用户可以共用一个表空间。

  一般不是把所有的用户共用一个大的表空间,因为不便于Oracle管理。

  1、便于管理

  2、防止数据的丢失

  表空间下可以创建很多数据文件,可以将表空间中的数据文件放到不同的磁盘上,那么如果D盘坏了的话,只是D盘的 数据丢了,我放在E盘F盘的表空间中的数据文件没有丢

  3、将表空间中的数据文件放在不同的磁盘上,那么可以提高磁盘的读写效率。 Oracle创建用户、表空间、导入导出、...命令

  //创建临时表空间create temporary tablespace test_temp tempfile 'E:\oracle\product\10.2.0\oradata\testserver\test_temp01.dbf'
size 32m autoextend on next 32m maxsize 2048mextent management local;//创建数据表空间create tablespace test_dataloggingdatafile 'E:\oracle\product\10.2.0\oradata\testserver\test_data01.dbf' size 32m autoextend on next 32m maxsize 2048mextent management local;//创建用户并指定表空间create
user testserver_user identified by testserver_userdefault tablespace test_datatemporary tablespace test_temp;//给用户授予权限grant connect,resource to testserver_user; (db2:指定所有权限)

  数据导入导出命令:

  Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

  执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于 在Oracle 8i 中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。Oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。SQLPLUS.EXE调用EXP.EXE、
IMP.EXE所包裹的类,完成导入导出功能。

  下面介绍的是导入导出的实例。

  数据导出:

  1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中

  exp system/manager@TEST file=d:daochu.dmp full=y

  2 将数据库中system用户与sys用户的表导出

  exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)

  3 将数据库中的表inner_notify、notify_staff_relat导出

  exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

  4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

  exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

  上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

  也可以在上面命令后面 加上 compress=y 来实现。

  数据的导入

  1 将D:daochu.dmp 中的数据导入 TEST数据库中。

  imp system/manager@TEST file=d:daochu.dmpimp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y

  上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

  在后面加上 ignore=y 就可以了。

  2 将d:daochu.dmp中的表table1 导入

  imp system/manager@TEST file=d:daochu.dmp tables=(table1)

  基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

  注意:

  操作者要有足够的权限,权限不够它会提示。

  数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

  附录一:

  给用户增加导入数据权限的操作

  第一,启动sql*puls

  第二,以system/manager登陆

  第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

  第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE
SESSION TO 用户名字

  第五, 运行-cmd-进入dmp文件所在的目录,

  imp userid=system/manager full=y file=*.dmp或者 imp userid=system/manager full=y file=filename.dmp

  执行示例:

  F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp

  屏幕显示

  Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006

  (c) Copyright 2000 Oracle Corporation. All rights reserved.

  连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

  With the Partitioning option

  JServer Release 8.1.7.0.0 - Production

  经由常规路径导出由EXPORT:V08.01.07创建的文件已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)

  . 正在将AICHANNEL的对象导入到 AICHANNEL

  . . 正在导入表 "INNER_NOTIFY" 4行被导入

  准备启用约束条件...

  成功终止导入,但出现警告。

  附录二:

  Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.

  先建立import9.par,

  然后,使用时命令如下:imp parfile=/filepath/import9.par

  例 import9.par 内容如下:

  FROMUSER=TGPMS

  TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)

  ROWS=YINDEXES=YGRANTS=YCONSTRAINTS=YBUFFER=409600file==

/backup/ctgpc_20030623.dmplog==/backup/import_20030623.log

exp help=y

Export: Release 10.2.0.5.0 - Production on 星期二 9月 27 14:25:15 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

通过输入 EXP 命令和您的用户名/口令, 导出

操作将提示您输入参数:

例如: EXP SCOTT/TIGER

或者, 您也可以通过输入跟有各种参数的 EXP 命令来控制导出

的运行方式。要指定参数, 您可以使用关键字:

格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明 (默认值) 关键字 说明 (默认值)

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

USERID 用户名/口令 FULL 导出整个文件 (N)

BUFFER 数据缓冲区大小 OWNER 所有者用户名列表

FILE 输出文件 (EXPDAT.DMP) TABLES 表名列表

COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度

GRANTS 导出权限 (Y) INCTYPE 增量导出类型

INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)

DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)

LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)

ROWS 导出数据行 (Y) PARFILE 参数文件名

CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)

OBJECT_CONSISTENT 只在对象导出期间设置为只读的事务处理 (N)

FEEDBACK 每 x 行显示进度 (0)

FILESIZE 每个转储文件的最大大小

FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间

QUERY 用于导出表的子集的 select 子句

RESUMABLE 遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME 用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

TTS_FULL_CHECK 对 TTS 执行完整或部分相关性检查

VOLSIZE 写入每个磁带卷的字节数

TABLESPACES 要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE 调用 iAS 模式导出的模板名

成功终止导出, 没有出现警告。

imp help=y

Import: Release 10.2.0.5.0 - Production on 星期二 9月 27 14:26:38 2011

Copyright (c) 1982, 2007, Oracle. All rights reserved.

通过输入 IMP 命令和您的用户名/口令, 导入

操作将提示您输入参数:

例如: IMP SCOTT/TIGER

或者, 可以通过输入 IMP 命令和各种参数来控制导入

的运行方式。要指定参数, 您可以使用关键字:

格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例如: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N

或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字 说明 (默认值) 关键字 说明 (默认值)

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

USERID 用户名/口令 FULL 导入整个文件 (N)

BUFFER 数据缓冲区大小 FROMUSER 所有者用户名列表

FILE 输入文件 (EXPDAT.DMP) TOUSER 用户名列表

SHOW 只列出文件内容 (N) TABLES 表名列表

IGNORE 忽略创建错误 (N) RECORDLENGTH IO 记录的长度

GRANTS 导入权限 (Y) INCTYPE 增量导入类型

INDEXES 导入索引 (Y) COMMIT 提交数组插入 (N)

ROWS 导入数据行 (Y) PARFILE 参数文件名

LOG 屏幕输出的日志文件 CONSTRAINTS 导入限制 (Y)

DESTROY 覆盖表空间数据文件 (N)

INDEXFILE 将表/索引信息写入指定的文件

SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)

FEEDBACK 每 x 行显示进度 (0)

TOID_NOVALIDATE 跳过指定类型 ID 的验证

FILESIZE 每个转储文件的最大大小

STATISTICS 始终导入预计算的统计信息

RESUMABLE 在遇到有关空间的错误时挂起 (N)

RESUMABLE_NAME 用来标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT RESUMABLE 的等待时间

COMPILE 编译过程, 程序包和函数 (Y)

STREAMS_CONFIGURATION 导入流的一般元数据 (Y)

STREAMS_INSTANTIATION 导入流实例化元数据 (N)

VOLSIZE 磁带的每个文件卷上的文件的字节数

下列关键字仅用于可传输的表空间

TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)

TABLESPACES 将要传输到数据库的表空间

DATAFILES 将要传输到数据库的数据文件

TTS_OWNERS 拥有可传输表空间集中数据的用户

成功终止导入, 没有出现警告。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐