创建新的用户必须以 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;
drop user credituser cascade;
cascade 参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数
删除oracle用户credituser 出现下面对的错误:
sql>drop user credituser cascade;
drop user credituser cascade
ERROR 位于第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 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数
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
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
原文链接:https://www.f2er.com/oracle/213164.html