04 ORACLE数据库管理与备份选看.docx
- 文档编号:11357575
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:55
- 大小:65.62KB
04 ORACLE数据库管理与备份选看.docx
《04 ORACLE数据库管理与备份选看.docx》由会员分享,可在线阅读,更多相关《04 ORACLE数据库管理与备份选看.docx(55页珍藏版)》请在冰豆网上搜索。
04ORACLE数据库管理与备份选看
ORACLE数据库管理与备份(选看)
目录
第1章管理ORACLE数据库3
1.1基本概念3
1.1.1数据字典3
1.1.2事务管理5
1.1.3数据库管理员(DBA)6
1.1.4ORACLE的四种状态7
1.2SQL*Plus方式的ORACLE数据库启动和关闭8
1.2.1启动数据库8
1.2.2关闭数据库8
1.2.3数据库管理工具10
1.3ORACLE用户及权限管理10
1.3.1ORACLE的用户管理11
1.3.2ORACLE的权限管理12
1.4ORACLE数据库的备份与恢复14
1.4.1Export转入程序14
1.4.2Import转入程序17
1.4.3增量卸出/装入19
第2章ORACLE数据库的网络应用21
2.1SQL*Net产品介绍21
2.2配置客户机/服务器结构22
2.2.1配置listener.ora22
2.2.2配置tnsnames.ora文件23
第3章常用任务示例26
3.1如何恢复被误删的数据文件26
3.2如何杀掉吊死session26
3.3如何修改字符集26
3.4如何追加表空间26
3.5如何加大表的maxextents值27
3.6如何查询无效对象27
3.7怎样分析SQL语句是否用到索引27
3.8怎样判断是否存在回滚段竞争28
3.9怎样手工跟踪函数/存储过程执行情况29
3.10多种业务使用同一数据库如何分配回滚段29
3.11怎样倒出、倒入文本数据29
3.11.1倒出29
3.11.2倒入30
3.12如何更新当前数据库日志备份方式为archive31
3.13Unix环境下如何实现自动备份31
3.13.1设置运行环境31
3.13.2倒出数据31
3.13.3异地备份32
3.13.4启动备份进程33
3.14怎样分析ORACLE故障34
小结36
附录AORACLE数据字典与视图37
附录B动态性能表43
附录CSQL语言运算符与函数45
第1章管理ORACLE数据库
本章主要讲述管理ORACLE数据库的一些必备知识。
1.1基本概念
1.1.1数据字典
数据字典是ORACLE数据库的最重要的部分之一,是由一组只读的表及其视图所组成。
这些表和视图是数据库被建立同时由数据库系统建立起来的,起着系统状态的目录表的作用。
数据字典描述表、列、索引、用户、访问权以及数据库中的其它实体,当其中的一个实体被建立、修改或取消时,数据库将自动修改数据字典。
因此,数据字典总是包含着数据库的当前描述。
数据字典提供有关该数据库的信息,可提供的信息如下:
●ORACLE用户的名字。
●每一个用户所授的特权和角色。
●模式对象的名字(表、视图、索引、同义词等)。
●关于完整性约束的信息。
●列的缺省值。
●有关数据库中对象的空间分布信息及当前使用情况。
●审计信息(如谁存取或修改各种对象)。
●其它一般的数据库信息。
可用SQL存取数据字典,由于数据字典为只读,只允许查询。
数据字典中全部基本表和用户可存取视图为ORACLE用户SYS所持有,所有对象包含在SYS模式中,安全管理员对该帐号要严格控制。
当ORACLE数据库系统启动后,数据字典总是可用,它驻留在SYSTEM表空间中。
数据字典包含视图集,在许多情况下,每一视图集有三种视图包含有类似信息,彼此以前缀相区别,前缀为USER、ALL和DBA。
●前缀为USER的视图,为用户视图,是在用户的模式内。
●前缀为ALL的视图为扩展的用户视图(为用户可存取的视图)。
●前缀为DBA的视图为DBA的视图(为全部用户可存取的视图)。
常用数据字典与视图
ORACLE数据库有三个可查看系统数据库字典的用户:
system、internal、sys,其它用户只能查看授权表空间的数据库字典,以某一用户登录数据库后可查看一些数据字典,了解数据库的资源情况,对日常维护的故障定位能起很大的帮助,下面就一些常用的数据表(视图)进行简单的说明:
(1)dba_tablespaces(user_tablespaces)
除三个系统用户以外的用户登录可查看user_tablespaces表。
dba_tablespaces(user_tablespaces)表可查看本数据库的表空间,它存放各个表空间的属性,包括:
表空间名、表空间宿主、以及存储参数(initial、next、maxextents、minextents、blocks等)等。
(2)dba_data_files(user_data_files)
该表可查看数据库所有数据库数据文件,它存放了各个数据文件的属性,包括:
表空间名、宿主、数据文件名、大小、可用空间以及ID号等。
(3)dba_segments(user_segments)
该表可查看数据库所有段,它存放了各个段的属性,包括:
段名、表空间名、宿主、大小、第一个区间的块号等。
(4)dba_rollback_segs
该表可查看数据库所有回滚段,它存放了各个数据库回滚段的属性,包括:
回滚段名、表空间名、宿主、存储参数(initial、next、maxextents、minextents等)、第一个区间的块号、占用数据库文件ID号。
(5)dba_extents
该表可查看数据库所有区间,它存放了各个区间的属性,包括:
区间ID、使用段ID、所属对象(object)名、宿主、占用数据库文件ID(对应dba_data_files中的ID号)、块号等。
常见应用:
查看各对象的区间是否已达到了最大区间数量(maxextents)。
selectobject_name,sum(*)fromdba_extentsgroupbyobject_name;
(6)dba_free_spaces
可查看数据库表空间的使用情况,如查看各数据库表空间的可用空间:
selecttablespace_name,sum(bytes)fromdba_free_spacesgroupbytalbespace_name;
以上为常用的数据字典,可在维护中灵活应用。
在维护过程中,第一步应查看数据库管理系统的运行日志,日志文件的存放路径应版本不同而不同,一般:
ORACLEworkgroup版,日志文件存放路径为:
$ORACLE_HOME/rdbms/alert_'SID'.log,OPS版,日志文件存放路径为:
$ORACLE_HOME/../../admin/bdump/alert_'SID'.log。
可用命令:
taillogfilename查看,或用vilogfilename,按shift+g到文件尾进行查看。
说明:
附录A详细列出了ORACLE的数据字典与视图,供参考。
1.1.2事务管理
1.事务(transaction)
数据库是多用户的共享资源,在多个用户并行地存取数据时,应对数据做并发控制,以免存取不正确的数据,破坏数据库的一致性。
数据库的任何状态变化都要能反映客观世界的某种真实存在的合理状态,反映到数据库中,就是数据要满足一定的约束条件,这种约束条件就是一致性约束。
有时,为了完成复杂的修改动作,往往需要临时破坏数据库的状态一致性。
因此,就有必要把这种对数据库复杂修改的一连串动作序列合并起来,这就是事务。
事务是数据库维护数据一致性的单位,它将数据库从一致性状态转换成新的一致性状态。
2.事务提交
提交事务:
即将在事务中由SQL语句所执行的改变永久化。
数据库数据的更新操作提交以后,这些更新操作就不能再撤消。
ORACLE的提交命令如下:
SQL>COMMIT;
3.事务回退
事务回退的含义是:
撤消未提交事务中的SQL语句所作的对数据修改。
ORACLE允许撤消未提交的整个事务,也允许撤消部分(需设置保存点)。
回退之后,数据库将恢复事务开始时的状态或保留点状态。
回退命令如下:
SQL>ROLLBACK;
4.保存点
保存点就是将一个事务划分成为若干更小的部分,以便在必要时,使当前事务只回退一部分,而其余工作得到保留。
其格式为:
SAVEPOINT保存点名;
ROLLBACKTO保存点名;
1.1.3数据库管理员(DBA)
任何一个系统都需要一个负责管理和维护的人员,负责管理和维护ORACLE数据库的人就是数据库管理员(DataBaseAdministrator,简称DBA)。
每个ORACLE数据库至少要有一名专职的数据库管理员,其职责如下:
●保证数据的完整性和一致性。
●提高执行速度,调整系统性能。
●管理数据库存储,减少数据冗余。
●安装、升级ORACLEServer和应用工具。
●定期对数据进行备份。
DBA为做好上述工作,需要了解以下知识:
●ORACLE产品结构。
●DBA工具。
●数据库备份和恢复。
●数据字典用途。
在ORACLE系统初始安装后,存在以下三个具有DBA特权的数据库用户:
●internal用户。
●sys用户。
●system用户。
1.DBA的操作系统帐户
在进行许多数据库的管理任务时,必须能够执行操作系统命令,所以需要有个操作系统帐户,以便能完成操作系统的操作,此时要求此帐户具有比一般数据库用户更多的操作系统权限或存取特权。
数据库的启动(startup)和关闭(shutdown)是重要的管理任务,只有通过internal用户连接到ORACLE数据库,才能执行启动和关闭。
对于不同的操作系统,必须完成下列要求之一,才能用internal登录ORACLE。
●你的操作系统帐户有允许你作为internal登录ORACLE操作系统权限。
●你有权限用internal登录ORACLE。
●若数据库用internal登录ORACLE时需要口令,你必须知道口令。
2.DBA角色和用户
每个数据库总是自动创建一个预先定义的角色“DBA”,该角色包括所有数据库系统权限,具有很强的特权,只应授予数据库管理员。
在数据库创建时,自动创建了两个用户,并授予DBA角色,具体如下:
●SYS:
初始口令为“CHANGE_ON_INSTALL”,所有数据字典基表和视图被存储在SYS用户中。
●SYSTEM:
初始口令为“MANAGER”,附加的表和视图(一些ORACLE选择件使用)以及被ORACLE工具使用的表和视图存放在SYSTEM用户中。
安装完毕后,建议立即修改初始口令。
DBA用户通常工具如下:
●Sql*DBA
●Sql*Loader
EXP和IMP
1.1.4ORACLE的四种状态
ORACLE数据库任何时候可以处于四种状态之一:
●SHUTDOWN:
数据库关闭
●NOMOUNT:
例程启动
●MOUNT:
例程启动,控制文件打开
●OPEN:
例程启动,所有数据文件打开
数据库可以在几种状态之间转变:
●NOMOUNT到MOUNT
ALTERDATABASEMOUNT
●MOUNT到OPEN
ALTERDATABASEOPEN
ALTERSYSTEMENABLERESTRICTEDSESSION
1.2SQL*Plus方式的ORACLE数据库启动和关闭
说明:
对TELLINU-NICA产品的维护建议用SQL*Plus方式来启动和关闭ORACLE数据库。
1.2.1启动数据库
数据库启动包括的步骤:
准备启动实例、启动数据库选项。
1.准备启动实例
用户在准备启动数据库实例前需要执行的预备步骤为以系统DBA来连接数据库:
$sqlplususer_name/user_password
说明:
使用具有系统DBA角色的用户连接ORACLE数据库管理系统。
如:
sys用户、system用户、unica用户等。
2.启动数据库选项
SQL>STARTdatabase_name;
这个命令启动实例装入并打开数据库。
说明:
如果不指定database_name,如:
“SQL>START;”系统将启动.bash_profile中定义的缺省的数据库实例。
1.2.2关闭数据库
关闭数据库的种类:
●用IMMEDIATE选项关闭。
●用NORMAL选项关闭。
●用TRANSACTIONAL选项关闭。
●用ABORT选项关闭。
关闭数据库及数据库实例要用系统DBA角色的用户来连接数据库,然后用SHUTDOWN命令来关闭数据库。
$sqlplususer_name/user_password
SQL>
1.用IMMEDIATE选项关闭
在下面情况下使用立即关闭数据库:
●当很快就要关电源时。
●数据库或其他应用程序功能不正常时。
立即关闭数据库通过下面的情况进行:
●未授权的事务退回(如果长期有未授权的事务存在,这种关闭的方法可能不会完成得很快)。
●ORACLE不等待用户当前的数据库连接断开,ORACLE不问原因地退回激活事务,并断开所有的连接用户。
●数据库下次启动将不要求任何实例恢复程序。
命令如下:
SQL>SHUTDOWNIMMEDIATE;
2.用NORMAL选项关闭
在下面情况下使用此方式:
●在语句发生后不允许新的连接。
●在数据库关闭前,ORACLE等待当前所有与数据库连接的用户断开连接。
●数据库的下一次启动将不需要任何实例恢复程序。
命令如下:
SQL>SHUTDOWNNORMAL;
3.带有TRANSACTIONAL选项关闭
当用户希望在允许活动事务首先完成时进行一个计划中的事务关闭时应用此种方式。
命令如下:
SQL>SHUTDOWNTRANSACTIONAL;
4.带有ABORT选项关闭
在如下情况下执行:
●数据库或它的应用程序不正常,并且其他形式的关闭不起作用。
●用户需要立即关闭数据库时(例如用户知道一分钟内就要停电时)。
●用户在启动数据库实例遇到问题时。
退出实例关闭数据库会产生如下的后果:
ORACLE处理的当前客户端SQL语句立即中断。
未递交的事务将不会退回。
ORACLE将不等待当前与数据库的连接断开,即ORACLE将断开所有的连接用户。
数据库的下一次启动将要求实例恢复程序。
如果正常与立即关闭选项都不能工作,要立即退出当前的数据库实例。
命令如下:
SQL>SHUTDOWNABORT;
1.2.3数据库管理工具
主要有以下几个工具:
●SQLWorksheet:
功能类似SQLPlus。
●InstanceManager:
可启动、关闭数据库,修改初始化参数,查看会话信息。
●SchemaManager:
可直接管理数据库对象,例如:
表、存储过程、函数等。
●SecurityManager:
对用户、角色进行管理。
StorageManager:
对表空间、数据文件、控制文件等进行管理。
1.3ORACLE用户及权限管理
合理的用户和权限管理对于数据库系统的高效、安全、可靠是很关键的。
ORACLE在用户及权限管理上有许多新的概念和特性。
说明:
对用户及权限的管理需要进入SQL*Plus交互工具。
每一个SQL语句后要以分号“;”结束。
退出交互工具命令为:
quit
SQL命令语句及可选项不区分大小写,本文中出现大写的地方是强调作用。
1.3.1ORACLE的用户管理
每个ORACLE数据库都有许多合法用户,这些用户可以根据用户名和口令登录数据库,并使用SQL语言存取数据。
(7)创建用户
创建用户命令格式
说明
createuser用户名;
创建用户的操作必须由DBA来做,一般用户无权创建用户。
用户名必须是唯一的,即同一数据库中不能有两个相同的用户。
identifiedby口令;
为用户设置口令
defaulttablespace表空间名;
表示该用户存放数据的缺省表空间
temporarytablespace表空间名;
表明用户使用的缺省临时表空间名
quota大小on表空间名;
quota可以限制用户在某个表空间上最多可使用多少字节
profile资源文件;
profile为用户指定各种资源的使用
下面是一个创建用户的完整例子:
createuserscott;
identifiedbytiger;
defaulttablespacedata_ts;
temporarytablespacetemp_ts;
quota500Kondata_ts;
profilenewprofile;
(8)修改用户
对用户的修改包括:
口令字、缺省表空间、临时表空间、表空间限量、profile、缺省角色。
角色是ORACLE7的一个新概念,我们在“权限管理”里再讨论。
在这里可把角色看成具有某些权限的一个特殊用户。
修改用户的缺省角色也就是为用户指明另一个权限的集合。
下面举例说明修改用户的操作:
任务
命令
将scott的口令改为hello
ALTERUSERscottIDENTIFIEDBYhello;
将scott的缺省表空间改为data2_ts
ALTERUSERscottDEFAULTTABLESPACEdata2_ts;
将scott的临时表空间修改为temp2_ts
ALTERUSERscottTEMPORARYTABLESPACEtemp2_ts;
将scott的资源文件改为otherprofile
ALTERUSERscottPROFILEotherprofile;
将scott的缺省角色改为DEVELOPER
ALTERUSERscottDEFAULTROLEDEVELOPER;
将当前系统所有角色都授予scott,除Payroll外
ALTERUSERscottDEFAULTROLEALLEXCEPTPayroll;
(9)删除用户
删除用户的命令为:
DROPUSER用户名[CASCADE];
若不使用CASCADE选项,则必须在该用户的所有实体都删除之后,才能删除该用户。
使用CASCADE后,则不论用户实体有多大,都一并删除。
1.3.2ORACLE的权限管理
ORACLE的安全机制,是由系统权限、实体权限和角色权限这三级体系结构组成的。
权限类型
说明
系统权限
是指对数据库系统及数据结构的操作权,例如创建/删除用户、表、同义词、索引等等
实体权限
是指用户对数据的操作权,如查询、更新、插入、删除、完整性约束等等
角色权限
是把几个相关的权限组成角色,角色之间可以进一步组合而成为一棵层次树,以对应于现实世界中的行政职位。
角色权限除了限制操作权、控制权外,还能限制执行某些应用程序的权限。
这样的安全控制体系,使得整个系统的管理人员及程序开发人员能控制系统命令的运行、数据的操作及应用程序的执行。
(10)系统权限
系统权限的授予命令为GRANT,例如把创建任何表视图的权限授予scott用户:
GRANTcreateanyviewTOscott;
系统权限的回收命令为REVOKE,例如将createanyview权限从scott用户手中收回:
REVOKEcreateanyviewFROMscott;
(11)实体权限
每种类型的实体有与之相关的实体权限。
授予实体权限的命令举例(将EMP表上的Select和Insert权限授给scott):
GRANTselect,insertONempTOscott;
回收实体权限的命令举例(将EMP表上的Select权限从scott手中回收):
REVOKEselectONempFROMscott;
(12)管理角色
角色是许多权限和角色的组合,它极大地方便了ORACLE的权限管理。
●创建角色,如创建一个名为dept1的角色,口令字为hello:
CREATEROLEdept1IDENTIFIEDBYhello;
●使用角色,可以通过修改用户的缺省角色来使用角色,或通过授权的方法来将角色授予其它角色或用户。
如将scott用户的缺省角色修改为DEVELOPER:
ALTERUSERscottDEFAULTROLEDEVELOPER;
将角色dept1授予manager角色:
GRANTmanagerTOscott;
●使角色生效或失效,DBA可以通过控制角色的生效或失效,来暂时回收用户的一部分权限。
如使dept1角色失效:
SETROLEdept1DISABLE;
●删除角色,这将会影响到拥有该角色的用户和其它角色的权限。
用DROPROLE命令删除角色,如:
DROPROLEdept1;
1.4ORACLE数据库的备份与恢复
ORACLE备份分为冷备份与热备份。
冷备份:
停止所有ORACLE服务,拷贝ORACLE目录下oradata文件夹的所有内容,这样即完成冷备份。
注意:
恢复的时候,新建的数据库版本与文件路径需要与原来保持一致。
热备份:
ORACLE系统提供的Export/转入(备份)、Import/转出(恢复)使用程序实现备份与恢复功能。
Export是在数据库打开并能使用的情况下备份数据库数据的实用程序。
用Export将数据库中的数据写到以二进制形式表示的操作系统文件中(ORACLE),该文件叫卸出文件,它可以是磁盘文件,也可以是磁带文件。
这些文件独立于数据库存在。
卸出文件在需要时能被再装入到ORACLE数据库中,也可装入到另一个CPU上的ORACLE数据库上,还可把它装入到不同ORACLE版本的数据库上。
用Export可实现应用程序失败时的恢复,例如可把某个表或某些表恢复到执行该Export时的状态。
由于卸出文件的特殊格式,所以只能用Import实用程序将其读入数据库中。
1.4.1Export转入程序
ORACLE数据库有两类备份方法,第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归档模式下,且需要极大的外部存储设备,例如磁带机;第二类备份方式为逻辑备份,客户服务中心业务数据库就是采用这种方式,这种方法不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备。
逻辑备份又分为三种模式。
表模式(T):
这种模式可以卸出当前用户数据库模式下的表,甚至是所有的表。
具有特权的用户可根据所指定的数据库模式来(限制表)卸出他们所包含的表。
缺省情况是卸出属于当前正在进行卸出的用户的所有表。
用户模式(U):
这种模式可以卸出当前用户数据库模式下的所有实体(表、数据和索引)。
全数据库模式(F):
只有具有EXP_FULL_DATABASE角色的用户才可能以这种模式卸出。
以这种模式进行卸出的用户,除SYS模式下的内容之外,数据库中所有实体都可以卸出。
下面列出给用户赋予EXP_FULL_DATABASE角色的方法。
#su–ORACLE
假设当前为超级用户身份
$sqlplussys/change_on_install
以sys用户登录并进入Sql*Pl
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 ORACLE数据库管理与备份选看 ORACLE 数据库 管理 备份