当前位置:  数据库>oracle
本页文章导读:
    ▪1、图解Oracle Logminer配置使用 - shishanyuan      LogMiner配置使用手册1 Logminer简介1.1 LogMiner介绍Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 在线/归档日志文件中的具体内容,特别.........
    ▪oracle的热备份和冷备份 - 大山下的蚂蚁      一、冷备份介绍: 冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。此外冷备份也可以包含对参数文件和口令.........
    ▪oracle导出数据到文本、从文本导入数据 - cycsa      经常有需求向表中导入大量的数据,使用insert不靠谱,太慢oracle提供了sqlldr的工具也有时需要讲数据导入到文本,oracle的spool可以轻松实现方便的实现oracle导出数据到txt、txt导入数据到oracle一.........

[1]1、图解Oracle Logminer配置使用 - shishanyuan
    来源:    发布时间: 2013-10-29
LogMiner配置使用手册

1 Logminer简介

1.1 LogMiner介绍

Oracle LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 在线/归档日志文件中的具体内容,特别是该工具可以分析出所有对于数据库操作的DML和DDL语句。该工具特别适用于调试、审计或者回退某个特定的事务。

LogMiner分析工具实际上是由一组PL/SQL包和一些动态视图(Oracle8i内置包的一部分)组成,它作为Oracle数据库的一部分来发布是8i产品提供的一个完全免费的工具。但该工具和其他Oracle内建工具相比使用起来显得有些复杂,主要原因是该工具没有提供任何的图形用户界面(GUI)。

1.2 LogMiner作用

在Oracle 8i之前,Oracle没有提供任何协助数据库管理员来读取和解释重作日志文件内容的工具。系统出现问题,对于一个普通的数据管理员来讲,唯一可以作的工作就是将所有的log文件打包,然后发给Oracle公司的技术支持,然后静静地等待Oracle 公司技术支持给我们最后的答案。然而从8i以后,Oracle提供了这样一个强有力的工具--LogMiner。

LogMiner 工具即可以用来分析在线,也可以用来分析离线日志文件,即可以分析本身自己数据库的重作日志文件,也可以用来分析其他数据库的重作日志文件。

总的说来,LogMiner工具的主要用途有:

1、跟踪数据库的变化:可以离线的跟踪数据库的变化,而不会影响在线系统的性能。

2、回退数据库的变化:回退特定的变化数据,减少point-in-time recovery的执行。

3、优化和扩容计划:可通过分析日志文件中的数据以分析数据增长模式

1.3 使用详解

1.3.1 安装LogMiner

在使用LogMiner之前需要确认Oracle是否带有进行LogMiner分析包,一般来说Windows操作系统Oracle10g以上都默认包含。如果不能确认,可以DBA身份登录系统,查看系统中是否存在运行LogMiner所需要的dbms_logmnr、dbms_logmnr_d包,如果没有需要安装LogMiner工具,必须首先要运行下面这样两个脚本:

1、$ORACLE_HOME/rdbms/admin/dbmslm.sql

2、$ORACLE_HOME/rdbms/admin/dbmslmd.sql.

这两个脚本必须均以DBA用户身份运行。其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。

创建完毕后将包括如下过程和视图:

类型

过程名

用途

过程

Dbms_logmnr_d.build

创建一个数据字典文件

过程

Dbms_logmnr.add_logfile

在类表中增加日志文件以供分析

过程

Dbms_logmnr.start_logmnr

使用一个可选的字典文件和前面确定要分析日志文件来启动LogMiner

过程

Dbms_logmnr.end_logmnr

停止LogMiner分析

视图

V$logmnr_dictionary

显示用来决定对象ID名称的字典文件的信息

视图

V$logmnr_logs

在LogMiner启动时显示分析的日志列表

视图

V$logmnr_contents

LogMiner启动后,可以使用该视图在SQL提示符下输入SQL语句来查询重做日志的内容

1.3.2  创建数据字典文件

