作为一个DBA的职责如下:
1,安装升级数据库
2,建表,表空间,表,视图,索引...
3,制定并实施备份与恢复计划
4,数据库权限管理,调优,故障排除.
5,还要能参与项目开发,会写sql语句,存储过程,触发器,规则,约束和包.
查看初始化参数命令:
show parameter;
数据库表的备份与恢复
导出具体分为:导出表,导出方案,导出数据库.
我们可以用exp命令来完成导出的操作.
该命详解:
导出自已的表:
exp userid=scott/tiger@test tables=(emp,dept) file=d:/e1.dmp;
特别说明:
在导入和导出的时候,要到Oracle目录的Bin目录下去导.
在导出其他用户的表时只要在表名前指名方案名即可,如:
exp userid=system/manager@test tables=(scott.emp) file=d:/xx.dmp;
导出表结构
exp userid=scott/tiger@test tables=(emp) file=d:/tmp.dmp rows=n;
使用直接导出方式,用于处理大表,速度较快
exp userid=scott/tiger@test tables=(emp) file=d:/tmp.dmp direct=y;
导出方案:
导出自已的方案:
exp scott/tiger@test owner=scott file=d:/scott.dmp;
导出别人的方案,需要相应的权限:
exp system/manager@test owner=(system,scott) file=d:/tmp.dmp;
导出数据库,花的时间可能会比较长,必须要有相应的权限:
exp userid=system/manager@test full=y inctype=complete file=d:/tmp.dmp;
-----------------------------------------------
导入
导入自已的表(由谁导出的就得由谁导入,不然会发出警告,注意外键关系
如果是空表的话, 任意用户都可导入):
imp userid=scott/tiger@test tables=(emp) file=d:/xx.dmp;
导入表到其它用户:
imp userid=system/manager@test tables=(emp) file=d:/xx.dmp touser=scott;
导入表结构:
imp userid= tables=() file= rows=n;
导入数据:
imp userid=scott/tiger@test tables=(emp) file=d:/tmp.dmp ignore=y;
导入方案:
导入自已的方案
import userid=scott/tiger@test file=d:/tmp.dm;
导入别人的方案:
imp userid=system/manager file=xx fromuser=system touser=scott;
导入数据库:
imp userid=system/manager full=y file=d:/tmp.dmp;
=====================================================
数据字典与动态性能视图
数据字典是数据库中最重要的部分,动态性能视图是启动后的信息.
数据字典记录数据库的系统信息.用户只能在数据字典上进行查询操作,
它的维护和修改是由系统自动完成的.
数据字典视图包括:user_xx,all_xx,dba_xx三种类型.
用法如下:
显示当前用户所拥有的所有的表
select table_name from user_tables;
显示当前用户可以访问到的表
select table_name from all_tables;
显示所有方案中的所有表:
select table_name from dba_tables;
=================================
用户名,权限,角色
可以通过查询dba_users可以显示所有数据库用户的详细信息.
select username, password from dba_users;
查看scott拥有的角色
select * from dba_role_privs where grantee='SCOTT';
查看Oracle中所有角色
select * from dba_roles;
查看角色中的权限
select * from dba_role_privs where grantee='用户名';
查看所有的系统权限
select * from system_privilege_map order by name;
查看所有的对象权限
select distinct privilege from dba_tab_privs;
Oracle中的权限分为系统权限和对象权限.
创建用户
create user ken identified by 123446;
为用户授于相应的系统权限.
grant create session,create table to ken with admin option;
grant create view to ken;
回收系统权限
revoke create session from ken;
* 请注意系统权限不是级联回收.
授于对象权限一般是由对象的所有者进行的,但是在9I后dba用户可以授权,授权时如带with grant option,表示授权授权权力.
create user monkey identified by s123;
grant create session to monkey; // 系统权限,create session 表示可登录权限.
我们利用scott用户为monkey用户授权
grant select on emp to monkey; // 查询对象权限
grant update on emp to monkey; // 修改
grant delete on emp to monkey; // 删除
显然上面的方法比较麻烦,因此我们可如下操作:
grant all on emp to monkey; // 表示对象上的所有权限.
同时,我们也可对表中的某列进行授权
grant update on emp(sal) to monkey; // 只能修改emp表上的sal这个字段
grant select on emp(ename,sal) to monkey;
grant alter on emp to monkey;
grant index on scott.emp to monkey [with grant option]; // 授于建立索引权限
回收对象权限,可以由授于者收回,也可由dba用户收回,同时,对象权限是会级联回收的, 这一点与系统权限是不一样的.
create user u1 identified by u1;
create user u2 identified by u2;
grant connect,resource to u1/u2;
grant update on scott.emp to u1 with grant option;
conn u1/u1;
grant update on scott.emp to u2;
conn / as sysdba;
revoke update on scott.emp from u1;
此时u2的相应的更新权限也被回收了,进一步说明了对象权限与系统权限是不同的,前者是级联回收的,而后者却不是.
而为了简化管理在此要引入角色的概念,角色是相关权限的命令集合.
常见预定义角色connect,resource,dba
对于一般应用的开发人员需要的大部分权限都包含在了connect,resource中了.而dba角色爱上你的眼睛有所有的系统权限,而dba角色不具备sysdba和sysoper的特权.不能关闭打开数据库.
自定义角色首先需要相应的权限,不然是创建不了的.
create role 角色名 not identified; // 修改这个角色时不需要输入密码
create role 角色名 indetified by manager; // 当修改时需要密码,为manager
为角色授权
grant create session to 角色名 with admin option;
conn scott/tiger@test;
grant slect on scott.emp to 角色名
grant insert,update,delete on scott.emp to 角色名
角色有了,要分配给用户才会有意义,一般是由dba来完成的.
grant 角色名 to user_xx [with admin option]; // with admin option表示可继续将此角色授下去.
删除角色,一旦删除,那么拥有此角色的用户会失去相应的权限
conn system/manager;
drop role 角色名;
显示所有角色: select * from dba_roles;
动态性能视图
系统在启动时会建立,而在退出时会删除
---------------------------------------
管理表空间和数据文件
表空间是数据库的逻辑组成部分.
数据库的逻辑结构:表空间,段,区,块
利用表空间我们可以把不同类型不同作用的数据文件放到不同的磁盘,从而提高了IO效率与并发性能,并且利于备份和恢复.
建立表空间(需要相应的权限: create tablespace ):
create tablespace data01 datafile 'd:/xx.dbf' size 20M uniform size 128k
有了表空间后,我们可以使用表空间:
create table xxx ... tablespace data01;
表空间脱机
alter tablespace users offline;
表空间联机
alter tablespce users online;
只读表空间
alter tablespace 表空间名 read only;
删除表空间
drop tablespace 表空间名 including contents and datafiles;
扩展表空间
增加数据文件
alter tablespace ts01 add datafile 'xxx' size 20M;
增加数据文件的大小
alter tablespace 表空间名 'd:/xx.dbf' resize 20M;
设置文件的自动增长
alter tablespace 表空间名 'd:/xx.dbf' autoextend on next 10M maxsize 500M;
==============================
维护数据完整性
数据的完整性用于确保数据库数据遵从一定的商业和逻辑规则.
我们可以通过约束,触发器,应用程序(过程,函数)三种方法来实现,而约束易于维护,性能高,所以是首选.
约束包括:not null, unique, primary key, foreign key, check;
unique定义后允许为空.
一张表最多只能有一个主键,但是可以有多个unique约束.
增加指定列不允许为空
alter table goods modify goodsName not null;
增加unique约束
alter table customer add constraint unique_idcard unique(cardId);
alter table customer add constraint add_check check(addr in(xx,xx,xx));
删除约束
alter table customer drop constraint 约束名称;
特别说明:在删除主键约束时,可能会碰到错误,因为存在外键引用的况 ,在这种情况下我们可以这样做:
alter table xx drop primary key cascade;
查看约束信息可通过数据字典user_constraints;
-------------------
索引,对于我们要经常查询而又不常更新的列,我们常常会建立相应的索引.
创建单列索引
create index name_index on customer(name);
复合索引
create index 索引名 on 表名(字段1,字段2);
使用原则
1,在大表上建立索引才会有意义.
2,在where子句或是连接条件上经常引用的列上建立索引.
3,索引层次不超过4层.
索引缺点分析
1,建立索引,系统要占用为表的1.2倍的空间
2,更新时,索引也要用时间来对其更新
实践表明,不好的索引不但于事无补,反而会降低系统性能.
在如下情况建立索引是不恰当的
1,很少用的.
2,逻辑性字段.
显示索引信息数据字典:dab_indexs, user_indexs
Oracle会为unique字段加上索引.
分享到:
相关推荐
通过正确配置Oracle客户端,结合易语言的数据库连接和记录集组件,开发者可以轻松地构建与Oracle数据库交互的应用程序。实践中,务必注意数据库安全,如使用预编译语句防止SQL注入,以及妥善处理连接关闭,以提高...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,适用于处理大量数据和并发事务。 Oracle数据库连接模块的核心在于如何建立和管理与Oracle服务器的通信。在这个模块中,通常会用到Oracle的数据访问接口,如...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,用于存储、管理和检索复杂的数据。在IT行业中,有效管理和操作Oracle数据库是至关重要的技能。...掌握使用这样的工具,对于提升数据库管理技能具有显著作用。
通过本教程,你将能够逐步掌握Oracle 8数据库开发的各个方面,从基本的数据库管理到高级的性能优化和安全控制。不断实践和探索,你将成为一名熟练的Oracle 8数据库开发者,能够应对各种复杂的企业级数据库挑战。
Oracle数据库中的序列(Sequence)是数据库开发者常用的工具,主要用于生成唯一的整数,这些整数通常作为主键或者唯一标识符来使用。序列的生成过程独立于数据库事务,一旦生成就不会因为事务的回滚而撤销,这确保了...
Oracle数据库管理工具是一款高效、全面且用户友好的软件解决方案,专为管理和维护Oracle数据库系统而设计。这款工具提供了丰富的功能,使数据库管理员(DBA)能够轻松地进行数据存储、查询、更新、备份以及性能优化...
本篇文章将深入探讨Oracle 8中的关键知识点,帮助你轻松掌握这一强大的数据库系统。 一、Oracle 8概述 Oracle 8是Oracle数据库系统的一个里程碑,首次引入了对象关系模型,将传统的关系数据库与面向对象编程的概念...
在Excel中通过Visual Basic for Applications (VBA) 连接Oracle数据库是一种强大的自动化工具,能够让你轻松地从大型数据库中提取、处理和分析数据。VBA是Excel内置的编程环境,允许用户创建自定义功能和宏,以实现...
通过一系列详细的PPT讲解和实例演示,学习者可以轻松掌握核心概念。 **Oracle简介** Oracle是全球最大的企业级数据库管理系统提供商,它的数据库产品以其稳定性、安全性和高性能而广受赞誉。Oracle数据库支持多种...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它提供了高效的数据存储、管理和处理功能。PL/SQL(Procedural ...在实际工作中,掌握PL/SQL Developer的使用将对提升Oracle数据库管理技能大有裨益。
本书将深入讲解这些核心特性,并可能涵盖安装配置、性能调优、安全管理、备份恢复、故障排查等多个方面,是Oracle数据库管理员必备的参考资料。通过阅读和实践书中的案例,读者可以全面掌握Oracle 11g数据库的管理和...
在这个“计算机软件-商业源码-轻松掌握Oracle 8数据库开发”的压缩包中,你可能会找到一系列的资源,帮助你深入了解Oracle 8的各个方面。这些可能包括教程文档、示例代码、练习案例以及相关的数据库脚本,让你能够...
其次,在学习Oracle数据库管理的过程中,掌握工具是非常重要的。常用的管理工具中,SQL*Plus被强调为最好的管理工具之一。通过使用SQL*Plus,可以非常直接地进行数据库的管理工作。除此之外,能够书写高效的SQL语句...
### Navicat 连接 Oracle 数据库详解 ...无论是初学者还是经验丰富的开发人员,都能够通过Navicat轻松地进行Oracle数据库的各种操作。希望本文能够帮助您更好地理解和使用Navicat这一强大的数据库管理工具。
这本书旨在帮助开发者掌握在Web应用中利用JavaServer Pages(JSP)技术来设计、构建并实现与Oracle数据库交互的高效解决方案。通过实践案例,读者可以学习到从基础到高级的JSP和Oracle数据库开发技能。 JSP(Java...
总而言之,Oracle数据库管理与开发工具Toad以其全面的功能、高效的性能和友好的用户界面,成为了数据库管理员和开发人员的得力助手。无论是日常的数据库维护、开发任务,还是性能优化和团队协作,Toad都能提供强大而...
数据库是存储和管理信息的...理解并掌握Oracle数据库的特性和最佳实践,对于成功实施和优化HRMS至关重要。同时,定期备份、监控数据库性能以及进行安全审计也是日常运维的关键环节,以确保系统的稳定运行和数据的安全。
Oracle 8数据库开发是计算机...通过这个“轻松掌握Oracle 8数据库开发”的资源,你可以逐步学习并实践这些知识,从而在Oracle数据库开发领域建立起坚实的基础。记得理论与实践相结合,通过实际操作来巩固你的学习成果。
随着信息技术的发展,数据库管理系统在各个领域得到了广泛的应用。Microsoft Visual Basic (VB)作为一款流行的编程语言,因其易用性和强大的功能,常被用于开发各种类型的应用程序。在VB中,通过ADO (ActiveX Data ...