1.介绍oracle管理组织工作员的基本上职能
2.掌控储存和恢复正常资料库/表的方式
3.认知表内部空间,统计数据词典和操控性快照
资料库管理组织工作员
每一oracle资料库如果最少有一位资料库管理组织工作员(dba),对三个小的资料库,三个dba就够了,但对三个大的资料库可能将须要数个dba依次肩负相同的管理组织工作职能。所以三个资料库管理组织工作员的主要就组织工作是甚么呢?
职能:
(1)加装和升级换代oracle资料库
(2)建库,表内部空间,表,快照,检索。。。
(3)制订并实行储存与恢复正常方案
(4)资料库职权管理组织工作,Listary,机械故障须建
(5)对高阶dba,明确要求能参予工程项目合作开发,会撰写sql句子、储存操作过程、异步、准则、束缚、包
管理组织工作资料库的使用者主要就是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如果正常登录,它其实就是三个普通的dba使用者,但如果以as sysdba登录,其结果实际上它是作为sys使用者登录的,从登录重要信息上面他们可以看出来。
sysdba和sysoper职权差别图
dba职权的使用者
dba使用者是指具有dba配角的资料库使用者。特权使用者可以执行启动实例,关闭实例等特殊操作,而dba使用者只有在启动资料库后才能执行各种管理组织工作组织工作。
管理组织工作初始化参数
初始化参数用作设计实例或是资料库的特征。oracle9i提供了200数个初始化参数,并且每一初始化参数都有默认值。
显示初始化参数
(1)show parameter命令
如何修改参数
须要说明的如果你希望修改那些初始化的参数,可以到D:\oracle\admin\myoral\pfile\init.ora文件中去修改比如要修改实例的名字。
资料库(表)的逻辑储存与恢复正常 — 导出
资料库的储存分为逻辑储存与物理储存。
逻辑储存是指使用辅助工具export将统计数据对象的结构和统计数据导出到文件的操作过程,逻辑恢复正常是指当资料库对象被误操作而损坏后使用辅助工具import利用储存的文件把统计数据对象导入资料库的操作过程。物理储存既可在资料库open的状态下进行,也可以在关闭资料库后进行,但逻辑储存和恢复正常只能在open的状态下进行。
导出:
导出具体的分为:导出表,导出方案,导出资料库三种方式:
导出使用exp命令来完成,该命令常用的选项有:
userid:用作指定执行导出操作的使用者名,口令,连接字符串。
tables:用作指定执行导出操作的表。
owner:用作指定执行导出操作的方案。
full=y:用作指定执行导出操作的资料库。
inctype:用作指定执行导出操作的增量类型。
rows:用作指定执行导出操作是否要导出表中的统计数据。
file:用作指定导出文件名。
导出表:
(1)导出他们的表
exp userid=scott/root123@orcl tables=(emp) file=d:\e1.dmp
(2)导出其他方案的表
如果使用者要导出其他方案的表,则须要dba的职权或是exp_full_database的职权,比如system就可以导出scott的表
exp userid=system/manager@orcl tables(scott.emp) file=e2.dmp
特别说明:
在导入和导出的时候,要到oracle的主目录下的bin目录下。
(3)导出表的结构
exp userid=scott/root123@orcl tables=(emp) file=d:\e3.dmp rows=n
(4)使用直接导出的方式
exp userid=scott/root123@orcl table=(emp) file=d:\e4.dmp direct=y
这种方式比默认的常规方式要快,当统计数据量大时,可以考虑使用这样的方式,这时须要资料库的字符集要与客户端字符集完全一致,否则会报错。。。
导出方案:
导出方案是指使用export辅助工具导出三个方案或是数个方案中的大部份对象(表,检索,束缚)和统计数据,并放置到文件中。
(1)导出他们的方案
exp scott/root123@orcl owner=scott file=d:\scott.dmp
(2)导出其他方案
exp_full_database的职权,例如system使用者就可以导出任何人方案
exp system/manager@orcl owner(system,scott) file=d:\system.dmp
导出资料库
导出资料库是利用export导出大部份资料库中的对象及统计数据,明确要求该使用者具有dba的职权或是exp_full_database职权。
exp userid=system/manager@orcl full=y inctype=complete file=d:\x.dmp
资料库(表)的逻辑储存与恢复正常 — 导入
导入就是使用辅助工具import将文件中的对象和统计数据导入到资料库中,但导入要使用的文件要是export所导出的文件。与导出相似,导入也分为导入表,导入方案,导入资料库三种方式。
imp常用的选项有:
userid:用于指定执行导入操作的使用者名,口令,连接字符串。
tables:用作指定执行导入操作的表。
formuser:用作指定源使用者
touser:用作指定目标使用者
file:用作指定导入文件名
full=y:用作指定执行导入操作的资料库。
inctype:用作指定执行导入操作的增量类型。
rows:指定是否要导入表行(统计数据)
ignore:如果表存在,则只导入统计数据
导入表:
(1)导入他们的表
imp userid=scott/root123@orcl table=(emp) file=d:xx.dmp
(2)导入表到其他使用者
明确要求该使用者具有dba职权,或是imp_ful_database
imp userid=system/manager@orcl table(emp) file=d:\xx.dmp touser=scott
(3)导入表的结构
只导入表的结构而不导入统计数据
imp userid=scott/root123@orcl tables=(emp) file=d:\xxx.dmp rows=n
(4)导入统计数据
如果对象(如比表)早已存在可以只导入表的统计数据
imp userid=scott/root123@orcl tables(emp) file=d:\xxx.dmp ignore=y
导入方案
导入方案是指使用import辅助工具将文件中的对象和统计数据导入到三个或是数个方案中。如果要导入其他方案,明确要求该使用者具有dba的职权,或是imp_full_database
(1)导入自身的方案
imp userid=scott/root123 file=d:xxx.dmp
(2)导入其他方案
明确要求改使用者具有dba职权
imp userid=system/manager file=d:\xxx.dmp fromuser=system touser=scott
导入资料库
在默认情况下,当导入资料库时,会导入大部份对象结构和统计数据,案例如下:
imp userid=system/manager full=y file=d:\xxx.dmp
统计数据词典和动态操控性快照
统计数据词典是oracle资料库中最重要的组成部分,它提供了资料库的许多控制系统重要信息。
统计数据词典是oracle资料库中最重要的组成部分,它提供了资料库的许多控制系统重要信息。
动态操控性快照记载了例程启动后的相关重要信息。
user_tables:
用作显示当前使用者所保有的大部份表,它只返回使用者所对应方案的大部份表。
比如:select table_name from user_tables;
all_tables:
用作显示当前使用者可以访问到的大部份表,它不仅会返回当前方案的大部份表,还会返回当前使用者可以访问的其他方案的大部份表。
比如:select table_name from all_tables;
dba_tables:
它会显示大部份方案保有的资料库表。但查询这个资料库字段快照,明确要求使用者要是dba配角或保有select any table控制系统职权。例如:当system使用者查询dba_tables时,会返回sys,system,scott等大部份方案对应的资料库表。
使用者名,职权,配角
在创建使用者时,oracle会把使用者的重要信息放置到统计数据词典中,当给使用者授予职权或是配角时,oracle会将职权和配角的重要信息放置到统计数据词典中。
通过查询dba_users可以显示大部份资料库使用者的详细重要信息。
通过查询统计数据词典快照dba_sys_privs,可以显示使用者所具有的控制系统职权。
通过查询统计数据词典快照dba_tab_privs,可以显示使用者具有的对象职权。
通过查询统计数据词典快照dba_col_privs可以显示使用者具有的列职权。
通过查询资料库词典快照dba_role_privs可以显示使用者所具有的配角。
如何查询三个配角包括的职权?
a.三个配角包含的控制系统职权
select * from dba_sys_privs where grantee=CONNECT;
另外也可以这样查看
select * from role_sys_privs where role=CONNECT;
b.三个配角包含的对象职权
select * from dba_tab_privs where grantee=CONNECT;
如何查看某个使用者,具有甚么样的配角?
select * from dba_role_privs where grantee=SCOTT;
显示当前用户可以访问的大部份统计数据词典快照
select * from dict where comments like %grant%;
显示当前资料库的全称
select * from global_name;
其他说明:
统计数据词典记录有oracle资料库的大部份控制系统重要信息,通过查询统计数据词典可以取得以下控制系统重要信息:比如
(1)对象定义情况
(2)对象占用内部空间大小
(3)列重要信息
(4)束缚重要信息
动态操控性快照
管理组织工作表内部空间和统计数据文件
表内部空间是资料库的逻辑组成部分。从物理上讲,资料库统计数据放置在统计数据文件中;从逻辑上讲,资料库统计数据则是放置在表内部空间中,表内部空间由三个或是数个统计数据文件组成。
资料库的逻辑结构
oracle中逻辑结构包括表内部空间、段、区和块。
说明一下资料库由表内部空间构成,而表内部空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样一种结构,可以提高资料库的效率。
表内部空间用作从逻辑上组织资料库的统计数据。资料库逻辑上是由三个或是数个表内部空间组成的。通过表内部空间可以达到以下两点用处:
(1)控制资料库占用的磁盘内部空间
(2)dba可以将相同统计数据类型部署到相同的位置,这样有利于提高i/o操控性,同时利于储存和恢复正常等管理组织工作操作。
建立表内部空间
建立表内部空间是使用create tablespace命令完成的,须要注意的是,一般情况下,建立表内部空间是特权使用者或是dba来执行的,如果用其它使用者来创建表内部空间,则使用者要要具有create tablespace的控制系统职权。
建立统计数据表内部空间
在建立资料库后,为了便于管理组织工作表,最好建立他们的表内部空间。
create tablespace sp001 datafile d:\sp001.dbf size 20m uniform size 128k
说明:执行完上述命令后,会建立名称为sp001的表内部空间,并为该表内部空间建立名称为sp001.bdf的统计数据文件,区的大小为128k
使用统计数据表内部空间
create table mypart(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace sp001;
改变表内部空间的状态
当建立表内部空间时,表内部空间处于联机(online)状态,此时该表内部空间是可以访问的,并且该表内部空间时可以读写的,即可以查询该表内部空间的统计数据,而且还可以在表内部空间执行各种句子。但在进行控制系统保护或是统计数据保护时,可能将须要改变表内部空间的状态。一般情况下,由特权使用者或是dba来操作。
(1)使表内部空间脱机
alter tablespace 表内部空间名 offline;
(2)使表内部空间联机
alter tablespace 表内部空间吗 online;
(3)只读表内部空间
当建立表内部空间时,表内部空间可以读写,如果不希望在该表内部空间上执行update,delete,insert操作,所以可以将表内部空间修改为只读。alter tablespace 表内部空间名 read only;
更动成可读可写为:alter tablespace 表内部空间名 read write;
(4)知道表内部空间名,显示该表内部空间包括的大部份表
select *from all_tables where tablespace _name=表内部空间名;
(5)知道表名,查看该表属于哪个表内部空间
select tablespace_name,table_name from user_tables where table _name =emp;
删除表内部空间
一般情况下,由特权使用者或是dba来操作,如果是其他使用者操作,所以明确要求使用者具有drop tablespace控制系统职权。
drop tablespace 表内部空间 including contents and datafiles;
说明:including contents表示删除表内部空间时,删除该内部空间的大部份资料库对象,而datafiles表示将资料库文件也删除。
扩展表内部空间
表内部空间是由统计数据文件组成的,表内部空间的大小实际就是统计数据文件相加后的大小。所以他们可以想象,假定表 employee在data01表内部空间上,初始大小为2M,当统计数据满2M时再向employee表插入统计数据,这样就会显示内部空间不足的错误。
扩展表内部空间,为其增加更多的储存内部空间有三种方式:
(1)增加统计数据文件
SQL> alter tablespace sp001 add datafile d:\sp002.dbf size 300m;
(2)增加统计数据文件的大小
SQL> alter database datafile d:\SP001.dbf resize 400m;
(3)设置文件的自动增长
SQL> alter database datafile d:\sp001.dbf autoextend on next 10m maxsize 500m;
移动统计数据文件
有时,如果你的统计数据文件所在的磁盘损坏时,该统计数据将无法再使用,为了能够重新使用,须要将那些文件的副本转移到其它的磁盘,然后恢复正常。
下面以移动统计数据文件sp001.dbf为例来说明:
1)确定统计数据文件所在的表内部空间
select tablespace_name from dba_data_files where file_name=d:\sp001.dbf;
2)使表内部空间脱机
确保统计数据文件的一致性,将表内部空间转变为offline的状态
alter tablespace sp01 offline;
3)使用命令移动统计数据文件到指定的目标位置
host move d:\sp001.dbf f:\sp001.dbf
4)执行alter tablespace命令
在物理上移动了统计数据后,还要执行alter tablespace对资料库文件进行逻辑修改:
alter tablespace sp001 rename datafile d:\sp001.dbf to f:\sp001.dbf;
5)使表内部空间联机
在移动了数据文件后,为了使使用者可以访问该表内部空间,要将其转变为online状态:
alter tablespace sp001 online;
显示表内部空间重要信息
查询统计数据词典快照dba_tablespaces,显示表空间的重要信息
select tablespaces_name from dba_tablespaces;
显示表内部空间所包含的统计数据文件
查询统计数据词典快照dba_data_files,可显示表内部空间中包含哪些统计数据文件,如下:
select file_name,bytes from dba_data_files where tablespaces_name = 表内部空间名:
表内部空间小结
1)介绍表内部空间和统计数据文件的作用
2)掌握常用表内部空间,undo表内部空间和临时表内部空间的建立方式
3)介绍表内部空间的各个状态(online,offline,read write,read only)的作用,及如何改变表内部空间的状态的方式。
4)介绍移动数据文件的原因,及使用alter tablespace命令移动统计数据文件的方式。
其他表内部空间
除了最常用的统计数据表内部空间外,还有其他类型表内部空间:
(1)检索表内部空间(海量统计数据)
(2)undo表内部空间
(3)临时表内部空间
(4)非标准块的表内部空间
这几种表内部空间,他们参考书籍研究。