Oracle 11g 数据库管理基础.docx
《Oracle 11g 数据库管理基础.docx》由会员分享,可在线阅读,更多相关《Oracle 11g 数据库管理基础.docx(23页珍藏版)》请在冰豆网上搜索。
![Oracle 11g 数据库管理基础.docx](https://file1.bdocx.com/fileroot1/2023-4/16/90089323-0dc4-4862-b45d-bbf651e4049d/90089323-0dc4-4862-b45d-bbf651e4049d1.gif)
Oracle11g数据库管理基础
北极熊2013年32周
Oracle11g数据库管理基础一
Oracle官方文档翻译
眺望
绪言1
1开始数据库管理2
1.1各种Oracle数据库用户2
1.1.1数据库管理员2
1.1.2安全人员2
1.1.3网络管理员3
1.1.4应用开发者3
1.1.5应用管理者3
1.1.6数据库用户3
1.2数据库管理员的任务3
1.2.1评估数据库服务器硬件3
1.2.2安装数据库软件4
1.2.3规划数据库4
1.2.4建立并打开数据库4
1.2.5备份数据库4
1.2.6登记系统用户4
1.2.7实现数据库设计5
1.2.8备份完整功能的数据库5
1.2.9调优数据库性能5
1.2.10下载并安装补丁5
1.2.11滚动安装到附加主机5
1.3在数据库中运行命令和SQL6
1.3.1关于SQL*Plus6
1.3.2使用SQL连接到数据库6
1.4标识你的数据库发行版本9
1.4.1检查当前版本号9
1.5关于数据管理员安全与权限10
1.5.1数据库管理员的操作系统账号:
10
1.5.2管理员账号:
10
1.6数据库管理员认证10
1.6.1管理员权限10
1.6.2SYSDBA和SYSOPER11
1.6.3作为SYSDBA连接的例子11
1.6.4选择数据库管理员认证方法12
1.7建立和维护密码文件13
1.7.1建立密码文件13
1.7.2密码文件参数描述14
1.7.3共享和禁用密码文件14
1.7.4保持管理员密码和数据字典同步15
1.7.5管理密码文件15
1.8数据工具15
1.8.1SQL*Loader15
1.8.2Export和Import工具16
绪言
本章真正的很基础,很基础。
说实话翻译时就感觉是练习练习英文,有点基础都跳过或是有选择的看一点吧。
基础小故事:
纪昌者,又学射于飞卫。
飞卫说:
‘尔先学不瞬,而后可以言射矣。
’纪昌归,偃卧其妻之机下,以目承牵挺。
二年之后,虽锥末倒眦而不瞬也。
以告飞卫。
飞卫曰:
‘未也,必学视而后可,视小如大,视微如著,而后告我。
’昌以秏悬虱于牖,南面而望之。
旬日之间,浸大也;三年之后,如车轮焉。
以睹余物,皆丘山也。
……以告飞卫。
”飞卫高蹈拊膺曰:
“汝得之矣!
飞卫收了一个叫纪昌的人作徒弟。
飞卫对纪昌说:
“你先要学会盯住一个目标不眨眼,然后才谈得上学射箭。
”纪昌回去后就躺在他妻子的织布机下边,用眼睛盯着织布机密排的锥刺。
就这样坚持了两年以后,就算锥子碰到纪昌的睫毛了,他的眼睛也不会眨一下。
于是纪昌又去找飞卫。
飞卫说:
“这样还不够,你还要学会用眼睛去看东西的技巧。
要练得能把小的东西看成大的东西,能把细微的东西看得清清楚楚,然后再来告诉我。
”纪昌回去后,就在自己家的南窗下马尾毛挂一只虱子,自己每天都注视着这只虱子,在十天里,纪昌看见虱子慢慢变大了。
这样过了三年以后,在纪昌眼里虱子已经变得像车轮那么大了。
再看其他的东西,就好像山丘一样大。
于是,纪昌就用箭向那只虱子射去,箭穿过了虱子的中心,悬挂虱子的马尾毛却没有断。
纪昌赶快去告诉飞卫。
飞卫高兴得跳了起来,拍着胸口说:
“你已经把射箭的功夫学会了!
”
学习射箭必须先练眼力,基础的练习总是枯燥的,但基础的动作扎实了,应用就可以千变万化;Oracle的学习和应用也是一样。
1开始数据库管理
1.1各种Oracle数据库用户
各种用户的角色和职责与数据库站点相关,对于小型的数据库站点可能就一个数据库管理员做了所有工作,对于大型站点可能需要几个人分配不同的职责和区域对数据库进行管理
1.1.1数据库管理员
每个数据库至少必须有一个数据库管理员(DBA)。
一个大型的数据库系统可能很大并且拥有许多的用户。
数据库管理员有时不是一个人工作,但是对于一个数据库管理员团队他们拥有共同的职责。
数据库管理员职责包括以下任务:
Ø安装和升级数据库服务器和应用工具;
Ø为数据库系统分配存储和规划未来所需存储;
Ø在应用开发者设计完成应用之后建立主要数据库存储结构(表空间);
Ø一旦应用开发者设计完成应用,为其建立主要数据库对象(表、视图,索引);
Ø从应用开发者处获得信息,需要时修改数据库结构;
Ø注册用户并维护系统安全;
Ø确保遵守Oracle许可协议;
Ø控制和监视用户访问数据库;
Ø规划数据库的备份和恢复;
Ø维护归档数据;
Ø备份并还原数据库;
Ø联系Oracle技术支持。
1.1.2安全人员
在一些案例中,一个站点可能为数据库分配一个或多个安全人员。
安全人员负责注册用户,控制和监视用户访问到数据库,并且维护系统安全。
那么作为DBA,可能就不需要再承担这些职责。
1.1.3网络管理员
有些站点可能还具备一个或多个网络管理员。
如:
管理Oracle网络产品。
1.1.4应用开发者
应用开发者设计和实现数据库应用,他们的职责包括以下任务:
Ø设计和开发数据库应用;
Ø为应用设计数据库结构;
Ø为应用评估存储需求;
Ø指定修改数据库结构;
Ø传递这些信息给数据库管理员;
Ø在开发期间调优应用;
Ø在开发期间为应用建立安全机制。
应用开发者可能和DBA合作完成上述任务。
1.1.5应用管理者
一个Oracle数据库站点可能有一个或多个应用管理者管理一个特地应用,一个应用可能会有自己的应用管理者。
1.1.6数据库用户
数据库用户指使用应用或工具与数据库交互的人员,典型的用户职责包括以下任务:
Ø在许可条件下,录入,改变和删除数据;
Ø从数据中生成报告;
1.2数据库管理员的任务
1.2.1评估数据库服务器硬件
评估Oralce数据库和应用如何能最好的使用计算机资源,评估应该包括以下信息:
Ø有多少的磁盘可供数据库产品使用;
Ø如果有磁带,有多少磁带可供数据库产品使用;
Ø有多少内存可供将要运行的数据库实例使用。
1.2.2安装数据库软件
作为数据库管理员,需要能够安装数据库服务器软件和其他任何访问数据库的前端工具和数据库应用。
在一些分布式处理环境中,数据库可能位于中心服务器,而数据库工具和应用在远程计算机(客户端)执行,你必须能够为需要的远程计算机安装所需的OracleNet组件。
1.2.3规划数据库
作为数据库管理员你必须规划:
Ø数据库的逻辑存储结构;
Ø数据库设计所包含的所有内容;
Ø数据库的备份策略;
数据库的逻辑存储结构规划是重要的,它将影响系统的性能和各种数据库管理操作。
例如:
在建立表空间之前需要明确表空间需要多少个数据文件,表空间存储哪些类型的数据等。
逻辑结构设计应该考虑下列影响:
Ø数据库运行时计算机的性能;
Ø数据库访问操作时数据库的性能;
Ø数据库备份和恢复的影响;
1.2.4建立并打开数据库
在完成数据库设计后,建立并打开数据库。
1.2.5备份数据库
在建立数据库之后,应该计划数据库的备份策略,建立附加的重做日志文件。
首先做一个全库备份,然后安排一个规律的数据库备份计划。
1.2.6登记系统用户
完成数据库结构备份之后,可能需要注册数据库用户以符合Oracle许可协议,并授权相应的权限给这些用户。
1.2.7实现数据库设计
在建立和开始数据库并注册了用户后,可以开始实现规划的数据库逻辑结构创建所有的表空间。
完成创建表空间之后,创建数据库对象。
1.2.8备份完整功能的数据库
在完全实现数据库功能之后,再次备份数据库。
在数据库结构改变后总是立刻备份数据库。
1.2.9调优数据库性能
优化数据库的性能将是DBA不间断的任务。
Oracle提供了数据库资源管理帮助DBA在各种用户组之中控制可分配资源。
1.2.10下载并安装补丁
在安装了基本版本之后,你可能需要安装新的补丁发行版,例如:
安装了11.2.0.1后,你可能需要安装11.2.0.2。
有些时候你可能由于某些BUG需要安装独立的临时补丁。
1.2.11滚动安装到附加主机
在你对一个数据库进行了安装,配置,调优和测试之后,你可能想滚动安装到其它主机。
基于以下原因:
Ø你有多个产品数据库系统;
Ø你需要建立一个独立于你产品数据库的开发和测试系统;
相对于在其它主机进行安装,调优和补丁,你可以使用克隆的方式在其它主机上安装你的数据库,以节约时间及消除不一致性。
你将处理两种类型的克隆操作:
Ø克隆ORACLE_HOME:
将配置和补丁好的OracleHome目录和子目录拷贝到目标数据库并且恢复配置在新的环境;
Ø克隆数据库:
一个已经调优的数据库,将数据文件,初始化参数文件等拷贝到克隆的OracleHome。
1.3在数据库中运行命令和SQL
通过提交SQL语句和数据库进行交互。
Oracle数据库支持SQL的超集,它包括启动和关闭数据库命令,改变数据库配置等。
可以通过以下三种方式提交SQL语句和命令到数据库:
Ø直接,使用SQL*Plus命令行接口;
Ø间接,使用企业管理器图形接口;
Ø直接,使用SQLDeveloper
1.3.1关于SQL*Plus
SQL*Plus是数据库主要的命令行接口。
使用SQL*Plus启动和关闭数据库,设置数据库初始化参数,建立和管理用户,建立和改变数据库对象(如表和索引),插入和更新数据,运行SQL查询以及更多其它语句。
在提交SQL语句和命令之前必须先连接到数据库。
SQL*Plus可以通过本地或远程方式连接。
连接本地的意思是在Oracle数据库的同一台计算机运行SQL*Plus,连接远程的意思是在远程计算机通过网络连接到Oracle数据库。
1.3.2使用SQL连接到数据库
Oracle数据库包括以下组件:
ØOracle实例,由一组进程和内存组成;
Ø一套包含用户和系统数据的磁盘文件。
当使用SQL*Plus连接时,你是连接到Oracle实例,每个实例有一个instanceID,又名systemID(SID)。
因为一台计算机可能有一个或多个Oracle实例,每个都有自己的数据文件,你必须标识出你想连接的实例。
对于本机连接,通过设置操作系统环境变量标识实例。
对于远程连接,通过指定网络地址和数据库服务名标识实例。
使用SQL*Plus步骤如下:
1.打开命令行窗口;
2.设置操作系统环境变量;开始SQL*Plus的环境变量设置与平台相关;在UNIX平台上你必须通过命令设置操作系统环境。
在Windows平台上,OracleUnivervalInstaller(OUI)在自动Windows注册表中分配ORACLE_HOME和ORACLE_SID的值。
例:
UNIX平台(bash)
exportORACLE_SID=orcl
exportORACLE_HOME=/oracle/app/oracle/product/10.2.0/db_1
exportPATH=$ORACLE_HOME/bin:
$PATH
例:
Windows平台
setORACLE_SID=orcl
3.开始SQL*Plus
sqlplus/nolog
4.提交连接语句
能够使用CONNECT语句在任何时候使用不同用户连接或重新连接到数据库实例。
CONNECT语句如下:
CONN[ECT][logon][AS{SYSOPER|SYSDBA}]
其中logon语法如下:
{username|/}[@connect_identifier][edition={edition_name|DATABASE_DEFAULT}]
语法
描述
/
连接请求调用外部过程。
在这种认证类型中不使用数据库密码,多数情况下使用操作系统外部认证。
数据库用户被认证为一个已经登录到操作系统上的确定的用户账号。
AS{SYSOPER|SYSDBA}
指出连接的数据库用户使用SYSOPERorSYSDBA系统权限。
仅用一个确定的预定义的管理员用户或是被添加到密码文件中的用户能够使用这些权限。
username
一个有效的数据库用户名。
此数据库认证连接请求通过匹配数据字典中的用户名,并提示使用用户密码。
connect_identifier
(1)
一个OracleNet连接标识。
对于远程连接,使用OracleNet配置。
如果忽略,SQL*Plus试图连接本地实例。
此连接串通常为一个网络服务名,这是一个别名,对应OralceNet连接描述(网络地址,端口,数据库服务名)。
此别名通常由本地计算机的tnsnames.ora文件解析,但也可能通过其它方式解析。
connect_identifier
(2)
可选的,连接描述符可以直接使用连接语法,而不使用客户(本地)计算机的OracleNet服务。
连接语法使用以下标识(必须使用双引号包含):
"host[:
port][/service_name][:
server][/instance_name]"
●host是远程计算机的主机名或IP地址
●port为要连接的数据库上OracleNet监听器的TCP端口,如果忽略,假定为1521
●service_name要连接的数据库服务名。
如果在远程主机上Net服务监听器指定为默认服务,可以忽略。
其它情况必须配置。
典型情况下标准的服务名等于全局数据库名,由DB_NAMEandDB_DOMAIN初始化参数组成:
DB_NAME.DB_DOMAIN
edition={edition_name|DATABASE_DEFAULT}
指定开始新的数据库会话的编辑器。
忽略使用数据库默认编辑器.
例一:
使用system用户连接到本地数据库实例,SQL*Plus将提示输入用户密码:
connectsystem
例二:
使用用户sys和sysdba权限连接本地数据库,SQL*Plus将提示输入用户密码:
connectsysassysdba
例三:
连接到本地,通过操作系统认证(注:
一般配置下本地操作系统为sysdba权限,因此这样连接将失败)
connect/
例四:
使用sysdba权限连接到本地,通过操作系统认证:
conn/assysdba
例五:
使用连接语法连接,用户salesadm连接到在主机上运行的远程数据库。
OracleNet监听器使用默认端口(1521).数据库服务是。
SQL*Plus提示输入salesadm用户密码:
connectsalesadm@"
例六:
与例五相同,增加服务连接类型
connectsalesadm@"
例七:
与例五相同,除了使用非默认监听端口1522
connectsalesadm@":
1522/"
例八:
与例五相同,处理使用IP地址指代主机名
connectsalesadm@"10.10.10.10/"
例九:
使用网络服务名连接,SQL*Plus将提示输入用户密码:
connectsalesadm@
1.4标识你的数据库发行版本
ØMajorDatabaseReleaseNumber:
第一个数字是最普通的标识,它指出软件的主版本号,包含重大的新功能。
ØatabaseMaintenanceReleaseNumber:
第二个数字指出维护发布等级,也可能包含一些新特性。
ØFusionMiddlewareReleaseNumber:
第三个数字指出Oracle融合中间件版本号,对于数据库产品一般都是0。
ØComponent-SpecificReleaseNumber:
第四个数字指出指定组件的发布等级。
不同组件有着不同的数字,在这个例子中是组件补丁集或临时发布。
ØPlatform-SpecificReleaseNumber:
第五个数字是平台指定发布。
通常这是一个补丁集,当不同平台必须相同的补丁集时,这个数字对于影响的平台是相同的。
1.4.1检查当前版本号
COLPRODUCTFORMATA40
COLVERSIONFORMATA15
COLSTATUSFORMATA15
SELECT*FROMPRODUCT_COMPONENT_VERSION;
PRODUCTVERSIONSTATUS
--------------------------------------------------------------
NLSRTL11.2.0.0.1Production
OracleDatabase11gEnterpriseEdition11.2.0.0.1Production
PL/SQL11.2.0.0.1Production
1.5关于数据管理员安全与权限
1.5.1数据库管理员的操作系统账号:
在管理数据库是,有时必须在数据库运行的操作系统上执行命令。
因此需要相应的操作账号和权限访问操作系统。
1.5.2管理员账号:
有两个管理员用户在数据库安装时被自动建立:
ØSYS(默认密码:
change_on_install):
当建立数据库时,SYS自动建立并授予DBA角色。
数据库数据字典的基本表和视图都存于schemasys中。
这些基本表对数据库是关键的,管理员从不需要改变它们。
并且不应该使用sys用户建立任何表。
确保大多数用户从不使用sys账号连接;
ØSYSTEM(默认密码:
manager):
当建立数据库时,SYS自动建立并授予DBA角色。
SYSTEM用户建立显示管理信息的附加表和视图,以及各种数据库选项和工具使用的内部表和视图。
不要使用SYSTEM用户存储其它非管理用户的表。
从10g开始在使用OUI的DBCA创建数据库是会提示你修改SYS和SYSTEM的密码,你可以分别设置这两个密码。
建立至少一个管理员用户并授予相应的权限以执行管理任务,不要使用sys和system管理
DBA角色:
每个数据库安装时,自动建立一个预定义的DBA角色。
这个角色包含大多数系统权限。
因此DBA角色应该仅被授权给管理员。
1.6数据库管理员认证
作为数据库管理员需要执行一些特殊的操作,如:
启动和关闭数据库。
仅数据库管理员能够执行这些操作,因此数据库管理员用户必须有安全的认证机制。
1.6.1管理员权限
基本的数据库管理操作必须通过授权两种指定的权限SYSDBA和SYSOPER。
SYSDBA和SYSOPER系统权限允许在数据库未打开的状态下访问数据库实例,因此SYSDBA和SYSOPER不属于数据库控制。
如果你拥有SYSDBA权限你可以通过connectassysdba方式连接到数据库
1.6.2SYSDBA和SYSOPER
系统权限
授权的操作
SYSDBA
ØSTARTUP,SHUTDOWN
ØALTERDATABASE:
open,mount,backup,orchangecharacterset
ØCREATEDATABASE
ØDROPDATABASE
ØCREATESPFILE
ØALTERDATABASEARCHIVELOG
ØALTERDATABASERECOVER
ØRESTRICTEDSESSIONprivilege
ØEffectively,thissystemprivilegeallowsausertoconnectasuserSYS.
SYSOPER
ØSTARTUP,SHUTDOWN
ØCREATESPFILE
ØALTERDATABASEOPEN/MOUNT/BACKUP
ØALTERDATABASEARCHIVELOG
ØALTERDATABASERECOVER(Completerecoveryonly.Anyformofincompleterecovery,suchasUNTILTIME|CHANGE|CANCEL|CONTROLFILErequiresconnectingasSYSDBA.)
ØRESTRICTEDSESSIONprivilege
ØThisprivilegeallowsausertoperformbasicoperationaltasks,butwithouttheabilitytolookatuserdata.
当使用SYSDBA和SYSOPER连接时,通过默认的schema连接。
对于SYSDBA连接作为sys,对于SYSOPER连接作为public
1.6.3作为SYSDBA连接的例子
这个例子授权OE用户sysdba权限,执行下列命令:
CONNECToe
CREATETABLEadmin_test(nameVARCHAR2(20));
然后执行
CONNECToeASSYSDBA
SELECT*FROMadmin_test;
此时用户将收到如下错误提示
ORA-00942:
表或视图不存在
出现这个提示的原因是:
当作为sysdba连接时,OE用户参照sysschema,但是表是在oeschema下建立的。
1.6.4选择数据库管理员认证方法
数据库管理员可以和其它用户一样通过数据库字典的方式认证(使用一个账号和密码)。
从11g开始数据库的密码是大小写敏感的(可以通过设置初始化参数SEC_CASE_SENSITIVE_LOGON来启用,禁用这个功能)。
除了数据库字典认证外,Oracle可以通过下述方式认证SYSDBA和SYSOPER权限:
Ø操作系统认证;
Ø密码文件;
Ø网络认证服务器,如:
OracleInternetDirectory
当数据库没有开始或其它原因不可用时,只能通过上述三种方式认证。
下面着重描述了操作系统认证和密码文件:
ØNonsecureRemoteConnections:
通过不安全的连接使用特权用户连接到Oracle数据库时,必须使用密码文件。
ØLocalConnectionsandSecureRemoteConnections:
在通过本地连接或安全的远程使用特权用户连接到Oracle数据库时。
如果有一个密码文件并且已经被授予了SYSDBA或SYSOPER系统权限,那么可以通过密码文件认证连接;如果服务器没有使用密码文件或没有通过密码文件被授予SYSDBA或SYSOPER权限。
能够使用操作系统认证,在大多数操作系统上通过特定OSDBA和OSOPER组来授权用户。
操作系统组
UNIX用户组
Windows用户组
OSDBA
dba
ORA_DBA
OSOPER
oper
ORA_OPER
作为OSDBA组的成员拥有sysdba的系统权限,OSOPER组的成员拥用sysoper的系统权限。
OracleUniversalInstaller使用默认的名称,但是他们能够被改变。