动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.Oracle9i中的电子商务平台开发一.
.如何在Oracle中建立汉字拼音对照.
.教你在oracle中编写树级代码.
.用来在硬件上部署管理应用程序Or.
.ORACLE在HP-UX下的系列问题处理(.
.ORACLE索引与高性能SQL介绍.
.在Unix下的Oracle 8.1.7.4内安装.
.轻松取得Oracle结构描述句法.
.Oracle数据库共享连接和专用连接.
.解决升级数据库时遇到的Text fil.
.Oracle 用 VPD 来保持信息的隐私.
.oracle 优化方法.
.oracle双机群集系统.
.甲骨文意外泄漏数据库安全漏洞.
.搞垮他的数据库--谈Oracle安全.
.如何避免Oracle数据库密码出现@符.
.oracle与unix时间的转换.
.oracle中实现主键的自动增加.
.Oracle数据库中获取固定记录数的.
.Oracle 的一些基本知识,应该知道.

FAQ Collection- 备份与恢复

发表日期:2008-2-9 |


    第三部分、备份与恢复     [Q]如何开启/关闭归档     [A]假如开启归档,请保证log_archive_start=true开启自动归档,否则只能手工归档,假如是关闭了归档,则设置该参数为false     注重:假如是OPS/RAC环境,需要先把parallel_server = true注释掉,然后执行如下步骤,最后用这个参数重新启动     1、开启归档
    a. 关闭数据库shutdown immediate
    b. startup mount
    c. alter database archivelog
    d. alter database opne     2、禁止归档
    a. 关闭数据库shutdown immediate
    b. startup mount
    c. alter database noarchivelog
    d. alter database open     归档信息可以通过如下语句查看
    SQL> archive log list
    Database log mode Archive Mode
    Automatic archival Enabled
    Archive destination E:\Oracle\ora92\database\archive
    Oldest online log sequence 131
    Next log sequence to archive 133
    Current log sequence 133     [Q]怎样设置定时归档
    [A]9i以上版本,保证归档的最小间隔不超过n秒
    设置Archive_lag_target = n
    单位:秒 范围:0~7200     [Q]不同版本怎么导出/导入
    [A]导出用低版本,导入用当前版本
    假如版本跨越太大,需要用到中间版本过渡     [Q]不同的字符集之前怎么导数据
    [A]a.前条件是保证导出/导入符合其他字符集标准,如客户环境与数据库字符集一致。
    b.修改dmp文件的2、3字节为目标数据库的字符集,注重要换成十六进制。
    参考函数(以下函数中的ID是十进制的):
    nls_charset_name 根据字符集ID获得字符集名称
    nls_charset_id 根据字符集名称获得字符集ID     [Q]怎么样备份控制文件
    [A]再线备份为一个二进制的文件
    alter database backup controlfile to '$BACKUP_DEPT/controlfile.000' [reuse];
    备份为文本文件方式
    alter database backup controlfile to trace [resetlogsnoresetlogs];     [Q]控制文件损坏如何恢复
    [A]1、假如是损坏单个控制文件
    只需要关闭数据库,拷贝一个好的数据文件覆盖掉坏的数据文件即可
    或者是修改init.ora文件的相关部分
   
    2、假如是损失全部控制文件,则需要创建控制文件或从备份恢复
    创建控制文件的脚本可以通过alter database backup controlfile to trace获取。     [Q]怎么样热备份一个表空间
    [A]Alter tablespace 名称 begin backup;
    host cp 这个表空间的数据文件 目的地;
    Alter tablespace 名称 end backup;
    假如是备份多个表空间或整个数据库,只需要一个一个表空间的操作下来就可以了。     [Q]怎么快速得到整个数据库的热备脚本
    [A]可以写一段类似的脚本
    SQL>set serveroutput on
    begin
    dbms_output.enable(10000);
    for bk_ts in (select distinct t.ts#,t.name from v$tablespace t,v$datafile d where t.ts#=d.ts#) loop
    dbms_output.put_line('--'bk_ts.name);
    dbms_output.put_line('alter tablespace 'bk_ts.name' begin backup;');
    for bk_file in (select file#,name from v$datafile where ts#=bk_ts.ts#) loop
    dbms_output.put_line('host cp 'bk_file.name' $BACKUP_DEPT/');
    end loop;
    dbms_output.put_line('alter tablespace 'bk_ts.name' end backup;');
    end loop;
    end;
    /
    [Q]丢失一个数据文件,但是没有备份,怎么样打开数据库
    [A]假如没有备份只能是删除这个数据文件了,会导致相应的数据丢失。
    SQL>startup mount
    --ARCHIVELOG模式命令
    SQL>Alter database datafile 'file name' offline;
    --NOARCHIVELOG模式命令
    SQL>Alter database datafile 'file name' offline drop;
    SQLl>Alter database open;
    注重:该数据文件不能是系统数据文件     [Q]丢失一个数据文件,没有备份但是有该数据文件创建以来的归档怎么恢复
    [A]保证如下条件
    a. 不能是系统数据文件
    b. 不能丢失控制文件
    假如满足以上条件,则
    SQL>startup mount
    SQL>Alter database create datafile 'file name' as 'file name' size ... reuse;
    SQL>recover datafile n; -文件号
    或者
    SQL>recover datafile 'file name';
    或者
    SQL>recover database;
    SQL>Alter database open;     [Q]联机日志损坏如何恢复
    [A]1、假如是非当前日志而且归档,可以使用
    Alter database clear logfile group n来创建一个新的日志文件
    假如该日志还没有归档,则需要用
    Alter database clear unarchived logfile group n     2、假如是当前日志损坏,一般不能clear,则可能意味着丢失数据
    假如有备份,可以采用备份进行不完全恢复
    假如没有备份,可能只能用_allow_resetlogs_corruption=true来进行强制恢复了,但是,这样的方法是不建议的,最好在有Oracle support的指导下进行。     [Q]怎么样创建RMAN恢复目录
    [A]首先,创建一个数据库用户,一般都是RMAN,并给予recovery_catalog_owner角色权限
    sqlplus sys
    SQL> create user rman identified by rman;
    SQL> alter user rman default tablespace tools temporary tablespace temp;
    SQL> alter user rman quota unlimited on tools;
    SQL> grant connect, resource, recovery_catalog_owner to rman;
    SQL> exit;     然后,用这个用户登录,创建恢复目录
    rman catalog rman/rman
    RMAN> create catalog tablespace tools;
    RMAN> exit;     最后,你可以在恢复目录注册目标数据库了
    rman catalog rman/rman target backdba/backdba
    RMAN> register database;     [Q]怎么样在恢复的时候移动数据文件,恢复到别的地点
    [A]给一个RMAN的例子
    run {
    set until time 'Jul 01 1999 00:05:00';
    allocate channel d1 type disk;
    set newname for datafile '/u04/oracle/prod/sys1prod.dbf'
    to '/u02/oracle/prod/sys1prod.dbf';
    set newname for datafile '/u04/oracle/prod/usr1prod.dbf'
    to '/u02/oracle/prod/usr1prod.dbf';
    set newname for datafile '/u04/oracle/prod/tmp1prod.dbf'
    to '/u02/oracle/prod/tmp1prod.dbf';
    restore controlfile to '/u02/oracle/prod/ctl1prod.ora';
    replicate controlfile from '/u02/oracle/prod/ctl1prod.ora';
    restore database;
    sql "alter database mount";
    switch datafile all;
    recover database;
    sql "alter database open resetlogs";
    release channel d1;
    }
    [Q]怎么从备份片(backuppiece)中恢复(restore)控制文件与数据文件
    [A]可以使用如下方法,在RMAN中恢复备份片的控制文件
    restore controlfile from backuppiecefile;
    假如是9i的自动备份,可以采用如下的方法
    restore controlfile from autobackup;
    但是,假如控制文件全部丢失,需要指定DBID,如SET DBID=?
    自动备份控制文件的默认格式是%F,这个格式的形式为
    c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII就是DBID
    至于恢复(restore)数据文件,oracle 816开始有个包dbms_backup_restore
    在 nomount 状态下就可以执行,可以读 815甚至之前的备份片,读出来的文件用于恢复
    可以在SQLPLUS中运行,如下
    SQL>startup nomount
    SQL> DECLARE
    2 devtype varchar2(256);
    3 done boolean;
    4 BEGIN
    5 devtype := dbms_backup_restore.deviceallocate('', params=>'');
    6 dbms_backup_restore.restoresetdatafile;
    7 dbms_backup_restore.restorecontrolfileto('E:\Oracle\oradata\penny\control01.ctl');
    8 dbms_backup_restore.restoreDataFileto(1,'E:\Oracle\oradata\penny\system01.dbf');
    9 dbms_backup_restore.restoreDataFileto(2,'E:\Oracle\oradata\penny\UNDOTBS01.DBF');
    10 dbms_backup_restore.restoreDataFileto(3,'E:\ORACLE\ORADATA\PENNY\USERS01.DBF');
    11 dbms_backup_restore.restorebackuppiece('D:\orabak\BACKUP_1_4_04F4IAJT.PENNY',done=>done);
    12 END;
    13 /
    PL/SQL 过程已成功完成。
    SQL> alter database mount;     [Q]Rman的format格式中的%s类似的东西代表什么意义
    [A]可以参考如下
    %c 备份片的拷贝数
    %d 数据库名称
    %D 位于该月中的第几天 (DD)
    %M 位于该年中的第几月 (MM)
    %F 一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列
    %n 数据库名称,向右填补到最大八个字符
    %u 一个八个字符的名称代表备份集与创建时间
    %p 该备份集中的备份片号,从1开始到创建的文件数
    %U 一个唯一的文件名,代表%u_%p_%c
    %s 备份集的号
    %t 备份集时间戳
    %T 年月日格式(YYYYMMDD)     [Q]执行exec dbms_logmnr_d.build('Logminer.ora','file Directory'),提示下标超界,怎么办
    [A]完整错误信息如下,
    SQL> exec dbms_logmnr_d.build('Logminer.ora','file directory')
    BEGIN dbms_logmnr_d.build('Logminer.ora','file directory'); END;
    *
    ERROR 位于第 1 行:
    ORA-06532: 下标超出限制
    ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 793
    ORA-06512: 在line 1
    解决办法为:     1.编辑位于"$ORACLE_HOME/rdbms/admin"目录下的文件"dbmslmd.sql"
    改变行:
    TYPE col_desc_array IS VARRAY(513) OF col_description;
    为
    TYPE col_desc_array IS VARRAY(700) OF col_description;
    并保存文件     2. 运行改变后的脚本
    SQLPLUS> Connect internal
    SQLPLUS> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql     3.重新编译该包
    SQLPLUS> alter package DBMS_LOGMNR_D compile body;     [Q]执行execute dbms_logmnr.start_logmnr(DictFileName=>'DictFileName')提示ORA-01843:无效的月份,这个是什么原因
    [A]我们分析start_logmnr包
    PROCEDURE start_logmnr(
    startScn IN NUMBER default 0 ,
    endScn IN NUMBER default 0,
    startTime IN DATE default TO_DATE('01-jan-1988','DD-MON-YYYY'),
    endTime IN DATE default TO_DATE('01-jan-2988','DD-MON-YYYY'),
    DictFileName IN VARCHAR2 default '',
    Options IN BINARY_INTEGER default 0 );     可以知道,假如TO_DATE('01-jan-1988','DD-MON-YYYY')失败,将导致以上错误     所以解决办法可以为     1、Alter session set NLS_LANGUAGE=American     2、用类似如下的方法执行     execute dbms_logmnr.start_logmnr (DictFileName=> 'f:\temp2\TESTDICT.ora', starttime => TO_DATE(
    '01-01-1988','DD-MM-YYYY'), endTime=>TO_DATE('01-01-2988','DD-MM-YYYY'));
上一篇:Oracle10g废弃log_archive_start参数 人气:474
下一篇:Oracle 细料度审计 人气:459
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-9-7 站长中国企业(公司)网站系统 v4.2
2008-9-7 PBDigg v2.0 Build 20080821
2008-9-7 玩玩小游戏FLASH系统 v2.1
2008-9-7 522QQ在线电视直播程序 v1.1
2008-9-7 Pcook cms 文章管理系统 (老Y CM
2008-9-7 仿代码小说小偷系统 v1.0
2008-9-7 百度一搜集成搜索管理系统
2008-9-7 小贤统计器 v1.0
2008-9-7 UCenter Home-中秋搏饼插件 v1.2
2008-9-7 iBlacklist通话黑名单汉化破解补
2008-9-7 EndlessWalls无尽壁纸 v1.0.4破解
2008-9-7 Dynolicious车载测量仪v1.1破解版
2008-9-7 iVoodoo巫毒娃娃1.0.1破解版
2008-9-7 iWallpape精品墙纸1.2破解版
2008-9-7 iChillout自然音效工具1.1破解版
2008-9-7 Todo计划提醒1.2破解版
2008-9-7 allRadio电台集合1.01破解版
2008-9-7 My Money个人理财1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | Html转换js | js/vbs加密 | md5加密 | 进制转换
实用工具:汉字翻译拼音 | 符号对照表 | 个税计算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号