ORACLE DBA基础(一)

安装和管理ORACLE
1、  ORACLE通用安装程序(OUI)

一种基于JAVA并适用于所有平台的工具来安装ORACLE9I。

2、  数据库配置助手(Database Configuration Assistant)

用以创建一个新的数据库

3、ORACLE网络配置助手(Oracle Net Configuration Assistant)

      可为数据库库设定监听者

4、  Oracle Enterprice Manager(OEM)    ORACLE企业管理器

是一个图形化系统管理工具,用于管理工作ORACLE的组件,并且以会话方式管理数据库

5、  优化灵活的体系结构(OFA)

是由ORACLE定义的一组导向行,用以更好的管理ORACLE软件和数据库

6、  select * from v$pwfile_users

查出所有被赋权为SYSDBA或SYSOPER用户的信息。

7、  启动实例

startup nomount   -à实例可启动,但不安装配数据库。通常在创建一个新的数据库或创建新的控制文件时使用该语句。

Startup mount     -à能够启动且装配数据库,但并不打开它。通常用于执行特定的维护操作。比如重命名数据文件,启用或停用存档日志等。

Startup [open]     -à启动实例,装配数据库,并且为正常的操作打开数据库。

Alter database mount  -à当数据库未安装时,发出该命令,能用一个先前已开始了的实例来装配数据库。

Alter database open   -à该命令将打开一个已关闭的数据库。

Alter database open read only -à以只读的模式打开一个数据库,不能修改任何数据。

Startup force    -à有时启动实例时可能有问题,可使用该命令来强制启动一个没能关闭的或没能正常启动的数据库。只应在不能正常关闭数据库时使用这个选项,STARTUP FORCE会关闭已运行的实例并重新启动它。

Startup restrict   à以限制模式启动数据库,从而限制访问数据库。只有具有RESTRICTED SESSION系统权限的用户能与数据库联接。在打开数据库以后,还可以使用ALTER SYSTEM [ENABLE/DISABLE] RESTRICTED SESSION语句启动或关闭访问限制功能。

8、取得参数值

      show parameters [参数名]-à当这个命令没有指定参数名时,ORACLE按字母顺序显示所有的参数及其值。如show parameters db_block_size

或show parameters os 将所有命令包含有OS字母的参数全部显示出来。

9、  select * from v$parameter à显示当前的会话的参数值。

Select * from v$system_parameter  -à显示系统参数

如:select name,value from v$parameter

10、设置参数值

      alter system--à改变系统参数的值

      slter system set log_archive_dest=’/oracle/archive/DB01’ immediate ‘IMMEDIATE’指出只要改变参数的值,就立刻适用于该实例的所有会话。

  Alter system set timed_statistics=true deferred  ‘DEFERRED’批出所做的变化在新的会话开始之前,不会立刻生效,当前的会话仍然使用当前的值。

  Alter session -à改变参数的值

  使用该命令改变一个参数,参数的值仅仅在那个会话期被改变。当开始下一个会话时,参数将被赋予原先的值。

  Alter session set nls_date_formate=’MM-DD-YYYY’;

