好高兴啊,又可以吃营养快乐了,我擦?我的营养快乐呢?!
[微笑]又来学习oracle了,高高兴兴的打开电脑,又出错了,装上三天,每天都有不一样的错误,每天都有新感觉[微笑][微笑][微笑]
错误代码:ora-01033:oracle initialization or shutdown in progress
百度吧,找到一篇博客,问题相同,走一走吧 Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
跟着别人的步骤一步一步的走,走到第五步的时候炸了
哎,公将降大任于私人也,必先苦其心志,饿其…..滚[微笑]
又百度了一篇博客ORA-01589错误的解决方法
跟着这位大牛的步骤一步一步做,到恢复第二个介质文件的时候提示了
已应用的日志。
已完成介质恢复。
然后去执行最后一步
SQL> alter database open resetlogs;
数据库已更改。
去连接数据库,成功了!!!![抓狂]
好了!开始学习吧!
以下是正文
创建表空间
在oracle中数据表是按照表空间来进行管理的。也就是说,建表前,需要新建表空间。必须使用dba权限的用户创建。
创建表空间我们需要用sys或者system用户登录,才有权利去创建一个表空间,登录之后,创建表空间的sql代码为:
create tablespace sstm_space
datafile 'E:\app\system_space\sstm_space.dbf'
size 100m;
/**以下代码其实并不需要,有上面三行就足够了**/
autoextend on next 32m maxsize unlimited
logging
extent management local
segment space management auto;
提示:
tablespace SSTM_SPACE 已创建。
创建oracle用户
同一数据库中可以有多个用户,每个用户管理自己的数据库对象。比如数据库表、索引、视图等。。使用DBA权限用户创建。
oracle中的create user命令用于创建新用户。每个用户都有自己的默认表空间和临时表空间。如果没有指定,oracle就将system设为默认表空间,将temp设为临时表空间。
create user c##hsc identified by 123
default tablespace sstm_space;
在这里我们把上面创建的表空间当做用户c##hsc用户的默认表空间给他。
PS:oracle12C 创建用户时好像需要加 c##username,是使用这种格式的,建议看一下12c的新特性,再做测试吧!
查看用户的默认表空间:
select [username],[default_tablespace] from dba_users;
默认情况下用户是锁定状态的,解锁方法:
alter user [username] account unlock;
用户添加权限
connect:
临时用户,特别是那些不需要创建表的用户通常赋予该角色
resource:
更为可靠和正式的数据库用户可以授予该角色,可以创建表、触发器、过程等
DBA:
数据库管理员角色,拥有管理数据库的最高权限。一个具有DBA角色的用户可以撤销任何别的用户的甚至别的DBA权限,这是很危险的,所有不要轻易把该权限授予一些不是很重要的用户。
grant [权限名|角色名] to [用户]
revoke [权限名|角色名] from [用户]
也可以单独把某用户的表的权限授予给别的用户,比如:
grant select on c##hsc.student to c##scott;
/**这里我们把hsc用户的student表的访问权限授予了scott用户**/
Tips:在这里我遇到一个问题,当我授予connect,resource权限给hsc用户后,hsc用户立即就可以建表,但是我想insert的时候却遇到了没有sstm_space表空间访问权限的问题,我明明给了hsc用户这个默认表空间,却不能插入数据,很费解,于是我又给了DBA权限给hsc用户,立马就能insert数据了,然后我又revoke了DBA权限,这时依然能insert数据。我不知道是DBA的权限没有成功撤销还是因为当初resource权限没有成功授予的缘故,费解~
删除用户
drop user [username] cascade;
cascade是一个级联参数,代表删除用户时把他的默认表空间也删掉
删除表空间
drop tablespace (tablespaceName)
[including contents and datafiles]
这里的including代表把他的内容和数据文件也删掉
导出
关于导出,我们首先需要创建一个目录:
create directory mydir as 'E:\app\testdirectory';
然后把读取和写入这个目录的权限授予用户hsc:
grant read,write on directory mydir to c##hsc;
上面这些都是可以在sql工作表里执行的,但当我们真正需要导出的话,则需要去命令行里去:
expdp mm/oracle schemas=mm dumpfile=mm_data.dmp logfile=mm_bak.log directory=my_mobile_bak
。。。视频是这样讲的,但是我也没试,哈哈哈!