oracle数据库管理

一,sys用户和system用户的区别

当一个oracle实例创建了之后,会自动创建systemsys用户

区别:

对于两者之间的区别,就类似 sys用户是董事长,system用户是总经理

 具体的区别如下:

·存储的数据的重要性不同

sys:所有的oracle的数据字典的基表和动态视图都存放在sys用户中,这些基表和视图对oracle来说是至关重要的,有数据库自己来维护,任何用户不能手动修改,sys用户是拥有最高权限的用户

system:存放的是一些次要级的数据,如oracle的一些特性或者工具的管理信息,拥有的权限也很高

·权限不同

sys:必须要用sysdba或者sysoper的身份才能登陆

system:可以使用sysdba的身份登陆,也可以使用normal的身份登陆,如果以sysdba身份登陆的话,那么就是相当于sys用户

sysdba 与 sysoper 身份的区别:

sysdba拥有最高的系统权限,登陆后是 sys
sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public

sysdbasysoper属于system privilege,也称为administrative privilege,拥有例如数据库开启关闭之类一些系统管理级别的权限sysdbasysoper具体的权限可以看下表:

系统权限

sysdba

sysoper

区别

Startup(启动数据库)

startup

Shutdown(关闭数据库)

shutdown

alter database open/mount/backup

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

dba用户:

dba用户是指具有dba角色的数据库用户,特殊用户(sys)可以关闭和启动数据库,但是普的dba用户不能进行

二,数据库的备份

 逻辑备份和物理备份

导出(逻辑备份):导出可以分为导出表,导出方案,导出数据三种,用exp命令来完成

,常用的选项有:

 userid:用于指定执行导出操作的用户名,密码,连接字符串

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

 owner: 用于指定执行导出操作的方案

 full: = y/n 用户指定导出操作的数据库

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

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

 file: 用于指定导出的路径以及文件名

 compress: 用于导出的时候压缩文件

要进行导出操作,可以在oracleD:\oracle\ora92\bin下面建立一个.bat文件,把命令写在.bat文件里面,也可以在dos命令下面输入,但是要先进入到这个文件夹中;

·导出表

 |- 导出自身的表

         exp  userid=scott/tiger@hwt  tables=(emp)  file=D:\scott_emp.dmp;

         |- 导出其他方案的表

如果用户要导出其他的方案的表,则需要dba的角色或是exp_full_database的权限,比如system就可以导出scottt

exp userid=system/manager@hwt tables=(scott.emp,scott.dept)  file=d:\system_emp_dept.dmp;

 |- 只导出表的结构

 exp  userid=scott/tiger@hwt  tables=(emp)  file=D:\scott_emp.dmp rows=n;

//rows=n 意思就是不导出数据,只是导出结构

 |- 直接导出

exp  userid=scott/tiger@hwt  tables=(emp)  file=D:\scott_emp.dmp direct=y;

直接导出的速度很快,尤其在导入大对象的时候速度很快

直接导出的限制 :1. 导出表空间必须使用传统模式。

     2. 含有LOB对象的表不支持直接导出模式。

     3. 直接导出不支持QUERY.

     4. 直接导出模式使用RECORDLENGTH设置一次可以导出数据的量,传统模式使用buffer设置.

     5. 低版本直接导出模式要求导出客户端和数据库字符集设置一致。

·导出方案

|- 导出自己的方案

exp  userid=scott/tiger@hwt  owner=scott  file=D:\scott_shema.dmp;

|- 导出其他的方案

导出其他的方案必须具有dba的角色,或者具有exp_full_database的权限,如:system可以导出任何的方案

exp  userid=system/manager@hwt  owner=(system,scott)  file=D:\scott_shema.dmp;

·导出数据库

导出数据库必须具有dba的角色或者是exp_full_database的权限,同时因为导出数据的时间很长,而且不容易成功完成整个数据库的导出,所以少用

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

导入(逻辑恢复)

·导入表

|- 导入自己的表

   imp  userid=scott/tiger@hwt  tables=(emp)  file=D:\scott_emp.dmp;

|- 导入别人的表(需要dba角色或者exp_full_database的权限)

  imp  userid=system/manager@hwt  tables=(emp)  touser=hwt  file=D:\scott_emp.dmp;

        |- 导入表结构

  imp  userid=scott/tiger@hwt  tables=(emp)  rows=n  file=D:\scott_emp.dmp;

|- 导入表的数据(如果表的结果存在,就只导入数据)

imp  userid=scott/tiger@hwt  tables=(emp)  ignore=y  file=D:\scott_emp.dmp;

注意的是,备份文件必须是自己这个用户导出的,要不就用dba权限来导入给别的方案

·导入方案

|- 导入自身的方案

imp  userid=scott/tiger@hwt  file=D:\scott_schema.dmp;

|- 导入其他的方案(需要有dba的权限)

imp  userid=sytem/manger@hwt  fromuser=system touser=scott  file=D:\scott_schema.dmp;

·导入数据库

|- 导入数据库

在默认情况下,导入数据库会导入对象结构和数据

(前提是要有导出数据库的那个用户,这个用户要先存在)

imp  userid=system/manager@hwt full=y  file=D:\db_hwt.dmp;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值