LogMiner工具实际上是由两个新的PL/SQL内建包((DBMS_LOGMNR 和 DBMS_ LOGMNR_D)和四个V$动态性能视图(视图是在利用过程DBMS_LOGMNR.START_LOGMNR启动LogMiner时创建)组成。在使用LogMiner工具分析redo log文件之前,可以使用DBMS_LOGMNR_D 包将数据字典导出为一个文本文件。该字典文件是可选的,但是如果没有它,LogMiner解释出来的语句中关于数据字典中的部分(如表名、列名等)和数值都将是16进制的形式,我们是无法直接理解的。例如,下面的sql语句:

INSERT INTO dm_dj_swry (rydm, rymc) VALUES (00005, '张三');

LogMiner解释出来的结果将是下面这个样子:

insert into Object#308(col#1, col#2) values (hextoraw('c30rte567e436'), hextoraw('4a6f686e20446f65'));

创建数据字典的目的就是让LogMiner引用涉及到内部数据字典中的部分时为他们实际的名字,而不是系统内部的16进制。数据字典文件是一个文本文件,使用包DBMS_LOGMNR_D来创建。如果我们要分析的数据库中的表有变化,影响到库的数据字典也发生变化,这时就需要重新创建该字典文件。另外一种情况是在分析另外一个数据库文件的重作日志时,也必须要重新生成一遍被分析数据库的数据字典文件。

创建数据字典文件之前需要配置LogMiner文件夹:

1 CREATE DIRECTORY utlfile AS 'D:\oracle\oradata\practice\LOGMNR';
2 alter system set utl_file_dir='D:\oracle\oradata\practice\LOGMNR' scope=spfile;

创建字典文件需要以DBA用户登录,创建到上面配置好的LogMiner文件夹中:

1 CONN LOGMINER/ LOGMINER@PRACTICE AS SYSDBA
2 EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'D:\oracle\oradata\practice\LOGMNR');

1.3.3 加入需分析的日志文件

Oracle的LogMiner可以分析在线(online)和归档(offline)两种日志文件,加入分析日志文件使用dbms_logmnr.add_logfile过程,第一个文件使用dbms_logmnr.NEW参数,后面文件使用dbms_logmnr.ADDFILE参数。

1、创建列表

1 BEGIN
2 dbms_logmnr.add_logfile(logfilename=>'D:\oracle\oradata\practice\REDO03.LOG',options=>dbms_logmnr.NEW);
3 END;

    
[2]oracle的热备份和冷备份 - 大山下的蚂蚁
    来源:    发布时间: 2013-10-29
一、冷备份介绍:
冷备份数据库是将数据库关闭之后备份所有的关键性文件包括数据文件、控制文件、联机REDO LOG文件,将其拷贝到另外的位置。此外冷备份也可以包含对参数文件和口令文件的备份,但是这两种备份是可以根据需要进行选择的。,冷备份实际也是一种物理备份,是一个备份数据库物理文件的过程。因为冷备份要备份除了重做日志以外的所有数据库文件,因此也被成为完全的数据库备份。它的优缺点如下所示:
1、优点:
<1>只需拷贝文件即可,是非常快速的备份方法。
<2>只需将文件再拷贝回去,就可以恢复到某一时间点上。
<3>与数据库归档的模式相结合可以使数据库很好地恢复。
<4>维护量较少,但安全性确相对较高。
2、缺点:
<1>在进行数据库冷备份的过程中数据库必须处于关闭状态。
<2>单独使用冷备份时,数据库只能完成基于某一时间点上的恢复。
<3>若磁盘空间有限,冷备份只能将备份数据拷贝到磁带等其他外部存储上,速度会更慢。
<4>冷备份不能按表或按用户恢复。
3、具体备份步骤如下:
<1>以DBA用户或特权用户登录,查询动态性能视图v$datafile、v$controlfile可以分别列出数据库的数据文件以及控制文件。

SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/u02/oradata/db01/system01.dbf
/u02/oradata/db01/undotbs01.dbf
/u02/oradata/db01/sysaux01.dbf
/u02/oradata/db01/users01.dbf
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/u02/oradata/db01/control01.ctl
/u02/oradata/db01/control02.ctl
/u02/oradata/db01/control03.ctl
/u01/app/oracle/bak/control04.ctl
<2>以DBA用户或特权用户关闭数据库。
SQL> conn / as sysdba;
Connected.
SQL> shutdown normal
Database closed.
Database dismounted.
ORACLE instance shut down.
<3>复制数据文件,复制时应该将文件复制到单独的一个硬盘或者磁盘上。控制文件是相互镜像的,因此只需复制一个控制文件即可。
cp /u02/oradata/db01/*.dbf /u01/app/oracle/bak
cp /u02/oradata/db01/*.ctl /u01/app/oracle/bak
<4>启动例程打开数据库。
SQL> conn / as sysdba;
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 83887696 bytes
Database Buffers 197132288 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL>

二、热备份:
热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。热备份要求数据库处于archive log模式下操作,并需要大量的档案空间。一旦数据库处于archive loh
模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。
1、优点:
<1>可在表空间或数据文件级备份,备份时间短。
<2>可达到秒级恢复(恢复到某一时间点上)。
<3>可对几乎所有数据库实体作恢复。
<4>恢复是快速的,在大多数情况下在数据库仍工作时恢复。
<5>备份时数据库仍可用。
2、缺点:
<1>因难以维护,所以要特别仔细小心,不允许“以失败而告终”。
<2>若热备份不成功,所得结果不可用于时间点的恢复。
<3>不能出错,否则后果严重。
3、设置初始归档模式:
设置归档模式数据库必须处在mount而非open状态下:
<1>首先查看数据库是否处在archive log模式下:
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Current log sequence 2
<2>在mount状态下启动数据库:
SQL> startup mount;
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 83887696 bytes
Database Buffers 197132288 bytes
Redo Buffers 2973696 bytes
Database mounted.
<3>设置数据库为归档模式:
SQL> alter database archivelog;
Database altered.
<4>打开数据库:

SQL> alter database open;
Database altered.
<5>将数据库设置成自动归档,使用以下命令:
SQL> alter system set log_archive_start=true scope=spfile;
System altered.
<6>确定数据库处于归档模式下,并且设置自动存档:
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 1
Next log sequence to archive 2
Current log sequence 2
上面的Archive destination所定义的具体位置,可以查看$ORACLE_HOME/dbs/spfile<dbname>.ora文件中的db_recovery_file_dest参数的值。


4、联机备份:
联机备份是热备份的一种备份方法,是指当表空间处于ONLINE状态时,备份表空间的所有数据文件和单个数据文件的过程。使用联机备份的优点是不影响用户在表空间上的所有访问操作,但联机备份的缺点可能生产更多的重做日志文件和归档日志文件。以下是联机备份的具体步骤:
<1>以DBA用户或特权用户登录,确定表空间所包含的数据文件。通过查询数据字典DBA_DATA_FILES,可以得到数据文件和表空间的对应关系:

SQL> select file_name from dba_data_files where tablespace_name='USERS';
FILE_NAME
--------------------------------------------------------------------------------
/u02/oradata/db01/users01.dbf
<2>设置表空间为备份模式,在复制表空间的数据文件之前必须将表空间设置成为备份模式:
SQL> alter tablespace users begin backup;
Tablespace altered.
<3>复制users数据文件到备份目录:
[oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak
<4>复制后表空间就不需要设置成为备份模式了,因此可以将其返回正常模式:
SQL> alter tablespace users end backup;
Tablespace altered.

5、脱机备份:
脱机备份也是热备份的一种方法,是指当表空间处于offline时,备份表空间的所有数据文件以及单个数据文件的过程。它的优点是会生产较少的重做日志文件,缺点是当用户正在进行脱机备份时所备份的表空间将不能访问,由于SYSTEM系统表空间和正在使用的UNDO表空间不能被脱机,因此脱机备份不适用于SYSTEM表空间和正在使用的UNDO表空间。
详细出处参考:http://www.itqun.net/content-detail/107720.html

 

本文链接:http://www.cnblogs.com/java-chen/archive/2013/06/13/3134833.html,转载请注明。


    
[3]oracle导出数据到文本、从文本导入数据 - cycsa
    来源:    发布时间: 2013-10-29

经常有需求向表中导入大量的数据,使用insert不靠谱,太慢
oracle提供了sqlldr的工具

也有时需要讲数据导入到文本,oracle的spool可以轻松实现

方便的实现oracle导出数据到txt、txt导入数据到oracle

一、导出数据到txt

这里用all_objects表做测试

SQL> desc all_objects;
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
OBJECT_NAME NOT NULL VARCHAR2(30)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NOT NULL NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED NOT NULL DATE
LAST_DDL_TIME NOT NULL DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)

拿object_id,object_name做导出、导入测试
这里需要一些设置满足数据导出的样式

vi exp_table.sql

set line 1000 --设置行的长度
set pagesize 0 --输出不换页
set feedback off --默认的当一条sql发出的时候,oracle会给一个反馈,比如说创建表的时候,如果成功命令行会返回类似:Table created的反馈,off后不显示反馈
set heading off --不显示表头信息
set trimspool on --如果trimspool设置为on,将移除spool文件中的尾部空
set trims on --去掉空字符
set echo off;     --显示start启动的脚本中的每个sql命令,缺省为on
set colsep '|' --设置分隔符
set termout off --不在屏幕上显示结果
spool db1.txt --记录数据到db1.txt
select object_id,object_name from all_objects; --导出数据语句
spool off --收集完毕
exit

一切就绪后导出数据

[oracle@centos5 ~]$ sqlplus test/test @exp_table.sql

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jun 13 16:35:14 2013

Copyright (c) 1982, 2007, Oracle. All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@centos5 ~]$ sed -i 's/ //g' db1.txt --可选,去除每行开头部分的空格
[oracle@centos5 ~]$ more db1.txt
    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3