6.windows-oracle实战第六课 --数据管理

数据库管理员:

        每个oracle数据库应该至少有一个数据库管理员(dba),对于一个小的数据库,一个dba就够了,但是对于一个大的数据库可能需要多个dba分担不同的管理职责。

         对于dba来说,会权限管理、调优、故障排查、参与项目,编写sql,存储过程、触发器、规则、约束、包等,价钱就不一样。

         管理数据库的用户:sys和system 的区别

(1)存储的数据重要性不同。sys存放oracle的数据字典的基表和视图。(基表就是基本的表,基础的表,没有不行)拥有dba(数据库管理员角色),sysdba(系统管理员角色),sysoper(系统操作员角色)角色。system存放次一级的数据。拥有sys、sysoper角色。

(2)权限不同,sys必须已 system或者sysoper的角色登陆。但是不能以normal方式登陆数据库。system如果正常登陆,它其实就是一个普通的dba用户,但是如果以sysdba登陆,就是一个sys。

     sys只有在特权用户启动数据库后,才能拥有库中各种工作情况权限。

    shutdown/startup(服务历程启动或关闭)

管理初始化参数:

      初始化参数用于设置实例或者数据库的特征。show parameter命令可以在d:\oaacle\admin\orcl\pfile\init.ora文件中修改参数,比如实例名称。

逻辑备份和恢复:

       逻辑备份是使用工具export将数据对象的结构和数据导出到文件的过程,恢复则相反使用的工具是import。物理备份即可在数据库open的状态下进行也可以在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。

        备份分三种:备份表、方案、数据库

        userid:用于指定执行导出操作的用户名、口令、连接字符串;

         tables:用于指定执行导出操作的表;

         owner:用于指定导出的方案;

         full=y:执行导出的数据库;

         file用于指定导出文件名;

         rows:用于指定执行导出操作是否要导出表中的数据;

          inctype:用于指定执行导出操作的增量类型

在导入或者导出的时候,在cmd下即可

 导出表:

(1)自己的表;exp userid=scott/tiger@orcl tables=(emp) file=d:\djw.dmp

(2)其他方案表(需要dba角色或者exp_full_database权限):

     exp userid=/tiger@orcl tables=(emp) file=d:\djw.dmp

    6.windows-oracle实战第六课 --数据管理_第1张图片

 

 (3)导出表的结构:

     exp userid=scott/tiger@orcl tables=emp file=d:\djw2.dmp row=n;

   (4)  使用直接导出方式,比默认的方式快的多

      exp userid=scott/tiger@orcl tables=emp file=d:\djw3.dmp direct=y 

方案:导出一个或者多个方案

    (1)导出自己的方案:

      exp scott/tiger@orcl owner=scott file=d:\scott.dmp

     (2)导出其他方案:(dba权限或者exp_full_database权限)

      exp  system/manager@orcl owner=(system,scott)  file=d:\djw6.dmp

数据库:导出数据库是指利用export导出所有数据库中的对象和数据,要求该用户具备dba的权限或者exp_full_database权限。

        exp userid=system/manager@orcl full=y inctype=complete file=d:\file.dmp

导入是相反的:imp

  导入自己的表:imp userid=scott/tiger@orcl tables=emp file:\emp.dmp

  导入表到其他用户:imp userid=manager/manager@orcl tables=emp file=d:\djw9.dmp  touser=scott

  导入表结果:imp userid=scott/tiger@orcl tables=emp file=d:\djw10.dmp rows=n

  导入数据:imp userid=scott/tiger@orcl tabels=emp file=d:\djw11.dmp ignore=y;

  导入自身方案:imp userid=scott/tiger  file=d:\djw12.dmp(自动创建实例)

  导入其他方案:imp userid=system/manager file=d:\djw13.dmp  fromuser=system touser=scott

  导入数据库:imp userid=system/manager full=y file=d:\xx.dmp (自动创建实例)

数据字典和动态性能视图:(了解系统级别的信息)

   数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息。它是只读表和视图的集合,所有者是sys。用户只能查询,其他修改、维护是系统自动完成。

   动态性能视图记载了例程启动后的相关信息。所有者是sys。

数据字典视图:user_xxx,  all_xxx,   dba_xxx

user_tables:用于显示当前用户所拥有的所有表

select table_name from user_tables;

all_tables:  显示当前用户可以访问的所有表

select table_name from all_tables;

dba_tables:数据库中所有方案的表,但是必须是dba角色或者select any table系统权限

select table_name from dba_tables;

用户名,权限,角色

      在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或者角色时,oracle会将权限和角色的信息存放到数据字典。

 通过查询dba_users可以显示所有数据库用户的详细信息。

select  username from dba_users;

  通过查询数据字典视图dba_sys_privs可以显示用户所具有的系统权限;

  通过查询数据字典视图dba_tab_privs可以显示用户具有的对象权限;

  通过查询数据字典dba_col_privs可以显示用户具有的列权限;(较少使用)

  通过查询数据库字典视图dba_role_prives可以显示用户所具有的角色。

scott的角色(ADM)

6.windows-oracle实战第六课 --数据管理_第2张图片

查询oracle中所有的角色,一般是dba

select *from dba_roles; (oracle中有多少角色)

select *from system_privilege_map order by name;(所有系统权限)

select  distinct privilege from dba_tab_privs;(所有对象权限)

你可能感兴趣的:(6.windows-oracle实战第六课 --数据管理)