oracle 创建表空间、用户、导库

本贴最后更新于 2032 天前,其中的信息可能已经沧海桑田

oracle 创建表空间、用户、导库

创建表空间


在开发中,我们可以使用 oracle 自带的默认表空间,也可以根据项目创建自己的表空间,windows 和 linux 表空间文件存放的目录是不一样的,我们可以通过 oracle 自带的视图查询得知。

select name from v$datafile;

创建表空间:

create tablespace sz_tbs 
logging 
datafile '/oracledata/app/oracle/oradata/zxdb/szorcl/sz_tbs.dbf' 
size 1500m 
autoextend on 
next 100m maxsize 10000m;

备注:datafile 是表空间存放的默认目录,size 是表空间初始大小,next 是表空间超过初始值后每次自增的大小,maxsize 是表空间最大占用空间。

创建用户


oracle 的用户是和表空间关联的,每个用户都需要指定默认的表空间。

create user liuc identified by liuc123 default tablespace sz_tbs;

grant resource,connect,authenticateduser to liuc;

grant dba to liuc;    --授予dba权限,慎用

revoke dba from liuc; --删除权限

导库


  • 数据库导出
#将数据库实例ORCL完全导出,liuc需有dba权限
exp liuc/liuc123@ORCL file=C:\liuc.dmp full=y
#导出用户liuc的表
exp liuc/liuc123@ORCL file=C:\liuc.dmp owner=liuc
#只导出表结构
exp liuc/liuc123@ORCL file=C:\liuc.dmp owner=liuc rows=n;
#选择table1、table2导出
exp liuc/liuc123@ORCL file=C:\liuc.dmp owner=liuc tables=(table1,table2) 
#将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp liuc/liuc123@ORCL file=C:\liuc.dmp owner=liuc tables=(table1) query=\" where filed1 like '00%'\"
......
  • 数据库导入

首先 dmp 数据库文件导入到目标数据库,使用 imp 命令,需要表空间的名字一致,我们可以使用文本编辑器将 dmp 文件打开,将文件中源表空间名全部替换为目标表空间名。

1559273461709

再者,如果源数据库和目标数据库 oracle 的版本不一致的话,dmp 文件也是无法导入的,这时候需要修改 dmp 的头部版本号,同样使用文本编辑器打开 dmp,将 V12.02.00 改为你目标数据库的版本号。

1559273596582

备注:文本编辑器推荐使用 nodepad++,如果 dmp 超过 1G 推荐使用 EmEditor。

imp liuc/liuc123@ORCL file= C:\liu.dmp full=y
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    105 引用 • 127 回帖 • 370 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
upaths
Artists used the lies to tell the truth, while politicians used them to cover the truth up.