动态网站制作指南 [  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!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ SQL技巧 ]的信息

本月文章推荐
.删除数据库中重复数据的几个方法.
.SQL Server 2005中利用xml拆分字.
.深入探讨如何解决数据库中的死锁.
.用共享游标提升 SQL 性能.
.更改数据库中表的所属用户的两个.
.sql server 2005 数据库的检查与.
.动态SQL的编译原理与基本开发思想.
.内嵌或嵌入SQL和存储过程之对比.
.死锁并不可怕也并不是难以解决的.
.如何利用数据库储存图档.
.如何让SELECT 查询结果额外增加自.
.SQL服务器上不存在或拒绝访问的另.
.如何为SQL Server表数据生成inse.
.SQL Server静态页面导出技术4.
.在Linux下访问MS SQL Server数据.
.sql server 2005中新增的bulk功能 .
.分页查询的一个帮助类.
.SQLServer中有关SQLAgent的使用技.
.摆脱困惑正确认识隔离级别的标准.
.Oracle、SQL Server中如何锁定DB.

数据库迁移过程中使用热备份进行分时恢复

发表日期:2008-5-14 |


一个大型数据库的迁移过程中,一般只会有很短的停机时间,对于DBA来说,压力可想而之。本文将着重介绍一个缩短停机时间的好方法,详细内容请参考下文。

注:本文中的示例适用于同平台、同版本数据库的迁移。

解决方法如下:

在工作环境中,我们可以通过一个热备份,应用归档恢复数据库到一致的状态,这时数据库可以被只读(read only)打开。

然后我们可以继续应用归档来进行恢复,最后只需要短时间的停机,复制原数据库中的在线日志及归档日志、控制文件到新库中进行恢复,这时只需要极短的时间就可完成恢复。

这个方法可以极大缩短割接时间。下文是一个参考示例的具体步骤:

1.首先,启动数据库

查询归档情况:

SQL> select name from v$archived_log;

NAME
-------------------------------------------
E:\ORACLE\ORADATA\EYGLE\REDO01.LOG
E:\ORACLE\ORADATA\EYGLE\REDO02.LOG
E:\ORACLE\ORADATA\EYGLE\REDO03.LOG
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00001.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00002.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00003.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00004.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00005.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00006.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00001.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00002.001

NAME
--------------------------------------------
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00003.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00004.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00005.001
E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00006.001

已选择15行。

归档当前的日志:

SQL> alter system switch logfile;
系统已更改。

2.备份数据库

备份脚本:

alter tablespace system begin backup;
host copy E:\ORACLE\ORADATA\EYGLE\SYSTEM01.DBF e:\oracle\orabak\SYSTEM01.DBF
alter tablespace system end backup;
alter tablespace undotbs1 begin backup;
host copy E:\ORACLE\ORADATA\EYGLE\UNDOTBS01.DBF e:\oracle\orabak\UNDOTBS01.DBF
alter tablespace undotbs1 end backup;
alter tablespace eygle begin backup;
host copy E:\ORACLE\ORADATA\EYGLE\EYGLE01.DBF  e:\oracle\orabak\EYGLE01.DBF 
alter tablespace eygle end backup;

执行备份:

SQL> @e:\a.sql

表空间已更改。

已复制         1 个文件。


表空间已更改。


表空间已更改。

已复制         1 个文件。


表空间已更改。


表空间已更改。

已复制         1 个文件。


表空间已更改。


数据库已更改。

3.更改数据并归档部分日志

SQL> insert into eygle.test select *from eygle.test;

已创建224行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

SQL> insert into eygle.test select *from eygle.test;

已创建448行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

SQL> insert into eygle.test select *from eygle.test;

已创建896行。

SQL> commit;

提交完成。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

4.执行恢复

恢复备份的数据文件,然后启动数据库。

使用当前日志及控制文件:

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area   47259136 bytes
Fixed Size                   454144 bytes
Variable Size              29360128 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 197282 (在 11/13/2004 23:30:48 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00008.001
ORA-00280: 更改 197282 对于线程 1 是按序列 # 8 进行的


指定日志: {=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 197393 (在 11/13/2004 23:32:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00009.001
ORA-00280: 更改 197393 对于线程 1 是按序列 # 9 进行的
ORA-00278: 此恢复不再需要日志文件
'E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00008.001'


指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open read only;

数据库已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area   47259136 bytes
Fixed Size                   454144 bytes
Variable Size              29360128 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 197393 (在 11/13/2004 23:32:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00009.001
ORA-00280: 更改 197393 对于线程 1 是按序列 # 9 进行的


指定日志: {=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 197423 (在 11/13/2004 23:32:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00010.001
ORA-00280: 更改 197423 对于线程 1 是按序列 # 10 进行的
ORA-00278: 此恢复不再需要日志文件
'E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00009.001'


指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open read only;

数据库已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area   47259136 bytes
Fixed Size                   454144 bytes
Variable Size              29360128 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。

SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 197423 (在 11/13/2004 23:32:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00010.001
ORA-00280: 更改 197423 对于线程 1 是按序列 # 10 进行的


指定日志: {=suggested | filename | AUTO | CANCEL}
E:\Oracle\oradata\eygle\REDO01.LOG
ORA-00310: 存档日志包含序列 9;要求序列 10
ORA-00334: 归档日志: 'E:\ORACLE\ORADATA\EYGLE\REDO01.LOG'


SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 197423 (在 11/13/2004 23:32:51 生成) 对于线程 1 是必需的
ORA-00289: 建议: E:\ORACLE\ORADATA\EYGLE\ARCHIVE\ARC00010.001
ORA-00280: 更改 197423 对于线程 1 是按序列 # 10 进行的

指定日志: {=suggested | filename | AUTO | CANCEL}
E:\Oracle\oradata\eygle\REDO02.LOG
已应用的日志。
完成介质恢复。
SQL> alter database open;
alter database open
*
ERROR 位于第 1 行:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项

SQL> alter database open resetlogs;

数据库已更改。

SQL>

注:读者需要注意中间的部分,因为read only的打开并不影响数据库进一步的恢复(恢复可以分步进行)。

上一篇:可以适应多种环境的共享数据结构设计示例 人气:831
下一篇:轻松解决启用数据库复制时出现的18483错误 人气:807
浏览全部数据库的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 HDWiki v4.0.1 bulid 081007 UTF
2008-10-7 迅易评选投票管理系统 v10.0
2008-10-7 HDWiki v4.0.1 bulid 081007 GBK
2008-10-7 Bitrac单用户博客 v1.14 bulid 0
2008-10-7 OpenX(广告管理系统) v2.6.2 多国
2008-10-7 乐铺网店系统免费普及版 v3.41
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成