第一篇:數(shù)據(jù)庫備份和恢復(fù)方案及步驟(最終版)
操作系統(tǒng):GNU/Linux 數(shù)據(jù)庫管理系統(tǒng):Oracle10g
一、安裝Recovery Catalog 1,用dbca創(chuàng)建一個DATABASE catdb,用于存放recovery catalog data [oracle@localhost ~]$dbca 2,在catdb中創(chuàng)建一個名為rcat_ts的表空間作為用戶rman的默認表空間
[oracle@localhost ~]$sqlplus sys/oracle@catdb as sysdba SQL> create tablespace rcat_ts;SQL> create user rman identified by oracle temporary tablespace temp Default tablespace rcat_ts quota unlimited on rcat_ts;3,授予catlog所有者rman recovery_catalog_owner角色,該角色提供給用戶所有查詢和維護recovery catalog所必需的權(quán)限
SQL> grant connect,resource,recovery_catalog_owner to rman;4,啟動rman,以catalog所有者rman登錄
[oracle@localhost ~]$rman catalog rman/oracle@catdb RMAN> create catalog tablespace rcat_ts;5,用rman同時連接到target數(shù)據(jù)庫、catalog數(shù)據(jù)庫,在新建的recovery catalog中注冊target數(shù)據(jù)庫
[oracle@localhost ~]$rman target sys/oracle@orcl catalog rman/oracle@catdb RMAN> register database;6,察看已在recovery catalog中注冊的target數(shù)據(jù)庫
[oracle@localhost ~]$sqlplus rman/oracle@catdb SQL>select * from db;
二、配置RMAN
1,同時連接target數(shù)據(jù)庫和recovery catalog數(shù)據(jù)庫
[oracle@localhost ~]$rman target sys/oracle@orcl catalog rman/oracle@catdb 2,RMAN> show all(檢查配置)
configure default device type to disk(設(shè)置默認的備份的設(shè)備為磁盤)
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;(設(shè)置備份的并行級別)
configure channel 1 device type disk format '/home/new/backup_%U'(設(shè)置備份文件格式)
configure channel 2 device type disk format '/home/oracle/backup_%U'(設(shè)置備份文件格式)
configure controlfile autobackup on(打開控制文件的自動備份)
configure controlfile autobackup format for device type disk to '/home/new/ctl_%F'(設(shè)置控制文件備份格式)
三.備份測試
備份全庫
1,同時連接target數(shù)據(jù)庫和recovery catalog數(shù)據(jù)庫
[oracle@localhost ~]$rman target sys/oracle@orcl catalog rman/oracle@catdb 2,RMAN> backup database plus archivelog delete input;3,連接target數(shù)據(jù)庫
[oracle@localhost ~]$sqlplus sys/oracle@orcl as sysdba SQL> conn hr/hr;SQL> select salary from employees where employee_id=157;SQL> update employees set salary =2000 where employee_id=157;SQL> commit;SQL> select salary from employees where employee_id=157;
四.恢復(fù)測試
復(fù)原及恢復(fù)全庫 1,連接target數(shù)據(jù)庫
[oracle@localhost ~]$sqlplus sys/oracle@orcl as sysdba 2,把target數(shù)據(jù)庫先關(guān)閉,然后啟動到mount狀態(tài) SQL> shutdown immediate;SQL> startup mount;3,復(fù)原及恢復(fù)全庫
RMAN> restore database
channel ORA_DISK_1: restore complete, elapsed time: 00:05:10 RMAN> recover database media recovery complete, elapsed time: 00:00:07
4,連接target數(shù)據(jù)庫
[oracle@localhost ~]$sqlplus sys/oracle@orcl as sysdba 5,打開target數(shù)據(jù)庫
SQL> alter database open;6,查看已錄入的事物 SQL> conn hr/hr;SQL> select salary from employees where employee_id=157;
假設(shè)備份了一個表空間users
恢復(fù)表空間:
rman target rman/rman@test2006 catalog rman/rman@test2007
sql 'alter tablespace users offline immediate'(使TEST2006的USERS表空間脫機)
進入test2006
select tablespace_name,status from dba_tablespaces;(檢查USERS已經(jīng)脫機)
退出RMAN
刪除D:oracleoradataTEST2006users01.dbf
rman target rman/rman@test2006 catalog rman/rman@test2007
restore tablespace users
recover tablespace users
sql 'alter tablespace users online'(使TEST2006的USERS表空間在線)
進入test2006
select tablespace_name,status from dba_tablespaces;(檢查USERS已經(jīng)在線)
三、物理(熱)備份。
Linux 下Oracle10.2.0.1 RMAN備份及恢復(fù)步驟介紹
切換服務(wù)器歸檔模式,如果已經(jīng)是歸檔模式可跳過此步:
%sqlplus /nolog(啟動sqlplus)
SQL> conn / as sysdba(以DBA身份連接數(shù)據(jù)庫)
SQL> shutdown immediate;(立即關(guān)閉數(shù)據(jù)庫)
SQL> startup mount(啟動實例并加載數(shù)據(jù)庫,但不打開)
SQL> alter database archivelog;(更改數(shù)據(jù)庫為歸檔模式)
SQL> alter database open;(打開數(shù)據(jù)庫)
SQL> alter system archive log start;(啟用自動歸檔)
SQL> exit(退出)
2、連接:
%rman target='gti/gti123@LANDF';(啟動恢復(fù)管理器)
3、基本設(shè)置:
RMAN> configure default device type to disk;(設(shè)置默認的備份設(shè)備為磁盤)
RMAN> configure device type disk parallelism 2;(設(shè)置備份的并行級別,通道數(shù))RMAN> RMAN>
RMAN> configure controlfile autobackup on;(打開控制文件與服務(wù)器參數(shù)文件的自動備份)
RMAN> configure controlfile autobackup format for device type disk to ' /home/oracle/backup/data/ctl_%F';(設(shè)置控制文件與服務(wù)器參數(shù)文件自動備份的文件格式)
4、查看所有設(shè)置:
RMAN> show all
5、查看數(shù)據(jù)庫方案報表:
RMAN> report schema;CONFIGURE
CHANNEL
DEVICE
TYPE
DISK
FORMAT '/home/oracle/backup/data1/backup_%U';(設(shè)置備份的文件格式,只適用于磁盤設(shè)備)CONFIGURE
CHANNEL
DEVICE
TYPE
DISK
FORMAT '/home/oracle/backup/data/backup_%U';(設(shè)置備份的文件格式,只適用于磁盤設(shè)備)
6、備份全庫:
RMAN> backup database plus archivelog delete input;(備份全庫及控制文件、服務(wù)器參數(shù)文件與所有歸檔的重做日志,并刪除舊的歸檔日志)
7、備份表空間:
熱備份(歸檔狀態(tài)下才有效果)
1、alter tablespace tablespace_name start backup;
2、拷貝你的該表空間的數(shù)據(jù)文件備份
3、alter tablespace tablespace_name end backup;
4、一個一個表空間做完,就備份完了
RMAN> backup tablespace system plus archivelog delete input;(備份指定表空間及歸檔的重做日志,并刪除舊的歸檔日志)RMAN> backup tablespace UNDOTBS plus archivelog delete input;(備份指定表空間及歸檔的重做日志,并刪除舊的歸檔日志)RMAN> backup tablespace SYSAUX plus archivelog delete input;(備份指定表空間及歸檔的重做日志,并刪除舊的歸檔日志)RMAN> backup tablespace TEMP plus archivelog delete input;(備份指定表空間及歸檔的重做日志,并刪除舊的歸檔日志)
8、備份歸檔日志:
RMAN> backup archivelog all delete input;
9、復(fù)制數(shù)據(jù)文件:
RMAN> copy datafile 1 to '/home/oracle/product/10.2.0.1/backup/system.copy';/* RMAN> RMAN> RMAN> */
10、查看備份和文件復(fù)本:
RMAN> list backup;
11、驗證備份:
RMAN> validate backupset 3;copy copy copy
'/home/oracle/data/gti_sys01.dbf'
'/home/oracle/data/gti_undotbs.dbf' '/home/oracle/data/sysaux_01.dbf' 1
to to to '/home/oracle/product/10.2.0.1/backup/system.copy';'/home/oracle/product/10.2.0.1/backup/undo.copy';'/home/oracle/product/10.2.0.1/backup/sysaux.copy';
12、從自動備份中恢復(fù)服務(wù)器參數(shù)文件:
RMAN> shutdown immediate;(立即關(guān)閉數(shù)據(jù)庫)
RMAN> startup nomount;(啟動實例)
RMAN> restore spfile to pfile '/backup1/initgti.ora' from autobackup;(從自動備份中恢復(fù)服務(wù)器參數(shù)文件)
13、從自動備份中恢復(fù)控制文件:
RMAN> shutdown immediate;(立即關(guān)閉數(shù)據(jù)庫)
RMAN> startup nomount;(啟動實例)
RMAN> restore controlfile to '/backup1' from autobackup;(從自動備份中恢復(fù)控制文件)
13、恢復(fù)和復(fù)原全數(shù)據(jù)庫:
RMAN> shutdown immediate;(立即關(guān)閉數(shù)據(jù)庫)
RMAN> exit(退出)
%mv
%rman target='gti/gti123@LANDF';(啟動恢復(fù)管理器)
RMAN> startup pfile=/home/oracle/product/10.2.0.1/dbs/initgti.ora(指定初始化參數(shù)文件啟動數(shù)據(jù)庫)
RMAN> restore database;(還原數(shù)據(jù)庫)
RMAN> recover database;(恢復(fù)數(shù)據(jù)庫)
RMAN> alter database open;(打開數(shù)據(jù)庫)
14、恢復(fù)和復(fù)原表空間:
RMAN> sql 'alter tablespace users offline immediate';(將表空間脫機)
RMAN> exit(退出恢復(fù)管理器)
/home/oracle/product/10.2.0.1/dbs/snapcf_gti.f /home/oracle/product/10.2.0.1/dbs/snapcf_gti.f.bak(將數(shù)據(jù)文件重命名)%mv
%mv /home/oracle/data/gti_undotbs.dbf /home/oracle/data/gti_undotbs.dbf.bak(將表空間重命名)
%mv /home/oracle/data/sysaux_01.dbf /home/oracle/data/sysaux_01.dbf.bak(將表空間重命名)
%rman target='gti/gti123@LANDF';(啟動恢復(fù)管理器)
RMAN> restore tablespace users;(還原表空間)
RMAN> recover tablespace users;(恢復(fù)表空間)
RMAN> sql 'alter tablespace users online';(將表空間聯(lián)機)
15、增量備份與恢復(fù):
第一天的增量基本備份:
RMAN> backup incremental level=0 database plus archivelog delete input;
第二天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第三天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第四天的增量差異備份:
RMAN> backup incremental level=1 database plus archivelog delete input;
第五天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第六天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
/home/oracle/product/10.2.0.1/dbs/gti_sys01.dbf /home/oracle/data/gti_sys01.dbf.bak(將表空間重命名)第七天的增量差異備份:
RMAN> backup incremental level=0 database plus archivelog delete input;
增量恢復(fù):
RMAN> shutdown immediate;
RMAN> exit
%mv
%rman target='gti/gti123@LANDF';(啟動恢復(fù)管理器)
RMAN> startup pfile=/home/oracle/product/10.2.0.1/dbs/initgti.ora(指定初始化參數(shù)文件啟動數(shù)據(jù)庫)
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open./home/oracle/product/10.2.0.1/dbs/snapcf_gti.f /home/oracle/product/10.2.0.1/dbs/snapcf_gti.f.bak(將數(shù)據(jù)文件重命名)
RMAN>crosscheck backupset;RMAN>delete obsolete RMAN>crosscheck archivelog all;RMAN>delete archivelog all;
第二篇:個人所得稅備份恢復(fù)數(shù)據(jù)庫步驟
1.先找到這三個文件
2.備份這三個文件到桌面或指定盤
●具體操作如下
一、數(shù)據(jù)備份的方法:
請您右擊桌面桌面金稅三期個人所得稅圖標→→屬性→→“打開文件位置”(Win7系統(tǒng))/“查找目標”(XP系統(tǒng)),1、打開Data文件夾,把里面的AppData.db、EPAccount.db復(fù)制粘貼到桌面上;
2、左上角“后退”按鈕點擊一下,打開AppModules→→GRSDS→→Data,把里面的Data.db復(fù)制粘貼到桌面上。
3、當前目錄下如存在“XX.db-wal”和“XX.db-shm”兩個擴展名文件,需同時與“XX.db”一起備份; 例如:Data.db-wal和Data.db-shm,要與Data.db一起復(fù)制拷貝、壓縮打包。
溫馨提醒:請將復(fù)制的文件妥善保管,以備后期恢復(fù)數(shù)據(jù)庫使用。
二、數(shù)據(jù)恢復(fù)的方法:
步驟一:請先關(guān)閉個稅軟件,右擊桌面金稅三期個人所得稅圖標→→“屬性”→→“打開文件位置”(Win7系統(tǒng))/“查找目標”(XP系統(tǒng))
1、打開“data文件夾”,將之前備份的appdata.db和epaccount.db復(fù)制并替換進來;
2、左上角“后退”按鈕點擊一下,打開“AppModules文件夾”→→“GRSDS文件夾”→→打開“data文件夾”,將之前備份的Data.db復(fù)制并替換進來,數(shù)據(jù)庫就恢復(fù)好了。
3、恢復(fù)操作前,請確認當前目錄是否存在“XX.db-wal”和“XX.db-shm”兩個擴展名文件,如存在請先刪除此文件,然后再進行數(shù)據(jù)庫恢復(fù);
例如:先刪除Data.db-wal和Data.db-shm兩個文件,再恢復(fù)Data.db。
溫馨提醒:數(shù)據(jù)只能覆蓋,不能合并;您在恢復(fù)數(shù)據(jù)前,請先確認新軟件中沒有報稅的數(shù)據(jù)再操作。
第三篇:Oracle數(shù)據(jù)庫備份和恢復(fù)論文
摘要:本文從Oracle的體系結(jié)構(gòu)開始,由原理到實踐,論述了Oracle數(shù)據(jù)庫備份的方式和策略。包括IMp/EXp,RMAN,OS備份等。
Abstract: Starting from the architecture of ORACLE, this paper discusses the backup method and strategy of database Oracle, including IMp/EXp, pMAN and OS theoretically and practically.關(guān)鍵字:Oracle, 備份, 恢復(fù), RMAN
Keywords: Oracle;Backup;Restoration;RMAN
概述
在大型軟件運行系統(tǒng)中,存在著很多備份策略,如RAID技術(shù),CLUSTER技術(shù)等等。很多時候,這些系統(tǒng)的備份就能夠解決數(shù)據(jù)庫備份的問題。但是,這種備份成本很高。同時,硬件的備份有時根本滿足不了現(xiàn)實的需要,如果用戶不小心誤刪了一個表,又想恢復(fù)的時候,數(shù)據(jù)庫的備份就變的重要了。
Introduction: In the running system of some big software, there exist many backup strategies such as RAID technology and CLUSTER technology etc.In most cases, these system backup strategies can fulfill the database backup.However the cost is rather high.At the same time, hardware backup sometimes is far from the actual requirement.The database backup becomes very important when a table is deleted by accident and needs to be restored.Oracle的運行方式
Oracle數(shù)據(jù)庫有兩種運行方式:一是歸檔方式(ARCHIVELOG),歸檔方式的目的是當數(shù)據(jù)庫發(fā)生故障時最大限度恢復(fù)數(shù)據(jù)庫,可以保證不丟失任何已提交的數(shù)據(jù);二是不歸檔方式(NOARCHIVELOG),只能恢復(fù)數(shù)據(jù)庫到最近的回收點(冷備份或是邏輯備份)。根據(jù)數(shù)據(jù)庫的高可用性和用戶可承受丟失的工作量的多少,對于實時性要求高的數(shù)據(jù)庫,強烈要求采用為歸檔方式;不歸檔方式只用在那些開發(fā)和調(diào)試的數(shù)據(jù)庫等。
如何改變數(shù)據(jù)庫的運行方式,在創(chuàng)建數(shù)據(jù)庫時,作為創(chuàng)建數(shù)據(jù)庫的一部分,就決定了數(shù)據(jù)庫初始的存檔方式。一般情況下為NOARCHIVELOG方式。當數(shù)據(jù)庫創(chuàng)建好以后,根據(jù)我們的需要把需要運行在歸檔方式的數(shù)據(jù)庫改成ARCHIVELOG方式。操作如下。
1.關(guān)閉數(shù)據(jù)庫,備份已有的數(shù)據(jù),改變數(shù)據(jù)庫的運行方式是對數(shù)據(jù)庫的重要改動,所以要對數(shù)據(jù)庫做備份,對可能出現(xiàn)的問題作出保護。
2.修改初試化參數(shù),使能自動存檔。
修改(添加)初始化文件init[SID].ora參數(shù):
log_archive_start=true #啟動自動歸檔
log_archive_format=ARC%T%S.arc #歸檔文件格式
log_archive_dest=/archdir/arch #歸檔路徑
在8i中,可以最多有五個歸檔路徑,并可以歸檔到其它服務(wù)器,如備用數(shù)據(jù)庫(standby database)服務(wù)器。
3.啟動Instance到Mount狀態(tài),即加載數(shù)據(jù)庫但不打開數(shù)據(jù)庫。
$> svrmgrl
SVRMGRL> connect internal
SVRMGRL> startup mount
SVRMGRL> alter database archivelog;// 使數(shù)據(jù)庫運行在歸檔方式
SVRMGRL> alter database open;
Oracle的備份方案
按照備份的方式,可以分為邏輯備份、冷備份(脫機備份)、熱備份(聯(lián)機備份),其中冷備份與熱備份又可以合稱為物理備份。按照備份的工具,可以分為EXp/IMp備份、操作系統(tǒng)備份、RMAN、第三方工具備份,如VERITAS等。下面分別介紹Oracle本身提供的幾種備份工具和操作。
1.EXp/IMp備份(邏輯備份)
EXp/IMp屬于邏輯備份的范疇,邏輯備份是指只備份數(shù)據(jù)庫中的數(shù)據(jù)但不記錄數(shù)據(jù)物理位置的一種備份。導(dǎo)出為數(shù)據(jù)庫作一個二進制的備份,并且這個備份只能由其姊妹程序imp(import)來讀取。具體的使用方法如下。(因為EXp和IMp使用上參數(shù)基本相同,所以只以EXp為例。)
EXp的命令格式和參數(shù)
格式:KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例程: EXp SCOTT/TIGER GRANTS=Y TABLES=(EMp,DEpT,MGR)
USERID 必須是命令行中的第一個參數(shù)
關(guān)鍵字 說明(默認)關(guān)鍵字 說明(默認)
USERID 用戶名/口令 FULL 導(dǎo)出整個文件(N)
BUFFER 數(shù)據(jù)緩沖區(qū)的大小 OWNER 所有者用戶名列表
FILE 輸出文件(EXpDAT.DMp)TABLES 表名列表
COMpRESS 導(dǎo)入一個范圍(Y)RECORDLENGTH IO記錄的長度
GRANTS 導(dǎo)出權(quán)限(Y)INCTYpE 增量導(dǎo)出類型
INDEXES 導(dǎo)出索引(Y)RECORD 跟蹤增量導(dǎo)出(Y)
ROWS 導(dǎo)出數(shù)據(jù)行(Y)pARFILE 參數(shù)文件名
CONSTRAINTS 導(dǎo)出限制(Y)CONSISTENT 交叉表一致性
LOG 屏幕輸出的日志文件 STATISTICS 分析對象(ESTIMATE)
DIRECT 直接路徑(N)TRIGGERS 導(dǎo)出觸發(fā)器(Y)
FEEDBACK 顯示每 x 行(0)的進度 FILESIZE 各轉(zhuǎn)儲文件的最大尺寸
QUERY 選定導(dǎo)出表子集的子句
注:可以通過exp -h(huán)elp命令查看exp的使用方法;imp-help命令查看imp的使用方法.2.操作系統(tǒng)備份(冷備份和熱備份)
操作系統(tǒng)備份有兩類,冷備份(Cold backup)和熱備份(Hot backup)。操作系統(tǒng)備份和上面的邏輯備份有本質(zhì)的區(qū)別,它將拷貝整個的數(shù)據(jù)文件。
冷備份
在文件級備份開始前數(shù)據(jù)庫必須徹底關(guān)閉。關(guān)閉操作必須用帶有normal、immediate、transaction選項的shutdown來執(zhí)行。
數(shù)據(jù)庫使用的每個文件都被備份下來,這些文件包括: 所有數(shù)據(jù)文件、所有控制文件、所有聯(lián)機重做日志文件和INIT.ORA文件(建議)。
作冷備份一般步驟是:
1)正常關(guān)閉要備份的實例(instance);
2)備份整個數(shù)據(jù)庫到一個目錄
3)啟動數(shù)據(jù)庫
即:
SVRMGRL>connect internal
SVRMGRL >shutdown immediate
SVRMGRL >!cp
or
SVRMGRL >!tar cvf /dbbak/fullbk.tar /u01/oracle/oradata/dbname
SVRMGRL >startup
熱備份
熱備份是當數(shù)據(jù)庫打開時的操作系統(tǒng)備份。熱備份只能用于ARCHIVELOG方式的數(shù)據(jù)庫。熱備份沒有必要備份聯(lián)機日志,但必須是歸檔狀態(tài),在實例恢復(fù)的時候,可能需要用到歸檔日志。當前聯(lián)機日志一定要保護好或是處于鏡相狀態(tài),當前聯(lián)機日志的損壞,對于數(shù)據(jù)庫的損壞是巨大的,只能以數(shù)據(jù)的丟失來進行數(shù)據(jù)庫的恢復(fù)工作。對于臨時表空間,存放的是臨時信息,在熱備份是也可以考慮不用備份,如果臨時文件發(fā)生故障,可以刪除該數(shù)據(jù)文件與表空間,重建一個臨時表空間。
熱備份備份的內(nèi)容和冷備份備份的內(nèi)容一樣,操作一般步驟是:
1)備份的表空間通過使用ALTER TABLESpACE …… BEGIN BACKUp使表空間進入熱備份方式。
2)用類似冷備份的操作系統(tǒng)命令對組成表空間的數(shù)據(jù)文件進行拷貝。
3)使用ALTER TABLESpACE …… END BACKUp命令使表空間脫離熱備份方式。
4)使用ALTER DATABSE …… BACKUp CONTROLFILE命令備份控制文件。
即:
SVRMGRL>connect internal;
SVRMGRL>alter tablespace User begin backup;
SVRMGRL>!cp /u01/oradata/dbname/user01.ora /dbbak/user01.ora
SVRMGRL>alter tablespace User end backup;
SVRMGRL>alter database backup controlfile to
or
SVRMGRL>alter database backup controlfile to trace;
注意:因為熱備份的時候,用戶還在操作數(shù)據(jù)庫,所以最好是讓每個表空間處于備份狀態(tài)的時間最短,這樣就要求一個表空間一個表空間的備份,不要一起使表空間處于備份狀態(tài)而同時拷貝數(shù)據(jù)文件。
3.RMAN
Recovery Manager(RMAN)是一個使DBA能很方便地對數(shù)據(jù)庫執(zhí)行備份和恢復(fù)任務(wù)的Oracle應(yīng)用工具,能夠提供DBA對企業(yè)數(shù)據(jù)庫備份與恢復(fù)操作的集中控制。RMAN只能用于ORACLE8或更高的版本中。它能夠備份整個數(shù)據(jù)庫或數(shù)據(jù)庫部件,其中包括表空間、數(shù)據(jù)文件,控制文件和歸檔文件。RMAN可以按要求存取和執(zhí)行備份和恢復(fù)。
RMAN支持六種不通的類型的備份,經(jīng)常用到的有兩種:
FULL 數(shù)據(jù)庫全備份,包括所有的數(shù)據(jù)塊。
INCREMENTAL 增量備份,是指只備份在同級別或更低級別上進行的前一次備份之后的作過改動的那些數(shù)據(jù)塊。這其中需要一個0級的增量作為增量的基礎(chǔ),它備份包括全部曾經(jīng)被數(shù)據(jù)庫使用過的數(shù)據(jù)塊(但不是完全數(shù)據(jù)庫備份)。RMAN共可以支持7級增量。
BACKUp,RESTORE,RECOVER是RMAN最基本的三個命令,分別可以進行數(shù)據(jù)庫的備份,復(fù)原以及恢復(fù)操作。restore命令用于恢復(fù)來自備份集或映像拷貝的數(shù)據(jù)文件、控制文件或歸檔重做日志。recovery命令用于進行介質(zhì)恢復(fù)應(yīng)用重做日志文件。
RMAN的備份信息一般保存在恢復(fù)目錄中,恢復(fù)目錄也是一個數(shù)據(jù)庫,只不過這個數(shù)據(jù)庫用來保存?zhèn)浞菪畔?,一個恢復(fù)目錄可以用來保存多個數(shù)據(jù)庫的備份信息。RMAN也可以在沒有恢復(fù)目錄(NOCATALOG)下運行,這個時候備份信息保存在控制文件。這種情況比較危險,因為一旦控制文件被破壞,將導(dǎo)致所有數(shù)據(jù)庫備份信息的丟失和恢復(fù)的失敗,而且,沒有恢復(fù)目錄,很多RMAN的命令將不被支持。所以對于重要的數(shù)據(jù)庫,建議創(chuàng)建恢復(fù)目錄。
創(chuàng)建恢復(fù)目錄一般有以下步驟。(例子數(shù)據(jù)庫為db)
1)為目錄創(chuàng)建一個單獨的表空間
SQL>create tablespace tsrman datafile ’/dbbak/rman/rsrman.dbf’ size 50M;
2)創(chuàng)建RMAN用戶
SQL>create user rman identified by rman default tablespace rsrman temporary tablespace temp;
3)給RMAN授予權(quán)限
SQL>grant connect, resource, recovery_catalog_owner to rman;
4)打開RMAN
$rman
5)連接恢復(fù)目錄數(shù)據(jù)庫
RMAN>connect catalog rman/rman@db
6)創(chuàng)建恢復(fù)目錄
RMAN>create catalog tablespace tsrman 在對某個數(shù)據(jù)庫進行備份之前,必須先在恢復(fù)目錄上注冊該數(shù)據(jù)庫,這一過程操作如下(假定目標數(shù)據(jù)庫連接字符串為db100)。
1)連接到恢復(fù)目錄數(shù)據(jù)庫
$rman rman/rman@db
2)在RMAN中連接到目標數(shù)據(jù)庫(即要進行備份的數(shù)據(jù)庫)
RMAN>connect target sys/change_on_install@db100
3)注冊數(shù)據(jù)庫
RMAN>register database;
注冊完數(shù)據(jù)庫后,就可以進行數(shù)據(jù)庫的備份了。有完全數(shù)據(jù)庫備份、表空間備份、控制文件備份、和歸檔日志備份等。操作分別如下。
1)完全數(shù)據(jù)庫備份
要求:ARCHIVELOG模式,在DB OpEN的情況下進行數(shù)據(jù)庫完全備份。
RMAN>run{
allocate channel c1 type=disk;
backup database;
release channel c1;
}
2)表空間備份
要求:ARCHIVELOG模式
RMAN>run{
allocate channel c1 type=disk;
backup tablespace “ts_users” filesperset 3 format ‘a(chǎn)atst_%t%s.%p’;
release channel c1;
}
3)控制文件備份
RMAN>run{
allocate channel c1 type=disk;
backup current controlfile tag=weekly_sat_backup;
release channel c1;
}
在對數(shù)據(jù)庫進行完全備份時,控制文件自動包含其中。也可以在表空間或數(shù)據(jù)文件的備份中包含一個控制文件。
RMAN>run{
allocate channel c1 type=disk;
backup tablespace “ts_users”
filesperset 3 format ‘a(chǎn)atst_%t%s.%p’;
include current controlfile;
release channel c1;
}
4)歸檔日志備份
通過查詢數(shù)據(jù)字典表V$ARCHIVED_LOG獲取要備份的日志序列號,然后執(zhí)行命令:
RMAN>run{
allocate channel c1 type=disk;
backup archivelog low logseq 3 high logseq 10 thread 1;
release channel c1;
}
Oracle的備份策略
正確的備份策略不僅能保證數(shù)據(jù)庫服務(wù)器的24*7的高性能的運行,還能保證備份與恢復(fù)的快速性與可靠性。我們將以RMAN的多級增量備份作為一個備份策略的例子來討論。采用多級備份就是為了減少每天備份所需要的時間,而又保證系統(tǒng)有良好的恢復(fù)性?;謴?fù)時間與備份時間要有一個權(quán)衡。比如只要進行一個數(shù)據(jù)庫的全備份,然后就只備份歸檔也可以保證能把數(shù)據(jù)庫恢復(fù)到最新的狀態(tài),但是這樣的恢復(fù)時間將是不可容忍的。多級備份也正是為了解決這種問題,結(jié)合某些應(yīng)用的特點,可以采用如下的備份策略:
每個月做一個數(shù)據(jù)庫的全備份(包括所有的數(shù)據(jù)和只讀表空間);
每個星期一做一次零級備份(不包含只讀表空間);
每個星期三做一次一級備份;
每天做一次二級備份。
每天做一次恢復(fù)目錄的熱備份。
任何數(shù)據(jù)庫的更改需要重新同步CATALOG目錄并重新備份(如添加數(shù)據(jù)文件)或重新備份(如修改表空間為只讀)。
每次備份后都可以備份歸檔日志或定期備份歸檔日志。如果可能,可以直接備份到磁帶上。
Oracle的恢復(fù)
下面的操作約定恢復(fù)目錄存儲在db118中,目標數(shù)據(jù)庫是db100。
1.數(shù)據(jù)庫恢復(fù)
1)啟動SQL*pLUS,使用正確的init.ora文件,使用NOMOUNT選項啟動目標數(shù)據(jù)庫實例。
2)啟動RMAN并連接到恢復(fù)目錄,如下:
$rman catalog rman/rman@db118
恢復(fù)管理器: Release 9.2.0.1.0production
Copyright(c)1995, 2002, Oracle Corporation.All rights reserved.連接到恢復(fù)目錄數(shù)據(jù)庫
RMAN>
3)連接到目標數(shù)據(jù)庫
RMAN>connect target internal/oracle@demo.oracle
連接到目標數(shù)據(jù)庫: db(DBID=1142471523)
4)一旦連接到目標數(shù)據(jù)庫,執(zhí)行restore命令恢復(fù)控制文件
RMAN>run{
2>allocate channel c1 type disk;
3>restore controlfile;
4>}
小結(jié)
保證Oracle數(shù)據(jù)庫的安全是系統(tǒng)安全的重要組成部分,必須要設(shè)計完善的數(shù)據(jù)庫備份和恢復(fù)方案。Oracle提供的各種工具結(jié)合起來使用能夠使數(shù)據(jù)庫的備份和恢復(fù)變得簡單。在實際的Oracle數(shù)據(jù)庫的備份和恢復(fù)中,會有許多不通的和復(fù)雜的情況出現(xiàn),針對不同的情況,要本著使數(shù)據(jù)具有最大的可恢復(fù)性和恢復(fù)時間最短的原則去進行數(shù)據(jù)庫的恢復(fù),這需要大量的實踐和經(jīng)驗積累。
參考文獻
[1] Oracle8i Backup and Recovery Guide Oracle Document
[2] Oracle8i Recovery Manager User’s Guide and Reference Oracle Document
[3] Oracle9i:A Beginner’s Guide(美)Michael Abbey Michael Corey Ian Abramson 2002.3 機械工業(yè)出版社
[4] Oracle8i備份與恢復(fù)手冊(美)Rama Velpuri Anand Adkoli 蔣蕊 王磊等譯 2001.9 機械工業(yè)出版社
第四篇:NBU備份恢復(fù)方案
數(shù)據(jù)備份方案SYMANTEC NetBackup(NBU)簡介
SYMANTEC NetBackup軟件是一個功能強大的企業(yè)級數(shù)據(jù)備份管理軟件,它為UNIX、Windows和Netware混合環(huán)境提供了完整的數(shù)據(jù)保護機制,具有保護企業(yè)從工作組到企業(yè)級服務(wù)器的所有的數(shù)據(jù)的能力。管理員能夠通過圖形界面來管理備份和恢復(fù)的所有方面,制定企業(yè)統(tǒng)一的備份策略。NetBackup針對Oracle、DB2、SAP R/
3、Informix、Sybase、Microsoft SQL Server 和 Microsoft Exchange Server 等數(shù)據(jù)庫提供了備份和恢復(fù)的解決方案。
NetBackup模塊功能介紹
Master Server 在NetBackup Enterprise Server中,Master Server是第一個組件。Master Server是管理一切數(shù)據(jù)保護工作的最核心的部件。所管理的工作包括,任務(wù)調(diào)度,客戶端備份,介質(zhì)管理,設(shè)備管理等等。Media Server 當需要備份的數(shù)據(jù)在不同地點或數(shù)據(jù)量比較大的時候,我們需要使用多個Media Servers來做分擔(dān)備份管理的任務(wù)。Media Server是NetBackup中第二個組件。Media Server通過網(wǎng)絡(luò)承擔(dān)著本地各個機器上的數(shù)據(jù)備份,它可以和Master Server或其他的Media Server共享備份設(shè)備,或使用自己的備份設(shè)備也可以。在有多個Media Servers的情況下,一個Media Server因故障停止數(shù)據(jù)保護工作的時候,可以由Master Server把這個Media Server的數(shù)據(jù)保護工作轉(zhuǎn)移到另外的Media Servers上。Clients(Protected Server)
第三個組件就是Clients,客戶端。所有的通過網(wǎng)絡(luò)把數(shù)據(jù)傳到Master Server或Media Servers上來做數(shù)據(jù)保護的機器,都是客戶端。在客戶端上要安裝NetBackup的客戶端軟件。注意:Master Server和Media Server本身也是NetBackup的Clients,它們在備份自己的數(shù)據(jù)的時候就是客戶端。
NetBackup Tape Library and Rototics Support NetBackup支持所有主流的磁帶機、磁帶庫和光盤庫設(shè)備,包括StorageTek,IBM,Quantum|ATL,ADIC 和HP等等等。所謂NetBackup支持這些設(shè)備不是單指能夠往其磁帶上寫數(shù)據(jù),主要是指對其的設(shè)備管理和介質(zhì)管理功能。磁盤緩沖(DISK STAGING)
磁盤緩沖(DISK STAGING)為NetBackup管理員提供了一種備份方法,首先在磁盤上創(chuàng)建備份鏡像,然后將鏡像轉(zhuǎn)移到另一種介質(zhì)上。NetBackup軟件的磁盤緩沖分三個步驟完成:首先在磁盤上創(chuàng)建NetBackup備份鏡像,然后在可以配置的稍后時間,將鏡像轉(zhuǎn)移到另外一個介質(zhì)上。
備份方案設(shè)計
目前使用比較廣泛的備份方式有以下兩種備份方式: LAN備份
LAN備份是基于數(shù)據(jù)量不大的情況下,結(jié)構(gòu)簡單,但是要占用生產(chǎn)的網(wǎng)絡(luò)帶寬,其結(jié)構(gòu)圖如下:
采用SAN存儲架構(gòu)的LAN-free備份方式:
采用san存儲架構(gòu)的解決方案,也稱為LAN-Free備份。它將磁帶庫和磁盤陣列各自作為獨立的光纖結(jié)點,備份時,數(shù)據(jù)流直接從磁盤陣列傳到磁帶庫內(nèi),是一種無需占用網(wǎng)絡(luò)帶寬(LAN-Free)的解決方案。以下是它的結(jié)構(gòu)圖:
備份和恢復(fù)的定義及實現(xiàn)
備份系統(tǒng)資源的定義
在系統(tǒng)備份前,首先必須定義備份系統(tǒng),分配磁帶庫資源??梢匀缦屡渲脗浞菹到y(tǒng)資源: 將帶庫中所有磁帶驅(qū)動器定義成一組或幾組資源(術(shù)語:Storage Unit)。這樣,當你備份一組數(shù)據(jù)時,系統(tǒng)就會允許使用相應(yīng)的磁帶驅(qū)動器去備份相應(yīng)的數(shù)據(jù)了。
對每個數(shù)據(jù)庫服務(wù)器,我們可以定義一組磁帶,作為一個磁帶池(術(shù)語:Volume Pool),在自動備份時,備份系統(tǒng)回自動將該數(shù)據(jù)庫備份到這個磁帶池中。這里我們可以定義:
1.Volume Pool for主數(shù)據(jù)庫 2.Volume Pool for 文件系統(tǒng)
備份策略的定義
定義好備份資源后,必須根據(jù)實際需要配置備份策略。定義備份策略,涉及到以下內(nèi)容: 1.在什么時間 2.將什么數(shù)據(jù)
3.以什么方式(如全備份或增量備份)、4.通過哪組磁帶驅(qū)動器(備份通道,如:磁帶驅(qū)動器)、5.備份到哪一個磁帶組(備份目的地,如:Volume Pool for 主數(shù)據(jù)庫)而備份的方式可以分為三種:全備份、增量備份、累計增量備份。1.全備份
每次備份定義的所有數(shù)據(jù),優(yōu)點是恢復(fù)快,缺點是備份數(shù)據(jù)量大,數(shù)據(jù)多時可能做一次全備份需很長時間
2.增量備份
備份自上一次備份以來更新的所有數(shù)據(jù),其優(yōu)點是每次備份的數(shù)據(jù)量少,缺點是恢復(fù)時需要全備份及多份增量備份
3.差分備份
備份自上一次全備份以來更新的所有數(shù)據(jù)。我們可以結(jié)合這三種方式,靈活應(yīng)用。數(shù)據(jù)備份的過程
在業(yè)務(wù)系統(tǒng)中,我們會在所有數(shù)據(jù)庫服務(wù)器上部署相應(yīng)的Netbackup SAN Media Server軟件及用于數(shù)據(jù)庫在線熱備份的Agent。
在定義好備份資源和策略后,在指定的時間,備份系統(tǒng)就會自動的將數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)從服務(wù)器上、采用指定的方式、通過指定的磁帶驅(qū)動器備份到指定磁盤池中。
在備份結(jié)束后,系統(tǒng)會報告?zhèn)浞莸臓顩r,然后,系統(tǒng)管理員就會在VEIRTAS Netbackup管理界面上清楚地看到已經(jīng)備份的數(shù)據(jù)的描述。在VERITAS Netbackup上對備份介質(zhì)上的數(shù)據(jù)的管理采用的是簡單易懂的目錄結(jié)構(gòu)。系統(tǒng)管理員通過該目錄下的備份項目可以非常方便的察看已經(jīng)備份的數(shù)據(jù)的情況,包括:這個數(shù)據(jù)是什么時候?qū)δ膫€數(shù)據(jù)庫的備份,采用的是哪一種備份方式(全備份?增量備份?還是累計增量備份?)。一個完整的備份包括一條或幾條備份項目,一般包括一個全備份項目、一個累計增量備份項目、幾個增量備份項目。你可以保留以前的備份—在最近一次全備份以前的備份。也可以同時對一份數(shù)據(jù)做兩個備份。
備份系統(tǒng)對數(shù)據(jù)庫的備份采用的是在線備份,通過VERITAS Netbackup的database Agent,我們可以在不停止數(shù)據(jù)庫運行的情況下,對數(shù)據(jù)庫數(shù)據(jù)進行備份,包括全備份、累計增量備份或者增量備份。這種備份方式,保證了系統(tǒng)的7x24小時的運行。
數(shù)據(jù)的恢復(fù)
當發(fā)生數(shù)據(jù)損壞時,我們需要從磁帶庫恢復(fù)數(shù)據(jù)。
有了VERITAS Netbackup,數(shù)據(jù)的恢復(fù)是非??焖俸秃唵蔚?。通過Netbackup管理界面,系統(tǒng)管理員只需要選定相應(yīng)的數(shù)據(jù)備份項目(備份管理目錄下的相應(yīng)的項目名,對應(yīng)某個時間點備份的某個數(shù)據(jù)庫的數(shù)據(jù),并有說明),進行恢復(fù)(Restore)即可。選擇備份項目時,如前所述,首先選定最近一次全備份進行恢復(fù),然后選定最近一次累計增量備份,最后選定這次累計增量備份以后的所有增量備份項目,依時間順序進行恢復(fù)即可。
備份系統(tǒng)基礎(chǔ)知識
數(shù)據(jù)備份的原則
對數(shù)據(jù)進行備份是為了保證數(shù)據(jù)的一致性和完整性,消除系統(tǒng)使用者和操作者的后顧之憂。不同的應(yīng)用環(huán)境要求不同的解決方案來適應(yīng),一般來說,一個完善的備份系統(tǒng),需要滿足以下原則:
? 穩(wěn)定性
備份產(chǎn)品的主要作用是為系統(tǒng)提供一個數(shù)據(jù)保護的方法,于是該產(chǎn)品本身的穩(wěn)定性和可靠性就變成了最重要的一個方面。首先,備份軟一定要與操作系統(tǒng)100%的兼容,其次,當事故發(fā)生時,能夠快速有效地恢復(fù)數(shù)據(jù)。? 全面性
包括了各種操作平臺,如各種廠家的UNIX、NetWare、Windows NT、VMS等,并安裝了各種應(yīng)用系統(tǒng),如ERP、數(shù)據(jù)庫、群件系統(tǒng)等。選用的備份軟件,要支持各種操作系統(tǒng)、數(shù)據(jù)庫和典型應(yīng)用。? 自動化
很多系統(tǒng)由于工作性質(zhì),對何時備份、用多長時間備份都有一定的限制。在下班時間系統(tǒng)負荷輕,適于備份??墒沁@會增加系統(tǒng)管理員的負擔(dān),因此,備份方案應(yīng)能提供定時的自動備份。在自動備份過程中,還要有日志記錄功能,并在出現(xiàn)異常情況時自動報警。? 高性能
隨著業(yè)務(wù)的不斷發(fā)展,數(shù)據(jù)越來越多,更新越來越快,在休息時間來不及備份如此多的內(nèi)容,在工作時間備份又會影響系統(tǒng)性能。這就要求在設(shè)計備份時,盡量考慮到提高數(shù)據(jù)備份的速度,利用多個磁帶機并行操作的方法。? 操作簡單
需要一個直觀的、操作簡單的圖形化用戶界面,縮短操作人員的學(xué)習(xí)時間,減輕操作人員的工作壓力,使備份工作得以輕松地設(shè)置和完成。? 實時性
關(guān)鍵性的任務(wù)是要24小時不停機運行的,在備份的時候,有一些文件可能仍然處于打開的狀態(tài)。那么在進行備份的時候,要采取措施,實時地查看文件大小、進行事務(wù)跟蹤,以保證正確地備份系統(tǒng)中的所有文件。? 容災(zāi)考慮
將磁帶庫中的磁帶拷貝一份,存放在遠離數(shù)據(jù)中心的地方,以防數(shù)據(jù)中心發(fā)生不可預(yù)測的災(zāi)難。
備份系統(tǒng)組成
能否安全有效的備份取決于以下三個因素: 1.執(zhí)行備份的磁帶機
磁帶機的質(zhì)量與性能在整個備份過程中是至關(guān)重要的,它是能否進行高速高質(zhì)量備份的關(guān)鍵所在。2.存儲備份數(shù)據(jù)的介質(zhì)
介質(zhì)是數(shù)據(jù)的負載物,它的質(zhì)量一定要有保證,使用質(zhì)量不過關(guān)的介質(zhì)無疑是拿自己的數(shù)據(jù)冒險。3.控制備份的軟件
優(yōu)秀備份軟件包括加速備份、自動操作、災(zāi)難恢復(fù)等特殊功能,對于安全有效的數(shù)據(jù)備份是非常重要的。
確定介質(zhì)保存時間
備份過程中要用到大量的存儲介質(zhì),備份介質(zhì)的保留時間的長短將決定所需購置和維護的介質(zhì)量。目前的備份策略都是基于多磁帶輪換制,即保存有過時數(shù)據(jù)的介質(zhì)可重新覆蓋使用,輪換頻率可根據(jù)備份類型和備份的窗口來確定。
計算所需磁帶介質(zhì)數(shù)量
1.備份系統(tǒng)所需的介質(zhì)數(shù)量可根據(jù)下述流程確定: 2.確定介質(zhì)容量
3.計算每個服務(wù)器上的數(shù)據(jù)做全備份所需的介質(zhì)數(shù)量
4.根據(jù)每種介質(zhì)的保留時間或輪換頻率即可計算出所需的介質(zhì)數(shù)目
售后服務(wù)承諾
第五篇:Sybase數(shù)據(jù)庫備份方案
Sybase數(shù)據(jù)庫備份方案
Sybase數(shù)據(jù)備份方案,Sybase數(shù)據(jù)庫產(chǎn)品自從1987年問世以來,它的客戶機/服務(wù)器(client/server)工作模式、分布處理的基礎(chǔ)體系結(jié)構(gòu)、完善的安全保密性能、高速快捷的運行方式、多平臺跨操作系統(tǒng)的廣泛應(yīng)用等優(yōu)點,迅速被IT界接受并推廣應(yīng)用。
我們作為金融業(yè)的用戶,也在1995年開始使用Sybase10版本。在具體的使用中,發(fā)現(xiàn)集中式的數(shù)據(jù)管理有其優(yōu)點,就是數(shù)據(jù)風(fēng)險范圍大為縮小,但是作為Sybase的服務(wù)器一端,數(shù)據(jù)風(fēng)險比較集中,如何做好數(shù)據(jù)庫的數(shù)據(jù)備份,成為至關(guān)重要的問題。
在實際應(yīng)用中,我們總結(jié)出了兩種全量備份方案:
一、Sybase數(shù)據(jù)備份方案之使用Sybase的BackupServer(備份服務(wù)器),做Dump備份
轉(zhuǎn)儲數(shù)據(jù)庫(Dumpdatabase),就是為整個數(shù)據(jù)庫(包括數(shù)據(jù)、表結(jié)構(gòu)、觸發(fā)器、游標、存儲過程、事務(wù)日志等)做一次物理備份。轉(zhuǎn)儲數(shù)據(jù)庫時,系統(tǒng)自動執(zhí)行一次checkpoint,即將日志和數(shù)據(jù)從緩沖區(qū)拷貝到硬盤(只拷貝臟頁),把已被分配的頁(日志和數(shù)據(jù))轉(zhuǎn)儲到設(shè)備。命令格式為:
dumpdatabase數(shù)據(jù)庫名to設(shè)備文件名with參數(shù)
如果備份到硬盤的文件上,可以不預(yù)先估算備份文件的大小,只要硬盤有足夠的存儲空間就可以。如果是備份到dds磁帶上,那么就要估算一下備份后的大小,90米的dds磁帶壓縮存儲空間為4G,120米的磁帶壓縮存儲空間為8G,如果數(shù)據(jù)庫的備份文件超過了這個尺寸,就要考慮多文件轉(zhuǎn)儲,使用stripe參數(shù)。命令格式為:
dumpdatabase數(shù)據(jù)庫名to設(shè)備文件名1 stripeon設(shè)備文件名2 stripeon設(shè)備文件名3…… with參數(shù) 這種數(shù)據(jù)備份方式是將整個數(shù)據(jù)庫的運行環(huán)境完整的復(fù)制一份,包括數(shù)據(jù)庫的臟頁和碎片,在使用load命令恢復(fù)時,只能恢復(fù)到同樣大小的數(shù)據(jù)庫中(數(shù)據(jù)和日志的大小都只能和原來完全一致),適用于在每天的日終營業(yè)網(wǎng)點下班后的日常備份。優(yōu)點是數(shù)據(jù)庫完整無誤,缺點是不能直接查看備份內(nèi)容。
二、Sybase數(shù)據(jù)備份方案之分數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)記錄做兩次備份
在一般情況下,生產(chǎn)機的數(shù)據(jù)庫都比較龐大,而實驗機則相對較小,難以在實驗環(huán)境中以load命令恢復(fù)工作機的內(nèi)容。所以,在工作實踐中,我們摸索出了第二種全量備份方案。
1、數(shù)據(jù)結(jié)構(gòu)備份
在windows平臺的SybaseSQLServerManager(數(shù)據(jù)庫管理)平臺中選擇ServeràGenerateddl則產(chǎn)生整個數(shù)據(jù)庫服務(wù)器的所有信息,如果選擇databaseàgenerateddl則產(chǎn)生所選定數(shù)據(jù)庫的信息,以master庫為例,產(chǎn)生的文件主要包括:config.ddl(配置)、devices.ddl(設(shè)備)、database.ddl(數(shù)據(jù)庫)、logins.ddl(用戶)、remote.ddl(遠程)、cache.ddl(緩沖)、segment.ddl()、group.ddl(用戶組)、user.ddl(用戶)、default.ddl(確省)、rule.ddl(規(guī)則)、udt.ddl、table.ddl(表)、view.ddl(視圖)、proc.ddl(存儲過程)、triger.ddl(觸發(fā)器)。
2、數(shù)據(jù)記錄備份
將數(shù)據(jù)庫各表以Sybase自代的bcp(bulkcopy)工具的方式導(dǎo)成一定格式的文本文件,命令格式:
bcp表名out路徑名文件名-c-t分隔符-u(用戶名)-p(密碼)-S(服務(wù)器名)如果將一個數(shù)據(jù)庫中的所有表都做一個bcp備份,就需要針對每一個表都做一次bcp,在一般情況下,一個數(shù)據(jù)庫有100多個表,工作量比較大??梢岳脭?shù)據(jù)庫中的系統(tǒng)表信息做一個bcp備份腳本。原理是每一個用戶表在系統(tǒng)表中都有信息記載,可以通過isql語句查詢得到?,F(xiàn)舉一例說明: 1)、先編輯一個名為mkbcpout.sql的文件,內(nèi)容如下: select“echobcp'”+name+“out……………………'
”+“bcp”+name+“out./+”name+“.table-c-t'|'-Uuser-Ppassword-SSERVER”fromsysobjectswheretype='U' go 2)、執(zhí)行isql命令,以此文件作為輸入,執(zhí)行結(jié)果輸出到另外一個文件里: isql-Uuser-Ppassword-Sserver-Imkbcpout.sql-Obcpout 3)、對bcppout文件稍微修改,增加可執(zhí)行權(quán)限 chmod+xbcpout 4)、執(zhí)行bcpout,導(dǎo)出數(shù)據(jù)文本./bcpout
3、數(shù)據(jù)庫恢復(fù)
業(yè)務(wù)生產(chǎn)機可能為小型機,而實驗開發(fā)環(huán)境的硬件環(huán)境為PCserver,安裝好winnt或SCOunix下的Sybase服務(wù)器后,根據(jù)需要創(chuàng)建空間足夠大的數(shù)據(jù)庫和tempdb(系統(tǒng)臨時數(shù)據(jù)庫),創(chuàng)建數(shù)據(jù)庫用戶,并將其更改為此數(shù)據(jù)庫的所有者,要注意兩點:1)此數(shù)據(jù)庫允許bcp拷貝,2)此數(shù)據(jù)庫自動清除log。命令格式為:
1>sp_dboptiondatabasedbname,“selectinto/bulkcopy”,true 2>go 1>sp_dboptiondatabasename,“trunclogonchkpt”,true 2>go 上述兩個配置可能與生產(chǎn)機的配置不同。
然后以新創(chuàng)建的數(shù)據(jù)庫用戶登錄,導(dǎo)入數(shù)據(jù)結(jié)構(gòu),注意要首先導(dǎo)入表結(jié)構(gòu),然后才是存儲過程、觸發(fā)器等等。命令格式:
1、isql-Uusername-Ppassword-Itable.ddl-oerror.log.table
2、isql-Uusername-Ppassword-Iproc.ddl-oerror.log.proc ……
為了提高bcp導(dǎo)入數(shù)據(jù)的速度,需要將比較大的表的索引和主鍵刪除,否則的話,每bcp進一條數(shù)據(jù),數(shù)據(jù)庫都自動寫一條log日志,記載此數(shù)據(jù)的上一條和下一條記錄,確定本記錄在此表中的準確位置,一是影響bcp速度,二是數(shù)據(jù)庫的log飛速膨脹。數(shù)據(jù)庫的自動清除log功能只有在一個事務(wù)結(jié)束后才起作用。準備工作做完后,開始倒入數(shù)據(jù)記錄。使用類似做bcpout的方法做一個bcpin的腳本,然后執(zhí)行:./bcpin|teeerror.bcpin 使用tee管道輸出的目的是讓計算機完整記錄下倒入過程,自動存入error.bcpin文件中,待倒入結(jié)束后,我們只需要檢查日志文件,不需要一直緊盯著計算機屏幕。所有工作做完之后,不要忘記重新將刪除的主鍵和索引建上。
如果有現(xiàn)成的數(shù)據(jù)庫,只需要單純地導(dǎo)入數(shù)據(jù)記錄,則首先將數(shù)據(jù)庫中所有用戶表(也就是所有type=“U”的表)清空,命令格式: 1>truncatetabletablename 2>go 當然最好也是利用做bcpout腳本的做一個truncate腳本,通過執(zhí)行此腳本將所有用戶表清空。然后的數(shù)據(jù)導(dǎo)入、處理索引和主鍵的過程與上面類似。
三、Sybase數(shù)據(jù)備份方案之利用做bcp備份腳本的方法做數(shù)據(jù)庫碎片整理 Sybase數(shù)據(jù)庫作為聯(lián)機事務(wù)處理應(yīng)用服務(wù)器,每天應(yīng)用程序都對數(shù)據(jù)庫做大量的插入、修改和刪除等操作,不可避免的在數(shù)據(jù)庫的物理存儲介質(zhì)上留下頁碎片和擴展單元碎片,從而影響數(shù)據(jù)庫的存儲效率和運行速度。具體表現(xiàn)為:業(yè)務(wù)繁忙時出現(xiàn)死鎖(deadlock),數(shù)據(jù)庫的輸入/輸出資源被大量占用,業(yè)務(wù)處理速度慢。其解決辦法是:
1、清空數(shù)據(jù)庫中的所有表,命令格式:
isql-Uusername-Ppassword-Itruncate.sql-oerror.truncate
2、刪除所有表的索引和主鍵
isql-Uusername-Ppassword-Idropindex.sql-oerror.dropindex
3、導(dǎo)入數(shù)據(jù)./bcpin
4、添加索引和主鍵
isql-Uusername-Ppassword-Iaddindex.sql-oerror.addindex
5、更新數(shù)據(jù)庫狀態(tài)
1>updatestatisticstablename 2>go 上述操作都是針對數(shù)據(jù)庫中的所有用戶表進行的,利用做bcp備份腳本的方法做出相應(yīng)的腳本,使繁瑣的數(shù)據(jù)庫維護變得簡便易行,還克服了直接使用isql語句操作風(fēng)險大、沒有操作日志的毛病。以上就是對Sybase數(shù)據(jù)備份方案的簡單介紹。