Oracle创建删除用户 角色 表空间 导入导出数据库
创建新的用户必须以 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |