Oracle基本操作

本文介绍了如何在Oracle中进行基本的数据库管理操作,包括创建和删除表空间,创建用户并指定默认表空间,分配角色和权限。此外,还详细讨论了在备份和还原数据库过程中涉及的LOB类型字段问题,提供了三种解决方案,如通过ignore选项导入,创建相同表空间或执行空间迁移命令来处理导入时的表空间错误。
摘要由CSDN通过智能技术生成

--创建表空间“HSJ_IV”
create tablespace HSJ_IV 
logging 
datafile 'D:\HSJ_IV_DB\HSJ_IV_data.dbf' --数据库文件位置
size 50m 
autoextend on 
next 50m maxsize 20480m 
extent management local;

 

--删除表空间
--前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除
drop tablespace zfmi including contents and datafiles cascade onstraints;

--including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数
--including datafiles 删除表空间中的数据文件
--cascade constraints 同时删除tablespace中表的外键参照

 

--创建用户“HSJ_IV69”,并指定默认表空间和零时表空间TEMP
CREATE USER HSJ_IV69 IDENTIFIED BY m123
DEFAULT TABLESPACE HSJ_IV
TEMPORARY TABLESPACE TEMP;

--删除用户以及用户所有的对象
--cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数
drop user zfmi cascade;

 

--给用户分配角色
GRANT "RESOURCE" TO HSJ_IV69 WITH ADMIN OPTION;
GRANT "DBA" TO HSJ_IV69 WITH ADMIN OPTION;
GRANT "CONNECT" TO HSJ_IV69 WITH ADMIN OPTION;
ALTER USER HSJ_IV69 DEFAULT ROLE "RESOURCE","DBA","CONNECT";

--给用户赋予权限
GRANT CREATE TYPE TO HSJ_IV69 WITH ADMIN OPTION;
GRANT UNLIMITED TABLESPACE TO HSJ_IV69 WITH ADMIN OPTION;
GRANT ALTER ANY TYPE TO HSJ_IV69 WITH ADMIN OPTION;
commit;

--备份数据库
  exp HSJ_IV69/m123@orcl file=c:/HSJ_IV.dmp owner=HSJ_IV69

--还原数据库
--还原数据库前要先创建目标表空间和用户(HSJ_IV_New)
  imp HSJ_IV_New/m123@orcl file=c:/HSJ_IV.dmp fromuser=HSJ_IV69 touser=HSJ_IV_New

--备份部分表
  exp HSJ_IV69/m123@orcl file=c:/HSJ_IV.dmp tables=(MESBAOMAPPING,MESBFEDERAL,MESBFN,MESBLOG,MESBLOGIN,MFRAME)

--还原部分表
  imp HSJ_IV_New/m123@orcl  file=c:/HSJ_IV.dmp  tables=(MP_MLAW_ARTICLETABLE,MP_MLAW_BRHISTORY,MP_MLAW_GATEGORY,MP_MLAW_SOURCE) ignore=y

 

blob、clob类型导入

问题:

迁移数据库时,如果表中存在LOB类型字段(BLOB、CLOB等),IMP时失败,提示表空间不存在。

原因:
 是LOB类型的数据全部存储在表空间中,表中只存放指针,即使在建表时没指定表空间,数据也全部存入该数据库默认表空间中。

解决方法:

1、导入时凡是碰到blob字段类型都出错,提示表空间不存在
IMP-00017: 由于 ORACLE 的 959 错误,以下的语句失败

对于正在运作的应用数据库,肯定不能临时创建一个表空间。
对于大型的DMP导出文件,也不能直接编辑,修改表空间。
这种情况:只能事先创建好目标表,在建表的时候用LOB子句指定表空间,在导入的时候加上 ignore=y 即可


2、在被导入数据库中创建与原数据库名称相同表空间,修改默认表空间为此表空间。若在建表时指定了LOB字段表空间,则在被导入数据库中创建存放此LOB字段表空间。

 

3、若被导入数据库中强制指定其他表空间存储LOB字段,可在第一步导入数据后,执行空间迁移命令一定LOB数据到指定的表空间。

命令:
alter table tb_name move tablespace tbs_name lob (col_lob1,col_lob2) store as(tablesapce tbs_name); 
tb_name :表名
tbs_name:表空间名
col_lob1,col_lob2:LOB字段名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值