日期:2014-05-16  浏览次数:20613 次

oracle学习笔记8--数据库基本管理
每个oracle数据库应该至少有一名数据库管理员(DBA),对于一个小的数据库,一个DBA就够了,但是对于一个大的数据库可能需要多个DBA,分别担负不同的管理职责。那么一个数据库管理员的主要职责是什么呢?
1、 安装和升级oracle数据库
2、 建库、表空间、表、视图、索引……
3、 制定并实施备份与恢复计划
4、 数据库权限管理、调优、故障排除
5、 对于高级DBA,要求能参与项目开发,会编写SQL语句、存储过程、触发器、规则、约束、包
管理数据库的用户主要是sys和system,区别主要是:
1、 最重要的区别:存储的数据的重要性不同
sys:所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对oracle的运行时至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有DBA/SYSDBA/SYSOPER角色或权限,是oracle权限最高的用户。
system:用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有DBA/SYSDBA角色或系统权限
2、 其次的区别:权限的不同
sys用户必须以as sysdba或as sysoper形式登陆数据库,不能以normal方式登陆数据库。system用户如果以normal形式登陆,其实就是一个普通的DBA用户,但是如果以as sysdba的形式登录,其结果实际上它是作为sys用户登录的,从登录信息里面我们可以看出来

DBA权限的用户
DBA用户是指具有dba角色的数据库用户。特权用户可以执行启动实例,关闭实例等特殊操作,而dba用户只有在启动数据库后才能执行各种管理工作。
管理初始化参数
初始化参数用来设置实例或是数据库的特征。oracle 9i提供了200多个初始化参数,并且每个初始化参数都有默认值。
显示初始化参数:
show parameter命令
如何修改参数:
可以到文件:
安装路径/admin/实例名/pfile/init.ora中去修改,比如要修改实例的名字。
数据库(表)的逻辑备份与恢复
逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。物理备份即可在数据库open的状态下进行也可在关闭数据库后进行。但是逻辑备份和恢复只能在open状态下进行。
导出:
导出具体的分为: 导出表,导出方案,导出数据库三种方式。
导出使用exp命令来完成,该命令常用的选项有:
userid:用于指定执行导出操作的用户名,口令,连接字符串
tables:用于指定执行导出操作的表
owner:用于指定执行导出操作的方案
full=y:用于指定执行导出操作的数据库
inctype:用于指定执行导出操作的增量类型
rows:用于指定执行导出操作是否要导出表中的数据
file:用于指定导出文件名
导出表时一定要到oracle的安装目录的BIN目录下,因为那里有exp命令
eg:1)导出自己的表
exp userid=scott/tiger@orcl tables=(emp,dept) file=d:\e1.dmp
2)导出其它方案的表
如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system用户就可以导出Scott用户的表
exp userid=system/manager@orcl tables=(scott.emp) file=d:\e2.dmp
3)仅仅导出表的结构
exp userid=scott/tiger@orcl tables=(emp,dept) file=d:\e3.dmp rows=n;
4)使用直接导出方式
exp userid=scott/tiger@orcl tables=(emp) file=d:\e3.dmp direct=y
这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。这时需要数据库的字符集要与客户端的字符集完全一致,否则会报错。
导出方案:
导出方案是指使用export工具导出一个方案或是多个方案中的所有对象(表、索引、约束……)和数据,并存放到文件中、
1) 导出自己的方案
exp userid=scott/tiger@orcl owner=scott file=d:\scott.dmp
2) 导出其它方案
和导出表所需的权限是一样的,system用户就可以导出任何方案
exp userid=system/manager@orcl owner=(scott,system) file=d:\system.dmp
导出数据库
导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或是exp_full_database权限
exp userid=system/manager@orcl full=y inctype=complete file=d:\x.dmp
complete是增量备份,如果以前有过备份文件,那么下次再备份的时候就会检查以前的文件,备份过的就不用再备份了,只备份没备份过的
导入
导入就是使用工具import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件,与导出相似,导入也分为导入表,导入方案,导入数据库三种方式
import常用的选项有:
userid:用于指定执行导入操作的用户名,口令,连接字符串
tables:用于指定执行导入操作的表
fromuser:用于指定源用户
touser:用于指定目标用户
owner:用于指定执行导出操作的方案
full=y:用于指定执行导入整个文件
inctype:用于指定执行导入操作的增量类型
rows:用于指定是否要导入数据
file:用于指定导入文件名
ignore:如果表存在,则只导入数据
导入表
1) 导入自己的表
imp userid=scott/tiger@orcl tables=(emp) file=d:\xx.dmp
2) 导入表到其它用户
要求该用户具有dba的权限,或是imp_full_database的权限
imp userid=system/manager@orcl tables=(emp) file=d:\xx.dmp touser=scott
3) 导入表的结构
只导入表的结构而不导入数据
imp userid=scott/tiger@orcl tables=(emp) file=d:\xx.dmp rows=n;
4) 导入数据
如果对象(比如表)已经存在可以只导入表的数据
imp userid=scott/tiger@orcl tables=(emp) file=d:\xx.dmp ignore=y;
导入方案
导入方案是指使用import工具将文件中的对象和数据导入到一个或多个方案中,如果要导入其它方案,要求用户具有dba权限,或是imp_full_database的权限。
1) 导入自身方案
imp userid=scott/tiger file=d:\xx.dmp
2) 导入其它方案
要求该用户具有dba权限
imp userid=system/manager file=d:\xx.dmp fromuser=system touser=scott
导入数据库
在默认情况下,当导入数据库时,会导入多有对象结构和数据,案例如下:
imp userid=system/manager full=y file=d:\xx.dmp

我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html