一般,每个数据库都应该至少有一名数据库管理员,但是现在由于成本等原因,只有大公司才会有专门的dba;
dba的职责:
1,安装和升级oracle数据库;
2,建立表空间,表,视图,索引等;
3,制定并实施数据库备份和恢复计划;
4,数据库的权限管理和调优,故障排除等;
5,对于高级dba,要求能参与项目刚开发,会编写sql语句,存储过程,触发器,规则,约束,包等;
Sys和system的区别:
Sys是权限最高的用户,拥有dba,sysoper,sysdba权限,登入时必须as sysdba,或者assysoper登入;
在oracle中,每个用户对用一个方案,在sys方案中,存储了基表,和动态视图;
System拥有dba,sysdba权限:他的方案里也存放了一些很重要的操作数据;
这里的sysoper权限好像应用不大,很少用,下面是比较sysdba和sysoper的不同;
sysdba权利最大,该有的权利都有,sysoper有些权利没有:改变数据库字符集,创建,删除数据库,sysoper只能完全恢复数据库,不能执行部分恢复;不能查看用户数据,登陆后用户是public;关闭启动数据库的两条命令为:startup, shutdown,只有sysdba拥有这个权利;
高级的dba能够进行调优工作,主要是对数据库的配置参数进行调整,参数大约200多个,可以以sysdba身份用show paramter查看这些参数,
也可以再D:\oracle\admin\myOra\pfile\ init.ora进行修改,当然也可在图形界面修改。
备份和恢复:
逻辑备份和物理备份:
1, 逻辑备份:(只能在数据库运行的状态)
导出:使用工具如export 等将数据对象的结构和数据导出到文件的过程;
导入:数据库损害后,用import利用备份文件把数据对象导入到数据库的过程。
2,物理备份:可以再数据库关闭的状态下进行。
导出分为:导出表,导出方案,导出数据库
导出命令:exp 这些都必须在控制台进行命令,oracle的bin目录下(因为这个目录下有exp.exe文件),我的安装在d盘:D:\oracle\ora92\bin
导出表:
第一种:导出自己的表:exp userid=scott/tiger@myora tables=(emp) file=d:\e1.dmp 导出多表,只需在括号内添加表名
第二种:sysdba导出别的用户的表:exp userid=system/xxxxxx@myora tables=(scott.emp) file=d:\e2.dmp
可否导出到别的文件,如d:\e1.txt 当然导出的表实际上没什么用处,只是为了恢复表吧
导出表结构:
有些时候我们对表的数据不感兴趣,只需导出表的结构,
同样可以导出自己的表结构和别人的表结构:同导出表的区别是只需在后面加上 rows=n : rows=n/y 表示是否要导出表中数据;
导出表及表结构其实还有一种很迅速的方式:在后面加上:direct =y ,这样在时间上会提高很多,至于为什么,我也不知道。
如:exp userid=system/zpg7016893@myora tables=(scott.emp) file=d:\e2.dmpdirect =y 注意要oracle的字符集与客户端字符集完全一致才可以;
导出方案:
导出方案,也很相识,只需把关键字table 改成owner,:如下:也可以导出多个方案:
exp userid=system/密码@myoraowner= scott file=d:\e5.dmp
导出数据库:
exp userid=system/密码@myora full=yinctype=complete file=d:\e6.dmp // inctype=complete表示增量发导出,下次导出时,速度就快很多;以上就是数据库的不同层次上的备份操作,下面是恢复,也就是数据不同层次上的到入:
数据导入:
imp命令
1,导入表: imp userid=scott/tiger@myora tables=(emp) file=d:\e1.dmp; 导入表到当前用户;
impuserid=scott/tiger@myora tables=(emp) file=d:\e1.dmp touser=scott; 导入表到scott用户;
imp userid=scott/tiger@myora tables=(emp) filed=”d:\e1.dmp ignore=y”; ignore=y表示表结构存在了,就可以只导入数据:
2,导入表结构:imp userid=scott/tiger@myora tables=(emp) filed=”d:\e1.dmp rows=n”; rows=表示不导入数据行;
3,导入方案:
导入自身导出的方案:Imp userid=scott/tiger file=d:\e6.dmp
导入其他方案:imp userid=system/manager file=d:m6.dmp fromuser=systemtouser=scott;
4,导入数据库:
Imp userid=system/manager full=yfile=d:\e6.dmp