11、管理会话

      当做数据库连接时,ORACLE就启动一个会话,只要用户与数据库连接,会话就可用。

      为显示连接到数据库的用户会话,可查询视图:v$session

      在v$session中SID和序列号(SERIAL#)惟一地标识每个会话。

  如:select username,sid,serial#,status from v$session

12、中止会话

      alter system kill session ‘sid,serial#’;

如:alter system kill session ‘9,3’;其中SID,SERIAL#通过从v$session视图中查询得知。

如果希望用户完成当前的事务然后结束会话,可以使用alter system disconnect session命令。

如:alter system disconnect session ‘9,3’ post_transaction;

如 果希望用户回退正在进行的事务,释放所有会话锁,恢复整个会话状态,立记得将控制返回。可以使用:alter system disconnect session ‘9,3’ immediate;或alter system kill session ‘9,3’  immediate;

13、关闭ORACLE实例

      shutdown normal 当不带先项的SHUTDOWN命令时,默认先项是NORMAL

      此命令做以下事情:

             A不允许新用户连接

             B.等待所有用户断开与数据库的连接,所有已连接的用户可以继续工作。

       C.关闭数据库,卸载实例,关且一旦所有用户数据与数据库的连接则关闭实例。

   Shutdown immediate 使数据库尽可能快的关闭。

   此命令做以下事情:

A. 不允许新用户连接

B. 终止所有用户与数据库的连接

C. 回退所有提交的事务

D.关闭数据库,卸载实例,关闭实例

   shutdown transactional  在用户完成他们当前的事务时关闭数据库。

A.      不允许新用户的连接

B.      不允许数据库的新事务,如果用户企图开始一个新事务,则会话断开。

C.      等待用户回退或提交未提交的事务。

D.     关闭数据库,卸载实例,一旦所有事务完成。关闭实例

shutdown abort  如果其它三个关闭选项不起作用,该命令突然关闭数据库。当下次启动该数据库时,需要实例恢复。

A.      终止正在执行的所有当前SQL语句

B.      断开所有连接的用户

C.      立即终止实例

D.     不回退未提交的事务。如果数据库在该模式下之后启动,ORACLE必须使用联机重做日志文件回退未提交的事务。

14、实例消息和实例警告

      ORACLE将信息化的消息和警告写入不同的文件.这些不同的文件的位置在初始化参数中指定:

      BACKGROUND_DUMP_DEST-à写入调试跟踪文件的位置

      USER_DUMP_DEST -à写入由用户会话生成的跟踪文件的位置.

      CORE_DUMP_DEST -à写入主存信息转储文件的位置.

15、OMF(ORACLE管理文件)

      ORACLE管理文件的特性:可以使用两个初使化参数定义文件在操作系统中的位置:

      DB_CREATE_FILE_DEST-à指定新数据文件的默认位置.

   DB_CREATE_ONLINE_LOG_DEST_n-à为联机重做日志文件和控制文件指定最5个位置.

创建数据库和数据词典
1、创建数据库的先决条件:

A. 分配必要的硬件资源,如内存和硬盘空间

B. 设置操作系统和SYSDBA权限

C. 设定参数文件

D.设置的环境变量

E. 安装ORACLE软件

F. 备份现有数据库

2、创建数据库命令

创建数据库之前,必须启动一个实例(用STARTUP NOMOUNT)

例子:

CREATE DATABASE “数据库名”

CONTROLFILE REUSE      -à覆盖已有的控制文件,通常只有在重建数据库时,才使用。

LOGFILE GROUP 1    àLOGFILE子句指定联机重做日志文件的位置,如果省略GROUP子句,ORACLE对第个文件创建一个组。一个数据库至少需要含有两个重执行组。

(’/oradata02/PROD01/redo0101.log’,

‘/oradata03/PROD01/redo0102.log)SIZE 5M REUSE,

GROUP 2

(‘/oradata02/PROD01/redo0201.log’,

‘/oradata03/PROD01/redo0202.log) SIZE 5M REUSE

MAXLOGFILES 4       à定义数据库可以创建的最大重做日志文件的数目.

MAXLOGMEMBERS 2  à定义每个重做日志组可以拥有的最大重做日志文件个数.

MAXLOGHISTORY 0   à只用于设置实应用簇.定义媒体自动恢复的重做日志文件的大小.

MAXDATAFILES 254   à定义数据库可以创建的最多数据文件数(当创建表空间时)

MAXINSTANCES 1     à定义可以同时装配和打开的最大实例数目.

NOARCHIVELOG  à设置重执行日志文件的存储模式(这是默认值)另一值为:ARCHIVELOG

CHARACTER SET “WE8MSWIN1252”   à指定存储数据使用的字符集(这是WINDOW平台的默认值)

NATIONAL CHARACTER SET “AL16UTF16” à指定国家字符集,用于在NCHAR,NCLOG或NVARCHAR2列中存储数据..

DATAFILE ‘/oradata01/PROD01/system01.dbf’ SIZE 90M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED      à定义为SYSTEM表空间创建的一个或多个文件.

UNDO TABLESPACE UNDOTBS  DATAFILE ‘/oradata04/PROD01/undo01.dbf’ SIZE 35Mà指定一个具有一个或多个相关的数据文件的撤消表空间.

DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE ‘/oradata05/PROD01/temp01.dbf’ SIZE 20M  à定义所有临时表空间的位置

3、  创建数据库所涉及的工作总结:

A. 确保拥有足够的资源和必要的权限。

B. 确定数据库的名称,控制文件的位置,数据库的块大小,并准备一份包括其他必要参数的参数文件。

C. 确定控制文件,数据文件和重做日志文件的位置。在可能的情况下,应该把可能会竞争资源的数据文件分散到不同的物理存储部件里。

D.确定数据库的版本和实例名称。设置环境变量ORACLE_HOME为安装ORACLE软件的目录,设置ORACLE_SID为实例名称.通常情况下,实例名和数据库名相同.如果不使用默认的字符集,还要设置ORA_NLS33环境变量.

E. 启动实例.使用SQL*PLUS,连结SYSDBA账户,运行STARTUP NOMOUNT命令

F. 使用CREATATE DATABASE 命令创建数据库

4、  每个数据库应至少有一个与之关联的实例,多个实例可以访问一个数据库。每一个实例可否有多个数据库?若有多个数据库的话,当发出STARTUP命令时, 是不是所有的数据库一块打开?能不能特别指定其中的一个数据库?创建用户或创建表空间时如何特定指定是哪个数据库?

5、  数据库安装完后,ORACLE会自动调用以下两个SQL脚本创建数据词典

CATALOG.SQL à用于创建数据词典视图

CATPROC.SQL à创建实现PL/SQL功能的必要的词典项目

6、  管理存储程序和软件包

创建过程,软件或函数的代码可以通过DBA_SOURCE,ALL_SOURCE,USER_SOURCE词典视图访问

DBA_OBJECTS,ALL_OBJECTS,USER_OBJECTS视图提供关于存储过程的状态信息.

7、  重编译命令:

ALTER PROCEDURE 〈过程名〉 COMPILE;

ALTER PROCEDURE  〈包名〉COMPILE;

ALTER PROCEDURE 〈包名〉COMPILE BODY;

8、  数据词典分类

DBA_  à包含数据库中的所有结构的信息

ALL_  à提供用户可访问的对象的信息

USER_  à显示用户拥有的结构的信息(按用户方案)

      V$  -à动态运行视图,(真正的动态运行视图以V_$为前缀,V$只是它的同义词)

9,可以使用数据词典信息产生数据库中对象创建的代码.

 表的信息可通过DBA_TABLES,DBA_TAB_COLUMNS,ALL_TABLES,ALL_TAB_COLUMNS,USER_TABLES,USER_TAB_COLUMNS词典视图获得.

10,词典视图DICTIONARY(DICT)包含数据库中所有数据词典的名称和描述信息.

控制文件和重执行日志文件
控制文件
1, 控制文件à维护数据库物理结构的信息,可看作是实际数据库的元数据仓库,它含有数据库的结构à数据文件和重执行日志文件.

 控制文件是持续不断的更新的,

 控制文件的大小由创建数据库的MAX子句决定.

 当向数据库添加文件或者改变文件的位置时,ORACLE服务器里程会立即更新控制文件中的相应信息.

 控制文件包含两种记录:可重复使用的和不可重复使用的.

2, 控制文件应包含如下内容:

   A.控制文件所属的数据库名称,一个控制文件只能属于一个数据库.

 B.创建数据库的时间戳记

 C.数据文件,的时间,位置和联机脱机状态信息.

 D.重执行日志文件的名称和位置,和存档信息

 E.表空间名称

 F.当前的日志序列号

 G.最近的检查点信息

 H.撤消段的开始和结束

 I.RMAN的备份信息

3.复用控制文件àORACLE建议至少有两个控制文件

复用的方法有两种:

A>用init.ora复用控制文件

 要定义复用的控制文件,先复制控制文件到不同的位置,并更改初使化文件init.ora里的CONTROL_FILES参数.

 通常应该把控制文件存放在多个磁盘

 如果损失了一控制文件,只要复制另外的控制文件,或更改初始文件中的CONTROL_FILES参数,就可以重新启动数据库.

增加控制文件的副本的步骤:

A.关闭数据库

B.使用操作系统命令把控制文件复制到多个位置

C.更新初使化参数文件的CONTROL_FILES参数,使它包含所有新的控制文件的名称.

D.启动数据库

B>使用SPFILE复用控制文件

步骤:

A.在数据库开启状态下更改SPFILE:

SQL>ALTER SYSTEM SET CONTROL_FILES=

   ‘/ora01/oradata/MYDB/ctrlMYDB01.ctl’,

‘/ora02/oradata/MYDB/ctrlMYDB02.ctl’,

‘/ora03/oradata/MYDB/ctrlMYDB03.ctl’,

‘/ora04/oradata/MYDB/ctrlMYDB04.ctl’  SCOPE=SPFILE;

B.关闭数据库

SQL>SHUTDOWN NORMAL;

C.复制已有的控制文件到新的位置(复制,粘贴)

D.启动实例.

SQL>STARTUP;

4. 创建新的控制文件

在以下情况下需要创建新的控制文件

A.如果丢失了所有的控制文件

B.如果想要更改CREATE DATABASE命令中任一MAX子句.

C.如果想更改数据库的名称

创建新的控制文件的前提:

需要知道数据文件的名称和重执行日志文件的名称

5. 创建控制文件的步骤

A.

CREATE CONTROLFILE SET DATABASE “ORACLE”

 NORESETLOGS NOARCHIVELOG

 MAXLOGFILES 32

 MAXLOGMEMBERS 2

 MAXDATAFILES 32

 MAXINSTANCES 1

 MAXLOGHISTORY 1630

LOGFILE

 GROUP 1 ‘C:/ORACLE/DATABASE/LOG2ORCL.ORA’ SIZE 500K,

 GROUP 2 ‘C:/ORACLE/DATABASE/LOG1ORCL.ORA’ SIZE 500K

DATAFILE

 ‘C:/ORACLE/DATABASE/SYS1ORCL.ORA’,

 ‘C:/ORACLE/DATABASE/USR1ORCL.ORA’,

 ‘C:/ORACLE/DATABASE/RBS1ORCL.ORA’,

 ‘C:/ORACLE/DATABASE/TMP1ORCL.ORA’,

‘C:/ORACLE/DATABASE/APPDATA1.ORA’,

‘C:/ORACLE/DATABASE/APPINIDX1.ORA’;

B.关闭数据库

C.STARTUP NOMOUNT (ORACLE需要打开控制文件才能装载数据库)

D.控制文件的名字和位置按照初始化参数CONTROL_FILES的定义

E.用ALTER DATABASE OPEN命令打开数据库.

F.关闭数据库.并且备份数据库

6. 查询V$DATAFILE视图,可以查出是否有在控制文件中所列出的控制文件被遗漏.如果有遗漏的文件则以MISSINGnnnn名称显示.

如果以RESETLOGS选项创建控制文件,遗漏的数据文件不能加回数据库.

如果以NORESETLOGS选项创建控制文件,遗漏的数据文件可以通过媒体恢复加进数据库.

7.备份控制文件

在数据库开启状态下可以用以下命令备份控制文件

ALTER DATABASE BACKUP CONTROLFILE TO ‘<filename>’ REUSE;

也可以这样备份控制文件:

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

该命令把控制文件放进一个位于USER_DUMP_DEST的文本格式的跟踪文件,删除其中一些无关的信息来重新创建控制文件.

ORACLE建议,一旦更改数据库的结构:如添加数据文件,更名数据文件或删除重执行日志文件等,就要备份控制文件.

8. 查询控制文件信息V$CONTROLFILE

该视图列出数据库所有控制文件的名称

也可以通过SHOW PARAMETER命令来获取控制文件的名称:

SQL>SHOW PARAMETER CONTROL_FILES;

9. 显示控制文件的记录.-àV$CONTROLFILE_RECORD_SECTION

  存档日志信息 àV$ARCHIVED_LOG

  组成数据库的单个数据文件的备份状态--àV$BACKUP_DATAFILE

  关于备份块的信息,使用RMAN时更新àV$BACKUP_PIECE

  使用RMAN备份的存档日志文件的信息àV$BACKUP_REDOLOG

  已经成功使用RMAN的备份的信息àV$BACKUP_SET

  数据库的信息àV$DATABASE

  与数据库有关的数据文件的信息àV$DATAFILE

  通过热备份或使用RMAN拷贝的数据文件的信息àV$DATAFILE_COPY

  联机重做日志文件组的信息àV$LOG

  联机重做日志文件组的文件或成员àV$LOGFILE

  分配给每一个实例的日志文件的信息àV$THREAD

从一个“普通”的Oracle DBAOracle数据库管理员)转变为Oracle Applications DBAOracle应用程序数据库管理员),有两个内容你必须去弄清楚。第一个内容是如何成为一个Oracle Applications DBAOracle应用程序数据库管理员)。第二个内容是你要搞清楚Oracle应用程序背后的架构体系,也就是说你要明白诸如以下产品的结构体系:Oracle电子商务套件、Oracle 11i数据库、Siebel产品等。 本文首先讲述如何从一个普通的Oracle DBA转变为一个Oracle Applications DBAOracle应用程序数据库管理员),接着讲述一些Oracle应用软件架构方面的内容 。 如何成为Oracle应用程序数据库管理员 首先是角色的转变 Oracle Applications DBAOracle应用程序数据库管理员)对“普通”的Oracle DBAOracle数据库管理员)来说是一个很大的挑战。拿Oracle EBS DBAOracle 电子商务套件DBA)来说,不仅需要了解EBS的各个组件、服务,而且还要更主动和其他相关人员接触。 一个Oracle Applications DBAOracle应用程序数据库管理员)不仅需要和其他DBA一样去负责managing、 sizing、maintaining和 tuning database这些日常的数据库管理的工作,如果他的Apps database是OLTP系统的话,他还需要监察wait和lock 。Oracle E-Business Suite还有一些特性需要DBA去完成,比如从外部资源里灌数据到Apps database里,或支持开发人员从已有数据中提取数据。 接着工作内容的转变 作为一个Oracle Applications DBAOracle应用程序数据库管理员),要想更好的对Oracle Application database做支持,需要仔细记住以下几项。 1.网络上没有什么比较容易简单的文档让你去熟悉Apps DBA,所以我建议去看帮助。 2.在你没有经过多次测试并且得到客户认可的时候不要去打补丁,并且你要确信这个补丁解决了现有的问题,而且没有带来其它新的问题。 3.记住Oracle Applications会有很多索引,定期rebuild index会对性能有好处,当然做这项工作应该在系统的空闲时间。 4.不要为了提高性能而在没有询问oracle Support前试着去增加额外的indexes。如果你一定要去做,那千万记住要有文档作记录,因为在这之后你再打patch的时候它可能会把你做的修改自动复原。 5. 知道怎么样是正确的打patch,先计划打哪个patch,然后取得patch,接着打patch,测试,最后文档记录。 6. 要知道任何时刻数据库都可能会有一些object 是invalid的,你的一些操作也会增加invalid objects,定期检查这些invalid objects的数量,然后定期用utlrp去重新编译,utlrp.squ在ORACLE HOME的rdbms/admin下,需要用SYS运行。在你的DB运行过程中如果碰到错误,就可以先重新编译invalid objects,如果没有解决问题再去递交iTAR(Internet created Technical Assistance Request). 7.能看懂日志。 8.了解Apps database的环境,包括操作系统和DB的,当你对你的工作环境了如指掌后,一切也就变得容易了,那时,你就是一个悠闲的Apps DBA了。 另外,对于APPS DB(应用程序数据库)来说,你可能需要创建或拷贝(克隆)多个生产库以外的数据库,比如测试和开发数据库,当然,需要多少数据库是由你的商业需求所决定的。开发环境数据库是供开发人员进行report,PL/SQL等开发的,这个环境可以在开发人员觉得数据已经不再满足开发需求的时候,当然也可以在这个环境测试补丁(patches)。当然最终使用patch的时候还需要在测试环境做测试,因为测试数据库是和生产数据库环境最接近的。(上面说的克隆cloning是一种将applications layer和database layer完全复制的一种方法。)所以,当你拥有这三个数据库的时候,打patch的步骤是先development database再test database最后才在production database环境应用。 构架应用体系 如果你研究过Oracle Forms,使用过Application Server和Devel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值