Oracle进阶二

来源:互联网 发布:手机淘宝收货地址 编辑:程序博客网 时间:2024/06/05 08:06

数据库管理员(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’

0 0
原创粉丝点击