数据库管理员(DBA):
1. 安装升级Oracle数据库
2. 建库、表空间、表、试图、索引
3. 制定并实施备份与恢复数据
4. 数据库权限管理、调优、故障排除
5. 对于感激的dba、要求参与项目开会编写sql语句。存储过程、触发器、规则、约束、包。
Sys用户:
数据系统的基表和试图,拥有dba、sysdba、sysoper这些权限 sysdba》sysoper
system用户:
拥有次一级的内部数据,如oracle一些特性和工具管理信息,system用户拥有dba、sysdba角色或者系统权限
区别:
sys用户必须以as sysdba或者sysoper形式登陆,不能用nurmal方式登陆数据库
system可以使用normal形式登陆,如果以normal登陆,那么他就是一个普通用户,如果用sysdba登陆,那么他就是数据库管理员用户
数据库管理员:
管路初始化操作:初始化操作参数用于设置实例或者是数据库特性。
Show parameter命令//显示初始化参数
修改参数:
E://oracle/admin/orcl/pfile/init.ora文件中修改 比如要修改实例名
备份
逻辑备份:是指使用export将数据对象的结构和数据导出到稳健的过程,逻辑恢复是指利用import工具把数据从文件导入到数据库的过程。
导出:导出表、导出方案、导出数据库
exp命令+选项:
userid:用于导出用户名、口令、连接字符串
tables:导出表//expuserid=scott/tiger@orcl table=(emp) file=E:/orcltanle/emp.dmp
owner:导出操作的方案 expuserid=system/kyeecis scott/tiger@orcl ower=scott file=d:/scott.dmp
full=y:导出数据库//expuserid=system/ktyecis@orcl full=y inctype=complete file=d:/orcl.dmp // inctype:导出操作的增量类型
rows:指定导出的操作是否要导出表中的数据rows=n//导出表结构
file:用于指定导出的文件
direct=y//后面添加这个,速度会快
导入:
使用工具import将文件导入到数据库之中,但是使用的文件必须是export所导出的文件,与导出相似,导入也分为导出库、导出方案、导出数据库方式。
Imp常用的选项:
Userid:指定指定执行操作的用户名和口令,连接字符串;
Tables:用于指定执行导入操作的表
Formuser:用于指定源用户
Touser:指定目标用户
Full=y:用于执行导入整个文件
Inctype:指定执行的整个文件
Rows:指定要导入行
Ignore:如果表存在只导入数据
导入自己的表:
imp userid=kyeecis/kueecis@orcltables(emp) file=d:/emp.dmp
导入其他用户的表(要具有dba权限):
imp useridsystem/kyeecis@orcltables(emp) file=d:/emp.dmp
导入表结构但是不倒入数据:
imp userid=soctt/tiher@orcl tables(emp)file=d:/emp.dmp rows=n;
导入数据:
如果表已经存在只需要倒入数据
imp userid=scott/tiger@orcl table=(emp) file=d:/emp.dmpignore=y
导入方案:
导入自己的方案:
imp userid=soctt/tiger fole=d:/xxx.dmp
导入其他方案(dba权限):
imp userid=system/kyeecis file=d:/xxx.dmp fromuser=systemtouser=scocct
导入数据库:
在默认情况下会导入所有的对象结构和数据
imp userid=system/manager full=y file=d:/xxx.dmp;
数据字典/动态性能试图、基表
数据字典是oracle数据库中最重要的组成部分,他提供列数据库的一些系统信息,数据字典的所有者是sys。用户只有查看功能。
基表存放数据库的静态信息。
动态性能试图记载历程启动后的相关信息。
user_tables:用于显示当前用户自己所创建的表
select table_name from user_tables;
all_tables:用于显示当前用户可以访问的所有表,
select table_name from all_tables;
dba_tables:它会显示所有方案用于的数据库库。权限必须是dba角色或者拥有select any table系统权限
用户名、权限、角色
在建立用户时会把用户的信息存放到数据字典中,信息包括权限和角色等;
通过查询dba_users可以显示所有数据库用户的详细信息;
数据字典试图显示用户所具有的系统权限:dba_sys_privs
数据字典试图显示用户所具有的对象权限:dba_tab_privs
数据字典显示所具有的列权限:sys_col_privs
数据字典试图:dba_role_privs显示用户所具有的角色
//查看soctt用户的用户角色
select * from dba_role_privs where GRANTEE=’socct’
//查询oracle所有角色
select * from dba_roles;
//查询oracle中所有的系统权限
select * from system_privilege_map order by name;
// 查询所有的对象权限
select distinct privilede from dba_tab_privs;
//一个角色包含的系统权限
select * from dba_sys_privs wheregrantee=’CONNECT’;
SELECT * FROM ROLE_SYS_PRIVS WHEREROLE=’CONNECT’;
//查询一个角色对应的对象权限
select * from dba_tab_privs wheregrantee=’CONNECT’
显示当前用户可以访问的所有数据字典
select * from dict where comment like ‘%grant%’’
查询数据库的全称:select* from global_name;
管理表空间和数据文件
表空间:是数据库的逻辑组成部分,从物理上数据库数据时存放在文件中的,从逻辑上讲数据则是存放在表空间的,表空间是一个或者多个数据文件组成
oracle中的逻辑结构包括表空间、表空间包括段、区、块。最小的单元是块,这样逻辑结构有利于oracle管理
表空间的作用:
1. 控制数据库所占用的磁盘空间
2. dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时有利于备份和恢复等管理操作。
建立表空间:
create tablespace命令完成,在一般情况下,建立表空间是特权用户或者dba来执行,如果利用其他用户建立表空间,则需要create tablespace 的系统权限
create tablespace lkspace datafile‘d:/oracdata/lkspace.dbf’ size 200m uniform size 128k;
使用表空间
create lktable (id number(4),dname varchar2(10),snovarchar2(10)) tablespace lkspace;//创建表的时候使用表空间
改变表空间的状态
在建立表空间时,表空间处于联机状态(online),此时表空间可以访问,并且该表空间时可以读写的,可以在表空间中执行各种语句。
使表空间脱机:
alter tablespace 表空间名 users offline
联机:alter tablespace 表空间名usersonline
只读:alter tablespace 表空间名 readonly;
可读可写:alter tablespace 表空间名 readwrite;
//查询表空间中的所有表
select * from all_tables where tablespace_name=’表空间名’
//查询表属于那个表空间
select *tablespace_name,table_name from user_tables wheretable_name=’EMP’
//删除表空间(dba权限)
drop tablespace ‘表空间名’ includingcontents and datafiles;
including contents表示删除表空间时删除所有数据库对象。Datafiles表示数据库文件也删除
扩展表空间
1. 增加数据文件
alter tablespace 表空间名 add datafile‘d:/lkspace’ size 200m;
2. 增加数据文件的大小
alter tablespace 表空间名 ‘d:/test/lkspace.dnf’ reize 200m;//注意不要超多500m;
3. 设置文件的增长
alter tablespace 表空间名‘d:/test/lkspace.dbf’ autoextend on next 10m maxsize 500m;
移动数据文件
host move ‘旧的表空间文件’‘新的表空间文件’
alter tablespace lkspace rename datafile ‘d:/lkspace.dbf’