達夢數據庫如何進行備份還原
一、備份的意義
1、數據備份就是要保存數據的完整性,防止非法關鍵,斷電,病毒感染等等情況,使數據丟失,有必要的話,最好勤備份,防止數據丟失。
2、數據還原:就是數據庫出現錯誤或者是崩潰了不可以用,就把原來的數據恢復回來。
3、提高系統的可用性和災難可恢復性,在數據庫系統崩潰的時候,可以恢復數據。
4、使用數據庫備份還原數據庫是數據庫系統崩潰時提供數據恢復最小代價的最優方案.
5、沒有數據就沒有一切,數據庫備份就是一種防范災難於未然的強力手段。
二、備份的方式
物理備份
1、冷備份
2、熱備
3、如何去打開歸檔
4、補充:兼容性參數
5、還原
物理備份
冷備(dmap服務是打開的,數據庫是關閉的)
熱備(dmap服務是打開的,數據庫是打開的,數據庫要打開歸檔)
同時達夢也支持第三方的備份軟件:上海愛數,鼎甲。
1、冷備份
關閉數據庫
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
檢查DmAP,如果狀態關閉,需要打開DmAP
[dmdba@localhost bin]$ ./DmAPService status
[dmdba@localhost bin]$ ./DmAPService start
控制台工具:
[dmdba@localhost -]$ cd /dm8/tool
[dmdba@localhost tool ]$./console
DM控制台
選擇備份的目錄,命名備份集名,點擊確定
DMRMAN工具去備:
[dmdba@dca01 bin]$ ./dmrman
RMAN> backup database ‘/dm8/data/DMDB/dm.ini' backupset 'dm8/data/DMDB/bak
冷備份,要停止數據庫,也可能會造成數據丟失。
還原:(數據庫關閉,dmap服務打開)
還原數據
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
數據恢復
RMAN> recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
數據庫還原完成,需要更新魔數
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic
啟動數據庫
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
2、熱備
1、數據庫是打開的
2、DMAP服務是打開的
3、數據庫是歸檔模式
3、如何去打開歸檔
命令方式:
數據庫到配置模式
alter database mount;
打開歸檔配置
alter database archivelog;
增加歸檔文件
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=80,space_limit=0';
數據庫到打開狀態
alter database open;
查數據庫歸檔
select arch_mode from v$database
利用管理工具開歸檔
[dmdba@localhost tool ]$./manager
轉換系統管理的配置狀態
打開歸檔,配置數據
type=local,dest=/dm8/arch,file_size=80,space_limit=0
熱備
備份數據庫:
SQL> backup database;
備份表空間:表空間備份只能聯機,還原只能脫機
SQL> backup tablespace DMHR;
備份表:
SQL> backup table emp;
備份歸檔:
SQL> backup archivelog;
命令行方式下增量備
做增量備份,一定要有一次完全備份。以完全備份作為基准,備份改變的。
SQL> backup database full to "DB_DMDB_FULL_2021_01_06_15_55_48" backupset '/dm8/data/FULL';
SQL> backup database increment with backupdir "/dm8/data/FULL" backupset '/dm8/data/FULL1';
increment:指定是增量備份
with backupdir:指定完全備份的路徑
利用管理工具進行熱備:(一定要打開歸檔)
完全備份:
增量備份:
備份完成,添加備份的目錄
4、補充:兼容性參數
Compatible_mode
是否兼容其他數據庫模式。
0:不兼容,
1:兼容SQL92標准,
2:兼容ORACLE,
3:兼容MS SQL SERVER,
4:兼容MYSQL
5、還原
還原之前先關閉數據庫服務
整庫還原:
dmrman 還原:
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL';
數據恢復
(打開數據歸檔以后使用這個命令進行數據恢復,冷備的數據恢復和熱備的數據恢復有區別)
RMAN>recover database ‘/dm8/data/DMDB/dm.ini’' with archivedir '/dm8/arch';
更新數據庫魔數
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic;
表空間還原:(表空間備份不用脫機,表空間還原需要脫機)
創建表空間:創建表空間TEST,數據文件初始大小為50m,每次自動擴展
2m,最大可擴展1024m;
create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size
50 autoextend on next 2 maxsize 1024 CACHE = NORMAL;
備份表空間
backup tablespace "TAST" full to "TS_TAST_FULL_2021_01_07_14_40_19" backupset '/dm8/data/backup';
表空間脫機
Alter tablespace test offline;
關閉數據庫服務 ./DmServiceDMSERVER stop
表空間還原
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace TAST from backupset '/dm8/data/backup/'
表空間恢復:
RMAN> recover database '/dm8/data/DMDB/dm.ini' tablespace TAST;
邏輯備份
工具:dexp 邏輯導出 dimp 邏輯導入
這是達夢自帶的工具,分為四種級別:
數據庫級別,用戶級,模式級和表級,四種級別獨立互斥,不能同時存在,四種級別所提供的功能:
數據庫級(full):導出或導入整個數據庫中的訪問對象。
用戶級(owner):導出或導入一個或多個用戶所擁有的所有對象。
模式級(schemas):導出或導入一個或多個模式下的所有對象。
表級(table):導出或導入一個或多個指定的表或表分區。
1、邏輯導出
要求:數據庫是打開
邏輯導出數據庫:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/full.dmp full=y
備份表:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/emp.dmp tables=sysdba.emp
備份模式:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/dmhr.dmp schemas=dmhr
備份用戶:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/backup/tast.dmp owner=tast
2. 邏輯導入
假設emp表損壞:dimp還原
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=emp.dmp ignore=y
如果表存在注意參數IGNORE
如果表不存在:
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=sysdba.emp
注意:導入和導出的警告
達夢數據庫如何進行備份還原
一、備份的意義
1、數據備份就是要保存數據的完整性,防止非法關鍵,斷電,病毒感染等等情況,使數據丟失,有必要的話,最好勤備份,防止數據丟失。
2、數據還原:就是數據庫出現錯誤或者是崩潰了不可以用,就把原來的數據恢復回來。
3、提高系統的可用性和災難可恢復性,在數據庫系統崩潰的時候,可以恢復數據。
4、使用數據庫備份還原數據庫是數據庫系統崩潰時提供數據恢復最小代價的最優方案.
5、沒有數據就沒有一切,數據庫備份就是一種防范災難於未然的強力手段。
二、備份的方式
物理備份
1、冷備份
2、熱備
3、如何去打開歸檔
4、補充:兼容性參數
5、還原
物理備份
冷備(dmap服務是打開的,數據庫是關閉的)
熱備(dmap服務是打開的,數據庫是打開的,數據庫要打開歸檔)
同時達夢也支持第三方的備份軟件:上海愛數,鼎甲。
1、冷備份
關閉數據庫
[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
檢查DmAP,如果狀態關閉,需要打開DmAP
[dmdba@localhost bin]$ ./DmAPService status
[dmdba@localhost bin]$ ./DmAPService start
控制台工具:
[dmdba@localhost -]$ cd /dm8/tool
[dmdba@localhost tool ]$./console
DM控制台
選擇備份的目錄,命名備份集名,點擊確定
DMRMAN工具去備:
[dmdba@dca01 bin]$ ./dmrman
RMAN> backup database ‘/dm8/data/DMDB/dm.ini' backupset 'dm8/data/DMDB/bak'
冷備份,要停止數據庫,也可能會造成數據丟失。
還原:(數據庫關閉,dmap服務打開)
還原數據
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
數據恢復
RMAN> recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL'
數據庫還原完成,需要更新魔數
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic
啟動數據庫
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
2、熱備
1、數據庫是打開的
2、DMAP服務是打開的
3、數據庫是歸檔模式
3、如何去打開歸檔
命令方式:
數據庫到配置模式
alter database mount;
打開歸檔配置
alter database archivelog;
增加歸檔文件
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=80,space_limit=0';
數據庫到打開狀態
alter database open;
查數據庫歸檔
select arch_mode from v$database;
利用管理工具開歸檔
[dmdba@localhost tool ]$./manager
轉換系統管理的配置狀態
打開歸檔,配置數據
type=local,dest=/dm8/arch,file_size=80,space_limit=0
熱備
備份數據庫:
SQL> backup database;
備份表空間:表空間備份只能聯機,還原只能脫機
SQL> backup tablespace DMHR;
備份表:
SQL> backup table emp;
備份歸檔:
SQL> backup archivelog;
命令行方式下增量備
做增量備份,一定要有一次完全備份。以完全備份作為基准,備份改變的。
SQL> backup database full to "DB_DMDB_FULL_2021_01_06_15_55_48" backupset '/dm8/data/FULL';
SQL> backup database increment with backupdir "/dm8/data/FULL" backupset '/dm8/data/FULL1';
increment:指定是增量備份
with backupdir:指定完全備份的路徑
利用管理工具進行熱備:(一定要打開歸檔)
完全備份:
增量備份:
備份完成,添加備份的目錄
4、補充:兼容性參數
Compatible_mode
是否兼容其他數據庫模式。
0:不兼容,
1:兼容SQL92標准,
2:兼容ORACLE,
3:兼容MS SQL SERVER,
4:兼容MYSQL
5、還原
還原之前先關閉數據庫服務
整庫還原:
dmrman 還原:
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/data/FULL';
數據恢復
(打開數據歸檔以后使用這個命令進行數據恢復,冷備的數據恢復和熱備的數據恢復有區別)
RMAN>recover database ‘/dm8/data/DMDB/dm.ini’' with archivedir '/dm8/arch';
更新數據庫魔數
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic;
表空間還原:(表空間備份不用脫機,表空間還原需要脫機)
創建表空間:創建表空間TEST,數據文件初始大小為50m,每次自動擴展
2m,最大可擴展1024m;
create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size
50 autoextend on next 2 maxsize 1024 CACHE = NORMAL;
備份表空間
backup tablespace "TAST" full to "TS_TAST_FULL_2021_01_07_14_40_19" backupset '/dm8/data/backup';
表空間脫機
Alter tablespace test offline;
關閉數據庫服務 ./DmServiceDMSERVER stop
表空間還原
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace TAST from backupset '/dm8/data/backup/'
表空間恢復:
RMAN> recover database '/dm8/data/DMDB/dm.ini' tablespace TAST;
邏輯備份
工具:dexp 邏輯導出 dimp 邏輯導入
這是達夢自帶的工具,分為四種級別:
數據庫級別,用戶級,模式級和表級,四種級別獨立互斥,不能同時存在,四種級別所提供的功能:
數據庫級(full):導出或導入整個數據庫中的訪問對象。
用戶級(owner):導出或導入一個或多個用戶所擁有的所有對象。
模式級(schemas):導出或導入一個或多個模式下的所有對象。
表級(table):導出或導入一個或多個指定的表或表分區。
1、邏輯導出
要求:數據庫是打開
邏輯導出數據庫:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/full.dmp full=y
備份表:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/emp.dmp tables=sysdba.emp
備份模式:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/data/backup/dmhr.dmp schemas=dmhr
備份用戶:
[dmdba@localhost bin]$ ./dexp SYSDBA/SYSDBA file=/dm8/backup/tast.dmp owner=tast
2. 邏輯導入
假設emp表損壞:dimp還原
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=emp.dmp ignore=y
如果表存在注意參數IGNORE
如果表不存在:
[dmdba@localhost bin]$ ./dimp SYSDBA/SYSDBA file=/dm8/backup/emp.dmp tables=sysdba.emp
注意:導入和導出的警告