背景:从服务器把数据库导至本地 dmp文件已经拉下来了,却不知如何导入,遂请教大佬 总结如下:
代码语言:javascript复制--******************************************************************************************************************
--创建表空间语句
create tablespace element --表空间名字
logging --是否生成创建日志 nologging不生成可加快创建速度
datafile 'D:dev-softwareOracleoradataORCLelement_hn.dbf' --物理文件名及路径
size 20480m --表空间大小
autoextend on --自动增长
next 500m maxsize 20480m --每次扩展大小及最大大小
extent management local; --本地管理表空间是通过位图管理的,这是最重要的子句,说明了表空间如何管理范围。一旦你声明了这个子句,只能通过移植的方式改变这些参数。
--******************************************************************************************************************
--为表空间追加一个数据文件
alter tablespace element --表空间名字
add datafile 'D:dev-softwareOracleoradataORCLelement_hn.DBF' --追加的物理文件名及路径
size 20480m --表空间大小
autoextend on --自动增长
next 1024m maxsize unlimited; --没有最大限制
--******************************************************************************************************************
-- Create the user --创建用户分配表空间
create user 用户名 identified by 密码 --用户名及密码
default tablespace 表空间 --指定表空间
temporary tablespace 临时表空间 --临时表空间
profile DEFAULT;
--******************************************************************************************************************
-- Grant/Revoke role privileges --给用户授予权限
grant connect to 用户名; --赋予用户创建连接的权限
grant dba to 用户名; --赋予用户数据库管理员的权限
grant resource to 用户名; --赋予用户创建实体的权限
--******************************************************************************************************************
--导入数据
imp 用户名/密码@orcl file=c:orabackuphkbfull.dmp log=c:orabackuplog.log full=y
--******************************************************************************************************************
另外给出由这次操作学会的几个关键性知识点:
改变表空间(game)状态
- 使表空间脱机 ALTER TABLESPACE game OFFLINE; 如果是意外删除了数据文件,则必须带有RECOVER选项 ALTER TABLESPACE game OFFLINE FOR RECOVER;
- 使表空间联机 ALTER TABLESPACE game ONLINE;
- 使数据文件脱机 ALTER DATABASE DATAFILE 3 OFFLINE;
- 使数据文件联机 ALTER DATABASE DATAFILE 3 ONLINE;
- 使表空间只读 ALTER TABLESPACE game READ ONLY;
- 使表空间可读写 ALTER TABLESPACE game READ WRITE;
用户权限
CONNECT,RESOURCE,DBA是ORACLE系统的三个内置角色,角色权限如下:
- CONNECT:拥有Connect权限的用户只可以登录ORACLE,不可以创建实体,不可以创建数据库结构。
- RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
- DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。 Oracle内置的connect、resource和dba三个标准角色说明.
创建表空间末尾的(extent management DICTIONARY | LOCAL)的含义
代码语言:javascript复制[AUTOALLOCATE | UNIFORM [SIZE INTEGER[K | M]]]
这是最重要的子句,说明了表空间如何管理范围。一旦你声明了这个子句,只能通过移植的方式改变这些参数。
如果希望表空间本地管理的话,声明local选项。本地管理表空间是通过位图管理的。autoallocate说明表空间自动分配范围,用户不能指定范围的大小。
只有9.0以上的版本具有这个功能。uniform说明表空间的范围的固定大小,缺省是1m。
不能将本地管理的数据库的system表空间设置成字典管理。oracle公司推荐使用本地管理表空间。
如果没有设置extent_management_clause,oracle会给他设置一个默认值。如果初始化参数compatible小于9.0.0,那么系统创建字典管理表空间。
如果大于9.0.0,那么按照如下设置:如果没有指定default storage_clause,oracle创建一个自动分配的本地管理表空间。
否则,如果指定了mininum extent,那么oracle判断mininum extent 、initial、next是否相等,以及pctincrease是否=0.如果满足以上的条件,oracle创建一个本地管理
表空间,extent size是initial.如果不满足以上条件,那么oracle将创建一个自动分配的本地管理表空间。
如果没有指定mininum extent。initial、那么oracle判断next是否相等,以及pctincrease是否=0。表示满足oracle创建一个本地管理表空间并指定uniform。
否则oracle将创建一个自动分配的本地管理表空间。
注意:本地管理表空间只能存储永久对象。如果你声明了local,将不能声明default storage_clause,mininum extent、temporary.