备份的控制文件和新的数据文件数据库

时间:2022-12-08 05:01:21 作者:百利甜 综合材料 收藏本文 下载本文

“百利甜”通过精心收集,向本站投稿了7篇备份的控制文件和新的数据文件数据库,小编在这里给大家带来备份的控制文件和新的数据文件数据库,希望大家喜欢!

篇1:备份的控制文件和新的数据文件数据库

我们可以想象,如果控制文件是从备份中恢复的,那么 数据库 在open过程中又将如何呢? 首先备份控制文件,打开数据库,增进检查点: [oracle@jumper eygle]$ cp control01.ctl control01.ctl.bak [oracle@jumper eygle]$ sql plus “/ as sysdba” SQL*Plus: Rel

我们可以想象,如果控制文件是从备份中恢复的,那么数据库在open过程中又将如何呢?

首先备份控制文件,打开数据库,增进检查点:

[oracle@jumper eygle]$ cp control01.ctl control01.ctl.bak

[oracle@jumper eygle]$sqlplus “/ as sysdba”

SQL*Plus: Release 9.2.0.4.0 - Production on Fri Aug 11 10:46:05 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to an idle instance.

SQL>startup

ORACLE instance started.

Total System Global Area 139531744 bytes

Fixed Size                  452064 bytes

Variable Size            121634816 bytes

Database Buffers          16777216 bytes

Redo Buffers                667648 bytes

Database mounted.

Database opened.

SQL>alter system checkpoint;

System altered.

SQL>shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>exit

Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

然后恢复旧的控制文件,mount数据库,转储数据文件头:

[oracle@jumper eygle]$ mv control01.ctl control01.ctl.n

[oracle@jumper eygle]$ mv control01.ctl.bak control01.ctl

[oracle@jumper eygle]$ sqlplus “/ as sysdba”

SQL*Plus: Release 9.2.0.4.0 - Production on Fri Aug 11 10:46:50 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to an idle instance.

SQL>startup mount;

ORACLE instance started.

Total System Global Area 139531744 bytes

Fixed Size                  452064 bytes

Variable Size            121634816 bytes

Database Buffers          16777216 bytes

Redo Buffers                667648 bytes

Database mounted.

SQL>alter session set events 'immediate trace name file_hdrs level 10';

Session altered.

SQL>!

我们看控制文件的信息(选择一个文件):

DATA FILE #4:

