達夢DM備份恢復(物理和邏輯)

qing123發表於2022-05-13

前言

主要介紹達夢資料庫的邏輯備份還原及物理備份還原。


一、邏輯備份還原

邏輯備份工具使用dexp,還原工具使用dimp在安裝的bin目錄下面


1、邏輯備份

注意:資料庫字符集

四種級別的匯出方式

FULL-全庫

FULL 方式匯出資料庫的所有物件。

例如,設定 FULL=Y,匯出資料庫的所有物件,匯出資料庫檔案和日誌檔案放在路徑 /dm/dmbak/dexp 下。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY= /dm/dmbak/dexp


OWNER-使用者

OWNER 方式匯出一個或多個使用者擁有的所有物件。

例如,設定 OWNER=USER01,匯出使用者 USER01 所擁有的物件全部匯出。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY= /dm/dmbak/dexp


SCHEMAS-模式

SCHEMAS 方式的匯出一個或多個模式下的所有物件。

例如,設定 SCHEMAS=USER01,匯出模式 USER01 模式下的所有物件。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01  DIRECTORY= /dm/dmbak/dexp


TABLES-表名

TABLES 方式匯出和匯入一個或多個指定的表或表分割槽。匯出所有資料行、約束、索引等資訊。

例如,設定 TABLES=table1,table2,匯出 table1,table2 兩張表的所有資料和資訊。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY= /dm/dmbak/dexp

和 TABLES 匯出有關的引數還有 QUERY、EXCLUDE 和 INCLUDE,都是用來設定過濾條件的。


更多的使用方法可以用dexp help 進行檢視。


2、邏輯還原

四種級別的匯入方式

FULL-全庫

FULL 方式匯入整個資料庫。

例如,設定 FULL=Y,匯入整個資料庫,匯入的資料庫檔案在 /dm/dmbak/dexp,即將生成的日誌檔案放在 /dm/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE= /dm/dmbak/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY= /dm/dmbak/dimp


OWNER-使用者

OWNER 方式匯入一個或多個使用者擁有的所有物件。

例如,設定 OWNER=USER01,匯入使用者 USER01 所擁有的物件全部匯出。匯入的資料庫檔案在 /dm/dmbak/dexp,即將生成的日誌檔案放在 /dm/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE= /dm/dmbak/dexp/db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY= /dm/dmbak/dimp


SCHEMAS-模式名

SCHEMAS 方式的匯入一個或多個模式下的所有物件。

例如,設定 SCHEMAS=USER01,匯入模式 USER01 模式下的所有物件。匯入的資料庫檔案在 /dm/dmbak/dexp,即將生成的日誌檔案放在 /dm/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE= /dm/dmbak/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY= /dm/dmbak/dimp

注意:在新的例項中匯入,一定要有匯入檔案對應的模式名


TABLES-表名

TABLES 方式匯入一個或多個指定的表或表分割槽。匯入所有資料行、約束、索引等資訊。

例如,設定 TABLES=table1,table2,匯入 table1,table2 兩張表的所有資料和資訊。匯入的資料庫檔案在 /dm/dmbak/dexp,即將生成的日誌檔案放在 /dm/dmbak/dimp。

./dimp USERID=SYSDBA/SYSDBA FILE= /dm/dmbak/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY= /dm/dmbak/dimp

和 TABLES 匯入有關的引數還有 EXCLUDE,用來指定匯入時過濾掉某類物件。

注意:在匯出時如果有模式名,新例項匯入時也要有模式名,新例項就會生成對應的模式名


更多的使用方法可以用dimp help 進行檢視。


二、物理備份還原

1、聯機備份

利用 disql 工具或圖形化管理工具 SQL 編輯區實現資料檔案的備份。

全備

SQL>BACKUP DATABASE FULL BACKUPSET '/dm/dmbak/db_full_bak_01';

指定備份集路徑為 /dm/dmbak/db_bak_3_01,執行以下命令:

SQL>BACKUP DATABASE BACKUPSET '/dm/dmbak/db_bak_3_01';

建立備份集,備份名設定為 WEEKLY_FULL_BAK,執行以下命令:

SQL>BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/dm/dmbak/db_bak_3_02';

建立備份為備份集新增描述資訊為完全備份,執行以下命令:

