CSDN博客

img xmqds

ORACLE学习笔记1(原创)

发表于2004/6/23 8:49:00  2075人阅读

ORACLE学习笔记

安装和管理ORACLE

1、  ORACLE通用安装程序(OUI

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

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

用以创建一个新的数据库

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

       可为数据库库设定监听者

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

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

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

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

6、  select * from v$pwfile_users

查出所有被赋权为SYSDBASYSOPER用户的信息。

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$sessionSID和序列号(SERIAL#)惟一地标识每个会话。

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

 

12、中止会话

       alter system kill session ‘sid,serial#’;

如:alter system kill session ‘9,3’;其中SIDSERIAL#通过从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 -à写入主存信息转储文件的位置.

15OMF(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,NCLOGNVARCHAR2列中存储数据..

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

 

重执行日志文件-à记录数据库的所有变化

 

0 0

相关博文

我的热门文章

img
取 消
img