PL/SQL之dba和库表的备份与恢复详解

------------------------
--数据库管理员
------------------------
--1、职责
①安装和升级Oracle数据库
②建库、表空间、表、视图、索引.....
③指定并实施备份与恢复计划
④数据库权限管理、调优、故障排除
⑤对于高级dba,要求能参与项目开发,会编写sql语句、存储过程、触发器、规则、约束、包


--2、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:
  system如果正常登录,它其实就是一个普通的dba用户
  但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的
 
 
--3、管理初始化参数
1、显示初始化参数 [system/sys 中显示]
    show parameter;
2、如何修改参数
    可以到文件 Oracle\Oracle11g\admin\orcl\pfile\init.ora 中修改


--------------------------------
--数据库[表]的逻辑备份与恢复
--------------------------------
导出具体的分为:到处表、到处方案、到处数据库三种方式
导出使用exp命令来完成,该命令常用的选项有:
userid:    用于指定执行导出操作的用户名、口令、连接字符串
tables:    用于指定执行导出操作的表
owner:     用于指定执行导出操作的方案
full=y:    用于指定执行导出操作的数据库
inctype:   用于指定执行导出操作的增量类型
rows:      用于指定执行导出操作是否导出表中的数据
file:      用于指定导出文件名

--1、导出表
①导出自己的表(+数据)
  exp userid=用户名/密码@数据库实例名 tables=(表名1,表名2...) file=备份路径
  如:exp userid=scott/tiger@orcl tables=(emp) file=d:/emp.dmp
 
②导出自己的表结构
  exp userid=用户名/密码@数据库实例名 tables=(表名1,表名2...) file=备份路径 rows=n
  rows=n: n表示not  不要数据

③导出其它方案的表(+数据)
  如果用户要导出其它方案的表,需要具有 dba权限 或是 exp_full_database 的权限,比如 system 就可以导出scott的表
  exp userid=用户名/密码@数据库实例名 tables=(方案名.表名1,方案名.表名2...) file=备份路径
  如:exp userid=system/manager@orcl tables=(scott.emp) file=d:/emp.dmp

④使用直接导出方式
  exp userid=用户名/密码@数据库实例名 tables=(表名1,表名2...) file=备份路径 direct=y
  这种方式比默认的常规方式速度快,当数据量大时,可以使用这种方式
  当数据库的字符集与客户端字符集 不一致 会报错

--2、导入表
①导入自己的表(+数据)
    imp userid=scott/tiger@tangtao tables=(emp) file=d:\aa.dmp
    
②导入其他用户的表(+数据)
    要求该用户具有dba的权限或是exp_full_database的权限
    imp userid=system/manager@tangtao tables=(emp) file=d:\aa.dmp touser=scott
    
③导入表的结构
    只导入表的结构而不导入数据
    imp userid=scott/tiger@tangtao tables=(emp) file=d:\aa.dmp rows=n

--3、导出方案
①导出自己的方案
   exp userid=用户名/密码@数据库实例名 owner=所有者 file=备份路径
   如:exp userid=scott/tiger@orcl owner=scott  file=d:/scott.dmp

②导出其它方案
   如果用户要导出其它方案的表,需要具有 dba权限 或是 exp_full_database 的权限,比如 system 就可以导出其它方案
   exp userid=用户名/密码@数据库实例名 owner=(所有者1,所有者2) file=备份路径
   
注意:
    如果用户的权限够大,则可一次性导出多个用户的方案  比如:system


--4、导入方案    
①导入数据
   如果对象(比如表)已经存在可以只导入表的数据
    imp userid=scott/tiger@tangtao tables=(emp) file=d:\aa.dmp ignore=y
    
②导入数据库
    在默认情况下,当导入数据库时,会导入所有对象结构和数据
    imp userid=system/manager full=y file=d:\xx.dmp

原文地址:https://www.cnblogs.com/qintangtao/p/2752691.html