SQL>BACKUP DATABASE BACKUPSET '/dm/dmbak/db_bak_3_04' BACKUPINFO '完全備份';

建立備份限制備份片大小為 300 MB,執行以下命令:

SQL>BACKUP DATABASE BACKUPSET '/dm/dmbak/db_bak_3_05' MAXPIECESIZE 300;

執行備份壓縮,壓縮級別設定為 5,執行以下命令:

SQL>BACKUP DATABASE BACKUPSET '/dm/dmbak/db_bak_3_06' COMPRESSED LEVEL 5;

建立並行備份,指定並行數為 8,執行以下命令:

SQL>BACKUP DATABASE BACKUPSET '/dm/dmbak/db_bak_3_07' PARALLEL 8;

基於 /dm/dmbak 全量備份的差異增量備份,執行以下命令:

SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm/dmbak' BACKUPSET '/dm/dmbak/db_increment_bak_02';


2、離線備份

離線備份使用dmrman工具,在安裝bin目錄下面,離線備份需要指定例項的dm.ini檔案,且離線備份需要停止資料庫例項服務。

進入dmrman

[dmdba@yhkylin bin]$ ./dmrman 

dmrman V8

RMAN> 

全庫備份,在 DMRMAN 下執行以下命令:

RMAN>BACKUP  DATABASE  '/dm/dmdata/DAMENG/dm.ini'  FULL  BACKUPSET '/dm/dmbak/db_full_bak_01';

差異增量備份,在 DMRMAN 下執行以下命令:

RMAN>BACKUP DATABASE '/dm/dmdata/DAMENG/dm.ini' INCREMENT WITH BACKUPDIR '/dm/dmbak' BACKUPSET '/dm/dmbak/db_increment_bak_02';


3、物理還原

物理還原使用dmrman工具,在安裝bin目錄下面,物理還原需要指定例項的dm.ini檔案,且物理還原需要停止資料庫例項服務。


1、全庫備份的恢復還原

還原資料庫。啟動 DMRMAN,執行以下命令:

RMAN>RESTORE DATABASE '/dm/dmdata/DAMENG/dm.ini' FROM  BACKUPSET '/dm/dmbak/db_full_bak_01';

恢復資料庫。啟動 DMRMAN,執行以下命令:

RMAN>RECOVER DATABASE '/dm/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dm/dmbak/db_full_bak_01';

恢復 db_magic,執行以下命令:

RMAN>RECOVER DATABASE '/dm/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC;


2、增備的恢復還原

可以使用with backupdir關鍵字指定基備份集搜尋目錄(指定基備份集的上層目錄),還原資料庫。啟動 DMRMAN,執行以下命令:

RMAN> restore database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmbak/db_increment_bak_02' with backupdir '/dm/dmbak';

恢復資料庫,執行以下命令:

RMAN> recover database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmbak/db_increment_bak_02';

恢復 db_magic,執行以下命令:

RMAN> recover database '/dm/dmdata/DAMENG/dm.ini' update db_magic;


3、基於歸檔的恢復還原

基於備份集將資料庫還原到備份的時刻:

RMAN> restore database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmbak/db_full_bak_01';

基於歸檔 將資料庫恢復到最新 狀態 :

RMAN> recover database '/dm/dmdata/DAMENG/dm.ini' with archivedir '/dm/dmarch';

庫級還原和恢復需要更新資料庫魔數:

RMAN> recover database '/dm/dmdata/DAMENG/dm.ini' update db_magic;


4、恢復到指定的時間

基於備份集將資料庫還原到備份的時刻:

RMAN> restore database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmbak/db_full_bak_01';

使用RECOVER DATABASE…UNTIL TIME命令恢復到指定的時間:

RMAN>RECOVER DATABASE '/dm/dmdata/DAMENG/dm.ini' WITH ARCHIVEDIR'/dm/dmarch' UNTIL TIME'2021-08-07 10:56:40';

庫級還原和恢復需要更新資料庫魔數:

RMAN> recover database '/dm/dmdata/DAMENG/dm.ini' update db_magic;


總結

更多資訊可前往達夢官網社群



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017567/viewspace-2894028/,如需轉載,請註明出處,否則將追究法律責任。

相關文章