加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle创建删除用户 角色 表空间 导入导出数据库

发布时间:2020-12-12 16:09:05 所属栏目:百科 来源:网络整理
导读:创建新的用户必须以 system或者sysman (这二者的权限最大)的身份登录后才能创建,创建用户前必须先建好临时表空间和数据表空间两个表空间。 1、创建临时表空间 create temporary tablespace credit_temp tempfile '/home/oracle/app/jiagulun/jiagulun/cre

创建新的用户必须以 system或者sysman (这二者的权限最大)的身份登录后才能创建,创建用户前必须先建好临时表空间和数据表空间两个表空间。


1、创建临时表空间

create temporary tablespace credit_temp tempfile '/home/oracle/app/jiagulun/jiagulun/credit_temp.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;

说明:

1、credit_temp表空间的名字

2、/home/oracle/app/jiagulun/jiagulun 存放数据库文件的地方,一般是安装数据库后有控制文件,数据文件和日志文件的文件夹,再加上要创建表空间的名字+dbf(数据文件)

3、100M 表空间的初始大小

4、32M 表空间自动增长大小

5、2048M 表空间最大的大小

2、创建数据表空间

create tablespace credit logging datafile '/home/oracle/app/jiagulun/jiagulun/credit.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;


3、创建用户:create user credituser identified by credituser;

创建完成后,必须分配权限,否则链接不上数据库和sqlplus


4、分配权限:grant connect,resource,dba to credituser;


5、创建用户并指定表空间

create user credituser identified by credituser default tablespace credit temporary tablespace credit_temp;


6、删除用户以及用户所有的对象

drop user credituser cascade;

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

删除oracle用户credituser 出现下面对的错误:

SQL>drop user credituser cascade;


drop user credituser cascade

ERROR 位于第1行:

ORA-00604:递归SQL层1出现错误

ORA-24005:必须使用DBMS_AQADM.DROP_QUEUE_TABLE删除队列表处理方式,

先执行这条语句:alter session set events '10851 trace name context forever,level 2';

再执行:drop user credituser cascade;删除用户credituser


7、删除表空间

前提:删除表空间之前要确认该表空间没有被其他用户使用会后再做删除

drop tablespace credit including contents and datafiles cascade constraints;

including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数

include datafiles 删除表空间中数据文件

cascade constraints 同时删除tablespace 中表对的外键参照

如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭,可使用如下方法恢复:

下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行:

tablespace_name 是相应的表空间的名称。

$sqlplus / nolog

SQL>conn / as sysdba;

如果数据库已经启动,则需要先执行下面这行:

SQL>shutdown abort

SQL>startup mount

SQL>alter database datafile 'filename' offline drop

SQL>alter database open

SQL>drop tablespace tablespace_name including contents;


8、导入导出命令

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

数据导出

1.将护具看TEST完全导出,用户名system 密码manager 导出到d:/daochu.dmp中 exp system/manager@jiagulun file=d:/daochu.dmp full=y

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

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

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

exp credituser/credituser@jiagulun file=d:/daochu.dmp tables=(inner_notify、notify_staff_relat)

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

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

上面是常用的导出,对于压缩,既用winzip吧dmp文件可以很好的压缩,也可以在上面命令后面加上compress=y来实现


数据导入

1。将d:/daochu.dmp中的数据导入jiagulun数据库中。

imp system/manager@jiagulun file=d:/daochu.dmp

imp credituser/credituser@jialunlun full=y file=d:/daochu.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后就报错,对该表就不进行导入,在后面加上ignore=y就可以了、

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

imp sys/manager@jiagulun file=d:/daochu.dmp tables=(table1)


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

注意:

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

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

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

第一、启动sql*plus

第二、以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,create session to 用户名字

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读