達夢 6 聯機備份恢復

2021-12-30 10:13:55 字數 4469 閱讀 8563

達夢資料庫的聯機備份頗花了我不少時間,關鍵是附帶的文件感覺說得不清楚。不過測試出來後覺得達夢的這個設計還是比較簡明的。

為了讓後面學習的人不用花我這麼多時間,把測試流程整理了下放在下面:

主要測試了:

1. 不包含歸檔的聯機全備

2. 包含歸檔的聯機全備

3. 不包含歸檔的聯機全備的恢復

4. 不包含歸檔的聯機全備檔案加上歸檔日誌的恢復

5. 包含歸檔的聯機全備的恢復

測試版本: v7.1.2.215-build(2013.11.08-36626trunc)

一。檢查並設定資料庫為歸檔模式

聯機備份必須處在歸檔模式下,可用下面兩條sql檢視資料庫當前狀態--檢視歸檔是否開啟

select arch_mode from v$database;

--檢視歸檔日誌資訊

select arch_name,arch_type,arch_dest from v$dm_arch_ini;

二。建立測試資料

-- 建立表空間test_data(資料檔案test_data01.dbf大小為50m)

create tablespace test_data datafile 'c:\dmdbms\data\dameng\test_data01.dbf' size 50;

-- 增加使用者

create user "testuser" identified by "111111" default tablespace "test_data";

-- 授權

grant "dba" to "testuser";

-- 建立模式

create schema test_sch authorization testuser;

-- 建立 表

create table test_sch.t1(id int primary key ,name varchar(20)) storage(on test_data)

-- 插入資料

insert into test_sch.t1 values(1,'aaa');

insert into test_sch.t1 values(2,'bbb');

-- 檢索資料

select * from test_sch.t1;

三。備份資料庫

1. 不包含歸檔的聯機全備

-- 僅備份資料庫,不備份日誌

backup database full to dmbkname03_noarc bakfile 'c:\xcl\online_noarc\dmbkname03_noarc.bak' backupinfo '測試全庫聯機備份不包含歸檔' maxsize 50 without log ;

2. 再次插入資料

insert into test_sch.t1 values(3,'dmbkname03_noarc');

3. 包含歸檔的聯機全備

-- 備份資料庫,幷包含日誌

backup database full to dmbkname04 bakfile 'c:\xcl\online\dmbkname04.bak' backupinfo '測試全庫聯機備份' maxsize 50 ;備份完成的後續工作:

1. 繼續插入一筆資料

-- 插入資料

insert into test_sch.t1 values(4,'dmbkname04');

-- 檢索資料

select * from test_sch.t1;

sql> select * from test_sch.t1;

行號 id name

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

1 1 aaa

2 2 bbb

3 3 dmbkname03_noarc

4 4 dmbkname04

已用時間: 1.245(毫秒). 執行號:99.2 將歸檔備份乙份到另乙個目錄

3. 在"dm服務檢視器"中停掉對應的例項服務"dmservicedmserver"

4. 將dm.ini 備份乙份到另乙個目錄

5. 刪除資料庫目錄

在"c:\dmdbms\data"目錄下刪除資料庫所在目錄"dameng".此時資料庫就被刪除了。

這時,你去"dm服務檢視器"重新整理下,就看不到"dmservicedmserver"這個服務了

四。恢復測試

達夢資料庫的恢復通常分兩步走.

第一,通過dminit重新初始化出乙個和備份資料庫相同的名字的庫

第二. 執行恢復命令恢復.

a. 不包含歸檔的聯機全備的恢復

1. 初始化資料庫

c:\dmdbms\bin>dminit.exe path=c:\dmdbms\data db_name=dameng instance_name=dmserver2.恢復資料庫

-- 不包含歸檔

c:\dmdbms\bin> dmrestore ini_path=c:\xcl\dm.ini file=c:\xcl\online_noarc\dmbkname03_noarc.bak3. 啟動服務,進入資料庫檢視恢復結果

sql>select * from test_sch.t1;

行號 id name

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

1 1 aaa

2 2 bbb

已用時間: 60.990(毫秒). 執行號:3.

b. 不包含歸檔的聯機全備檔案加上歸檔日誌的恢復

1. 初始化資料庫

--再次用不包含歸檔的備份測試,但指定歸檔日誌目錄

dminit.exe path=c:\dmdbms\data db_name=dameng instance_name=dmserver2.恢復資料庫

dmrestore ini_path=c:\xcl\dm.ini file=c:\xcl\online_noarc\dmbkname03_noarc.bak archive_dir=c:\xcl\online_noarc\arc23. 啟動服務,進入資料庫檢視恢復結果

sql>select * from test_sch.t1;

行號 id name

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

1 1 aaa

2 2 bbb

3 3 dmbkname03_noarc

4 4 dmbkname04

已用時間: 62.247(毫秒). 執行號:3.

sql>

c.包含歸檔的聯機全備的恢復

1. 初始化資料庫

dminit.exe path=c:\dmdbms\data db_name=dameng instance_name=dmserver2.恢復資料庫

-- 資料庫全庫備份,幷包含日誌

dmrestore ini_path=c:\xcl\dm.ini file=c:\xcl\online\dmbkname04.bak3. 啟動服務,進入資料庫檢視恢復結果

sql>select * from test_sch.t1;

行號 id name

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

1 1 aaa

2 2 bbb

3 3 dmbkname03_noarc

已用時間: 62.508(毫秒). 執行號:3.

五.總結

達夢資料庫的文件中並沒有說明,dmrestore命令即能恢復離線備份,也能恢復聯機備份。導致我在執行backup命令後,

誤以為要有resotre恢復。但資料庫被破壞後,又沒法進disql執行restore.後測試才知,dmrestore命令通殺離線和聯機兩種恢復方式。

從上面的測試可看出,基本上達夢的備份流程就是發命令,生成備份檔案,並同時備份dm.ini。有些情況下還要備份歸檔日誌。

然後恢復是用dminit重新初始化乙個庫再用dmrestore恢復。 在達夢資料庫中dm.ini非常重要,備份時一定要記得把這個也一同備份。

mail: [email protected]

blog:

達夢資料庫備份與恢復

首先切換使用者到dmdba,如不知道密碼可以先登入root再切換到dmdba 使用ps ef grep dmserv檢視達夢資料庫是否執行 進入達夢資料庫對應的bin目錄,即第二步是dmserver所在的目錄 登入資料庫.disql sysdba sysdba 使用backup database f...

達夢資料庫備份恢復小結

三 總結 資料庫系統在執行過程中可能會發生一些故障。造成故障的原因多種多樣,包括磁碟崩 潰 電源故障 軟體錯誤,甚至人為破壞。這些情況一旦發生,就可能會丟失資料,資料庫 系統將無法正常執行。因此,故障恢復是資料庫系統必不可少的組成部分,即資料庫系統必 須保證即使發生故障,也可以保障資料的完整性和一致...

達夢資料庫高效備份恢復策略

資料庫備份是 dba 日常最重要的工作內容。備份的主要目的是資料容災,保證資料的安全性,在資料庫發生故障時,通過還原備份集,將資料恢復到可用狀態。disql 工具 聯機資料備份與還原,包括庫備份 不包括庫還原,全庫還原需使用dmrman離線還原 表空間備份與還原 表備份與還原 dmrman 工具 離...