oracle--创建表空间,临时表空间,创建用户,授权,导入数据库

1   查询

查询所有表空间

select * from sys.dba_tablespaces;

查询当前用户的所有目录

select * from dba_directories;

查询所有用户

select * from dba_users;

删除

删除用户

drop user jxythtest cascade;   其中jxythtest 为用户名

删除表空间

drop tablespace jxyth including contents and datafiles cascade constraint; 其中jxyth为表空间

 

2 创建表空间(临时表空间系统默认为temp,自己搭建测试环境不创建也可以)--

CREATE TABLESPACE jxyth
LOGGING
DATAFILE 'D:\app\Administrator\oradata\orcl\jxyth.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;

其中 jxyth 为表空间名

D:\app\Administrator\oradata\orcl\jxyth.dbf    为表空间的存储地址

 3 创建临时表空间

create temporary tablespace jxyth_test
tempfile 'D:\app\Administrator\oradata\orcl\jxyth_test.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

jxyth_test 为临时表空间名

这里的临时表空间我设置为最大20480M了   如果需要的话可以设置为 2步骤一样不限制表空间的大小

 

4 创建用户

CREATE USER jxyth IDENTIFIED BY incon6699
ACCOUNT UNLOCK
DEFAULT TABLESPACE jxyth
TEMPORARY TABLESPACE TEMP;

其中第一行的 jxyth 为 用户名   incon6699为密码

第3行的jxyth 为表空间名

temp 为临时表空间名

5 授权--自己测试时一般会将dba权限赋给用户

GRANT CONNECT,RESOURCE,dba TO jxyth;

6  创建目录  此目录为你要导入的文件的目录  要注意权限问题

create directory dum as 'C:\app\Administrator\admin\orcl\dpdump\dpdump\';

7  导入

impdp jxyth/incon6699@orcl directory=dum dumpfile=EXPDAT.DMP logfile=export.log  REMAP_SCHEMA=olduser:newuser 

8   以前遇到过的问题或解决办法

1   impdp 和expdp        imp 和exp对应使用

2  创建目录时如果 用户没有dba权限,要用sys创建目录 并给用户赋 读 写等权限。或者切换到用户去查询当前所有目录看能不能查出你创建的目录

3   要导入的文件要存储在你的创建的目录下

4   如果你和我一样是小白 ,尽量创建时和  导出时的表空间名和用户名一致 否则导入时要标名 导出用户和现在用户

5   尽可能的使用 impdp 和expdp   因为exp导出时不会导出空表,而很多系统需要一些空表的存在

多用户导入导出

expdp 'xscxgxt_test/******@orcl' directory=DUM1 schemas=\(uufs_2020,xszhxy,xscxgxt_test,wj_zsxt,datacenter,stu2017\) dumpfile=sys_20220209.dmp logfile = sys_20220209.log;

用sys用户导出全库数据?

切换oracle 用户 并创建/uufdata/expdp

create directory expdp1 as '/uufdata/expdp';

 expdp \"/ as sysdba\"  directory=expdp1 dumpfile=oracle57_20220408.dmp  logfile=oracle57_20220408.log  full=y 

 

impdp xscxgxt_test/******@orclpdb1 directory=dum1 schemas=\(uufs_2020,xszhxy,xscxgxt_test,wj_zsxt,datacenter,stu2017\) dumpfile=sys_20220209.dmp table_exists_action=replace remap_tablespace=XSCXGXT:UUFS

XSCXGXT:UUFS  旧表空间名:新表空间名

括号前的斜杠是用来转义的。

只导出表结构?  https://www.cnblogs.com/monkSand/p/10858683.html

 

导出的时候老是提示这个,原因是 上面导出的 directory=expdp  对应的目录/uufdata/oracle/dump oracle 用户没有权限。解决办法就是上面加黑的部分

 

ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation

 

posted @ 2018-07-17 16:53  老街巷口熟睡的猫  阅读(449)  评论(0编辑  收藏  举报