每个oracle数据库应该至少有一名数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分别担负不同的管理职责。那么一个数据库管理员的主要工作是什么呢?
n 职责
(1)安装和升级oracle数据库
(2)建库、表空间、表、视图、索引…
(3)制定并实施备份与恢复计划
(4)数据库权限管理、调优、故障排除
(5)对于高级dba,要求能参与项目开发,会编写sql语句、存储过程、触发器、规则、约束、包…
n 管理数据库的用户注意是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用户登陆的,这一点类型Linux里面的su的感觉,从登陆信息里面我们可以看出来。
(3)sys:董事长 system:总经理
n sysdba和sysoper权限的区别
系统权限 |
sysdba |
sysoper |
区别 |
startup(启动数据库) |
startup |
shutdown(关闭数据库) |
shutdown |
|
alter database open |
alter database open/mount/backup |
|
改变字符集 |
none |
|
create database(创建数据库) |
none不能创建数据库 |
|
drop database(关闭数据库) |
none |
|
create spfile |
create spfile |
|
alter database archivelog(归档日志) |
alter database archivelog |
|
alter database recover(恢复数据库) |
只能完全恢复,不能执行不完全恢复 |
|
拥有restricted session(会话限制权限) |
拥有restricted session权限 |
|
可以让用户作为sys用户连接 |
可以进行一些基本的操作,但不能查看用户数据 |
|
登陆之后用户是sys |
登陆之后用户是public |
|
|
|
n dba权限的用户
dba用户是指具有dba角色的数据库用户,特权用户可以执行启动实例,关闭实例等特殊操作,而dba用户只有字启动数据库后才能执行各种管理工作。
n 管理初始化参数
初始化参数用于设置实例或是数据库的特征,oracle10g体提供了200多个初始化参数,并且每个初始化参数都有默认值。
l 显示初始化参数: show parameter命令
l 如何修该参数:需要说明的如果你希望修改这些初始化的参数,可以到文件D:oracleadminmyoralpfileinit.ora文件中去修改比如要修改实例的名字