(name #4) /opt/oracle/oradata/eygle/eygle01.dbf

creation size=0 block size=8192 status=0xe head=4 tail=4 dup=1

tablespace 4, index=4 krfil=4 prev_file=0

unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00

Checkpoint cnt:61 scn: 0x0000.002acb1e 08/11/2006 10:44:38

Stop scn: 0x0000.002acb1e 08/11/2006 10:44:38

Creation Checkpointed at scn: 0x0000.0015078d 06/06/2006 09:41:54

再看数据文件头信息:

FILE HEADER:

Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000

Db ID=1407686520=0x53e79778, Db Name='EYGLE'

Activation ID=0=0x0

Control Seq=989=0x3dd, File size=1280=0x500

File Number=4, Blksiz=8192, File Type=3 DATA

Tablespace #4 - EYGLE rel_fn:4

Creation  at  scn: 0x0000.0015078d 06/06/2006 09:41:54

Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0

reset logs count:0x232bee1f scn: 0x0000.0007c781 recovered at 08/11/2006 10:11:26

status:0x0 root dba:0x00000000 chkpt cnt: 64 ctl cnt:63

begin-hot-backup file size: 0

Checkpointed at scn: 0x0000.002acb98 08/11/2006 10:46:24

我们注意到数据文件的chkpt cnt: 64 要大约控制文件的Checkpoint cnt:61,也就是说控制文件是旧的,

备份的控制文件和新的数据文件数据库

此时尝试打开数据库就会出现如下错误:

[oracle@jumper udump]$ sqlplus “/ as sysdba”

SQL*Plus: Release 9.2.0.4.0 - Production on Fri Aug 11 10:51:20 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production

With the Partitioning option

JServer Release 9.2.0.4.0 - Production

SQL>alter database open;

alter database open

*

ERROR at line 1:

ORA-01122: database file 1 failed verification check

ORA-01110: data file 1: '/opt/oracle/oradata/eygle/system01.dbf'

ORA-01207: file is more recent than controlfile - old controlfile

Oracle告诉我们,控制文件是旧的。此时我们可以通过重建控制文件或者从旧的数据备份开始恢复。

原文转自:www.ltesting.net

篇2:[]Oracle控制文件、数据文件、临时文件总结笔记

一.控制文件(Control Files)

1.控制文件的作用

控制文件在Oracle数据库中扮演着很重要的角色,没有控制文件(或者控制文件损坏了),运行着的实例立即崩溃,关闭着的死活打不开,你以为你是谁,可以说,控制文件一旦损坏,数据库必然down了,

[精品]Oracle控制文件、数据文件、临时文件总结笔记

。Oracle数据库实例启动过程中,当启动到unmount时,此时只是在内存中为Oracle实例分配了实例空间,然后如果继续要启动到mount状态,这个时候控制文件就闪亮登场了,因为Oracle要依据控制文件找到数据文件跟重做日志文件的路径,确定找到了再进去mount状态,至于打开数据库就是确定这些文件都一致,没有问题的话就能打开了,

2.控制文件包括了哪些重要内容

控制文件包括了很多重要的信息,比如数据库的数据文件、重做日志文件、数据库的名称、数据库创建信息、表空间信息、数据文件的状态、日志文件信息、备份信息、检查点信息等

3.控制文件的性质

控制文件是一个2进制文件,不可以直接通过文本编辑器进行编写,这个文件由Oracle自己进行维护,Oracle建议控制文件至少有两份冗余,并且放在不同的磁盘中,这样能够避免一个磁盘的损坏,造成整个控制文件都丢失的情况,因为他还有一个兄弟健在,尽管一个坏了,数据库还是得down,但是有一个在的话,至少我恢复起来要快不少。

4.查看控制文件

篇3:linux 备份数据库与网站文件详解linux操作系统

最近刚使用linux系统但网站数据还是希望有个备份功能,今天找了一些手动备份数据库与文件与自动备份的脚本分享给各位同学呀,

例1,手动备份数据库与网站文件

代码如下复制代码

#!/bin/sh

# 文 件 名: rptsmain.sh

# 版   权: Copyright (shell) 2007-2007

# 版 本 号: V1.0

# 功能描述: 数据备份

# 创 建 人: xxxxx

# 日   期: 2007/10/26

# 修 改 人:xxxxxxx

# 日   期: 2007/10/26

#程序开始

TODAY=`date “+%Y%m%d”`

WORKDATE=$TODAY

BACKDIR='/databak/'

tput init

clear

while :

do

tput clear

echo “”

echo “”

echo “”

echo “”

echo “”

echo “”

echo “”

echo “”

echo “”

echo “

数据备份程序 V1.0

Copyright (shell)

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃                                                     ┃

┃                1.    开始备份数据                 ┃

┃                                                     ┃

┃                2.    备份数据写入磁带             ┃

┃                                                     ┃

┃            ----------------------------------      ┃

┃                                                     ┃

┃                0.    退出系统                     ┃

┃                                                     ┃

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

请选择[ ] ”

read choice

case $choice in

1):

clear

echo “开始BCP数据库数据...”

DATABASEDIR=$BACKDIR/database

if [ -d $DATABASEDIR ]; then

