ITPub博客

首页 > 数据库 > Oracle > notes oracle db

notes oracle db

原创 Oracle 作者:bhk2004 时间:2007-01-12 18:11:31 0 删除 编辑
ORACLE学习笔记(继续更新中。。。)

这是我在学习ORACLE DBA基础一中所整理的笔记,刚学了差不多2/3,还有的会继续更新上去的。。。

ORACLE学习笔记
安装和管理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:ORACLEDATABASELOG2ORCL.ORA’ SIZE 500K,
GROUP 2 ‘C:ORACLEDATABASELOG1ORCL.ORA’ SIZE 500K
DATAFILE
‘C:ORACLEDATABASESYS1ORCL.ORA’,
‘C:ORACLEDATABASEUSR1ORCL.ORA’,
‘C:ORACLEDATABASERBS1ORCL.ORA’,
‘C:ORACLEDATABASETMP1ORCL.ORA’,
‘C:ORACLEDATABASEAPPDATA1.ORA’,
‘C:ORACLEDATABASEAPPINIDX1.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 ‘’ 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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7180624/viewspace-890042/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 又是一个年三十
请登录后发表评论 登录
全部评论
  • 博文量
    76
  • 访问量
    1126804