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会关闭已运行的实例并重新启动它。
 
 
 
 
Startuprestrict   à以限制模式启动数据库,从而限制访问数据库。只有具有RESTRICTEDSESSION系统权限的用户能与数据库联接。在打开数据库以后,还可以使用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 disconnectsession ‘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,sql,C++,C#)