rm -rf $DATABASEDIR/*

else

mkdir $DATABASEDIR

fi

#备份webdb数据库

mkdir $DATABASEDIR/webdb

total=`cat webdb.table|wc -l`

current=0

for table in `cat webdb.table`

do

current=$current+1

/sybase/OCS-12_5/bin/bcp webdb..$table out

$DATABASEDIR/aadb/$table.bcp -Usa -Ppwd -SServer -Jiso_1 -n -T409600

done

#备份abcdb数据库

mkdir $DATABASEDIR/abcdb

total=`cat abcdb.table|wc -l`

current=0

for table in `cat abcdb.table`

do

current=$current+1

/sybase/OCS-12_5/bin/bcp abcdb..$table out

$DATABASEDIR/bbdb/$table.bcp -Usa -Ppwd -SServer -Jiso_1 -n -T409600

done

echo “开始打包压缩数据库备份数据...”

cd $BACKDIR

tar uvf database-$WORKDATE.tar database/*

echo “正在删除临时文件...”

rm -rf $DATABASEDIR

echo “开始打包压缩数据文件...”

echo “(1)开始打包Tomcat-ABC网站数据文件...”

SOuRCEDIR='/aaaa/uploads'

cd $BACKDIR

#tar czf abc-files-$WORKDATE.tar.gz $SOuRCEDIR/ISO/*

echo “(2)开始打包Websphere经管网数据文件...”

cd $BACKDIR

#tar czf web-files-$WORKDATE.tar.gz /upload/images/807/*

echo “数据备份完成,按任意键返回...”

cd $HOME

read return

;;

2):

;;

0):

break

;;

esac

done

例2,自动定时备份数据库

代码如下复制代码

#!/bin/bash

#Setting

#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,以及备份方式

#默认情况下备份方式是mysqldump,还可以是mysqldump,mysqldotcopy,如果注释掉第

#18行,则默认以tag的方式备份

#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz

DBName=mysql

DBUser=root

DBPasswd=123456

BackupPath=/home/wang/www/backup/mysql/mysqlbackup

LogFile=/home/wang/www/backup/mysql/db.log

DBPath=/var/lib/mysql/

#BackupMethod=mysqldump

#BackupMethod=mysqlhotcopy

#BackupMethod=tar

#Setting End

NewFile=“$BackupPath”db$(date +%y%m%d).tgz

DumpFile=“$BackupPath”db$(date +%y%m%d)

ldFile=“$BackupPath”db$(date +%y%m%d --date='5 days ago').tgz

echo “-------------------------------------------” >>$LogFile

echo $(date +“%y-%m-%d %H:%M:%S”) >>$LogFile

echo “--------------------------” >>$LogFile

#Delete Old File

if [ -f $OldFile ]

then

rm -f $OldFile >>$LogFile 2>&1

echo “[$OldFile]Delete Old File Success!” >>$LogFile

else

echo “[$OldFile]No Old Backup File!” >>$LogFile

fi

if [ -f $NewFile ]

then

echo “[$NewFile]The Backup File is exists,Can’t Backup!” >>$LogFile

else

case $BackupMethod in

mysqldump*)

if [ -z $DBPasswd ]

then

mysqldump -u $DBUser --opt $DBName >$DumpFile

else

mysqldump -u $DBUser -p$DBPasswd --opt $DBName >$DumpFile

fi

tar czvf $NewFile $DumpFile >>$LogFile 2>&1

echo “[$NewFile]Backup Success!” >>$LogFile

rm -rf $DumpFile

;;

mysqlhotcopy*)

rm -rf $DumpFile

mkdir $DumpFile

if [ -z $DBPasswd ]

then

mysqlhotcopy -u $DBUser $DBName $DumpFile >>$LogFile 2>&1

else

mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1

fi

tar czvf $NewFile $DumpFile >>$LogFile 2>&1

echo “[$NewFile]Backup Success!” >>$LogFile

rm -rf $DumpFile

;;

*)

/etc/init.d/mysqld stop >/dev/null 2>&1

tar czvf $NewFile $DBPath >>$LogFile 2>&1

/etc/init.d/mysqld start >/dev/null 2>&1

echo “[$NewFile]Backup Success!” >>$LogFile

;;

esac

fi

echo “-------------------------------------------”

echo

#lftp -f lftp.sh 如果有FTP可同时上传ftp中,

再利用crontab命令生成/var/spool/cron/root 文件

crontab –e  (就会打开一个编辑窗口,第一行会有内容格式的提示,在此输入命令)

m h dom mon dow  command (具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command))

如: 10 02 * * * /home/backup/autobackupmysql.sh (表示零晨二点十分执行备份脚本)

例3,我们自己的一个Linux VPS 自动备份数据到远程主机FTP

如果系统上没有ftp命令,先执行yum install -y ftp进行安装。

需要先建立/home/backup/目录,该目录不能用作其他用途。

代码如下复制代码

#!/bin/bash

#FTP信息

FTP_IP=

FTP_USER=

FTP_PASS=

#备份数据库

/etc/init.d/mysqld stop

MySQLBakName=MySQL_$(date +”%Y%m%d”).tar.gz

tar zcf /home/backup/$MySQLBakName /var/lib/mysql

/etc/init.d/mysqld start

#备份网站

WebBakName=Web_$(date +%Y%m%d).tar

tar cf /home/backup/$WebBakName /home/www

#操作FTP

ldMySQL=MySQL_$(date -d -1day +”%Y%m%d”).tar.gz

ldWeb=Web_$(date -d -1day +”%Y%m%d”).tar

cd /home/backup/

/usr/bin/ftp -v -n $FTP_IP << EOF

user $FTP_USER $FTP_PASS

type binary

put $MySQLBakName

put $WebBakName

delete $OldMySQL

delete $OldWeb

bye

EOF

rm -rf /home/backup/*.tar*

篇4:转储控制文件头数据库教程

控制

转出控制文件必须在数据库打开(OPEN)或者安装(MOUNT)的状态下进行,

1.     连接数据库

E:\>sqlplus “/ as sysdba”

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 5月 14 08:52:03 2004

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

连接到:

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.1.0 - Production

2.     确定跟踪文件的目录:

sys@TEST_LUNAR>show parameter dump

NAME                                TYPE       VALUE

------------------------------------ ----------- ------------------------------

background_core_dump                string     partial

background_dump_dest                string     e:\oracle\admin\test\bdump

core_dump_dest                      string     e:\oracle\admin\test\cdump

max_dump_file_size                  string     UNLIMITED

shadow_core_dump                    string     partial

user_dump_dest                      string     e:\oracle\admin\test\udump

sys@TEST_LUNAR>

sys@TEST_LUNAR>host dir E:\oracle\admin\test\udump

驱动器 E 中的卷是 ORACLE

卷的序列号是 707A-C50C

E:\oracle\admin\test\udump 的目录

2002-01-13 21:59      

         .

2002-01-13 21:59      

         ..

0 个文件             0 字节

2 个目录 2,444,267,520 可用字节

3.     转储控制文件头

sys@TEST_LUNAR>alter session set events 'immediate trace name controlf level 1';

会话已更改。

sys@TEST_LUNAR>host dir E:\oracle\admin\test\udump

驱动器 E 中的卷是 ORACLE

卷的序列号是 707A-C50C

E:\oracle\admin\test\udump 的目录

2002-01-13 21:59      

         .

2002-01-13 21:59      

         ..

2004-05-14 09:06                 949 test_ora_1364.trc

1 个文件           949 字节

2 个目录 2,444,263,424 可用字节

sys@TEST_LUNAR>

4.     解读dump出来的控制文件头(level 1)信息

以下是test_ora_1364.trc的内容(共23行):

(1)    Dump file e:\oracle\admin\test\udump\test_ora_1364.trc

(2)      Fri May 14 09:06:10 2004

创建跟踪文件的时戳

(3)      ORACLE V9.2.0.1.0 - Production vsnsta=0

数据库当前的版本是V9.2.0.1.0

注意:与(18)条目的区别

(4)      vsnsql=12 vsnxtr=3 ???

(5)      Windows 2000 Version 5.0 Service Pack 4, CPU type 586

当前OS信息

(6)      Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production

(7)      With the Partitioning, OLAP and Oracle Data Mining options

(8)      JServer Release 9.2.0.1.0 - Production

(9)      Windows 2000 Version 5.0 Service Pack 4, CPU type 586

(10)  Instance name: test

实例名称为test

(11)  Redo thread mounted by this instance: 1

这说明这是一个单实例数据库,当前线程被实例1装载

(12)  Oracle process number: 13

目前Oracle的进程数为13,这个信息同select count(*) from v$process的结果相同:

sys@TEST_LUNAR>select count(*) from v$process;

COUNT(*)

----------

13

sys@TEST_LUNAR>

(13)  Windows thread id: 1364, image: ORACLE.EXE

这条信息反应了前台进程中可执行部分的信息,注意在windows平台上Oracle作为一个ORACLE.EXE进程来运行,

所以,这里前台进程中的可执行部分是:ORACLE.EXE;创建该跟踪文件的线程号为1364(十进制数)。

如果在UNIX中,这部分信息会类似下面的信息:

Image: $1$DUA41:[V8ROOT.RDBMS]SQLPLUS.EXE;8

即该跟踪文件是由前台进程SQLPLUS.EXE创建的,其操作系统进程号(PID)为8

(14)  *** 2004-05-14 09:06:10.000

创建跟踪文件的时戳

(15)  *** SESSION ID:(10.9) 2004-05-14 09:06:10.000

创建控制文件的session的SID 和SERIAL#,本例中,SID是10,SERIAL#是9,这部分信息可以同v$session视图中看到的一样。

sys@TEST_LUNAR>select sid,serial# ,username from v$session;

SID   SERIAL# USERNAME

---------- ---------- ------------------------------

1         1

2         1

3         1

4         1

5         1

6         1

7         1

8         1

9         1

10         9 SYS

已选择10行。

sys@TEST_LUNAR>

(16)  DUMP OF CONTROL FILES, Seq # 2929 = 0xb71

说明这是一个控制文件的转储,Seq #是控制文件的序列号,它意味着控制文件的更新次数,也可以看作是控制文件的版本。2929是10进制表示的,0xb71是十六进制表示的。(这行信息同21行给出的信息是一样的含义)

*********以下内容是通用文件头(generic file header)信息*************

通用文件头信息对于数据库中所有的数据文件,控制文件和日志文件都应当是一样的。

(17) FILE HEADER:

(18)  Software vsn=153092096=0x9200000, Compatibility Vsn=134217728=0x8000000

指出了创建控制文件时的Oracle的版本,这里是0x9200000,即,9.2.0。

Compatibility Vsn指出了兼容版本为0x8000000,即,8.0。

注意:与(3)条目的区别

(19)  Db ID=1750352942=0x6854442e, Db Name='TEST1'

Db ID是数据库标识号,Oracle根据数据库的创建时间和数据库名按照一定的算法得出的;Db Name为数据库名,本例中数据库名为TEST1。

(20)  Activation ID=0=0x0

(21)  Control Seq=2929=0xb71, File size=228=0xe4

Control Seq同16行信息的含义;

File size指出了控制文件的物理大小,其单位为块,

即,控制文件的实际大小=File size的值 * 数据块的大小(DB_BLOCK_SIZE)

(22)  File Number=0, Blksiz=8192, File Type=1 CONTROL

控制文件的文件号为0,类型为1;

Blksiz对应于操作系统数据块的大小,在Windows平台上为8192K

(如果是UNIX操作系统,Blksiz的值为512)???

**************************通用文件头结束****************************

(23) *** END OF DUMP ***

篇5:备份PostgreSQL和MySQL数据库数据库

无论是My SQL 还是PostgreSQL 数据库 ,如果你不能每天对其进行备份的话,那么应该每周对这些数据库进行备份操作一次,对许多企业来说,数据库信息代表着网站内容和其它重要的数据,因此,保持数据备份是非常重要的操作。 庆幸的是, MySQL 和PostgreSQL都提

无论是MySQL还是PostgreSQL数据库,如果你不能每天对其进行备份的话,那么应该每周对这些数据库进行备份操作一次。对许多企业来说,数据库信息代表着网站内容和其它重要的数据,因此,保持数据备份是非常重要的操作。

庆幸的是,MySQL和PostgreSQL都提供将数据库转化成flat-text文件的工具,这样你就可以将数据库信息输入到其它系统或者将数据库备份并保留它。

为了备份一个MySQL数据,可以使用mysqldump工具。例如,为了备份一个叫data的数据库,用户可以进行如下操作:

$ mysqldump -u webuser --password=pass data >data.dump

因为通常情况下,mysqldump采用的是标准格式,你应该将这一标准格式改写成一个文件名(在本例中写成data.dump),

对于这种自动备份的方法,唯一缺陷就是必须在命令行指定密码。

为了备份一个PostgreSQL数据库,可以使用pg_dump工具。访问数据库的用户需要运行这一工具。根据PostgreSQL规定的主机访问规则,你可能不需要给数据库输入密码就可以获得该数据库的信息。操作过程如下:

$ pg_dump data >data.dump

这与mysqldump工具同样有效,但是后者不要求用户名或者密码之类的信息,因为你是作为有权限访问该数据库的用户身份来运行这一工具。

在这两种数据库备份方法中,生成的输出文件提供了重新创建整个数据库的操作说明。因此,这一输出文件包含了数据和表格结构,这正是你创建数据库所必要的信息。

通过以上两类命令,你还可以使用另外一些命令行获取想保存的数据。对于这两类命令,你可以登录网站主页与阅读所有操作信息,并自定义你的数据库备份操作。

原文转自:www.ltesting.net

篇6:Oracle数据库备份技巧

利用下面的列出的技巧来确保你不会在每周一次的数据库备份过程中忘记关键步骤。

每周一次备份主数据库。如果你创建、修改或者停止一个数据库,添加新的sql server消息,添加或者停止连接服务器,或者添加记录设备,那就进行手工备份。

每天备份一次msdb数据库。它一般非常小,但很重要,因为它包含了所有的sql server工作、操作和计划任务。

只有当你修改它时,才有必要备份模型数据库。

用sql server agent来安排你的备份工作的时间表。

如果在你的生产(production)环境中有现成资源,备份生产数据库到本地磁盘或者网络服务器(用同一个开关)。然后,把备份文件/设备拷贝到磁带上。在存在许多硬件故障(特别是在raid系统中)的情况下,磁盘常常是完好的(inact)。如果备份文件是在磁盘上,那么恢复时的速度会提高很多。

备份开发和测试数据库至少要用到simple恢复模型。

除了有计划的定时备份外,在进行未记录的(nonlogged)批操作(如,批拷贝)、创建索引、或者改变恢复模型后要备份用户数据库。

如果你使用的是simple恢复模型,记住在截短(truncate)交易记录之后备份你的数据库。

用文档记录你的恢复步骤。至少要大概记录这些步骤,注意所有的重要文件的位置。

--------------------------------------------------------------------------------

在截短记录之前,也就是所有的已提交(committed)交易从记录中清空之前,所有的这些信息都保存在交易记录中。在simple恢复模型中,记录在一个checkpoint期间内截短(在sql server内存缓冲写道磁盘时),它是自动发生的,但也可以手动执行。这也就是simple恢复模型不支持时间点(point-in-time)恢复的原因。在full和bulk_logged恢复模型下,当交易记录被备份时,交易记录被截短,除非你明确指出不进行截短。

为了备份交易记录,使用backup log命令。其基本语法与backup命令非常相似:

backup log { database } to

下面是如何把交易记录备份到一个名为logbackupdevice的逻辑设备上的例子:

backup transaction northwind to logbackupdevice

如果你不希望截短交易记录,使用no_truncate选项,如下所示:

backup transaction northwind to logbackupdevice with no_truncate

只是基本知识。

尽管我在本文中仅仅概述了数据库恢复的基本知识,你还是可以通过这些技巧来找到正确的方向。那么,为了避免不必要的(丢失数据造成的)恐慌,你要做到每周备份主数据库,每天备份msdb。

篇7:备份InformixOnline数据库三法数据库

Informix-Online 数据库 因其具有高 性能 、高 可靠性 、支持数据完整性定义/检查等特性而得到广泛应用,对于使用中的数据库,数据备份的 安全 可靠性便成为人们关注的焦点。根据多年的学习和经验,笔者对Informix-Online数据库常用的三种数据备份方式加以归

Informix-Online数据库因其具有高性能、高可靠性、支持数据完整性定义/检查等特性而得到广泛应用。对于使用中的数据库,数据备份的安全可靠性便成为人们关注的焦点。根据多年的学习和经验,笔者对Informix-Online数据库常用的三种数据备份方式加以归纳和比较。本文所讲备份大多是备份到磁带上的热备份方法。

一.使用ontape工具进行数据备份

1.ontape工具的功能

ontape工具具有如下功能:备份和恢复Online数据、备份和恢复逻辑日志、改变数据库日志状态等(本文着重介绍数据备份功能)。

2.执行ontape备份数据的语法

ontape备份语法为:

ontape-s-L备份级别(0、1、2)

在online处于联机或静止方式时,Informix用户或具有DBA权限的用户可以通过执行上面的命令进行备份。根据备份方案安排进行0级、1级、2级备份。0级备份是对整个数据库的所有数据进行完整备份;1级备份是只对0级备份以后修改过的数据进行备份;2级备份只是对1级备份以后修改过的数据进行备份。

3.使用ontape工具进行数据备份需要注意的问题

1)在执行ontape备份前要对Onconfig文件中的TAPEDEV、TAPEBLK、TAPESIZE参数进行正确的设置。

2)为了缩短数据恢复时间,应以进行0级为主,尽量减少1级和2级备份。对银行等重要部门数据,应每天进行0级备份。

3)如果需要将ontape备份的数据恢复到另一台服务器上时,要求两台服务器机型、操作系统、Onconfig配置文件及非临时分配的Dbspace磁盘空间数量和大小必须一致,否则数据不能正常恢复。

4)必须保证有足够可用的逻辑日志文件。如果剩余的逻辑日志空间小于单个逻辑日志的50%,Informix-online将拒绝执行备份操作。必须先备份已使用过的逻辑日志,然后才能进行数据备份。

5)保留Onconfig文件副本。在进行0级备份后,应备份Onconfig文件,因为在恢复0级备份时需要读Onconfig文件信息,如果online配置被修改,数据恢复将失败,如果恢复此0级备份,必须恢复当时的配置。

6)备份可以在online联机或静止方式下进行,在备份过程中不能改变online运行方式,否则备份会被中断。

7)不要使用后台方式执行备份命令(UNIX下的&&),因为备份采用交互方式进行。

二.使用dbexport命令进行数据备份

1.dbexport命令简介

dbexport命令以ASCII码格式将数据写到文件或备份介质上(如磁带)。dbexport卸出的文件包括数据库模式文件和数据文件。

2.dbexport命令语法如下

dbexport[-X][-c][-q][-d][-ss][{-o-t-b-s[-f]}]

以上命令中参数的意义如下:

中包括的内容为必选项,[]中的内容为可选项。

-c:指示如果没有错误,则输出全部信息。

-q:在标准输出设备上不显示错误信息、警告和所生成的SQL数据定义语句。

-d:仅输出blob描述符,不输出blob数据。

-ss:在模式文件中输出特定于服务器的用于创建数据库和表的信息,比如:初始的extent和附加的extent的大小、上锁方式、表所驻留的dbspace等信息,

-o:指定数据输出文件的磁盘目录。

-t:指定数据输出文件的备份介质名称。

-b:指定备份介质块大小。

-s:指定备份介质的最大存储量。

-f:用于指定存储在备份介质上的模式文件名。

database:指定备份的数据库名称。

使用dbexport功能及需注意的问题

1)执行dbexport命令必须是Informix用户或具有DBA访问权限的用户;

2)用dbexport备份的数据必须用dbimport命令恢复;

3)用户可以通过编辑模式文件来改变dbimport生成的数据库,如改变数据库名称或相关的表信息;

4)dbexport以独占方式(exclusivemode)占用数据库,备份期间其他用户不能对数据库进行查询和修改及插入操作;

5)模式文件不保留数据库的日志文件,用户使用dbimport命令建立数据库时必须为新建数据库选择一种日志方式(ANSI、buffered、nobuffered类型);

6)用户可以使用dbexport/dbimport命令,将Informix-online和Informix-SE下的数据进行相互转换;也可以将数据在Informix-online的不同版本之间转换,这种转换对数据库服务器的结构和online的配置没有特别要求;

7)使用dbexport/dbimport命令备份/恢复数据,可以起到消除数据分配空间碎块的作用,提高数据库整体运行效率。

三.使用Onunload命令进行数据备份

1.Onunload命令简介

Onunload命令以页为单位,使用二进制形式卸出数据,备份效率比dbexport高。

2.Onunload命令的语法

Onunload[-l][-t][-b][-s][:[owner>.>

以上参数代表的意义如下:

中包括的内容为必选项,[]中的内容为可选项

-l:指示onunload分别从配置参数TAPEDEV、TAPEBLK和TAPESIZE中读入磁带设备、块大小和备份设备容量值

-t:指定备份设备名

-b:指定备份设备的块大小

-s:指定备份设备的存储容量

database:指定要备份的数据库

owner:指定表的属主

table:指定要卸出的表

使用onunload需要注意的问题

1)onunload备份的数据必须用onload命令进行恢复;

2)onunload/onload不能实现不同版本的online之间的数据转移;

3)onunload/onload是以磁盘页大小为单位存储的二进制数据,卸出和接受数据的计算机必须具有相同的磁盘页大小;

4)只能将onunload卸出的数据装入online管理的数据库或表;

5)用户必须具有DBA访问权限,才能执行onunload命令;

6)onunload不保留初始表上定义的访问特权;

7)onunload不保留初始表上定义的同义词。

以上三种数据备份方式各有特点,ontape备份对online参数配置前后一致性要求较高,但数据备份和恢复操作简单,备份和恢复速度较快;onunload备份以页为单位以二进制形式进行备份效率较高,数据恢复时只要计算机磁盘页大小一致即可;用dbexport所做的备份可以实现不同版本、不同Informix产品之间的数据转换,数据转移灵活方便。

为保证数据能够安全恢复,数据备份至少应该选择两种方式。通过对Informix-Online数据库三种常用备份方法分析比较与归纳,用户可以根据实际情况选择适合自己需要的备份方式,来保证数据的安全恢复与转移

原文转自:www.ltesting.net

文件范本

文件范文

数据库设计文档范文

数据库参考文献格式

浅谈自动观测数据文件的预审

第六章 系统数据文件和信息Unix系统

投标文件范本

文件管理制度

数据库管理英文简历

线路负载均衡为网络备份

备份的控制文件和新的数据文件数据库(通用7篇)

欢迎下载DOC格式的备份的控制文件和新的数据文件数据库,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档