㈠ oracle 10g数据备份与恢复
如果你用的工具是pl/sql developer的话,点击 tools->export user objects 就可以导出当前用户的所有对象,导出的格式是.sql的。要导入可以点击tools->import tables->sql inserts,就可以导入。
用exp/imp文件是这样写的
exp user/password@databasename tables=(tablename) [此处如果不写tables是导出所有数据]
file='你要导出的位置如:d:\exp.dmp'。用exp/imp的时候要注意,高版本的sqlplus不可以导出低版本的,如10g的不可以导出9i的数据库对象。
㈡ 如何利用脚本文件来管理Oracle数据库
第一步:创建脚本文件。
在Oracle数据库重,创建脚本文件的方式很多。如可以直接在记事本中创建脚本文件,也可以通过SQL*Plus工具直接创建。不过,笔者的意见是,在SQL*Plus中直接创建脚本文件的话,比较麻烦。这主要是因为在SQL*Plus工具中,命令编辑能力非常有效。如不能够使用键盘上的箭头键定位输入的位置,不能够使用DEL键删除输入的内容等等。而且阅读起来也比较困难。
第二步:编辑脚本文件。
在我们使用脚本文件的时候,往往需要根据实际情况,对其进行稍微的调整。对脚本文件进行编辑,也有两种方式。一是通过SQL*Plus工具,二是第三方独立的脚本编辑软件。
对于一些调整不大的脚本文件,我们可以直接利用SQL*Plus工具打开,然后进行编辑。但是,对于需要进行大量修改的脚本文件,则笔者建议数据库管理员采用第三方独立的脚本编辑软件。原因很简单,就如同上面所说的那样,SQL*Plus工具脚本命令编辑功能非常的薄弱。若采用这个工具对现成的脚本语句进行编辑的话,则可能工作量还是重新编写一个来的轻。所以,数据库管理员要根据实际的情况,选择合适的脚本编辑工具。
另外,在编辑的过程中,要注意语法的正确性。特别是要注意,不能够改变其固有的格式。如不要不小心删除了最后的“/”符号结束。
第三步:运行脚本文件。
脚本建立好之后,如何运行脚本呢?在Oracle系统中也提供了许多方式。数据库管理员可以根据自己的使用习惯来进行选择。
一是通过Start语句来调用脚本文件。其语法是Start Filemame[相关参数]。在运行这个命令的时候,需要注意几个问题。
1、脚本文件的扩展名问题。上面在建立脚本文件的时候,笔者就跳掉过,为了在SQL*Plus等工具中可以直接调用这个脚本文件,最好能够把扩展名改为Oracle数据库能够接受的扩展名。默认情况下,扩展名设置为SQL即可。
2、脚本文件的路径问题。若用户在利用Start调用脚本文件的时候,若没有清楚的指名保存路径的话,则SQL*Plus工具会现在当前的目录中进行查找;若没有的话,则会根据环境变量中确定的目录中进行查找。而一般情况下,我们把脚本文件都会独立存放。所以,在使用Start命令执行脚本文件的时候,最好能够注明脚本文件的绝对路径名。防止语句执行错误。
另外@命令也可以起到跟Start命令一样的作用。只不过,前者的使用范围更广一点。@命令可以脱离SQL*PLUS工具而使用。如可以直接在微软操作系统中的命令行方式下使用。当然,这操作系统要事先部署了Oracle数据库环境。
二是可以直接利用SQL*Plus工具打开文本文件,执行脚本语句。然后点击“文件”、“执行”命令执行这个脚本语句。这种方式的好处就是,系统会主动提示用户需要输入的参数。
总之,脚本文件是我们管理Oracle数据库的一大利器。我们好好利用脚本文件,可以提高Oracle数据库的管理效率。毕竟,每次在需要的时候,都去编写命令是一件很麻烦的事情。而脚本文件的最大好处,就是可以提高语句的重复利用,节省我们编写语句、调试测试的时间。
㈢ ORACLE数据库结构的简介
关于ORACLE数据库结构的简介
ORACLE的数据库结构大家都了解吗?如果不了解,下面我为大家整理了关于ORACLE数据库结构简介的文章,希望能为你提供帮助:
一、物理结构:
1、数据文件:ORACLE数据库包含若干数据文件,数据文件存储数据库数据,包括表、索引等等。数据文件的几个特点:
1)一个数据文件只允许分配给一个数据库
2)数据文件可设置为自动扩展
3)一个或多个数据文件构成表空间
在进行数据库操作的时候,数据库先从内存寻找要操作的数据,如果没有找到的话,再从数据文件取出数据放在内存中,然后才对内存中的数据进行相关的操作。操作完的数据并没有立即写到数据文件中(这样减少了磁盘的IO),而是放在内存中,然后由DBWn进程决定何时批量写入数据文件。
2、控制文件:每一个数据库都有一个或多个控制文件,控制文件包含了数据库的物理结构,包括:
1)数据库名
2)数据文件名及位置
3)重做日志文件名及位置
4)数据库的建立时间等等
一般一个数据库都有若干个控制文件镜像。数据库在打开的时候(ALTER
DATABASE OPEN),会读取控制文件中的信息来打开数据库。当数据库的物理结构发生变化的时候,比如增加一个数据文件、一组重做日志等等,控制文件都会自动地做相应的修改。在数据库物理结构发生变化后,最好重新备份一下控制文件,用于数据库恢复。
3、重做日志文件:重做日志中记录了数据的变化。一般一个数据库都会有两到三组重做日志文件。同一日志组的镜像最好分布于不同的磁盘上。
4、归档日志:当数据库启动归档的时候,重做日志会被自动归档到指定的位置。
5、初始化参数文件:包含了数据库启动时的配置信息
6、警告和跟踪日志文件
1)跟踪文件:每一个后台进程都有一个单独的'跟踪文件,比如当系统发现某一个进程有问题的时候,相关的信息就会写到相应的跟踪文件中。可以从数据库的跟踪文件来发现和调试数据库的错误。
2)警告文件,也叫警告日志。是一个特别的跟踪文件,它记录着数据库启动、运行中的相关信息,它是按时间顺序进行记录的。
7、备份文件
二、逻辑结构
1、表空间:相关逻辑对象的集合。在oracle10g中,在创建数据库的时候就自动创建了SYSTEM和SYSAUX表空间。
2、数据块:数据存储在数据块中,一个数据块的大小(DB_BLOCK_SIZE)由操作系统块来决定。可以指定5种,分别为2K、4K、8K、16K、32K。
3、区:一系列连续的数据块组成区,区存储特定类型的数据,比如索引,表等等。
4、段:由一系列区组成段。
1)数据段:对于每一个非聚集表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。分区表中的每一个分区有一个数据段,分区中的数据存储在该段中。
2)索引段:每一个索引有一索引段,存储索引数据。分区索引中的每一分区有一个索引段。
3)回滚段:用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息,在数据库恢复时使用,回滚未提交的事务。系统回滚段用于处理系统事务,不建议用户使用系统回滚段来做其它操作。
4)临时段:当一个SQL语句需要临时工作区时,由ORACLE建立临时段。当语句执行完毕,临时段的区退回给系统。
;㈣ 如何清空oracle数据库所有表
||创建个存储过程来执行啦
在plsql中把以下代码复制粘贴,并运行
createorreplacePROCEDURESP_DROPTABLE
(v_begintimeinvarchar2,
v_endtimeinvarchar2)
as
v_tablenamevarchar2(256);
cursorcur_tablenameis
selectobject_namefromuser_objectswhereobject_type='TABLE'andto_char(CREATED,'yyyy-mm-dd')
betweenv_begintime
andv_endtimeorderbyCREATEDdesc;
begin
opencur_tablename;
loop
fetchcur_tablenameintov_tablename;
exitwhencur_tablename%notfound;
executeimmediate'droptable'||v_tablename||'';
endloop;
closecur_tablename;
endsp_droptable;
然后,另开一个sql窗口,执行
begin
SP_DROPTABLE('1900-01-01','2013-12-31');
end;
如有问题,请查看浏览器右上角处
㈤ oracle如何将表的历史数据归档
归档日志(ArchiveLog)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库.
日志操作模式:ARCHIVELOGNOARCHIVELOG
1,改变日志操作模式:
检查当前日志操作模式
SELECTlog_modefromv$database;
关闭数据库,然后装载数据库
SHUTDOWNIMMEDIATE
STARTUPMOUNT
改变日志操作模式,然后打开数据库
ALTERDATABASEARCHIVELOG;
ALTERDATABASEOPEN;
2,执行手工归档
从oracledatabase10g开始,当将日志操作模式转变未ARCHIVELOG模式时,oracle会自动启动ARCH进程.如果要使用手工归档.那么在改变日志操作模式时必须使用命令ALTERDATABASEARCHIVELOGMANUAL.
需要注意,使用手工归档方式,数据库管理员必须手工执行归档命令.如果没有执行手工归档命令,日志组的原有内容将不能被覆盖.ALTERDATABASEARCHIVELOGMANUAL命令是为了与先前的版本兼容而保留的,.将来的oracle版本会淘汰该命令,使用手工归档方式是,数据库管理员可以执行以下命令归档重做日志:
SLTERSYSTEMARCHIVELOGALL;
3,配置归档进程
初始化参数LOG_ARCHIVE_MAX_PROCESSES用于指定例程初始启动的最大归档进程个数,当将数据库转变为ARCHIVELOG模式时,默认情况下oracle会自动启动两个归档进程.通过改变初始化参数LOG_ARCHIVE_MAX_PROCESS的值,可以动态地增加或降低归档进程的个数:
ALTERSYSTEMSETLOG_ARCHIVE_MAX_PROCESSES=3;
配置归档位置和文件格式
当数据库处于ARCHIVELOG模式时,如果进行日志切换,后台进程将自动生成归档日志,归档日志的默认位置为%oracle_home%rdbms,在oracledatabase10g中,归档日志的默认文件格式为ARC%S_%R.%T.为了改变归档日志的位置和名称格式,必须改变相应的初始化参数,
1,初始化参数LOG_ARCHIVE_FORMAT用于指定归档日志的文件名格式,设置该初始化参数时,可以指定以下匹配符:
%s:日志序列号:
%S:日志序列号(带有前导0)
%t:重做线程编号.
%T:重做线程编号(带有前导0)
%a:活动ID号
%d:数据库ID号
%rRESETLOGS的ID值.
从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库.
2,使用LOG_ARCHIVE_DEST配置归档位置
如果不使用备用数据库,只需要将归档日志存放到本地目录.配置本地归档位置可以使用初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST,其中,第一个参数用于设置第一个归档位置,第二个参数用于指定第二个归档位置.
ALTERSYSTEMSETlog_archive_dest=’d:demoarchive1’;
ALTERSYSTEMSETlog_archive_plex_dest=’d:demoarchive2’;
3,使用LOG_ARCHIVE_DEST_n配置多个归档位置.
初始化参数LOG_ARCHIVE_DEST_n用于指定多个归档位置,该参数最多可以指定10个归档位置.通过使用初始化参数LOG_ARCHIVE_DEST_n,不仅可以配置本地归档位置,还可以配置远程归档位置.
如果既要在主节点上生成归档日志,又要将归档日志传递到备用节点,那么必须使用参数LOG_ARCHIVE_DEST_n.该参数与LOG_ARCHIVE_DEST具有如下区别;
初始化参数LOG_ARCHIVE_DEST_n可以配置本地归档位置和远程归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST只能配置本地归档位置.
初始化参数LOG_ARCHIVE_DEST_n可以配置多达10个归档位置,而初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST最多只能配置两个归档位置.
初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用.
因为初始化参数LOG_ARCHIVE_DEST_n不能与初始化参数LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST同时使用,所以必须禁用初始化参数LOG_ARCHVE_DEST和LOG_ARCHIVE_DUPLEX_DEST.当使用初始化参数LOG_ARCHIVE_DEST_n配置本地归档位置时,需要指定LOCALTION选项.当配置远程归档位置时,需要指定SERVICE选项.
示例如下:
ALTERSYSTEMSETlog_archive_plex_dest=’’;
ALTERSYSTEMSETlog_archive_dest=’’;
ALTERSYSTEMSETlog_archive_dest_1=’location=d:demoarchive1’;
ALTERSYSTEMSETlog_archive_dest_2=’location=d:demoarchive2’;
ALTERSYSTEMSETlog_archive_dest_3=’location=d:demoarchive3’;
ALTERSYSTEMSETlog_archive_dest_4=’service=standby’;
配置远程归档位置时,SERVICE选项需要指定远程数据库的网络服务名(在tnsnames.ora文件中配置)
4,使用LOG_ARCHIVE_DEST_n选项
使用初始化参数LOG_ARCHIVE_DEST_n配置归档位置时,可以在归档位置上指定OPTIONAL或MANDATORY选项.指定MANDATORY选项时,可以设置REOPEN属性.
OPTIONAL:该选项是默认选项.使用该选项时,无论归档是否成功,都可以覆盖重做日志.
MANDATORY:强制归档.使用该选项时,只有在归档成功之后,重做日志才能被覆盖.
REOPEN:该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后.
例:
Altersystemsetlog_archive_dest_1=’location=d:demoarchive1mandatory’;
Altersystemsetlog_archive_dest_2=’location=d:demoarchive2mandatoryreopen=500’;
Altersystemsetlog_archive_dest_3=’location=d:demoarchive3optional’;
5,控制本地归档成功的最小个数.
使用初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地归档的最小成功个数
Altersystemsetlog_archive_min_succeed_dest=2;
6,使用初始化参数LOG_ARCHIVE_DEST_STATE_n控制归档位置的可用性.设置该参数为ENABLE(默认值),表示会激活相应的归档位置;设置该参数为DEFER,表示禁用相应归档位置.当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置.
Altersystemsetlog_archive_dest_state_3=defer;(禁用)
Altersystemsetlog_archive_dest_state_3=enable;(启用)
显示归档日志信息
1,使用ARCHIVELOGLIST命令可以显示日志操作模式,归档位置,自动归档机器要归档的日志序列号等信息.
2显示日志操作模式
SELECTname,log_modeFROMv$database;
3,显示归档日志信息.
Colnameformata40
Selectname,swquence#,first_change#FROMv$archived_log;
Name用于表示归档日志文件名,sequence#用于表示归档日志对应的日志序列号,firs_change#用于标识归档日志的起始SCN值.
4执行介质恢复时,需要使用归档日志文件,此四必须准确定位归档日志的存放位置.通过查询动态性能视图v$archive_dest可以取得归档日志所在目录.
SELECTdestinationFROMv$archivedest;
5,显示日志历史信息
SELECT*FROMv$loghist;
THREAD#用于标识重做线程号,SEQUNCE#用于标识日志序列号,FIRST_CHANGE#用于标识日志序列号对应的起始SCN值,FIRST_TIME用于标识起始SCN的发生时间.SWICTH_CHANGE#用于标识日志切换的SCN值.
6.显示归档进程信息.
进行日志切换时,ARCH进程会自动将重做日志内容复制到归档日志中,为了加快归档速度,应该启用多个ARCH进程.通过查询动态性能视图V$ARCHIVE_PROCESSES可以显示所有归档进程的信息!
SELECT*FROMv$archive_processes;
Porcess用于标识ARCH进程的编号,status用于标识ARCH进程的状态(ACTIVE:活动,STOPPED:未启动),log_sequence用于标识正在进行归档的日志序列号,state用于标识ARCH进程的工作状态